This SUBROUTINE converts the previously evaluated rate of potential
evaporation ssnow_potev
from the soil into the associated latent heat flux
canopy_fes
. The evaluation accounts for whether the water flux is
in liquid or solid phase (evaporation or sublimation, dew or frost),
the direction of the flux (to or from the soil), and any limits due to a lack of
water in the surface layer of the soil column. The SUBROUTINE also evaluates
the partition of the latent heat flux between soil canopy_fess
and
puddle canopy_fesp
contributions.
This current CABLE implementation is possibly confusing.
The variable ssnow_potev
is not potential evaporation (in kg water
ms) but is instead the latent heat flux (in Wm)
associated with the potential evaporation.
ssnow_potev
assumes that the water flux described by the potential
evaporation is of liquid water regardless of temperature
and/or whether the surface is covered by snow. Additionally one option for the
evaluation of ssnow_potev
(the Penman_Monteith option) does not function
correctly over frozen surfaces. A bug fix will require changes to
define_canopy, Penman_Monteith and this SUBROUTINE; comments have been
inserted into the code accordingly.
The subroutine implicitly sets ssnow_wetfac=1
over snow but does not
actually change the value of ssnow_wetfac
for these points.
Later on, other calculations use ssnow_wetfac
and may use a different
ssnow_wetfac
value over snow. It is important to note,
Surf_wetness_fact calculates ssnow_wetfac
and sets it to 0.9
over snow. And the value for points with new snow could be smaller.
'Potential evaporation' quantifies the theoretical value of evaporation from a fully saturated surface (i.e. with no limits on water availability) at a given temperature and humidity, in response to the available energy. This SUBROUTINE evaluates the value of the latent heat flux from the ground/soil/snow pack given the potential evaporation according to one of four cases (see Ticket 137)
while satisfying any constraints due to limits from soil moisture availability.
There are six outputs from this SUBROUTINE
pwet
quantifying the impact of puddles in reducing the latent heat flux from the soil.ssnow_wetfac
quantifying the control of soil moisture on the rate of evaporation.ssnow_cls
quantifying whether the latent heat flux represents a change between
liquid/vapour of ice/vapour phases.
ssnow_cls
takes one of two values - 1.0 if the flux of water is of liquid, and
1.1335 if the flux of water is of ice. 1.1335 = latent heat of sublimation of ice /
latent heat of evaporation of liquid water. IMPORTANT the value of ssnow_cls
set in this SUBROUTINE is used to control whether
the water fluxes from the snow pack/soil column are of liquid or solid water
in soil_snow (and its SUBROUTINES).
Inconsistencies between the two sets of SUBROUTINES
would lead to loss of energy closure and/or loss of mass.
The underpinning equation linking the -formulation for the soil latent heat flux to the potential evaporation is
where =air_rlam
is the latent heat of evaporation
(which can theoretically vary so is an mp-array), =ssnow_cls
is a factor set by the phase of the water being fluxed,
=ssnow_wetfac
is a coefficient quantifying the control that soil surface
layer moisture has on evaporation, and =ssnow_potev
is the latent heat flux associated with the potential evaporation.
The workflow is
ssnow_potev
is negative
any limitation due to soil moisture availability is negected.
ssnow_pudsto
, the fraction
of surface area covered by the puddle is quantified, pwet
(between 0-0.2).
The soil latent heat flux is reduced by the change in area fraction.
(the main loop) The value for and additional limits on the latent heat flux(es) are applied, according to which of the four cases is occurring. Inside the loop the workflow is as follows:
For cases 1 and 3 the flux is of liquid water, .
Limit 1: For cases 1 and 3 there must be sufficient liquid water in the surface
soil layer to provide the water for evaporation. This sets
the maximum soil latent heat flux possible, fupper_limit
. Two options
are provided for fupper_limit
, set by the cable_user_l_new_reduce_soilevap
switch.
The options differ in the amount of water that remains at the end of the time step.
Limit 2: Additionally for case 3, the evaporation of liquid water from within the frozen soil column must not reduce the liquid water fraction to the point that that ice fraction of soil moisture exceeds an upper limit frozen_limit=0.85. This provides a second upper limit on the evaporation and soil latent flux. WARNING frozen_limit=0.85 is hard coded - if it is changed then the corresponding limit in cbl_soilsnow must also be changed.
The case of dew fall onto a surface with little/no snow while the soil surface temperature is above freezing is unrestricted and the soil latent heat flux defaults to the first estimate.
If the surface has snow cover, or ssnow_potev
<0 and the soil
temperature is below freezing (frost), then the latent heat flux represents a
conversion between solid and vapour phases of water, =1.1335.
The first estimate for the soil latent heat flux is updated by the change
in value of .
For case 4, deposition of frost onto frozen surface (temperature below freezing) occurs even if there is no snow - there is no limit on the magnitude of the soil latent heat flux.
Limit 3: For case 2, if ssnow_potev
>0 then there needs to be sufficient
snow to sublimate over the time step. This places an upper limit on
the soil latent heat flux.
The latent heat flux associated with evaporation from puddles is set
to the area fraction of the potential evaporation (pwet
* ssnow_potev
).
If there is insufficient water in the puddle to support this flux then an upper
limit is applied.
The total latent heat flux is obtained by summing the soil and puddle contributions.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer | :: | mp | ||||
real, | intent(in) | :: | CTFRZ |
temperature at freezing point (K) |
||
real, | intent(in) | :: | dels |
time step of CABLE (s) |
||
real, | intent(in) | :: | soil_zse |
thickness of topmost soil layer (m) |
||
real, | intent(in) | :: | soil_swilt(mp) |
soil moisture content at wilting point (m water m volume of soil) |
||
logical, | intent(in) | :: | cable_user_l_new_reduce_soilevp |
NAMELIST switch to use alternate soil evaporation scheme |
||
real, | intent(inout) | :: | pwet(mp) |
factor to reduce soil evaporation due to presence of a puddle (-) |
||
real, | intent(in) | :: | air_rlam(mp) |
density of air (kgm) |
||
real, | intent(in) | :: | ssnow_snowd(mp) |
depth of snow in liquid water equivalent (mm m) |
||
real(kind=r_2), | intent(in) | :: | ssnow_wb(mp) |
water content in surface soil layer (m liquid water m volume of soil) |
||
real(kind=r_2), | intent(in) | :: | ssnow_wbice(mp) |
ice content in surface soil layer (m frozen water m volume of soil) |
||
real, | intent(in) | :: | ssnow_pudsto(mp) |
amount of water in puddles (kgm) |
||
real, | intent(in) | :: | ssnow_pudsmx(mp) |
maximum amount of water possible in puddles (kgm) |
||
real, | intent(in) | :: | ssnow_potev(mp) |
latent heat flux associated potential evaporation (Wm) |
||
real, | intent(inout) | :: | ssnow_wetfac(mp) |
wetness factor for soil (between 0 and 1) |
||
real, | intent(in) | :: | ssnow_evapfbl(mp) |
flux of water from soil surface (kg m) |
||
real, | intent(out) | :: | ssnow_cls(mp) |
factor denoting phase of water flux (=1 if liquid, =1.1335 if ice) |
||
real, | intent(in) | :: | ssnow_tss(mp) |
temperature of surface soil/snow layer (K) |
||
real(kind=r_2), | intent(out) | :: | canopy_fes(mp) |
latent heat flux from the ground (Wm) |
||
real(kind=r_2), | intent(out) | :: | canopy_fess(mp) |
latent heat flux from the soil (Wm) |
||
real(kind=r_2), | intent(out) | :: | canopy_fesp(mp) |
latent heat flux from any puddles (Wm) |