marbl-ecosys / MARBL

Marine Biogeochemistry Library
https://marbl-ecosys.github.io
Other
14 stars 25 forks source link

Add the quadratic mortality portion of zoo_loss to diagnostics #438

Open mnlevy1981 opened 1 year ago

mnlevy1981 commented 1 year ago

@cpetrik asked @kristenkrumhardt and I if it would be possible to split up the computation in compute_Zprime() a little more

zoo_loss_basal(zoo_ind,:) = zooplankton_settings(zoo_ind)%basal_respiration_rate * Zprime(zoo_ind,:) * Tfunc_zoo(zoo_ind,:)

zoo_loss_bulk(zoo_ind,:) = (zooplankton_settings(zoo_ind)%z_mort_0 * Zprime(zoo_ind,:) + &
                      zooplankton_settings(zoo_ind)%z_mort2_0 * Zprime(zoo_ind,:)**zoo_mort2_exp) * Tfunc_zoo(zoo_ind,:)

zoo_loss(zoo_ind,:) = zoo_loss_basal(zoo_ind,:) + zoo_loss_bulk(zoo_ind,:)

so that the zooplankton_settings(zoo_ind)%z_mort2_0 * Zprime(zoo_ind,:)**zoo_mort2_exp) * Tfunc_zoo(zoo_ind,:) term could be provided as a diagnostic (this would be helpful for forcing FEISTY). I think it would just require adding one more term to zooplankton_derived_terms_type and then updating marbl_diagnostics_mod.F90 and diagnostics_latest.yaml to write it out.

mnlevy1981 commented 1 year ago

Note we can back this out with

zoo_loss(zoo_ind,:) - zoo_loss_basal(zoo_ind,:) - zooplankton_settings(zoo_ind)%z_mort_0 * (zoo_loss_basal(zoo_ind,:) / zooplankton_settings(zoo_ind)%basal_respiration_rate)

which is equivalent to

zoo_loss(zoo_ind,:) - zoo_loss_basal(zoo_ind,:) * (c1 + zooplankton_settings(zoo_ind)%z_mort_0 / zooplankton_settings(zoo_ind)%basal_respiration_rate)

but we don't have zoo_loss_basal_zint_150m