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

Calculates canopy interception of rainfall and snowfall, and determines rainfall/snowfall rates at ground surface as a result of throughfall and unloading. More...

Functions/Subroutines

subroutine canopyinterception (IWATER, R, TR, S, TS, RAICAN, SNOCAN, TCAN, CHCAP, HTCC, ROFC, ROVG, PCPN, PCPG, FI, FSVF, CWLCAP, CWFCAP, CMASS, RHOSNI, TSURX, RDRIP, SDRIP, ILG, IL1, IL2, JL)
 

Detailed Description

Calculates canopy interception of rainfall and snowfall, and determines rainfall/snowfall rates at ground surface as a result of throughfall and unloading.

Author
D. Verseghy, M. Lazare, S. Fassnacht, E. Chan, P. Bartlett

Function/Subroutine Documentation

◆ canopyinterception()

subroutine canopyinterception ( integer, intent(in)  IWATER,
real, dimension(ilg), intent(inout)  R,
real, dimension(ilg), intent(inout)  TR,
real, dimension(ilg), intent(inout)  S,
real, dimension(ilg), intent(inout)  TS,
real, dimension(ilg), intent(inout)  RAICAN,
real, dimension(ilg), intent(inout)  SNOCAN,
real, dimension(ilg), intent(inout)  TCAN,
real, dimension(ilg), intent(inout)  CHCAP,
real, dimension(ilg), intent(inout)  HTCC,
real, dimension(ilg), intent(inout)  ROFC,
real, dimension(ilg), intent(inout)  ROVG,
real, dimension(ilg), intent(inout)  PCPN,
real, dimension(ilg), intent(inout)  PCPG,
real, dimension(ilg), intent(in)  FI,
real, dimension(ilg), intent(in)  FSVF,
real, dimension(ilg), intent(in)  CWLCAP,
real, dimension(ilg), intent(in)  CWFCAP,
real, dimension(ilg), intent(in)  CMASS,
real, dimension(ilg), intent(in)  RHOSNI,
real, dimension(ilg), intent(in)  TSURX,
real, dimension(ilg), intent(inout)  RDRIP,
real, dimension(ilg), intent(inout)  SDRIP,
integer, intent(in)  ILG,
integer, intent(in)  IL1,
integer, intent(in)  IL2,
integer, intent(in)  JL 
)
Parameters
[in,out]rRainfall rate over subarea in question \([m s^{-1}]\)
[in,out]trTemperature of rainfall [C]
[in,out]sSnowfall rate over subarea in question \([m s^{-1}]\)
[in,out]tsTemperature of snowfall [C]
[in,out]raicanIntercepted liquid water stored on the canopy \([kg m^{-2}] (W_{l,c})\)
[in,out]snocanIntercepted frozen water stored on the canopy \([kg m^{-2}] (W_{f,c})\)
[in,out]tcanTemperature of vegetation canopy \([K] (T_c)\)
[in,out]chcapHeat capacity of vegetation canopy \([J m^{-2} K^{-1}] (C_c)\)
[in,out]htccInternal energy change of canopy due to changes in temperature and/or mass \([W m^{-2}] (I_c)\)
[in,out]rofcLiquid/frozen water runoff from vegetation \([kg m^{-2} s^{-1}]\)
[in,out]rovgLiquid/frozen water runoff from vegetation to ground surface \([kg m^{-2} s^{-1}]\)
[in,out]pcpnPrecipitation incident on snow pack \([kg m^{-2} s^{-1}]\)
[in,out]pcpgPrecipitation incident on ground \([kg m^{-2} s^{-1}]\)
[in]fiFractional coverage of subarea in question on modelled area \([ ] (X_i)\)
[in]fsvfSky view factor of surface under vegetation canopy [ ]
[in]cwlcapInterception storage capacity of vegetation for liquid water \([kg m^{-2}]\)
[in]cwfcapInterception storage capacity of vegetation for frozen water \([kg m^{-2}] (W_{f,max})\)
[in]cmassMass of vegetation canopy \([kg m^{-2}]\)
[in]rhosniDensity of fresh snow \([kg m^{-3}]\)
[in]tsurxGround or snow surface temperature of subarea [K]

The calculations in this subroutine are performed if the rainfall or snowfall rates over the modelled area are greater than zero, or if the intercepted liquid water RAICAN or frozen water SNOCAN is greater than zero (to allow for unloading). The throughfall of rainfall or snowfall incident on the canopy, RTHRU or STHRU, is calculated from FSVF, the canopy gap fraction or sky view factor. The remaining rainfall or snowfall is assigned to interception, as RINT and SINT. The resulting temperature of liquid water on the canopy, TRCAN, is calculated as a weighted average of RAICAN at the canopy temperature TCAN, and RINT at the rainfall temperature TR. The resulting temperature of frozen water on the canopy, TSCAN, is calculated as a weighted average of SNOCAN at the canopy temperature TCAN, and SINT at the snowfall temperature TS.

Calculations are now done to ascertain whether the total liquid water on the canopy exceeds the liquid water interception capacity CWLCAP. If such is the case, this excess is assigned to RDRIP, water dripping off the canopy. The rainfall rate reaching the surface under the canopy is calculated as RDRIP + RTHRU, and the temperature of this water flux is calculated as a weighted average of RDRIP at a temperature of TRCAN, and RTHRU at the original rainfall temperature TR. The remaining intercepted water becomes CWLCAP. Otherwise, the rainfall rate reaching the surface under the canopy is set to RTHRU, and the liquid water on the canopy RAICAN is augmented by RINT.

Interception and unloading of snow on the canopy is calculated using a more complex :: method. The amount of snow intercepted during a snowfall event over a time step, \(\Delta W_{f, i}\) , or SLOAD, is obtained from the initial intercepted snow amount \(W_{f, c}\) and the interception capacity \(W_{f, max}\) , following Hedstrom and Pomeroy (1998), as:

\(\Delta W_{f, i} = (W_{f, max} – W_{f, c} ) [1 – exp(-S_{int} /W_{f, max} )]\)

where \(S_{int}\) is the amount of snow incident on the canopy during the time step. The amount of snow not stored by interception, SWXCES, is calculated as SINT – SLOAD. Between and during precipitation events, snow is unloaded from the canopy through wind gusts and snow densification. These effects of these processes are estimated using an empirical exponential relationship for the snow unloading rate \(W_{f, u}\) or SNUNLD, again following Hedstrom and Pomeroy (1998):

\(W_{f, u} = {W_{f, c} + \Delta W_{f, i} } exp (-U \Delta t)\)

where U is a snow unloading coefficient, assigned a value of \(0.1 d^{-1}\) or \(1.157 * 10^{-6} s{-1}\). The sum of SWXCES and SNUNLD is assigned to SDRIP, the snow or frozen water falling off the canopy. The snowfall rate reaching the surface under the canopy is calculated as SDRIP + STHRU, and the temperature of this water flux is calculated as a weighted average of SDRIP at a temperature of TSCAN, and STHRU at the original snowfall temperature TS. The frozen water stored on the canopy is recalculated as SNOCAN + SINT – SWXCES - SNUNLD. Otherwise, the snowfall rate reaching the surface under the canopy is set to STHRU, and SNOCAN is augmented by SINT.

In the final section of the subroutine, the initial heat capacity and temperature of the canopy are saved in temporary variables. The new canopy heat capacity is calculated as a weighted average over the specific heats of the liquid and frozen water stored on the canopy and the canopy mass. The canopy temperature is calculated as a weighted average over the stored liquid and frozen water at the updated temperatures TRCAN and TSCAN, and the vegetation mass at the original temperature TCAN. Then the change in internal energy \(I_c\) of the vegetation canopy as a result of the water movement above is calculated as the difference in \(I_c\) before and after these processes:

\[ \Delta I_c = X_i \Delta [C_c T_c ] / \Delta t \]

where \(C_c\) represents the canopy heat capacity, \(T_c\) the canopy temperature, \(\Delta t\) the length of the time step, and \(X_i\) the fractional coverage of the subarea under consideration relative to the modelled area.

Finally, the rainfall and snowfall temperatures are converted to degrees C. (In the absence of precipitation, both are set equal to the surface temperature of the subarea to avoid floating point errors in later subroutines.) For subareas with a snow cover (IWATER = 2), the water running off the canopy and the precipitation incident on the snow pack are updated using RDRIP and SDRIP. For subareas without snow cover (IWATER = 1), the water running off the canopy is updated using RDRIP and SDRIP, the precipitation incident on the snow pack is augmented by SDRIP, and the precipitation incident on bare ground is augmented by RDRIP.