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

Calculate coefficients for solution of snow pack heat conduction. More...

Functions/Subroutines

subroutine snowheatcond (GCOEFFS, GCONSTS, CPHCHG, IWATER, FI, ZSNOW, TSNOW, TCSNOW, ILG, IL1, IL2, JL)
 

Detailed Description

Calculate coefficients for solution of snow pack heat conduction.

Author
D. Verseghy, M. Lazare

In this subroutine, coefficients are derived for an equation relating the heat flux at the snow surface to the snow surface temperature. It is assumed that the variation of temperature T with depth z in the snow pack can be modelled by using a quadratic equation:

\(T(z) = (1/2) a z^2 + b z + c\)

By substituting 0 for z in the above equation and in the expressions for its first and second derivatives, it can be shown that a = T"(0), b = T'(0), and c = T(0). The term T"(0) can be evaluated from the expression for the first derivative evaluated at the bottom of the snow pack, \(T(\Delta z_s)\):

\(T"(0) = [T'(\Delta z_s) - T'(0)]/ \Delta z_s\)

The temperature gradient T'(0) at the snow surface is related to the surface heat flux G(0) by the snow thermal conductivity \(\lambda_s\):

\(G(0) = -\lambda_s T'(0)\)

The average snow temperature, \(T_s(\Delta z_s)\), can be obtained by integrating the resulting equation for T(z) between 0 and \(\Delta z_s\). Making use of all of the above expressions, and assuming as a first approximation that the heat flux at the bottom of the snow pack is zero, a linear equation can be derived relating G(0) to T(0):

\(G(0) = 3 \lambda_s / \Delta z_s [T(0) - T_s(\Delta z_s)]\)

Just four calculations are performed in this subroutine. The slope and intercept of the G(0) vs. T(0) relation, GCOEFF and GCONST, are evaluated as \(3 \lambda_s / \Delta z_s\) and \(-3 \lambda_s T_s(\Delta z_s)/ \Delta z_s\) respectively; the flag IWATER is set to 2, indicating a snow surface; and the latent heat of vaporization at the surface, CPHCHG, is set to the value for sublimation (by adding the latent heat of melting to the latent heat of vaporization).

Function/Subroutine Documentation

◆ snowheatcond()

subroutine snowheatcond ( real, dimension(ilg), intent(out)  GCOEFFS,
real, dimension(ilg), intent(out)  GCONSTS,
real, dimension(ilg), intent(out)  CPHCHG,
integer, dimension(ilg), intent(out)  IWATER,
real, dimension (ilg), intent(in)  FI,
real, dimension (ilg), intent(in)  ZSNOW,
real, dimension (ilg), intent(in)  TSNOW,
real, dimension(ilg), intent(in)  TCSNOW,
integer, intent(in)  ILG,
integer, intent(in)  IL1,
integer, intent(in)  IL2,
integer, intent(in)  JL 
)
Parameters
[out]gcoeffsMultiplier used in equation relating snow surface heat flux to snow surface temperature \([W m^{-2} K^{-1}]\)
[out]gconstsIntercept used in equation relating snow surface heat flux to snow surface temperature \([W m^{-2} ]\)
[out]cphchgLatent heat of sublimation \([J kg^{-1}]\)
[out]iwaterFlag indicating condition of surface (dry, water-covered or snow-covered)
[in]fiFractional coverage of subarea in question on modelled area [ ]
[in]zsnowDepth of snow pack \([m] (\Delta z_s)\)
[in]tsnowSnowpack temperature \([K] (T_s(\Delta z_s))\)
[in]tcsnowThermal conductivity of snow \([W m^{-1} K^{-1}]\)