CLASSIC
Canadian Land Surface Scheme including Biogeochemical Cycles
|
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) |
Calculates canopy interception of rainfall and snowfall, and determines rainfall/snowfall rates at ground surface as a result of throughfall and unloading.
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 | ||
) |
[in,out] | r | Rainfall rate over subarea in question \([m s^{-1}]\) |
[in,out] | tr | Temperature of rainfall [C] |
[in,out] | s | Snowfall rate over subarea in question \([m s^{-1}]\) |
[in,out] | ts | Temperature of snowfall [C] |
[in,out] | raican | Intercepted liquid water stored on the canopy \([kg m^{-2}] (W_{l,c})\) |
[in,out] | snocan | Intercepted frozen water stored on the canopy \([kg m^{-2}] (W_{f,c})\) |
[in,out] | tcan | Temperature of vegetation canopy \([K] (T_c)\) |
[in,out] | chcap | Heat capacity of vegetation canopy \([J m^{-2} K^{-1}] (C_c)\) |
[in,out] | htcc | Internal energy change of canopy due to changes in temperature and/or mass \([W m^{-2}] (I_c)\) |
[in,out] | rofc | Liquid/frozen water runoff from vegetation \([kg m^{-2} s^{-1}]\) |
[in,out] | rovg | Liquid/frozen water runoff from vegetation to ground surface \([kg m^{-2} s^{-1}]\) |
[in,out] | pcpn | Precipitation incident on snow pack \([kg m^{-2} s^{-1}]\) |
[in,out] | pcpg | Precipitation incident on ground \([kg m^{-2} s^{-1}]\) |
[in] | fi | Fractional coverage of subarea in question on modelled area \([ ] (X_i)\) |
[in] | fsvf | Sky view factor of surface under vegetation canopy [ ] |
[in] | cwlcap | Interception storage capacity of vegetation for liquid water \([kg m^{-2}]\) |
[in] | cwfcap | Interception storage capacity of vegetation for frozen water \([kg m^{-2}] (W_{f,max})\) |
[in] | cmass | Mass of vegetation canopy \([kg m^{-2}]\) |
[in] | rhosni | Density of fresh snow \([kg m^{-3}]\) |
[in] | tsurx | Ground 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.