NGEET / fates

repository for the Functionally Assembled Terrestrial Ecosystem Simulator (FATES)
Other
105 stars 92 forks source link

Implement grass allometric equations and update default allometric parameters for grass PFT #1206

Closed XiulinGao closed 3 months ago

XiulinGao commented 6 months ago

Description:

This pull request implements new leaf and AGB allometric equations using basal diameter (cm) and plant height (m) as predictors for grass PFT. In addiiton, a new sapwood option was added in which I set bsap = bagw + bbgw - bdead and bdead is always zero by setting agb_frac to 1. This change will skip the bsap_ltarg_slatop routine for sapwood biomass calculation for grass, and basically make bsap = bagw and there won't be any dead biomass produced for grasses if agb_frac is set to be 1. Lastly, all default allometric parameters, including reproduction allocation, are updated for all three grass PFTs, based on data from Gao et al., 2024. (https://esajournals.onlinelibrary.wiley.com/doi/pdfdirect/10.1002/eap.2976)

Collaborators:

I have talked with @ckoven, @glemieux , and @mpaiao about implementing this new grass allometry and had discussions with them.

Expectation of Answer Changes:

This change will result in different model results for grass PFTs in terms of carbon allocation and the resulting impacts on PFT competitions.

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:

rgknox commented 3 months ago

@XiulinGao : "addiiton, a new sapwood option was added in which I set bsap = bagw + bbgw - bdead and bdead is always zero by setting agb_frac to 1."

My understanding of the code is that bdead is set to zero because allom_smode = 2. Is that correct?

This is a fantastic addition to the code, thanks for submitting this work. Looking forward to getting this in. Originally, I had one request, that we add more description to these new allometry functions in the parameter file, and/or the module that reads in the parameters. However, we don't really have a precedent for that, so we will have to get back to this.

XiulinGao commented 3 months ago

@XiulinGao : "addiiton, a new sapwood option was added in which I set bsap = bagw + bbgw - bdead and bdead is always zero by setting agb_frac to 1."

My understanding of the code is that bdead is set to zero because allom_smode = 2. Is that correct?

This is a fantastic addition to the code, thanks for submitting this work. Looking forward to getting this in. Originally, I had one request, that we add more description to these new allometry functions in the parameter file, and/or the module that reads in the parameters. However, we don't really have a precedent for that, so we will have to get back to this.

Yes. The new sapwood function just calculate bsap as the sum of above- and belowground live woody biomass for grasses. But as we set agb_frac to 1, so bsap = agb. I get the logic backwards in documentation here... it's bdead that calculated as bagw + bbgw - bsap not the other way around.....

rgknox commented 3 months ago

ok, thanks for confirming my understanding @XiulinGao . There are some small tweaks I'll submit to your fork as a PR, but we should be able to integrate this PR fairly soon.