Canopy and Soil Profiles
Subroutine Profl2 (cuprof.f)
Calculates canopy and soil temperature, water and water vapor profiles

View definitions of variables used in this subroutine:
- in sequence encountered in subroutine
- in alphabetical order
Related topics with further discussion:
CODE OUTLINE:
- Calculate TWB1 [95]
- Calculate the soil thermal conductivity and heat capacity profiles. [120]
- If there are rocks at certain layers, take this into account.
- If it is the first hour of the first day, calculate an initial
soil temperature profile. [170]
- Calculate the current friction velocity above canopy, USTARA:
- First, calculate a friction velocity USTARB based on the current windspeed and
the diabatic correction for the previous hour (derived for the previous
hour's atmospheric stability). [228]
- Next, calculate a new diabatic correction factor from, among other
things, USTARB and the current air temperature. [250]
- Now estimate the current friction velocity, USTARA, from current windspeed
and the updated diabatic correction factor. [260]
- Calculate canopy wind profiles:
- above the canopy [268-275]
- at canopy top [280]
- within canopy [282-310]
- (below ZCRIT, use soil roughness rather than Z0)
- now it appears we calculate canopy again (cpyexc) ???
- from ZCRIT to soil surface [322]
- Repeat stability-corrected friction velocity estimation method for right
above soil surface. [340-370]
- Update leaf boundary layer resistances based on canopy wind profile.
(just like rbound). [380]
- Calculate the conductance and diabatic correction factor for momentum
transport:
- above the canopy [397]
- above the soil surface [506+]
- If there has been sprinkler irrigation this hour, calculate various
droplet parameters (dpe). Also set water sources (ET(JZ))
above soil surface.
- Iteratively calculate temperature, water vapor and liquid water profiles
using Newton-Raphson techniques. [640-1180]
- Set heat source at soil surface (Q(JZFC1)) -- value depends on whether or
not there is a residue layer on surface.
- Zero out water sources (ET(JZ)) below soil surface (necessary
if layers change between days due e.g. to vegetation growth).
- Reset soil water content profile to values from previous hour.
- Compute temperature profile in all layers (JZ=2 to JZBOT-1) using
a Newton-Raphson technique (nrapt).
- Save:
- TREF = Temperature at soil surface
- EREF = Sat. vapor pressure at temp of soil surface.
- RHSFC(2) = Soil sfc relative humidity, computed from water potential
in top layer and TREF.
- RHSFC(1) = RHSFC(2) - RHSLOP. This is an artificially offset
surface humidity, used to calculate d(soil evap)/d(soil sfc RH)
as described below.
- Compute vapor pressure profile in layers above soil surface.
The following is done twice, using IRH = 1 then 2:
- Set surface vapor pressure to EREF*RHSFC(IRH)
- Compute vapor pressure profile in layers above soil surface
(JZ = 2 to JZSFC) using
a Newton-Raphson technique (nrape). This uses the surface
vapor pressure computed above as the lower boundary condition.
- Calculate at soil surface evaporation rate from the vertical gradient in
vapor pressure. Store in EVSFC(IRH).
- Compute RHEV = d(soil evap)/d(soil sfc RH) =
[EVSFC(1)-EVSFC(2)]/[RHSFC(1)-RHSFC(2)]. RHEV is used to tweak
soil evap in response to changing surface water potentials inside the soil
water routine (soilw).
- Has soil surface evaporation converged to a stable value? If not,
return to the top of this bullet and recompute temperature and vp
profiles.
- Calculate soil heat conduction flux (HSOIL) and soil sensible heat
flux (HCPYS) from temperature profile.
- Compute new soil water profile using Newton-Raphson technique (soilw).
- Has soil water potential at soil surface converged to a stable
value? If not, return to the top of this bullet and recompute temperature,
vp and soil water profiles. The changes we have made to the soil water
may affect the soil temperatures we will compute.
- Calculate aerodynamic canopy temperatures:
- TAEROM: Momentum aerodynamic temp (roughness length for momentum is
used) [1239]
- TAEROH: Thermal aerodynamic temp (roughness length for heat is used)
[1243]
Return to cupidg2