Skip to content

Nbp nobalancecheck#140

Closed
rosiealice wants to merge 27 commits intoNorESMhub:noresmfrom
rosiealice:nbp_nobalancecheck
Closed

Nbp nobalancecheck#140
rosiealice wants to merge 27 commits intoNorESMhub:noresmfrom
rosiealice:nbp_nobalancecheck

Conversation

@rosiealice
Copy link
Collaborator

@rosiealice rosiealice commented May 29, 2025

NOT READY

Description of changes

These changes introduce the capability for FATES to write NBP (net biome productivity) fluxes to the atmosphere, inclusive of fire, harvest, grazing and product pool decay carbon flux.

This PR is linked to the FATES-side PR xxx

Noting that this code neither creates nor passes the gridcell level balance check on account of timestepping complexities that need to be resolved in a later PR., likely #137

To recall:
NBP =.NEP - C_fire - C_grazing - C_productdecay

where fire and grazing fluxes are now output from FATES, and product decay (a gridcell property) is calculated in CTSM.

NEP is the Net Ecosystem Productivity, defined as
NEP = GPP - Reco

where GPP is the gross photosynthetic productivity and Reco is total ecosystem respiration inclusive of plant (Rauto) and soil (Rh)

This code adds

A new wrap function (wrap_atmosphericfluxes) in clmfates_interfacemod.
A set of 'composite' fluxes defined in soilbiogeochemistrycarbonfluxesmod, to be used when FATES is active. These are in addition to those that are defined in cnvegcarbonfluxmod, but those are complicated to use when FATES is on as their history is not defined and they are not accessiable upstream of CNvegetationfacade (or, at least, I couldn't figure this out, yet. I might still try to move them).

Specific notes

Contributors other than yourself, if any:
@ckoven
@maritsandstad
@mvdebolskiy
@rgknox

CTSM Issues Fixed (include github issue #):
NGEET/fates#163

Are answers expected to change (and if so in what way)?
This should not chance answers EXCEPT for the addition of the new NBP output variable, and the FCO2 flux variable which was peviously zero.

Any User Interface Changes (namelist or namelist defaults changes)?
no

Does this create a need to change or add documentation? Did you do so?
Maybe?

Testing performed, if any:
(List what testing you did to show your changes worked as expected)
(This can be manual testing or running of the different test suites)
(Documentation on system testing is here: https://github.com/ESCOMP/ctsm/wiki/System-Testing-Guide)
(aux_clm on derecho for intel/gnu and izumi for intel/gnu/nag/nvhpc is the standard for tags on master)

NOTE: Be sure to check your coding style against the standard
(https://github.com/ESCOMP/ctsm/wiki/CTSM-coding-guidelines) and review
the list of common problems to watch out for
(https://github.com/ESCOMP/CTSM/wiki/List-of-common-problems).

@rosiealice rosiealice added enhancement New feature or request not ready labels May 29, 2025
@rosiealice rosiealice mentioned this pull request May 29, 2025
5 tasks
@rosiealice
Copy link
Collaborator Author

HI @mvdebolskiy.

I am working on this and it passes this test:
ERP_D.f45_f45_mg37.I2000Clm60Fates

I chose a little arbitrarily, but which other tests/sets of tests should I try to run it through?

@mvdebolskiy
Copy link
Collaborator

@rosiealice You should try ERI test, also with ne30pg3_ne30pg3_mtn14 grid, I1850FatesNoComp compset. Also, if you test with f45 grid, make the test longer f.e. Ly11. I will run the test-suites tomorrow. And check the code.

@mvdebolskiy mvdebolskiy mentioned this pull request Apr 9, 2025
16 tasks
@rosiealice
Copy link
Collaborator Author

OK so this code is passing the following tests:

ERI_D_Ld20.ne16pg3_ne16pg3_mtn14.I2000Clm60FatesRs.betzy_gnu.clm-FatesColdNormanNoCompFixedBioGeo
ERP_D.f45_f45_mg37.I2000Clm60Fates.betzy_intel.clm-FatesCold
ERS_D_Ld5.f45_f45_mg37.I2000Clm60Fates.betzy_intel.clm-FatesColdMeganNoComp

But looking at these tests, they all have included varaible fields, e.g:
hist_fields_list_file = .false.
hist_fincl1 = '....'

and so I don't think that they are actually testing whether the new FATES_NBP variable is restarted correctly. I just manually changed the f_incl variables in the user_nl_clm of the ERI test, and resubmitted it, to try and force this to happen. Is there a better strategy?

@rosiealice
Copy link
Collaborator Author

Also I have just realized that I need to add the product flux pool so maybe hold off on the test suite @mvdebolskiy

@mvdebolskiy
Copy link
Collaborator

@rosiealice hist_fields_list_file = .false. is fine, it just prints out a file with master list of all history fields.
It's better to set force_send_to_atm=.true. so, that fco2 is actually is on the cpl.hi. files.

@rosiealice
Copy link
Collaborator Author

OK I added the prduct pools now. I will set off the ERI test again with thhose flags @mvdebolskiy

@rosiealice
Copy link
Collaborator Author

OK I tried that, (and turned off the empty history tapes argument). The ERS test passed, but something I can't decipher happened with the ERI test (the test rporter says it didn't run but it does appear to have run). Maybe a good idea to run the test suite at this point? To flag if anything funky happens with other configurations.

@mvdebolskiy
Copy link
Collaborator

@rosiealice test reporter? you mean ./cs.status.XXXX? You can look in the TestStatus in the case directory to see if it passed. ERI test creates 3 case folders normal one and two *.ref1 and *.ref2 the overall test results are in the normal one, however, all of these folders have run directories.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request not ready

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants