Soil Hydraulic Parameters#
This section describes setting Soil Hydraulic Parameters from the surface file.
The implementation was first introduced by Fernand Eloundou and adapted by Yorck Ewerdwalbesloh.
Soil Parameter Perturbation (SoilStateInitTimeConstMod.F90)#
Allows reading perturbed hydraulic parameters from input files instead of computing them via pedotransfer functions.
Parameters:
THETAS- saturated water contentSHAPE_PARAM- Brooks-Corey shape parameter (bsw)PSIS_SAT- saturated matric potential (sucsat)KSAT- saturated hydraulic conductivity (xksat)
Implementation:
Hydraulic parameters read from surface file
Reads EITHER original parameters (for
nlevsoifl=10soil layers) and applies organic matter mixing OR: Reads adjusted parameters with_adjsuffix (for allnlevgrndlayers) and overwrites parameters from organic matter mixing.Falls back to pedotransfer functions if parameters aren’t in the file
Modifies organic matter mixing to preserve perturbed parameter values
Surface File#
Soil hydraulic parameters are read from the surface dataset file,
which is specified in the lnd_in namelist file under key fsurdat.
Sufrace File: Parameter Structure and Dimensions#
All soil hydraulic parameters are stored as three-dimensional arrays with the structure:
(nlevgrnd, lsmlat, lsmlon)
Where:
nlevgrnd: Number of soil layers (vertical dimension, typically 25 layers in eCLM simulations, see namelist file keysoil_layerstruct)lsmlat: Number of latitude grid pointslsmlon: Number of longitude grid points
This 3D structure enables depth-varying, spatially-distributed soil properties across the model domain.
Surface File: Input Parameter Format#
Two options
parameters that undergo organic mixing
adjusted parameters that are used by input values
Parameters before organic mixing#
The surface file must contain the following baseline parameters:
THETAS(nlevgrnd, lsmlat, lsmlon)
long_name: "Porosity"
units: "vol/vol"
SHAPE_PARAM(nlevgrnd, lsmlat, lsmlon)
long_name: "Shape (b) parameter"
units: "unitless"
PSIS_SAT(nlevgrnd, lsmlat, lsmlon)
long_name: "Saturated soil matric potential"
units: "mmH2O"
KSAT(nlevgrnd, lsmlat, lsmlon)
long_name: "Saturated hydraulic conductivity"
units: "mm/s"
These parameters apply to the first 10 soil layers (nlevsoifl=10) and
undergo organic matter mixing.
Adjusted Parameters after organic mixing#
For using adjusted soil parameters from file that represent the whole
soil including organic matter, the surface file should contain
adjusted parameters with the _adj suffix:
THETAS_adj(nlevgrnd, lsmlat, lsmlon)
long_name: "Porosity"
units: "vol/vol"
_FillValue: 1.e+30
SHAPE_PARAM_adj(nlevgrnd, lsmlat, lsmlon)
long_name: "Shape (b) parameter"
units: "unitless"
_FillValue: 1.e+30
PSIS_SAT_adj(nlevgrnd, lsmlat, lsmlon)
long_name: "Saturated soil matric potential"
units: "mmH2O"
_FillValue: 1000.0
KSAT_adj(nlevgrnd, lsmlat, lsmlon)
long_name: "Saturated hydraulic conductivity"
units: "mm/s"
_FillValue: 1.e+30
Important Notes:
Adjusted parameters apply to all
nlevgrndlayersWhen present, adjusted parameters overwrite the results of organic matter mixing
PSIS_SAT_adjuses a different fill value (1000.0) compared to other parameters (1.e+30), reflecting special handling for undefined matric potential valuesIf adjusted parameters are not present in the surface file, eCLM falls back to the original parameters or pedotransfer functions
Namelist Configuration#
The soil hydraulic parameter reading behavior is controlled by two
namelist settings in the clm_soilstate_inparm section of the lnd_in
namelist file:
soil_hyd_inparm_from_file#
Type: logical
Default: .false.
Description: Controls whether to read baseline hydraulic parameters
from the surface dataset file.
When set to .true.:
eCLM reads
THETAS,SHAPE_PARAM,PSIS_SAT, andKSATfrom the surface fileParameters apply to the first 10 soil layers (
nlevsoifl=10)Parameters undergo organic matter mixing
If any required variable is missing, the model aborts with an error message
When set to .false. (default):
Hydraulic parameters are computed via pedotransfer functions from sand and clay fractions
No parameters are read from the surface file
soil_hyd_inparm_from_file_adj#
Type: logical
Default: .false.
Description: Controls whether to read organic-matter-adjusted
hydraulic parameters from the surface dataset file.
When set to .true.:
eCLM reads
THETAS_adj,SHAPE_PARAM_adj,PSIS_SAT_adj, andKSAT_adjfrom the surface fileParameters apply to all
nlevgrndsoil layers (typically 25 layers)Adjusted parameters overwrite the results from organic matter mixing
If any required variable is missing, the model aborts with an error message
When set to .false. (default):
No organic-matter-adjusted parameters are read from the surface file
Organic matter mixing results are used as final parameter values
Example Configuration#
&clm_soilstate_inparm
organic_frac_squared = .false.
soil_hyd_inparm_from_file = .false.
soil_hyd_inparm_from_file_adj = .true.
/
This configuration:
Reads adjusted parameters from the surface file which override the organic matter mixing results
Can e.g. be used for ensemble data assimilation applications with perturbed soil parameters specified in a group of surface files, one surface file per ensemble member.
Error Handling#
Both namelist parameters enforce strict error checking:
If set to
.true., all required parameters must be present in the surface fileMissing variables trigger an immediate model abort with a descriptive error message
This ensures users are explicitly aware when parameter files are incomplete
Note about the Brooks-Corey Shape Parameter#
When perturbed soil parameters are read from input files, the organic
matter mixing for bsw uses the file-read value instead of the
hard-coded Cosby et al. (1984) Table 5 formula (2.91 + 0.159*clay).
Modified Source Code#
src/clm5/biogeophys/SoilStateInitTimeConstMod.F90