Skip to content

NoahMP ten-layer configuration changes#232

Open
clark-evans wants to merge 3 commits intoufs-community:gsl/developfrom
clark-evans:noahmp-tenlayer
Open

NoahMP ten-layer configuration changes#232
clark-evans wants to merge 3 commits intoufs-community:gsl/developfrom
clark-evans:noahmp-tenlayer

Conversation

@clark-evans
Copy link
Collaborator

@clark-evans clark-evans commented Mar 18, 2026

These changes are based on guidance from Cenlin He and the NoahMP team at NSF NCAR-RAL to implement a ten-layer, 5-m--deep NoahMP LSM configuration in MPAS. Summarizing the changes:

  • The hard-coded four- and nine-layer abort checks for Noah and RUC LSM, respectively, were already commented out. I added a hard-coded ten-layer abort check for NoahMP LSM, but commented it out for consistency with the others and with the guidance from RAL.
  • A new block of soil-layer thicknesses for a ten-layer soil configuration to five-meter depth is added. It is wrapped around a case (10) block to match how the existing case(4) and case(9) blocks are handled. (The numbers here represent different values for the namelist.init_atmosphere nSoilLevels parameter).
  • The init_soil_properties_noah subroutine in src/core_atmosphere/physics/mpas_atmphys_initialize_real.F is modified to extend the deep-soil interpolation boundary from 3 m (for a 2-m Noah or NoahMP LSM depth) to 6 m (for a 5-m NoahMP LSM depth). (Note that this subroutine was added when RUC LSM was added and thus is different from the MPAS-Dev implementation.)
  • Safety checks were added in the nfgSoilLevels --> nSoilLevels interpolation to prevent negative soil moisture and negative soil temperature after interpolating from a different LSM input dataset.
  • NROOT in the NoahMP parameter table has been doubled for all soil types to reflect the extension from a 2-m to a 5-m depth.

Mandatory Questions

  • Does this PR include any additions or changes to external inputs (e.g., microphysics lookup tables, static data for gravity-wave drag -- things like that)?
    • no
  • Does this PR require updating one or more baselines for the CI tests? If so, what?
    • yes, new init files for the noahmp tests will need to be generated (the current mpas.init.nc files in the mpasdev tests are based on a four-layer soil configuration)

Note: the changes to the NoahMP parameter table cause the NoahMP baselines to fail. (The changes to mpas_atmphys_initialize_real.F are based on config_nSoilLevels rather than the chosen LSM, so a four-layer NoahMP configuration to a 2-m depth would still work in the context of that file.) Because we do not run init_atmosphere as part of the CI tests, new mpas.init.nc files would be needed.

Priority Reviewers

  • Please list the developers/collaborators you'd like to prioritize for review
  • Example:

Based on guidance from Cenlin He and the NoahMP team at NSF NCAR-RAL
@clark-evans
Copy link
Collaborator Author

@guoqing-noaa do you think #228 could also be why the Cmake build in the CI tests is failing here? It's failing with a different file than yours, module_bl_gwdo.F, but that file is also connected to the physics_mmm package (NCAR/MMM-physics repo), and the parent file in the upstream was last updated five days ago.

@dustinswales
Copy link
Collaborator

@clark-evans If we update the IC files, the noahmp tests will run, but the comparison will fail. Correct?
If so, we can create a pre-release with the updated data, and update get_data.sh. Then re-run.

@guoqing-noaa
Copy link
Collaborator

@guoqing-noaa do you think #228 could also be why the Cmake build in the CI tests is failing here? It's failing with a different file than yours, module_bl_gwdo.F, but that file is also connected to the physics_mmm package (NCAR/MMM-physics repo), and the parent file in the upstream was last updated five days ago.

@clark-evans Yes, that's the same failure. I only pasted half of the error message. I just added the error message on the module_bl_gwdo.F part.

In fact, all CMake build will fail at this moment and will need the hotfix at PR #231

@clark-evans
Copy link
Collaborator Author

Thanks @dustinswales and @guoqing-noaa. Dustin and I talked in the hallway; we'll discuss strategy for this PR at the code discussion later today.

@clark-evans
Copy link
Collaborator Author

FWIW the noahmp CI tests pass when I revert the NoahMP lookup table to the old version. I'll add the change back, which will break the noahmp CI tests again until or unless we update the init file used in those tests.

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.

3 participants