This repository contains a Fortran-based implementation of the Noah-MP Land Surface Model (LSM) used in the following studies:
- ESS Open Archive Preprint: https://essopenarchive.org/doi/full/10.22541/essoar.172286649.90332939/v1
- Hydrology and Earth System Sciences (HESS, 2025): https://hess.copernicus.org/articles/29/547/2025/
This version represents a research-oriented modification of Noah-MP, developed to improve the representation of key hydrological processes, particularly in soil moisture dynamics, runoff generation, and subsurface flow.
Compared to the standard Noah-MP implementation (e.g., NCAR version), this repository includes several important enhancements:
- Implements a mixed-form solution of Richards equation for soil moisture dynamics
- Improves numerical stability and physical consistency
- Enhances representation of unsaturated flow and soil moisture redistribution
- Uses Van Genuchten soil hydraulic functions for:
- Soil water retention
- Hydraulic conductivity
- Provides a more physically realistic description of soil hydraulic processes
- Note: availability of VG parameterization may differ across Noah-MP versions; this implementation ensures consistent use within the solver framework.
- Introduces explicit surface ponding storage
- Allows accumulation of water when infiltration capacity is exceeded
- Improves simulation of:
- Saturation-excess runoff
- Surface water dynamics
- Includes representation of macropore flow pathways
- Enables rapid vertical transport beyond matrix flow assumptions
- Improves representation of:
- Infiltration-excess runoff
- Deep percolation and groundwater recharge
| Feature | NCAR Noah-MP (typical) | This Version |
|---|---|---|
| Richards Solver | Pressure-head / simplified | Mixed-form solver |
| Soil Hydraulics | Lookup / simplified | Van Genuchten formulation |
| Ponding | Limited / implicit | Explicit ponding storage |
| Preferential Flow | Not explicitly represented | Macropore flow included |
| Hydrologic Focus | General LSM | Enhanced process-based hydrology |
Core Noah LSM source code:
module_Noahlsm.Fmodule_Noahlsm_param_init.Fmodule_date_utilities.Fmodule_Noahlsm_utility.F
Input/output handling modules:
module_Noah_NC_output.Fmodule_Noahlsm_gridded_input.FNoahlsm_driver.F– main model driver
Execution configuration:
Noah_offline.namelist– model configuration file- Compiled executable (
./Noah) is generated here
- Forcing data reprocessed from GLDAS (NetCDF format)
Simulation outputs:
exp1/hrly/– hourly outputs (e.g., runoff)exp1/hist/– monthly mean outputsexp1/ini/– end-of-year states
Static input datasets (1° resolution):
gvf.nc– vegetation fractionlandmask.nc– land-sea maskplotmask.nc– grid mappingtbot.nc– deep soil temperature (~8 m)lon_lat.nc– grid coordinatessoilcolor.nc– soil color index (1–8)veg_soil.nc– vegetation type & soil texture indexrawdata/– higher/lower resolution source datasets
makeIf compilation fails:
-
Modify the
Makefilefor your system -
Ensure required compilers and libraries are available
Edit the namelist file:
Run/Noah_offline.namelist
Update settings such as:
-
Simulation period
-
Input/output paths
-
Physics options
-
Experiment configuration
From the Run/ directory:
./Noah
Simulation results will be written to:
`Noah_data/results/`
This model is intended for use in a Unix/Linux environment and typically requires:
-
A Fortran compiler (e.g.,
gfortranorifort) -
Standard build tools such as
make -
NetCDF libraries (if enabled in the build and I/O configuration)
-
This repository is a research archive and may differ from official Noah-MP releases, including the NCAR version.
-
The modifications in this repository were developed for process-based hydrological investigations and scientific analysis, rather than operational forecasting.
-
Users should carefully review the model structure, assumptions, and configuration before applying it to other studies.
We acknowledge all contributors involved in the development of this code.
Our thoughts and prayers are with Jetal Agnihotri, who was also involved in the development of this code.