Added flexibility on soil layer definitions in MPAS - #33
Draft
mpaiao wants to merge 59 commits into
Draft
Conversation
This is the first commit to implement geographically variable soil colour initialisation in MONAN. First, the original Noah-MP table of albedo thresholds was replaced by the CLM-5, and the code was edited so the soil colour class is no longer hardcoded.
…and replaces the original classes in NoahMP (8 classes) with those defined in CLM-5 (20 classes). This has not been tested yet, so it is likely the first of a few commits until the new capability is fully functional.
…o run with more than four soil layers. The logic in mpas_atmphys_driver_lsm_noahmp.F can be simplified to a single loop that will always work. Likewise, Registry_noahmp.xml does not need to have the combined number of soil plus snow levels (nzSoilLevels) hardcoded, it can be written as the sum of the levels so it always works.
Feature/monan 2.0.0
-fopenmp \ -march \ -fno-fast-math \ -ffp-contract=off (for optimization) -finit-real=nan -finit-integer=-999 (for debug) (cherry picked from commit 64727c0)
(cherry picked from commit 4e2fef2)
…o finish reverting it.
…ants the default settings and has not updated NoahmpTable.TBL
…ensure successful compilation of the MONAN model with NVIDIA NVHPC (25.11) and Cray NVHPC (PrgEnv-nvidia/8.6.0).
… colour directory is not found. This __should__ allow for the code to proceed without failing.
…outine. It seems the code is overwriting the default value.
…nvhpc in Develop NVHPC compilation support
Add spatially heterogeneous soil colour maps for NoahMP (based on feature/monan-757-NF) - Tested and approved on Develop
…its setting noahmp e ugwp_gwdo default parameters
Removed deprecated gwdo and lsm scheme checks for suite configuration.
…-ugwp Update default physics options for mesoscale_reference_monan and convection_permitting_monan with noahmp and ugwp parameters
…n compiled or tested, so this will likely need follow-up commits to fix it.
… surface fluxes too.
Soil layer bug Testes ok Testes with debug on ok Testes 72 fct ok
…-table-shape fix noahmp: match radiative table assignment to NSC
…-rewind fix(noahmp): rewind table after missing radiation categories
…ween my original commit and the current develop.
Implement cumulative variables for common surface fluxes -- OK
removing mtune and mmarch
…lt uses the default soil layers.
mpaiao
force-pushed
the
mpaiao-pr-flex-nsoil
branch
from
August 22, 2026 22:01
739d29d to
9af011f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request Description
The original MPAS and MONAN codes impose soils to have 2-m depth and 4 layers (10, 30, 60 and 100 cm). These are rather shallow soils for many of the tropical forest biomes, where trees are known to have rooting depths of 10 m or more.
This code defines a new namelist block (soil_grid) for soil initialisation in
namelist.init_atmosphere, and two variables that control how the thickness of each soil layer varies with depth.config_dzstop. The thickness of the top most soil layer (ΔzTop)config_kzs. An exponential factor that makes deeper soil layers thicker in a monotonic and predictable way (κ).The soil thickness of layer n (Δzn) is defined as:
Δzn = ΔzTop exp[ κ ( n - 1 ) ]
With these changes, the total number of soil layers (
config_nsoillevels) no longer needs to be 4. One potential downside of this pull request is that the default soil layers will be slightly different from the default. If this turns out to be a problem, I can make some special case (e.g.,kzs=0.) to create the previous layers.This pull request needs tests, so I am leaving it as a draft for the time being. I will update it to ready for review once this is more extensively tested.
Type of Change
Testing and Quality
Scientific Impact
Soils in many regions (notably across tropical moist forests) can be markedly deeper than the default of 2.0 m. By allowing roots to reach deeper soils (e.g., in the Amazon rooting depth often can be as deep as 10 metres), this change may allow better representation of seasonal cycles of sensible heat flux and evapotranspiration.