Change to soil hydrology scheme in IFS cycle 32r3

Cycle 32r3 of the ECMWF forecast and analysis system includes a change in the soil hydrology which affects soil moisture. The land surface scheme has been improved by the introduction of a global distribution of soil type (based on the FAO soil texture data set) and new soil drainage and runoff schemes.


Implications of the new soil hydrology scheme

The implication of the change in the soil hydrology is the that effective soil moisture range varies geographically as the permanent wilting point (PWP) and field capacity (FC) vary. For instance, sandy soils will be dryer while the fine texture soils (e.g. clay) will have a higher soil moisture than before, in line with observations.

This model change may have consequences for applications where soil moisture (SM) is used as an initial condition for other models or for applications where soil moisture is used as a dryness indicator. For those applications it might be necessary to scale to the so-called soil moisture index (SMI) defined as (SM-PWP)/(FC-PWP). This index is equal to zero at the permanent wilting point and one at field capacity but it can be larger than one after rain. It is also an indicator for the "wetness" of the soil and can be used as an intermediate step to scale soil moisture from one model to another in cases where these models use different soil characteristics.

Note that, even after scaling to the soil moisture index, the soil moisture fields from IFS cycle 32r3 can differ substantially from that given by the previous cycle. This is due to the major changes in the land surface scheme (revised runoff, new hydrology and new soil types).

Computing the Soil Moisture Index

An example MARS compute script together with the table below are provided for users that need to compute the SMI. The soil texture type (MARS parameter SLT, GRIB Code 43) as well as the soil moisture at different layers (MARS parameters SWVL1, SWVL2, SWVL3 and SWVL4, GRIB Codes 39, 40, 41 and 42, respectively) are needed as input.

Old
Soil
PWP [m³/m³]
FC [m³/m³]
1
Loamy
0.171
0.323
New
Soil
PWP [m³/m³]
FC [m³/m³]
1
Coarse
0.059
0.242
2
Medium
0.151
0.346
3
Medium-fine
0.133
0.382
4
Fine
0.279
0.448
5
Very fine
0.335
0.541
6
Organic
0.267
0.662

Example MARS script for computing the Soil Moisture Index

The following example MARS script computes the Soil Moisture Index for soil moisture layer 1 (0-7cm). In this case, soil type (SLT) and Volumetric Soil Water Layer 1 (SWVL1) are needed as input.

# Retrieve the soil type (parameter SLT) from MARS to
# fieldset slt

retrieve,
  class    = od,
  stream   = oper,
  expver   = 1,        # For test data use expver=35
  date     = -1,
  time     = 00:00:00,
  levtype  = sfc,
  param    = SLT,
  type     = an,
  fieldset = slt

# Retrieve the Volumetric Soil Water Layer 1 (parameter
# SWVL1) from MARS to fieldset sm.
# To compute the SMI for other soil layers change
# the parameter to SWVL2, SWVL3 or SWVL4 as appropriate

retrieve,
  type     = fc,
  step     = 24,       # Or the required forecast step
  param    = SWVL1,
  fieldset = sm
 
# Compute the SMI. At each grid point with a non-zero
# value for soil type (slt<>0): one and only one of the
# following will be non-zero.

compute,
  fieldset = smi1,
  formula  = "(slt=1)*(sm-0.059)/(0.242-0.059)"

compute,
  fieldset = smi2,
  formula  = "(slt=2)*(sm-0.151)/(0.346-0.151)"

compute,
  fieldset = smi3,
  formula  = "(slt=3)*(sm-0.133)/(0.382-0.133)"

compute,
  fieldset = smi4,
  formula  = "(slt=4)*(sm-0.279)/(0.448-0.279)"

compute,
  fieldset = smi5,
  formula  = "(slt=5)*(sm-0.335)/(0.541-0.335)"

compute,
  fieldset = smi6,
  formula  = "(slt=6)*(sm-0.267)/(0.662-0.267)"

# Compute the SMI and write to the file "smi_output.grib"  
compute,
  fieldset = smi,
  formula  = "smi1 + smi2 + smi3 + smi4 + smi5 + smi6"

write,
  fieldset = smi,
  target   = "smi_output.grib"

Note that the SMI can be used to re-compute the soil moisture consistently with the PWP and FC used by the application.

For example, to compute the soil moisture for layer 1 (SWVL1_old) as would be obtained with the old (pre-IFS cycle 32r3) scheme use:

SMI = (SWVL1_old - PWP)/(FC - PWP)
SMI = (SWVL1_old - 0.171)/(0.323 - 0.171)

which gives

SWVL1_old = SMI*(0.323 - 0.171) + 0.171

where SMI is as calculated by the MARS request above and the values of FC and PWP are taken from the table for the old soil type 1. The calculation can be performed in MARS by adding the following lines to the script above:

# Rescale the soil moisture for soil level 1 using the
# calculated SMI

compute,
  fieldset = smh,
  formula  = "(slt<>0)*(smi*(0.323-0.171)+0.171)"
compute,

  fieldset = sm_old,
  formula  = "(sm>0)*(smh>0)*smh"
# Write the "old" SWVL1 field to the file "swvl1_old.grib"  

write,
  fieldset = sm_old,
  target   = "swvl1_old.grib"

For further information about mathematical computations in MARS please see the MARS User Guide.