Skip to content

"isnew" and the intersection of hi-frequency flux diagnostics and growth respiration #1453

@rgknox

Description

@rgknox

We have a flag "cohort%isnew" which is set to true when a cohort is newly recruited. This flag is set to false for the cohort after they have experienced a day. We use this so that we do not evaluate fluxes on newly created cohorts if they have not actually experienced a day. However, this is only relevant for things at the dynamics time-scale, because we evaluate history at the dynamics time-scale after we perform recruitment (as well as mortality and disturbance) while we have these new flux-less cohorts.

However! History diagnostics that are generated at high frequency, are evaluated after biophysical rates have been calculated for the cohort (things like GPP, stomatal conductance, respiration rates, etc). So these rates do NOT need to be filtered by isnew.

We can remove this filter's use in all calls inside update_history_hifrq :

if_notnew: if ( .not. ccohort%isnew ) then

Yet! There is a subtle issue here. Even though things like GPP and dark respiration are updated on the fast model time-step and are thus available for all cohorts during this call. We do need to generate diagnostics on things that contain growth respiration and carbon-excess respiration (which are only available after that first day!).

I see two paths here:

  1. just leave the isnew flag here and accept that our flux diagnostics do not include the newly recruited plants (which should be a small contribution unless the model is acting strange)
  2. assume that the growth respiration and excess-carbon respiration fluxes are zero for new recruits, and use actual values for all other cohorts.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    Status

    ❕Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions