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

Calculate coefficients for solution of heat conduction into soil. More...

Functions/Subroutines

subroutine soilheatfluxprep (A1, A2, B1, B2, C2, GDENOM, GCOEFF, GCONST, CPHCHG, IWATER, TBAR, TCTOP, TCBOT, FI, ZPOND, TBAR1P, DELZ, TCSNOW, ZSNOW, ISAND, ILG, IL1, IL2, JL, IG)
 

Detailed Description

Calculate coefficients for solution of heat conduction into soil.

Author
D. Verseghy, M. Lazare

In this subroutine, coefficients are derived for an equation relating the heat flux at the ground surface to the ground surface temperature, using the average temperatures and the thermal conductivities of the underlying first three soil layers. It is assumed that the variation of temperature T with depth z within each soil layer 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 soil layer, \(T(\Delta z)\):

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

The temperature gradient \(T'(0)\) at the top of each layer is related to the heat flux G(0) through the thermal conductivity \(\lambda_t\); and the temperature gradient and heat flux at the bottom of the layer, \(G(\Delta z)\) and \(T(\Delta z)\), are similarly related through the bottom thermal conductivity \(\lambda_b\):

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

\(G(\Delta z) = - \lambda_b T'(\Delta z)\)

The average soil layer temperature, \(T_{av}(\Delta z)\), can be obtained by integrating the resulting equation for T(z) between 0 and \(\Delta z\). Making use of all of the above expressions, recognizing that the heat fluxes and temperatures at the bottoms of layers 1 and 2 must equal the heat fluxes and temperatures at the tops of layers 2 and 3 respectively, and neglecting as a first approximation the heat flux at the bottom of the third layer, a linear equation can be derived relating G(0) to T(0) at the soil surface, where the slope and intercept of the equation are functions only of the average temperatures, thicknesses, and top and bottom thermal conductivities of the three soil layers.

In the subroutine loop, first the depth corresponding to TBAR1P (the lumped temperature of the first soil layer and the ponded water) is calculated, as the sum of the first soil layer thickness and the ponded water depth. If the ponded water depth is not vanishingly small, the surface water flag IWATER is set to 1; otherwise it is set to 0 for soils and 2 for ice sheets (indicated by ISAND = -4). If IWATER = 2, indicating a frozen water surface, the latent heat of vaporization, CPHCHG, is set to the value for sublimation (by adding the latent heat of melting to the latent heat of vaporization). If there is a snow pack present, the thermal conductivity at the top of the ground surface is calculated as the harmonic mean of the thermal conductivity at the top of the first soil layer and that of the snow pack. Finally, a series of work arrays is evaluated and is used to calculate the slope and intercept, GCOEFF and GCONST, of the equation relating G(0) to T(0) at the ground surface.

Function/Subroutine Documentation

◆ soilheatfluxprep()

subroutine soilheatfluxprep ( real, dimension(ilg), intent(inout)  A1,
real, dimension(ilg), intent(inout)  A2,
real, dimension(ilg), intent(inout)  B1,
real, dimension(ilg), intent(inout)  B2,
real, dimension(ilg), intent(inout)  C2,
real, dimension(ilg), intent(inout)  GDENOM,
real, dimension(ilg), intent(out)  GCOEFF,
real, dimension(ilg), intent(out)  GCONST,
real, dimension(ilg), intent(out)  CPHCHG,
integer, dimension(ilg), intent(inout)  IWATER,
real, dimension (ilg,ig), intent(in)  TBAR,
real, dimension (ilg,ig), intent(in)  TCTOP,
real, dimension (ilg,ig), intent(in)  TCBOT,
real, dimension (ilg), intent(in)  FI,
real, dimension (ilg), intent(in)  ZPOND,
real, dimension(ilg), intent(in)  TBAR1P,
real, dimension (ig), intent(in)  DELZ,
real, dimension(ilg), intent(in)  TCSNOW,
real, dimension (ilg), intent(in)  ZSNOW,
integer, dimension (ilg,ig), intent(in)  ISAND,
integer, intent(in)  ILG,
integer, intent(in)  IL1,
integer, intent(in)  IL2,
integer, intent(in)  JL,
integer, intent(in)  IG 
)
Parameters
[in,out]gdenomWork array used in calculation of GCONST and GCOEFF
[out]gcoeffMultiplier used in equation relating ground surface heat flux to surface temperature \([W m^{-2} K^{-1}]\)
[out]gconstIntercept used in equation relating ground surface heat flux to surface temperature \([W m^{-2}]\)
[out]cphchgLatent heat of sublimation \([J kg^{-1}]\)
[in,out]iwaterFlag indicating condition of surface (dry, water-covered or snow-covered)
[in]tbarTemperatures of soil layers, averaged over modelled area [K]
[in]tctopThermal conductivity of soil at top of layer \([W m^{-1} K^{-1}] (\lambda_t)\)
[in]tcbotThermal conductivity of soil at bottom of layer \([W m^{-1} K^{-1}] (\lambda_b)\)
[in]fiFractional coverage of subarea in question on modelled area [ ]
[in]zpondDepth of ponded water on surface [m]
[in]tbar1pLumped temperature of ponded water and first soil layer [K]
[in]tcsnowThermal conductivity of snow \([W m^{-1} K^{-1}]\)
[in]zsnowDepth of snow pack [m]
[in]isandSand content flag
[in]delzOverall thickness of soil layer \([m] (\Delta_z)\)