modules_frozenAyers (05/17/13)

CRHM Borland

frozenAyers .

This module is defined in ClassfrozenAyers . It handles unfrozen soil infiltration using Ayers and frozen soil using Zhao and Gray (1999)..


  • t0_inhibit () - optional. If its value is > 0.0 the incrementing of t0_Acc during the calibration cycle is inhibited.  This input may be controlled using a macro.


  • infil (mm/int) - depth of infiltration in time step, Dt – expressed as an average depth of water on an HRU.
  • cuminfil (mm) - cumulative infiltration - expressed as an average depth of water on an HRU.
  • runoff (mm/int) - amount of daily runoff – expressed as an equivalent depth (m3/m2).
  • cumrunoff (mm) - cummulative runoff.
  • meltrunoff (mm/int) - amount of interval melt runoff. .
  • cummeltrunoff (mm) - cumulative interval melt runoff.
  • snowinfil (mm/int) - amount of interval infiltration – expressed as an equivalent depth (m3/m2).
  • cumsnowinfil (mm) - cumulative interval infiltration
  • t0_Var (h) - value of t0 calculated by the model.
  • t0_Acc (h) - infiltration opportunity time accumulator.
  • Inf  (mm) -  infiltration into a frozen soil calculated from parametric relationship.
  • Julian_window () - currently in Julian window handling frozen infiltration.
  • Julian_lockout () - lockout next frozen cycle until after this Julian date when t0_Julian is not set (i.e. 0).
  • infiltype() - infiltration type. PREMELT/RESTRICTED/LIMITED/UNLIMITED/SATURATED - 0/1/2/3/4 respectively.
  • snowmeltD_last (mm/d) - yesterday's snowmelt. Used to determine the formation of ice lens.
  • SWEPk (mm) - peak snow water equivalent. Used to calculate t0 when parameter t0 is equal to zero.


  • basin_area (km^2) - area of watershed.
  • hru_area(km^2) - area of HRUs.
  • t0 (h) - Infiltration opportunity time. If < 0 - calculate opportunity time by running forward (not reccommended), == 0 - calculate t0 from '0.65*SWE-5.0',  > 0 - use as opportunity time. The values are saved in t0_var for reference.
  • t0_Julian () -value > 0 - inhibit frozen algorithm till after this Julian date, 0 - enable frozen algorithm immediately when melt criteria is met.
  • S0 (m^3/m^3) - surface saturation.
  • Si (m^3/m^3) - initial soil saturation.
  • C () - coefficient.
  • hru_tsoil (ºK) - soil average temperature at start of frozen infiltration.
  • t_ice_lens(ºC) - overnight minimum to cause ice lens after major melt.
  • texture () -  1 through 4 for texture:- 1 - coarse/medium over coarse, 2 - medium over medium, 3 - medium/fine over fine, 4 - soil over shallow bedrock..
  • groundcover () - 1 through 6 for groundcover: 1 - bare soil, 2 - row crop, 3 - poor pasture, 4 - small grains, 5 - good pasture, 6 - forested..
  • soil_moist_max (mm) - Maximum available water holding capacity of soil profile. Soil profile is surface to bottom of rooting zone.

Variable Inputs

  • net_rain (mm/int) (*) - amount of rain received by the ground surface in time step, Dt. Variable available from module intcp, etc..
  • snowmeltD (mm/d) (*).
  • soil_moist (mm) (*)
  • SWE (mm) (*)
  • hru_tmin (°C) (*)

Notes on Ayers.

textureproperties[texture] [groundcover] in  mm/hour.

bare soil row crop poor pasture small grains good pasture forested  
7.6 12.7 15.2 17.8 25.4 76.2 coarse over coarse
2.5 5.1 7.6 10.2 12.7 15.2 medium over medium
1.3 1.8 2.5 3.8 5.1 6.4 medium/fine over fine
0.5 0.5 0.5 0.5 0.5 0.5 soil over shallow bedrock


Calculations used in frozen.

  • c*pow(S0, 2.92)*pow(1.0-Si, 1.64)*pow((273.15-tmean)/273.15, -0.45)*pow(t0, 0.44) *10


  • Zhao and Gray (1999)


  1. Calibration.  Since the opportunity time is not known until the model is run through the complete frozen infiltration period,  the model has to be run twice.   The user, by setting t0[HRU 1] to <= 0.0 causes the module to calculate the infiltration opportunity time. During this run the module forces all HRUs to ignore snowmelt, i.e. snow infiltration and runoff are zero.  At the end of the model run the newly calculated opportunity times are transferred to the parameter and saved in t0_Var for future reference.  If the run is terminated early the partially calculated values will be used.  The calculated infiltration opportunity times saved in t0_Var may be manually transferred to t0 to eliminate the need for calculation in subsequent runs.
  2. Maximum infiltration is limited to the lesser of Inf calculated from the equation above and the available storage in the module smbal, i.e. (soil_moist - soil_moist_max).
  3. Accumulation of the opportunity time when calculating. Normally 24 hours is added for every day when melt occurs. However, this may be refined by using the observation input t0_inhibit.  When this input is not connected or its value is zero,  the interval is added to the infiltration opportunity time. When t0_inhibit is greater than 0.0 the interval is not added.
  4. When the average SWE is > 2.0 mm the module exits the unfrozen infiltration mode and enters the frozen infiltration cycle. While the daily snow melt (snowmeltD) is less than  2.0 mm
  5. Rainfall precipitation is always allowed to infiltrate("infil". "runoff" is always zero.
  6. Snowmelt occurring before snowmeltD exceeds 2.0 mm is handled as premelt. During this period, if the parameter "Si" is 1.0 the early snowmelt is handled as "meltrunoff" otherwise it is "snowinfil".
  7. After the snowmelt is greater than 2 mm the snowmelt is handled as follows; Si >= 1.0 -> RESTRICTED,  1.0 > Si > 0.0 -> LIMITED and Si <= 0.0 -> LIMITED.
  8. The rate of infiltration and the maximum amount of infiltration during LIMITED infiltration is controlled by the method described in 'Frozen soil infiltration Zhao and Gray (1999)'.
  9. The Opportunity Time is calculated as the period beginning from when the snowmelt exceeds 2 mm per day until the average of all HRU SWE is less then 2 mm.