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

Update fragmentation_scaler calculation to use HLM moisture and temperature #705

Merged
merged 13 commits into from
Nov 2, 2020

Conversation

glemieux
Copy link
Contributor

@glemieux glemieux commented Oct 7, 2020

Description:

This PR addresses #699 by pulling in the host land model moisture and temperature scalar inputs as boundary conditions for the fragmentation_scalar calculation.

This PR is coordinated with CTSM PR #1180

Collaborators:

@ckoven @jkshuman

Expectation of Answer Changes:

Yes answers are expected to change as there is difference between the HLM and FATES natively calculated temperature and moisture scalars. This will change the result of ag_cwd_frag, bg_cwd_frag, leaf_fines_frag, and root_fines_frag directly.

Checklist:

  • My change requires a change to the documentation.
  • I have updated the in-code documentation .AND. (the technical note .OR. the wiki) accordingly.
  • I have read the CONTRIBUTING document.
  • FATES PASS/FAIL regression tests were run
  • If answers were expected to change, evaluation was performed and provided

Test Results:

CTSM (or) E3SM (specify which) test hash-tag:

CTSM (or) E3SM (specify which) baseline hash-tag:

FATES baseline hash-tag:

Test Output:
TBD

@glemieux glemieux added the PR status: Not Ready The author is signaling that this PR is a work in progress and not ready for integration. label Oct 7, 2020
@glemieux glemieux removed the PR status: Not Ready The author is signaling that this PR is a work in progress and not ready for integration. label Oct 13, 2020
@glemieux
Copy link
Contributor Author

@ckoven plot results of a quick 5-year f45 test compared using pyferret against the current fates baseline are found here: https://drive.google.com/drive/folders/1L88cfTQCj31VRnWyzxVekm4u-AB2qvxa?usp=sharing

@jkshuman
Copy link
Contributor

@glemieux list of params to investigate with this change:
direct impact of these changes on: FRAGMENTATION_SCALER, SUM_FUEL
with longterm carry over impacts on: FIRE_FUEL_MEF, FIRE_FUEL_BULKD, FIRE_FUEL_EFF_MOIST, FIRE_FUEL_SAV, FIRE_INTENSITY

We can get extra information with a regional test. The default param values for max_decomp that interact with the changes you made are set from tropical references, so will be interesting to see global application. @ckoven has values for California. Hopefully this change will make it easier to use globally.

@glemieux
Copy link
Contributor Author

glemieux commented Oct 15, 2020

@jkshuman @ckoven I've created a jupyter notebook to collect the output plots and just added the fire variable suggestions. The data include is based off of a 10 year long f45 gridded run: https://github.com/glemieux/fates-jupyter/blob/master/fragmentation/fragmentation_update-base_compare.ipynb

Please, let me know if there are particular plots that you want me to focus on for better viewing/detail.

biogeochem/EDPhysiologyMod.F90 Outdated Show resolved Hide resolved
biogeochem/EDPhysiologyMod.F90 Show resolved Hide resolved
biogeochem/EDPhysiologyMod.F90 Outdated Show resolved Hide resolved
main/EDTypesMod.F90 Outdated Show resolved Hide resolved
@glemieux
Copy link
Contributor Author

glemieux commented Oct 22, 2020

All expected tests passed b4b, with the exception of DIFFs on SUM_FUEL_BY_PATCH_AGE in the FatesAllVars and FatesPRT tests:

/glade/u/home/glemieux/scratch/clmed-tests/pr705.fates-sci.1.42.0_api.14.0.0-ctsm1.0.dev105-Cf6123355-F8dd2a2f3

Not sure why that variable isn't resulting in b4b yet...

@glemieux
Copy link
Contributor Author

glemieux commented Oct 22, 2020

All expected tests passed b4b, with the exception of DIFFs on SUM_FUEL_BY_PATCH_AGE in the FatesAllVars and FatesPRT tests:

/glade/u/home/glemieux/scratch/clmed-tests/pr705.fates-sci.1.42.0_api.14.0.0-ctsm1.0.dev105-Cf6123355-F8dd2a2f3

Not sure why that variable isn't resulting in b4b yet...

I see why now: looking at the output with pyferret I was seeing a clear order of magnitude difference between this and sci.1.42.4_api.14.0.0 baseline I compared against. I forgot that my branch was created off of tag sci.1.42.0_api.14.0.0 which didn't include the unit error fix to this variable from 5072fe7 in PR #694.

@glemieux
Copy link
Contributor Author

glemieux commented Oct 26, 2020

@ckoven @jkshuman 4x5 global run plots have been updated. This data should reflect the correct frag scalar calculation after Jackie found my typo: https://github.com/glemieux/fates-jupyter/blob/master/fragmentation/fragmentation_update-base_compare.ipynb

The data looks not a subtle as before, particularly in the above ground leaf fines. The increase seems pretty dramatic to me. The fuel moisture history variable change seems reasonable, yes? Particularly in the drop around the Sahara?

@rgknox
Copy link
Contributor

rgknox commented Oct 26, 2020

Does E3SM provide the temperature and water scalars needed here? If not, or if we can't create that feature easily, we will need code logic in place to swap algorithms dependent on the HLM used.

Here is an example of where we evaluate which HLM we are using inside FATES:

https://github.com/NGEET/fates/blob/master/main/FatesInterfaceMod.F90#L1424

@ckoven
Copy link
Contributor

ckoven commented Oct 26, 2020

@rgknox yes it does. We just need to make a modification analogous to the CTSM one but sending to FATES as input boundary conditions the t_scalar and w_scalars that are in this data type: https://github.com/E3SM-Project/E3SM/blob/master/components/elm/src/data_types/ColumnDataType.F90#L513-L514

@jkshuman
Copy link
Contributor

@glemieux thank you for putting together the jupyter notebook with output. Things are very much related and connected throughout the fire routine, but the changes are in line with how they should respond. With the inclusion of the w_scaler we do get larger increases in overall fuels in places with more moisture, and that makes sense.

biogeochem/EDPhysiologyMod.F90 Outdated Show resolved Hide resolved
biogeochem/EDPhysiologyMod.F90 Show resolved Hide resolved
biogeochem/EDPhysiologyMod.F90 Outdated Show resolved Hide resolved
@jkshuman
Copy link
Contributor

@glemieux was thinking about this last night, and added a few suggestions to hopefully anticipate user changes.

Copy link
Contributor

@rgknox rgknox left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good

glemieux and others added 4 commits October 28, 2020 15:23
Adding variable for setting the index of the above ground litter

Co-authored-by: jkshuman <jkshuman@ucar.edu>
Adding variable for setting the index of the above ground litter

Co-authored-by: jkshuman <jkshuman@ucar.edu>
Update comment to reflect addition of indexing variarble

Co-authored-by: jkshuman <jkshuman@ucar.edu>
@glemieux glemieux removed the request for review from ckoven October 29, 2020 17:22
@glemieux
Copy link
Contributor Author

glemieux commented Nov 2, 2020

After a chat with @rgknox, I decided to run the fates test suite with use_hlm_soil_scalar = .true. to make sure the code didn't break the different test variations. DIFFs appears to be as expected:

/glade/u/home/glemieux/scratch/clmed-tests/basegen.fates-sci.1.43.0_api.14.1.0-ctsm1.0.dev105-Cf6123355-F19702e37

@rgknox rgknox merged commit 891b350 into NGEET:master Nov 2, 2020
@glemieux glemieux deleted the frag-scalar-update branch March 21, 2022 23:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Use HLM's temperature and moisture scalars for litter fragmentation instead of FATES functions
4 participants