-
Notifications
You must be signed in to change notification settings - Fork 92
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow understory leaves to have a different turnover rate than canopy leaves #1136
Conversation
I tried this out with some pan-Amazon simulations with a single evergreen PFT, setting the understory leaf lifespan to 9 years in the test case and 3 years in the control case (canopy leaf lifespan = 3 years in both cases). The longer understory leaf lifespan increases understory LAI, understory and total biomass, and understory biomass residence time (slightly). Carbon starvation mortality decreases. Understory leaf turnover decreases, as we would expect. Changes to canopy LAI are negligible. GPP and respiration both increase, with respiration increasing more than GPP, resulting in decreased NPP and carbon use efficiency. So, this PR has the intended effects of increasing understory LAI, decreasing carbon starvation mortality, and increasing understory longevity. One thing that came up in conversation with @JessicaNeedham, @ckoven, and @mpaiao is if it would be useful to also have separate parameters for canopy and understory maximum mortality rate from carbon starvation (fates_mort_scalar_cstarvation). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@JessicaNeedham Thanks for submitting this pull request. I went through and it looks great, I just made a couple of very minor suggestions.
@@ -630,6 +630,9 @@ variables: | |||
double fates_turnover_leaf(fates_leafage_class, fates_pft) ; | |||
fates_turnover_leaf:units = "yr" ; | |||
fates_turnover_leaf:long_name = "Leaf longevity (ie turnover timescale). For drought-deciduous PFTs, this also indicates the maximum length of the growing (i.e., leaves on) season." ; | |||
double fates_turnover_leaf_ustory(fates_leafage_class, fates_pft) ; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this mean that the leaf longevity for understory must be always defined (as opposed to having them the same by default and only applying different longevities if the user wants it)? I'm fine either way, just curious about it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, there has to be a value in the parameter file. But it defaults to the same as canopy trees so it is only different if a user wants it to be.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These are now the same
parteh/PRTLossFluxesMod.F90
Outdated
if ( (prt_params%leaf_long(ipft,aclass_sen_id) > nearzero ) .and. & | ||
int(prt_params%evergreen(ipft))==itrue ) then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if ( (prt_params%leaf_long(ipft,aclass_sen_id) > nearzero ) .and. & | |
int(prt_params%evergreen(ipft))==itrue ) then | |
if ( (prt_params%leaf_long(ipft,aclass_sen_id) > nearzero ) .and. & | |
prt_params%evergreen(ipft) == itrue ) then |
We don't need the int()
anymore because we had switched the evergreen and deciduous flags to be all integers.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great @JessicaNeedham, and in the simulations I have run with this branch it seems to work as expected, i.e. understory biomass turnover time decreases with increased understory leaf lifespan
Tests with JessicaNeedham#5 are b4b with a special configuration. Note in that PR that update to the parameter file from the grass allometry and nutrient uptake PRs are combined. In this special configuration I only updated the parameter file to have the new understory turnover field, but kept all parameters as the previous default. /glade/derecho/scratch/rgknox/tests_0814-204825de Next step is to test with the parameter file changes defined in the pull request (ie the complete pull request). This will not be b4b. |
I wanted to keep a record of @XiulinGao 's changes to the parameter file, so that we could double check to see that they were included here: This diff (fates_params_default.cdl) should contain the changes: |
Regression testing against
Both are failing in on the same line:
Note that this is using parameter file |
Combining the updates from #1236 and rerunning the regression tests results in the same failure modes as seen above. Double checking the |
I've isolated the hydro failure mode here to having to do with the parameter file updates from #1206. I created a branch based off of @rgknox and @XiulinGao could you take a look at the failure mode noted above in #1136 (comment) when you have a moment? I'm also running a test back on the original tag for #1206. UPDATE: testing with the grass-only parameter file using |
Try switch the sapwood allometry model to the original model (which should be 1) and see if the failure still persist. My hypothesis is that the new grass sapwood model skipped calculating sapwood area, and theoretically sapwood area is related to plant hydro. |
@XiulinGao that worked, the hydro test passes now. I'll add some additional diagnostics to see if I can add more detail to confirm your hypothesis. |
@XiulinGao I can confirm that when it fails the |
@glemieux Thank you for confirming that! I'll have to take a look at the hydro module code to see what is exatcly required and then from there we can decide if we'll need to switch back to the old sapwood model or come up with a different way to do it for grasses. |
This is how I interpret the probable issue... The calculation of maximum hydraulic conductance through the stem is highly dependent on the cross sectional area of the organ. We ask for the cross sectional area with the call to bsap_allom: https://github.com/NGEET/fates/blob/main/biogeophys/FatesPlantHydraulicsMod.F90#L2953-L2954 But, as you point out, this is undefined. I checked through the new allometry code for allom_smode = 2, and as far as I can tell, we don't return that cross sectional area: https://github.com/NGEET/fates/blob/main/biogeochem/FatesAllometryMod.F90#L1048C2-L1061C14 @XiulinGao , can we calculate a cross sectional area for the plant with mode 2? |
@rgknox @glemieux Great! I have two proposals:
Let me know which one sounds more reasonable or neither makes sense! |
Thanks for the response @XiulinGao. Judging by your agruments, it sounds like its not a simple solution, so lets move this over to a new issue. For the time being, we will accept this PR as is, but we will modify our testing so that the FATES hydro tests use the sapwood allometry mode 1 exclusively. How does that sound @glemieux and @XiulinGao ? |
@rgknox @XiulinGao that sounds like a good plan to me. I'll fire up an issue. Update: see #1254 |
Note for posterity: ESCOMP/CTSM@f2f7535 addresses the temporary hydro test workaround. |
…e/api36.1.0_params_default.cdl
28b7615
to
3fcbd19
Compare
This is the result of following the workflow to combine patch file updates from NGEET#1136 and NGEET#1236
Thanks for implementing that work around @glemieux |
This is the result of following the workflow to combine patch file updates from NGEET#1136 and NGEET#1236
Updates the FATES default parameter file to include improvements to arctic shrub pft represetation per NGEET/fates#1236 conducting per the NGEE-Arctic project. The parameter file update also includes improvements in understory survival rates per NGEET/fates#1136. [non-BFB] for fates
Updates the FATES default parameter file to include improvements to arctic shrub pft represetation per NGEET/fates#1236 conducting per the NGEE-Arctic project. The parameter file update also includes improvements in understory survival rates per NGEET/fates#1136. [non-BFB] for fates
To try to increase understory survival and LAI, this PR allows cohorts in the understory to have leaf turnover rates that are different (longer) than leaf turnover rates in the canopy.
Collaborators:
@ckoven @jennykowalcz @mpaiao
Expectation of Answer Changes:
This will be answer changing. Understory cohorts will have reduced turnover of leaves, which should decrease carbon starvation mortality.
Checklist
If this is your first time contributing, please read the CONTRIBUTING document.
All checklist items must be checked to enable merging this pull request:
Contributor
Integrator
Documentation
Test Results:
CTSM (or) E3SM (specify which) test hash-tag:
CTSM (or) E3SM (specify which) baseline hash-tag:
FATES baseline hash-tag:
Test Output: