CLASSIC
Canadian Land Surface Scheme including Biogeochemical Cycles
snowSublimation.f90 File Reference

Sublimation calculations for the snow pack on the ground. More...

Functions/Subroutines

subroutine snowsublimation (RHOSNO, ZSNOW, HCPSNO, TSNOW, EVAP, QFN, QFG, HTCS, WLOST, TRUNOF, RUNOFF, TOVRFL, OVRFLW, FI, R, S, RHOSNI, WSNOW, ILG, IL1, IL2, JL)
 

Detailed Description

Sublimation calculations for the snow pack on the ground.

Author
D. Verseghy, M. Lazare

These calculations are done if a snowpack is present and there is no rainfall or snowfall occurring. The change of internal energy \(I_s\) of the snow pack as a result of the change in its mass is calculated as the difference in \(I_s\) between the beginning and end of the subroutine:

\(\Delta I_s = X_i \Delta [ C_s z_s T_s ] / \Delta t\)

where \(C_s\) represents the volumetric heat capacity of the snow pack, \(T_s\) its temperature, \(\Delta t\) the length of the time step, and \(X_i\) the fractional coverage of the subarea under consideration relative to the modelled area.

If the sublimation rate EVAP over the snow pack is negative (downward), the deposited depth of snow ZADD is calculated from EVAP by converting it from a liquid water flux to a fresh snow depth using RHOSNI, the fresh snow density. The snowpack density is updated as a weighted average of the original snow density RHOSNO and RHOSNI. The new snow depth is calculated as the sum of the old snow depth ZSNOW and ZADD. The new volumetric heat capacity of the snow pack is obtained from the heat capacities of ice and water \(C_i\) and \(C_w\), the snow, ice and water densities \(\rho_s\) \(\rho_i\), and \(\rho_w\), and the water content and depth of the snow pack \(w_s\) and \(z_s\), as:

\(C_s = C_i [\rho_s / \rho_i ] + C_w w_s /[\rho_w z_s]\)

If the sublimation rate is positive, the depth of the snow pack ZLOST that is sublimated over the time step is calculated from EVAP using RHOSNO. If ZLOST \(\leq\) ZSNOW, the snow depth is reduced and HCPSNO is recalculated. Otherwise the deficit amount ZREM is calculated from ZLOST – ZSNOW and converted to a depth of water. This amount is further converted to an evaporation rate by applying a correction factor of \((L_m+ L_v)/L_v\), where \(L_m\) is the latent heat of melting and \(L_v\) is the latent heat of vaporization (to account for the fact that the energy is now being used to evaporate water instead of sublimate snow). This necessarily leads to a small discrepancy between the overall vapour flux for the subarea that was originally calculated in energyBudgetDriver, and the actual change of water storage in the subarea, and therefore this discrepancy is added to the housekeeping variable WLOST for use in the water balance checks done later in checkWaterBudget. If there was liquid water in the snow pack, WSNOW, it is assigned to overall runoff RUNOFF, and to overland flow OVRFLW. The resulting temperatures of the runoff and overland flow, TRUNOF and TOVRFL, are recalculated as weighted averages using the original runoff amounts and temperatures, and the original snow temperature TSNOW for WSNOW. The snow depth, heat capacity, temperature and water content are all set to zero. Finally, since ZREM now becomes soil evaporation rather than snow sublimation, the diagnostic variables QFN and QFG, representing the vapour flux from snow and soil respectively, are adjusted to reflect this.

Function/Subroutine Documentation

◆ snowsublimation()

subroutine snowsublimation ( real, dimension(ilg), intent(inout)  RHOSNO,
real, dimension (ilg), intent(inout)  ZSNOW,
real, dimension(ilg), intent(inout)  HCPSNO,
real, dimension (ilg), intent(inout)  TSNOW,
real, dimension (ilg), intent(inout)  EVAP,
real, dimension (ilg), intent(inout)  QFN,
real, dimension (ilg), intent(inout)  QFG,
real, dimension (ilg), intent(inout)  HTCS,
real, dimension (ilg), intent(inout)  WLOST,
real, dimension(ilg), intent(inout)  TRUNOF,
real, dimension(ilg), intent(inout)  RUNOFF,
real, dimension(ilg), intent(inout)  TOVRFL,
real, dimension(ilg), intent(inout)  OVRFLW,
real, dimension (ilg), intent(in)  FI,
real, dimension (ilg), intent(in)  R,
real, dimension (ilg), intent(in)  S,
real, dimension(ilg), intent(in)  RHOSNI,
real, dimension (ilg), intent(inout)  WSNOW,
integer, intent(in)  ILG,
integer, intent(in)  IL1,
integer, intent(in)  IL2,
integer, intent(in)  JL 
)
Parameters
[in,out]rhosnoDensity of snow pack \([kg m^{-3}] (\rho_s)\)
[in,out]zsnowDepth of snow pack \([m] (z_g)\)
[in,out]hcpsnoHeat capacity of snow pack \([J m^{-3} K^{-1}] (C_s)\)
[in,out]tsnowTemperature of the snow pack \([C] (T_s)\)
[in,out]evapSublimation rate from snow surface at start of subroutine \([m s^{-1}]\)
[in,out]qfnSublimation from snow pack \([kg m^{-2} s^{-1}]\)
[in,out]qfgEvaporation from ground \([kg m^{-2} s^{-1}]\)
[in,out]htcsInternal energy change of snow pack due to conduction and/or change in mass \([W m^{-2}] (I_s)\)
[in,out]wlostResidual amount of water that cannot be supplied by surface stores \([kg m^{-2}]\)
[in,out]trunofTemperature of total runoff [K]
[in,out]runoffTotal runoff \([m s^{-1}]\)
[in,out]tovrflTemperature of overland flow [K]
[in,out]ovrflwOverland flow from top of soil column \([m s^{-1}]\)
[in]fiFractional coverage of subarea in question on modelled area \([ ] (X_i)\)
[in]rRainfall rate incident on snow pack \([m s^{-1}]\)
[in]sSnowfall rate incident on snow pack \([kg m^{-2} s^{-1}]\)
[in]rhosniDensity of fresh snow \([kg m^{-3}]\)
[in,out]wsnowLiquid water content of snow pack \([kg m^{-2}] (w_s)\)