XG
This module is defined in ClassXG and is a simple thaw-freeze algorithm for a multi-layered soil using the Stephan Equation. This implementation is from Xie Chengwei and William A. Gough, 2013. The module is implemented as follows,
- uses the ground surface temperature (hru_tsf).
- variation #1 uses air temperature (hru_t) and handles the thermal coductivity of the snowpack.
- variation #2 uses air temperature (hru_t) and the parameter n_factor to estimate the ground surface temperature under the snowpack.
Observations
- none.
Variables
- Zdf (m) - depth of surface freezing front.
- Zdt (m) - depth of surface thawing front.
- Zd_front (m) - all freezing/thawing fronts. Allowable number of fronts determined by nlay. Thaw fronts are positive depths, freeze fronts are negative depths. Variable Zd_front(HRU, 1) always equals current (-Zdf) or Zdt.
- nfront () - number of freezing/thawing fronts. Maximum number of fronts equals number of layers (nlay) minus one.
- Bfr (ºC*d) - freeze degree days.
- Bth ((ºC*d) - thaw degree days.
- pf () - soil layers freezing ratios.
- pt () - soil layers thawng ratios
- ttc (W/(m*K) - soil layers thawing thermal coductivity.
- ftc (W/(m*K) - soil layers freezing thermal coductivity.
- theta (m^3/m^3) - XG layer theta calulated from soil moistures and defaults.
- layer_h2o (kg/m^3) - layer water content.
- B (ºC*d) - used to sum interval values to create degree days. Local.
- TrigAcc (ºC*d) - detects freeze/thaw cycle. Local
- TrigState () - 1/0/-1 -> thaw/idle/freeze. Local.
- SWE_tc (W/(m*K) - SWE thermal coductivity. (only variation #1)
- SWE_density (kg/m^3) - average density of SWE. (only variation #1)
- SWE_Bfr (ºC*d) - thaw degree days for snowpack. (only variation #1)
- SWE_Za (m) - physical depth of snowpack. (only variation #1)
- ttc_contents () - ttc value when thawing 0/1 thaw/freeze.
- ftc_contents () - ftc value when freezing 0/1 freeze/thaw.
- tc_composite (W/(m*K) - freeze/thaw composite ftc/ttc value.
- tc_composite2 (W/(m*K) - freeze/thaw composite ftc/ttc value.
- XG_moist_d (m) - layer depth of soilX soil moisture in XG.
- XG_rechr_d (m) - layer depth of soilX recharge in XG.
- XG_max (mm) - layer maximum soil moisture content.
- XG_moist (mm) - layer moisture comtent.
- check_XG_moist (mm) - sum of XG layer soil moistures, should equal SoilX soil_moist value.
- rechr_fract () - fraction of layer calculated from soilX soil_rechr_max. Used by to distribute soilX soil_rechr through layers.
- moist_fract () - fraction of layer calculated from soilX soil_rechr_max. Used by to distribute soilX soil_moist through layers.
- default_fract () - fraction of layer not affected by XG soil_moist and defaults to value of "theta_default".
- n_factor () - calculated value of n_factor from parameters. (variation #2)
Parameters
- Trigthrhld (ºC*d) - Trigger reference level in degree days.
- depths (m) - thicknesses of soil layers.
- por () - soil porosity.
- N_Soil_layers () - number of soil layers. Must be less than or equal nlay. Define parameters for these layers. All others are ignored.
- theta_default (m^3/m^3) - value of theta used where soil moisture is not nassigned by module soilX.
- theta_min (m^3/m^3) - minimum value of theta to prevent divide by zero errors.
- soil_type () - HRU soil type: 0 = peat, 1 = silt, 2 = silt2, 3 = Sandy, 4 = gravel.
- calc_coductivity () - 0 - linear method, 1 - use Johansen 1975.
- soil_solid_km (W/(m*K) - dry soil thermal conductivity. Suggested values for mineral and loam are 2.5 and 0.06.
- soil_solid_km_ki (W/(m*K) - saturated frozen soil thermal conductivity. Suggested values for mineral and loam are 2.5 and 0.06.
- soil_solid_km_km (W/(m*K) - saturated unfrozen soil thermal conductivity. Suggested values for mineral and loam are 2.5 and 0.06.
- n_factor_a () - constant ratio of surface to air temperature. (variation #2)
- n_factor_b () - constant ratio of surface to air temperature. (variation #2)
- n_factor_c () - constant ratio of surface to air temperature. (variation #2)
- n_factor_T () - constant ratio of surface to air temperature. (variation #2)
- Zdf_init (m) - initial depth of freezing front.
- Zdt_init (m) - initial depth of thawing front.
- Zdp_init (m) - initial depth of permafrost.
- freeze_kw_ki_update () - Change thermal conductivities kw to ki behind freezing front.
- thaw_ki_kw_update () - Change thermal conductivities ki to kw behind freezing front.
- k_update () - Change thermal conductivities ki to kw 0 - never, 1 _ after processing layer, 2 - continuously.
Variable Inputs
- hru_tsf (ºC) - surface temperature in basic module. Basic module.
- hru_t (ºC) - air temperature used with SWE in variations #1 and with modifiers n_factors in variations #2.
- SWE (kg/m^2) - Snow water equivalent.((variation #1 and variation #2)).
Notes.
ftc_lay = (1.0 - por_lay)*km + h2o_lay*kw + (por_lay - h2o_lay)*kattc_lay = (1.0 - por_lay)*km + h2o_lay*ki + (por_lay - h2o_lay)*ka
where;
representative values are,
const float ko = 0.21; // W/(m K) organic material
const float km = 2.50; // W/(m K) mineral
const float ka = 0.025; // W/(m K) air
const float ki = 2.24; // W/(m K) ice
const float kw = 0.57; // W/(m K) water
when SWE_density[hh] > 0.156
SWE_tc = 0.138 - 1.01*SWE_density/1000.0 + 3.233*sqr(SWE_density/1000.0)
else
SWE_tc = 0.023 + 0.234*SWE_density/1000.0
In variation#1 when snowcover is handled some assumptions are made in order to avoid handling the internal energy of the snowpack.
- Freezing, the snowpack is never allowed to diminish in depth as this is caused by interaction with the atmosphere by other processes rather than sensible heat transfer. Early on in the season when the ground is freezing, the snowpack is shallow and the ground surface is close to zero. At melt there is little more freezing at depth and again the temperature of the ground surface is close to zero. As a result the influence of ground temperature during the periods when the snowpack is not being handled correctly is small.
- Thawing, the majority of ground thawing occurs after the snowcover has disappeared and the snowpack can ignored.