CTSM icon indicating copy to clipboard operation
CTSM copied to clipboard

Merging soil NO into the new vertical movement scheme for soil nitrate

Open mvalmartin opened this issue 5 months ago • 10 comments

Description of changes

This PR merges the soil NO from https://github.com/ESCOMP/CTSM/pull/2290 into the NO3 vertical movement scheme in https://github.com/ESCOMP/CTSM/pull/2992.

The soil NO scheme is based on Parton et al (2001), and includes canopy reduction (Yan et al, 2005) and rain pulses (Yan et al 2005; Hudman et al 2012).

The scheme uses a fixed soil pH value of 6.5, as defined in SoilBiogeochemCompetitionMod.F90

In addition, the scheme does not includes the dependency of the N mineralization-based term on potential nitrification rates proposed in Parton et al. (2001), which is missing in CLM5 as pointed out by Nevison et al., (2022). Although that was implemented in https://github.com/ESCOMP/CTSM/pull/2290, it is now removed because it substantially affected N plant uptake and the broader carbon cycle.

A more complex version of this scheme, which includes spatially distributed soil pH, weathering effects on denitrification and soil NH3 volatilization, is described and validated in Val Martin et al (2023).

References

Hudman, R. C., Moore, N. E., Mebust, A. K., Martin, R. V., Russell, A. R., Valin, L. C., and Cohen, R. C.: Steps towards a mechanistic model of global soil nitric oxide emissions: implementation and space based-constraints, Atmos. Chem. Phys., 12, 7779–7795, https://doi.org/10.5194/acp-12-7779-2012, 2012.

Nevison, C., Goodale, C., Hess, P., Wieder, W. R., Vira, J., and Groffman, P. M.: Nitrification and Denitrification in the Community Land Model Compared with Observations at Hubbard Brook Forest, Ecol. Appl., 32, e2530, https://doi.org/10.1002/eap.2530, 2022

Parton, W. J., Holland, E. A., Del Grosso, S. J., Hartman, M. D., Martin, R. E., Mosier, A. R., Ojima, D. S., and Schimel, D. S.: Generalized model for NOx and N2O emissions from soils, J. Geophys. Res.-Atmos., 106, 17403–17419, https://doi.org/10.1029/2001JD900101, 2001.

Val Martin, M., Blanc-Betes, E., Fung, K. M., Kantzas, E. P., Kantola, I. B., Chiaravalloti, I., Taylor, L. L., Emmons, L. K., Wieder, W. R., Planavsky, N. J., Masters, M. D., DeLucia, E. H., Tai, A. P. K., and Beerling, D. J.: Improving nitrogen cycling in a land surface model (CLM5) to quantify soil N2O, NO, and NH3 emissions from enhanced rock weathering with croplands, Geosci. Model Dev., 16, 5783–5801, https://doi.org/10.5194/gmd-16-5783-2023, 2023.

Yan, X., Ohara, T., and Akimoto, H.: Statistical modelling of global soil NOx emissions, Global Biogeochem. Cy., 19, GB3019, https://doi.org/10.1029/2004GB002276, 2005.

Specific notes

Contributors other than yourself, if any: @lkemmons, @slevis-lmwg & @wwieder

CTSM Issues Fixed (include github issue #): Unknown

Are answers expected to change (and if so in what way)? I don't think so

Any User Interface Changes (namelist or namelist defaults changes)? The soil NO scheme can be turned on and off within the user_nl_clm as use_soil_nox=.true. or .false. As indicated by Jinmu Luo, the soil NO3 vertical movement scheme can also be turned on and off, but the switch is hardwire within SoilNitrogenMovementMod.F90

Does this create a need to change or add documentation? Did you do so? To be determined

Testing performed, if any: We performed 15-year runs using the new configuration, with the first 5 year treated as a pseudo-spin up, using the compset 2000_DATM%GSWP3v1_CLM50%BGC-CROP_SICE_SOCN_MOSART_CISM2%NOEVOLVE_SWAV

For evaluation we analyzed global annual timeseries and spatial distributions including changes between runs. Simulations were:

  1. Control (no NO3 vertical movement and no soil NOx)
  2. NO3VertMov (only soil NO3 vertical movement activated)
  3. NO3VertMov+SoilNOx (both soil NO3 vertical movemennt and soil NOx activated).

The main changes in the N cycle (eg soil NO2, denitrification and nitrfication) are driven by the NO3 vertical movement implementation. No significant changes are noticed in the carbon cycle (eg NPP, TOTECOSYSC).

plot_no3vertmov_soilnox_mvalmartin.pdf

mvalmartin avatar Jul 16 '25 23:07 mvalmartin

This is based off of: ctsm5.3.040

There is new work to update this to a newer version of CTSM.

ekluzek avatar Jul 22 '25 21:07 ekluzek

This is based off of: ctsm5.3.040

There is new work to update this to a newer version of CTSM.

True and, more precisely, Maria's branch starts from @jinmuluo's branch #2992 that is based off of ctsm5.3.040.

slevis-lmwg avatar Jul 22 '25 21:07 slevis-lmwg

Adding next to make sure we know what is happening with all this work.

ekluzek avatar Jul 24 '25 15:07 ekluzek

@wwieder and @slevis-lmwg will review. @slevis-lmwg meets with the group Monday, and will get more information then.

ekluzek avatar Jul 24 '25 16:07 ekluzek

@wwieder (in case you want to look) I made a diff file that compares this PR to #2992, because that's where Maria started from. The diff file is: /glade/work/slevis/git_people/mvalmartin/ctsm_soilno/dif_from_jinmu

slevis-lmwg avatar Jul 24 '25 21:07 slevis-lmwg

@mvalmartin I will need "collaborator access" to your branch for when I end up working on it. This is how you give me access:

  • At the top of your PR, click on your branch: mvalmartin:ctsm_soilno
  • Now at the top-middle click Settings and then Collaborators and follow the prompts to add me (@slevis-lmwg) as a collaborator

slevis-lmwg avatar Aug 04 '25 19:08 slevis-lmwg

@slevis-lmwg, I added you as collaborator in the PR, you should have received an invitation. Please let me know if you can't still access it. Thanks!

mvalmartin avatar Aug 05 '25 14:08 mvalmartin

@mvalmartin thank you. I confirmed my access by merging the latest updates from @jinmuluo's branch to your branch here. A few points:

  • I will make such merges a few more times occasionally, including after merging @jinmuluo's branch to master eventually.
  • Do "git pull" in your local copy of ctsm_soilno to have the latest code from here.
  • Then modify ctsm_soilno as necessary (e.g. revisions in response to the code reviews above) and git push back to here, so that I can in turn git pull to my local copy of ctsm_soilno and that way stay up-to-date.

slevis-lmwg avatar Aug 05 '25 18:08 slevis-lmwg

Updated to ctsm5.3.073 and started ./run_sys_tests -s aux_clm -c ctsm5.3.073 --skip-generate So far I see many RUN failures in the following tests, so debugging likely comes next...

  • [ ] izumi
  • [ ] derecho, still NLCOMP diffs? Troubleshooting with SMS.f10_f10_mg37.I2000Clm50BgcCrop.derecho_intel.clm-crop (see latest submit 2025/12/5)

slevis-lmwg avatar Aug 26 '25 22:08 slevis-lmwg

@mvalmartin other activities have lowered this PR's priority for me right now. If you could investigate why tests like SMS.f10_f10_mg37.I2000Clm50BgcCrop.derecho_intel.clm-crop fail, that would help move this work forward. To run this test, go to the /cime/scripts directory and run create_test SMS.f10_f10_mg37.I2000Clm50BgcCrop.derecho_intel.clm-crop The failure has been in the RUN phase.

UPDATE 2025/12/5 I started the failing test with some write statements included: FAIL SMS.f10_f10_mg37.I2000Clm50BgcCrop.derecho_intel.clm-crop.20251205_155955_dcs1wl UPDATE 2025/12/9 I rebuilt + resubmitted with a new initialization but may need to move the latter even further out of if-blocks because the test still failed.

slevis-lmwg avatar Sep 16 '25 20:09 slevis-lmwg