Skip to content
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

Hydro failing when using grass pft sapwood allometry function (allom_smode = 2) #1254

Closed
glemieux opened this issue Oct 1, 2024 · 3 comments · Fixed by #1268
Closed

Hydro failing when using grass pft sapwood allometry function (allom_smode = 2) #1254

glemieux opened this issue Oct 1, 2024 · 3 comments · Fixed by #1268

Comments

@glemieux
Copy link
Contributor

glemieux commented Oct 1, 2024

This was discovered during testing for #1136:

Regression testing against fates-sci.1.78.2_api.36.0.0-ctsm5.2.029 after merging up ESCOMP/CTSM#2700 to the latest tag is returning two unexpected RUN fails in hydro. The last regression tests were run against ctsm5.2.021 for reference:

FAIL ERS_D_Ld5.1x1_brazil.I2000Clm50FatesCruRsGs.derecho_intel.clm-FatesColdHydro RUN time=130
FAIL SMS_Lm3_D_Mmpi-serial.1x1_brazil.I2000Clm50FatesCruRsGs.derecho_intel.clm-FatesColdHydro RUN time=73

Both are failing in on the same line:

 18 forrtl: error (73): floating divide by zero
 19 Image              PC                Routine            Line        Source
 20 libpthread-2.31.s  00001470B4ECA8C0  Unknown               Unknown  Unknown
 21 cesm.exe           00000000022A4BB7  fatesplanthydraul        3008  FatesPlantHydraulicsMod.F90
 22 cesm.exe           0000000001B75BC4  edcohortdynamicsm         260  EDCohortDynamicsMod.F90
 23 cesm.exe           0000000001BD8581  edinitmod_mp_init        1308  EDInitMod.F90
 24 cesm.exe           0000000001BCC2D7  edinitmod_mp_init         884  EDInitMod.F90
 25 cesm.exe           0000000000B9175D  clmfatesinterface        2179  clmfates_interfaceMod.F90
 26 cesm.exe           0000000000AACED6  clm_initializemod         757  clm_initializeMod.F90
 27 cesm.exe           00000000009AEB44  lnd_comp_nuopc_mp         659  lnd_comp_nuopc.F90

Note that this is using parameter file lnd/clm2/paramdata/fates_params_api.36.1.0_12pft_c240814.nc which does not include the parameter file changes from #1236 yet. I'm going to attempt to rerun these tests specifically with the arctic shrub parameter file update next.

Originally posted by @glemieux in #1136 (comment)

@glemieux
Copy link
Contributor Author

glemieux commented Oct 1, 2024

@XiulinGao has proposed some solutions via #1136 (comment):

  1. since all stem biomass of grasses are considered as sapwood, knowing basal diameter (d) of a greass and by assuming the architecture of a grass is a cylinder we can calculate the cross sectional area for grass stems as a whole as pi * (d/2)^2. This, however, might not be realistic as I think the basic water transporting unit is grass tiller, which has a much smaller cross sectional area compared to all the tillers as a whole trunk.

  2. We can add a user-defined tiller number (n) for grass PFT, and calculate cross sectional area for each tiller roughtly as pi * (d/2)^2/n. But I'm not sure how this will influence the fate of a grass PFT under dry condition. Does mortality apply to the entire plant when one tiller failed (as they all have the same cross sectional area?) or there is a threshold percent of tiller hydo failure (e.g. 50% failure) and once passed we say the plant died (seems impossible as again they have exact same cross sectional area)?

Let me know which one sounds more reasonable or neither makes sense!

glemieux added a commit to rgknox/ctsm that referenced this issue Oct 1, 2024
This is a temporary update to avoid NGEET/fates#1254 and should be
removed once a fix comes in on the fates-side.
@glemieux
Copy link
Contributor Author

glemieux commented Oct 7, 2024

@rgknox suggested during the software meeting today that we could add a gracefully failure to the model for note this for the time being as well.

@XiulinGao
Copy link
Contributor

I am leaning towards option 1 after some thinking. We can think the max. conductance calculated using option one is a collective behavior of all grass tillers, which make it easier to think of hydro failure at the entire plant level. It's similar to the sapwood of woody plants. Think of grass tiller as xylem (basic water transporting unit) and the whole trunk as sapwood. I can implement the calculation for sapwood area quick for smode 2 if we go with option 1.

glemieux added a commit to glemieux/E3SM that referenced this issue Oct 7, 2024
This update calls the fates parameter modification tooling to set the
grass allometry smode to 1, which is the default for all other fates
PFTs.  This is a temporary workaround for NGEET/fates#1254.
@glemieux glemieux linked a pull request Oct 28, 2024 that will close this issue
4 tasks
@github-project-automation github-project-automation bot moved this from ❕Todo to ✔ Done in FATES issue board Nov 18, 2024
glemieux added a commit to glemieux/ctsm that referenced this issue Nov 18, 2024
This tag includes the fix to NGEET/fates#1254 and will allow the current
default fates parameter file to be used in fates hydro tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: ✔ Done
Development

Successfully merging a pull request may close this issue.

2 participants