Skin temperature and ground heat flux

Warning

This page is a work in progress. If you have any questions or notice any errors, please raise an issue.

Overview

The skin temperature (sometimes also called surface temperature) $T_s$ is the effective radiative temperature of the land surface. It represents the temperature at which the surface emits longwave radiation and is the temperature that directly controls evaporation and sensible heat flux in the surface energy balance.

Skin temperature differs from the air temperature at height $z$ by the effects of turbulent mixing and surface properties. It is not necessarily the same as subsurface soil temperature, $T_g$ (the temperature of the top soil layer), due to the thermal resistance between surface and soil.

Implicit skin temperature

Terrarium.ImplicitSkinTemperatureType
struct ImplicitSkinTemperature{NF} <: Terrarium.AbstractSkinTemperature{NF}

Scheme for an implicit skin temperature $T_s$ satisfying:

\[R_{\text{net}}(T_s) = H_s(T_s) + H_l(T_s) + G(T_s, T_g)\]

where $R_{\text{net}}$ is the net radiation budget, $H_s$ is the sensible heat flux, $H_l$ is the latent heat flux from sublimation and evapotranspiration, $G$ is the ground heat flux, and $T_g$ is the ground temperature, or temperature of the uppermost subsurface (soil or snow) layer.

Properties:

  • κₛ: Assumed thermal conductivity at the surface [W m⁻¹ K⁻¹]
source

The implicit approach requires solving a nonlinear equation at each grid point and time step. In order to avoid iteration, the current approach implementation of ImplicitSkinTemperature in Terrarium approximately solves for the skin temperature using a fixed point iteration where the ground heat flux is computed as the residual energy flux given the current prognostic state of the skin_temperature $T_s$,

\[G^\star = R_{\text{net}}(T_s) - H_s(T_s) - H_l(T_s)\]

and the new skin temperature $T_s^\star$ is determined by setting this heat flux equal to gradient between the skin and the ground surface temperature (uppermost soil layer) $T_g$,

\[T_s^\star = T_g - G^\star * \frac{\Delta z}{2 \kappa_s}\]

This procedure can be iterated until convergence; however, the current implementation simply performs one iteration to shift the skin temperature towards its root. This incurs some numerical approximation error in the calculation of the surface energy flux which still needs to be quantified. More accurate and stable schemes will be implemented in the future.

Prescribed skin temperature

Terrarium.PrescribedSkinTemperatureType
struct PrescribedSkinTemperature{NF} <: Terrarium.AbstractSkinTemperature{NF}

Simple scheme for prescribed skin temperatures from input variables.

Properties:

  • κₛ: Assumed thermal conductivity at the surface [W m⁻¹ K⁻¹]
source

Process interface

Methods

Terrarium.update_skin_temperature!Function
update_skin_temperature!(
    state,
    grid,
    skinT::ImplicitSkinTemperature
)

Update skin_temperature according to the current state of ground_heat_flux.

source
Terrarium.compute_skin_temperatureFunction
compute_skin_temperature(
    skinT::ImplicitSkinTemperature,
    Tg,
    G,
    Δz
) -> Any

Compute the implicit update of the skin temperature from the given ground surface temperature Tg, ground heat flux G, and distance Δz.

source
compute_skin_temperature(
    i,
    j,
    grid,
    fields,
    skinT::ImplicitSkinTemperature
) -> Any

Estimate the skin temperature from the current ground_heat_flux at grid cell i, j.

source
Terrarium.compute_ground_heat_flux!Function
compute_ground_heat_flux!(
    state,
    grid,
    skinT::Terrarium.AbstractSkinTemperature,
    seb::Terrarium.AbstractSurfaceEnergyBalance
)

Compute ground_heat_flux as the residual R_\text{net} - H_s - H_l.

source
Terrarium.compute_ground_heat_fluxFunction
compute_ground_heat_flux(
    _::Terrarium.AbstractSkinTemperature,
    R_net,
    H_s,
    H_l
) -> Any

Compute the ground heat flux as the residual of the net radiation R_net and the sensible H_s and latent H_l heat flux.

source
compute_ground_heat_flux(
    i,
    j,
    grid,
    fields,
    skinT::Terrarium.AbstractSkinTemperature,
    _::Terrarium.AbstractRadiativeFluxes,
    _::Terrarium.AbstractTurbulentFluxes
) -> Any

Compute the ground heat flux from the surface net radiation and sensible/latent heat flux at grid cell i, j.

source