CLASSIC
Canadian Land Surface Scheme including Biogeochemical Cycles
|
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) |
Calculate coefficients for solution of heat conduction into soil.
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.
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 | ||
) |
[in,out] | gdenom | Work array used in calculation of GCONST and GCOEFF |
[out] | gcoeff | Multiplier used in equation relating ground surface heat flux to surface temperature \([W m^{-2} K^{-1}]\) |
[out] | gconst | Intercept used in equation relating ground surface heat flux to surface temperature \([W m^{-2}]\) |
[out] | cphchg | Latent heat of sublimation \([J kg^{-1}]\) |
[in,out] | iwater | Flag indicating condition of surface (dry, water-covered or snow-covered) |
[in] | tbar | Temperatures of soil layers, averaged over modelled area [K] |
[in] | tctop | Thermal conductivity of soil at top of layer \([W m^{-1} K^{-1}] (\lambda_t)\) |
[in] | tcbot | Thermal conductivity of soil at bottom of layer \([W m^{-1} K^{-1}] (\lambda_b)\) |
[in] | fi | Fractional coverage of subarea in question on modelled area [ ] |
[in] | zpond | Depth of ponded water on surface [m] |
[in] | tbar1p | Lumped temperature of ponded water and first soil layer [K] |
[in] | tcsnow | Thermal conductivity of snow \([W m^{-1} K^{-1}]\) |
[in] | zsnow | Depth of snow pack [m] |
[in] | isand | Sand content flag |
[in] | delz | Overall thickness of soil layer \([m] (\Delta_z)\) |