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

Calculates vegetation albedos, transmissivities and stomatal resistances. More...

Functions/Subroutines

subroutine canopyalbedotransmiss (ALVSCN, ALIRCN, ALVSCS, ALIRCS, TRVSCN, TRIRCN, TRVSCS, TRIRCS, RC, RCS, ALVSC, ALIRC, RSMIN, QA50, VPDA, VPDB, PSIGA, PSIGB, FC, FCS, FSNOW, FSNOWC, FSNOCS, FCAN, FCANS, PAI, PAIS, AIL, PSIGND, FCLOUD, COSZS, QSWINV, VPD, TA, ACVDAT, ACIDAT, ALVSGC, ALIRGC, ALVSSC, ALIRSC, ILG, IL1, IL2, JL, IC, ICP1, IG, IALC, CXTEFF, TRVS, TRIR, RCACC, RCG, RCV, RCT, GC)
 

Detailed Description

Calculates vegetation albedos, transmissivities and stomatal resistances.

Author
D. Verseghy, M. Lazare, P. Bartlett, R. Harvey, J. Melton

Function/Subroutine Documentation

◆ canopyalbedotransmiss()

subroutine canopyalbedotransmiss ( real, dimension(ilg), intent(inout)  ALVSCN,
real, dimension(ilg), intent(inout)  ALIRCN,
real, dimension(ilg), intent(inout)  ALVSCS,
real, dimension(ilg), intent(inout)  ALIRCS,
real, dimension(ilg), intent(inout)  TRVSCN,
real, dimension(ilg), intent(inout)  TRIRCN,
real, dimension(ilg), intent(inout)  TRVSCS,
real, dimension(ilg), intent(inout)  TRIRCS,
real, dimension(ilg), intent(inout)  RC,
real, dimension(ilg), intent(out)  RCS,
real, dimension(ilg,icp1), intent(in)  ALVSC,
real, dimension(ilg,icp1), intent(in)  ALIRC,
real, dimension(ilg,ic), intent(in)  RSMIN,
real, dimension(ilg,ic), intent(in)  QA50,
real, dimension(ilg,ic), intent(in)  VPDA,
real, dimension(ilg,ic), intent(in)  VPDB,
real, dimension(ilg,ic), intent(in)  PSIGA,
real, dimension(ilg,ic), intent(in)  PSIGB,
real, dimension(ilg), intent(in)  FC,
real, dimension(ilg), intent(in)  FCS,
real, dimension(ilg), intent(in)  FSNOW,
real, dimension(ilg), intent(in)  FSNOWC,
real, dimension(ilg), intent(in)  FSNOCS,
real, dimension(ilg,ic), intent(in)  FCAN,
real, dimension(ilg,ic), intent(in)  FCANS,
real, dimension(ilg,ic), intent(in)  PAI,
real, dimension(ilg,ic), intent(in)  PAIS,
real, dimension(ilg,ic), intent(in)  AIL,
real, dimension(ilg), intent(in)  PSIGND,
real, dimension(ilg), intent(in)  FCLOUD,
real, dimension(ilg), intent(in)  COSZS,
real, dimension(ilg), intent(in)  QSWINV,
real, dimension(ilg), intent(in)  VPD,
real, dimension(ilg), intent(in)  TA,
real, dimension(ilg,ic), intent(in)  ACVDAT,
real, dimension(ilg,ic), intent(in)  ACIDAT,
real, dimension(ilg), intent(in)  ALVSGC,
real, dimension(ilg), intent(in)  ALIRGC,
real, dimension(ilg), intent(in)  ALVSSC,
real, dimension(ilg), intent(in)  ALIRSC,
integer, intent(in)  ILG,
integer, intent(in)  IL1,
integer, intent(in)  IL2,
integer, intent(in)  JL,
integer, intent(in)  IC,
integer, intent(in)  ICP1,
integer, intent(in)  IG,
integer, intent(in)  IALC,
real, dimension(ilg,ic), intent(inout)  CXTEFF,
real, dimension(ilg), intent(inout)  TRVS,
real, dimension(ilg), intent(inout)  TRIR,
real, dimension(ilg,ic), intent(inout)  RCACC,
real, dimension(ilg,ic), intent(inout)  RCG,
real, dimension(ilg,ic), intent(inout)  RCV,
real, dimension(ilg), intent(inout)  RCT,
real, dimension(ilg), intent(inout)  GC 
)
Parameters
[in,out]alvscnVisible albedo of vegetation over bare ground [ ]
[in,out]alircnNear-IR albedo of vegetation over bare ground [ ]
[in,out]alvscsVisible albedo of vegetation over snow [ ]
[in,out]alircsNear-IR albedo of vegetation over snow [ ]
[in,out]trvscnVisible transmissivity of vegetation over bare ground \([ ] (\tau_c)\)
[in,out]trircnNear-IR transmissivity of vegetation over bare ground \([ ] (\tau_c)\)
[in,out]trvscsVisible transmissivity of vegetation over snow \([ ] (\tau_c)\)
[in,out]trircsNear-IR transmissivity of vegetation over snow \([ ] (\tau_c)\)
[in,out]rcStomatal resistance of vegetation over bare ground \([s m^{-1}] (r_c)\)
[out]rcsStomatal resistance of vegetation over snow \([s m^{-1}]\)
[in]alvscBackground average visible albedo of vegetation category [ ]
[in]alircBackground average near-infrared albedo of vegetation category [ ]
[in]rsminMinimum stomatal resistance of vegetation category \([s m^{-1}] (r_{s,min})\)
[in]qa50Reference value of incoming shortwave radiation for vegetation category (used in stomatal resistance calculation) \([W m^{-2}] (K \downarrow_{1/2})\)
[in]vpdaVapour pressure deficit coefficient for vegetation category (used in stomatal resistance calculation) \([ ] (c_{v1})\)
[in]vpdbVapour pressure deficit coefficient for vegetation category (used in stomatal resistance calculation) \([ ] (c_{v2})\)
[in]psigaSoil moisture suction coefficient for vegetation category (used in stomatal resistance calculation) \([ ] (c_{\Psi 1})\)
[in]psigbSoil moisture suction coefficient for vegetation category (used in stomatal resistance calculation) \([ ] (c_{\Psi 2})\)
[in]fcanFractional coverage of vegetation category over bare ground \([ ] (X_i)\)
[in]fcansFractional coverage of vegetation category over snow [ ]
[in]paiPlant area index of vegetation category over bare ground \([ ] (\Lambda_p)\)
[in]paisPlant area index of vegetation category over snow \([ ] (\Lambda_p)\)
[in]acvdatOptional user-specified value of canopy visible albedo to override CLASS-calculated value [ ]
[in]acidatOptional user-specified value of canopy near-infrared albedo to override CLASS- calculated value [ ]
[in]ailLeaf area index of vegetation category over bare ground \([ ] (\Lambda)\)
[in]fcFractional coverage of canopy over bare ground [ ]
[in]fcsFractional coverage of canopy over snow [ ]
[in]fsnowDiagnosed fractional snow coverage [ ]
[in]fsnowcFractional coverage of canopy by frozen water over snow-free subarea [ ]
[in]fsnocsFractional coverage of canopy by frozen water over snow-covered subarea [ ]
[in]psigndMinimum liquid moisture suction in soil layers \([m] (\Psi_s)\)
[in]fcloudFractional cloud cover \([ ] (X_i) \)
[in]coszsCosine of solar zenith angle [ ]
[in]qswinvVisible radiation incident on horizontal surface \([W m^{-2}] (K)\)
[in]vpdVapour pressure deficit of air \([mb] {\Delta e }\)
[in]taAir temperature at reference height \([K] (T_a) \)
[in]alvsgcVisible/near-IR albedo of bare ground under vegetation [ ]
[in]alirgcVisible/near-IR albedo of bare ground under vegetation [ ]
[in]alvsscVisible/near-IR albedo of snow under vegetation [ ]
[in]alirscVisible/near-IR albedo of snow under vegetation [ ]

The transmissivity \(\tau_c\) of a vegetation canopy to shortwave radiation is obtained by applying a form of Beer’s law of radiation transfer in non-scattering media: \(\tau_c = exp[-\kappa \Lambda_p]\) where \(\kappa\) is the canopy extinction coefficient and \(\Lambda_p\) is the plant area index. The extinction coefficient is calculated after Goudriaan (1988) [40] as \(\kappa = \epsilon O/cos(Z)\) where epsilon is a correction factor less than or equal to 1, accounting for forward-scattering of radiation and non-random leaf distributions (i.e. clumping), O represents the mean projected leaf area fraction perpendicular to the incoming radiation, and Z is the zenith angle of the incoming radiation. For crops, grass and needleleaf trees, the distribution of leaf angles is assumed to be spherical, and thus O = 0.5. For broadleaf trees, the preferred leaf orientation tends to be horizontal; thus O = cos(Z).

In the clear-sky case, incoming shortwave radiation is dominated by the direct beam; thus, the transmissivity for clear skies \(\tau_{c, 0}\) is evaluated by simply setting Z to \(Z_s\), the solar zenith angle. An extensive search of the literature for values of epsilon appropriate to the four vegetation categories yielded the following results for the extinction coefficient:

\(\kappa = 0.3/cos(Z_s) (needleleaf trees)\) \(\kappa = 0.4 (broadleaf trees, full canopy)\) \(\kappa = 0.4/cos(Z_s) (broadleaf trees, leafless)\) \(\kappa = 0.4/cos(Z_s) (crops and grass)\)

In the visible range of the shortwave spectrum, scattering is less important because of high leaf absorptivities. The following results were obtained for visible radiation:

\(\kappa = 0.4/cosZ_s (needleleaf trees)\) \(\kappa = 0.7 (broadleaf trees, full canopy)\) \(\kappa = 0.4/cosZ_s (broadleaf trees, leafless)\) \(\kappa = 0.5/cosZ_s (crops and grass)\)

In the case of overcast skies, the hemispherical distribution of incoming shortwave radiation is modelled using the generally accepted “standard overcast sky” distribution (e.g. Steven and Unsworth, 1980), where the shortwave radiation D(Z) emanating from a sky zenith angle Z is approximated as

\(D(Z) = D(0) [(1 + 1.23cosZ)/2.23].\)

Integration of the cloudy-sky transmissivity \(tau_{c, cloudy}\) over the sky hemisphere is performed using a simple weighting function proposed by Goudriaan (1988) [40] :

\(\tau_{c, cloudy} = 0.3 \tau_c(Z=15^o) + 0.5 \tau_c(Z=45^o) + 0.2 \tau_c(Z=75^o)\)

The albedo \(\alpha_c\) of a vegetation canopy is, like the transmissivity, dependent in principle on the zenith angle Z of the incoming radiation and the mean projected leaf area fraction O. However, in practice the observed diurnal and seasonal variation of vegetation albedo tends to be slight for closed canopies or for radiation zenith angles larger than a few degrees. Since the former is generally true in the tropics and the latter in the extratropics, the diurnal variation of visible and near-infrared canopy albedo is neglected in CLASS.

Corrections are applied to the average albedos to account for the effects of intercepted snow on the canopy and incomplete canopy closure. The presence of snow on the canopy will increase the albedo; this increase will be larger in the visible range of the spectrum, since the visible albedo of vegetation is typically very small. Making use of data presented in Bartlett et al. (2015) [15], the visible albedo of snow-covered vegetation is set to 0.27 and near-infrared albedo to 0.38.

If the canopy closure is incomplete, a fraction chi of the ground or snow under the canopy will be visible through gaps in it. This fraction is equal to the sky view factor of the underlying surface, which is calculated using an equation analogous to that for the canopy transmissivity, as an exponential function of the plant area index \(\Lambda_p\):

\(\chi = exp[-c\Lambda_p]\)

where c is a constant depending on the vegetation category. The overall albedo \(\alpha_T\) is calculated as a weighted average of the canopy albedo and the underlying ground or snow albedo (the latter weighted by the canopy transmissivity, to account for the decreased downwelling shortwave radiation at the surface):

\(\alpha_T = (1 – \chi) \alpha_c + \chi \tau_c \alpha_0\)

where \(alpha_0\) is the albedo of the surface under the canopy.

At the beginning of the subroutine, values are assigned to exponentiation terms and a series of work arrays is initialized to zero. Then the transmissivity and albedo of each vegetation category are calculated in turn, first over bare soil and then over a snow pack. After each of the latter sets of calculations, consistency checks are carried out to ensure that the calculated albedos and transmissivities are not less than 0 or greater than 1, and that the transmissivity is not greater than 90% of the non-reflected radiation.

The clear-sky and cloudy-sky transmissivities in the visible range are calculated first, and then the clear-sky and cloudy-sky transmissivities in the total shortwave spectrum, using the extinction coefficient equations above. (For broadleaf trees, the minimum of the full-canopy and leafless calculated values is used.) The overall transmissivity in the visible range at the current time step is obtained as an average of the clear and cloudy-sky values, weighted according to the fractional cloud cover. The effective overall extinction coefficient CXTEFF in the visible range is computed for use later on in the stomatal resistance calculation. The overall transmissivity for the entire shortwave spectrum at the current time step is similarly obtained as an average of the clear and cloudy-sky values, weighted according to the fractional cloud cover. The near-infrared transmissivity is calculated from the total and visible transmissivities, making use of the assumption that visible and near-infrared radiation each typically comprise 50% of the incoming shortwave radiation. Lastly, the aggregated visible and near-infrared transmissivities for the bulk canopy are incremented using the current values weighted by the fractional coverage of the vegetation category. At the end, the sum is normalized by the total fractional vegetation coverage in the subarea.

For the albedos, first the sky view factor and the near-infrared albedo of snow-covered vegetation are calculated. Next, a branch directs further processing depending on the value of the flag IALC. If IALC = 0, the CLASS-calculated visible and near-infrared vegetation albedos are used. These albedos are corrected for the presence of intercepted snow, using an average of the snow- covered and background snow-free albedos weighted according to FSNOWC over snow-free, and FSNOCS over snow-covered subareas (representing the ratio of the amount of snow present on the canopy relative to the interception capacity). The correction for incomplete canopy closure is applied to the resulting visible and near- infrared albedos as described above. If IALC = 1, user- specified albedos for the vegetation canopy are used instead of the CLASS values. These are assumed to incorporate the effects of incomplete canopy closure, but not of the presence of snow. Thus the CLASS values for the albedo of snow-covered vegetation and the albedo of snow under the canopy are still used in the averaging. Finally, the aggregated visible and near-infrared albedos for the bulk canopy are incremented using the current values weighted by the fractional coverage of the vegetation category. At the end, the sum is normalized by the total fractional vegetation coverage in the subarea.

In the final section, the stomatal resistance \(r_c\) of the vegetation canopy is determined. Based on the analysis of Schulze et al. (1995), the unstressed stomatal resistance \(r_{c, u}\) for a given vegetation category can be calculated as a function of the incoming visible shortwave radiation \(K\downarrow\):

\(r_{c, u} = r_{s, min} \kappa_e / ln[{K\downarrow + K\downarrow_{1/2} / \kappa_e} / { K\downarrow exp(-\kappa_e \Lambda) + K\downarrow_{1/2} / \kappa_e }]\)

where \(r_{s, min}\) is the minimum stomatal resistance for the vegetation category, \(\kappa_e\) is the extinction coeffient for visible radiation (CXTEFF above), \(\Lambda\) is the leaf area index, and \(K\downarrow_{1/2}\) is the value of \(K\downarrow\) at which \(r_{c, u} = 2 r_{s, min}.\)

Suboptimum environmental conditions for transpiration may lead to stresses on the plant, causing the stomatal resistance to be greater than its unstressed value. The effects of these stresses are modelled by defining functions of the air temperature \(T_a\), the air vapour pressure deficit \(\Delta e\), and the soil moisture suction \(\Psi_s\). These functions are used to derive \(r_{c, i}\) of each vegetation category on the basis of \(r_{c, u, i}\):

\(r_{c, i} = f(T_a) f( \Delta_e) f( \Psi_s) * r_{c, u, i}\)

The air temperature function \(f(T_a)\) has a value of 1 for temperatures between \(5^o C\) and \(40^o C\), and an arbitrary large value of 250 for temperatures less than \(-5^o C\) and greater than \(50^o C\). Between these points it varies in a linear fashion. For the vapour pressure deficit function \(f( \Delta e)\), two alternate forms are provided, after Oren et al. (1999) and Wu et al. (2000) respectively:

\(f( \Delta e) = [( \Delta e/10.0)^{cv2}]/c_{v1}\) and \(f(\Delta e) = 1/[exp(-c_{v1} \Delta e/10.0)]\)

where \(c_{v1}\) and \(c_{v2}\) are parameters depending on the vegetation category. If \(c_{v2}\) is greater than zero, the first form is used if not, the second form is used. The soil moisture suction function \(f(\Psi_s)\) is expressed, following Choudhury and Idso (1985) [20] and Fisher et al. (1981) [38], as:

\(f(\Psi_s) = 1 + (\Psi_s / c_{\Psi 1})^{c \Psi 2}\)

where \(c_{\Psi 1}\) and \(c_{\Psi 2}\) are parameters depending on the vegetation category. Finally, the aggregated stomatal resistance for the canopy over the bare ground subarea is obtained as a weighted average over the vegetation categories. (It is assumed that transpiration is suppressed when snow is present under the canopy, so rc for this subarea is set to a large number). Since, following the electrical analogy, resistances act in parallel, the aggregated resistance for the subarea of canopy over bare ground is obtained as an average of inverses:

\(X/r_c = \Sigma (X_i / r_{c, i})\)

The calculations described above pertaining to stomatal resistances are performed in loops 850, 900 and 950. In the 850 loop, \(f(T_a)\) is evaluated. In the 900 loop, for each vegetation category in turn, \(f(\Delta e)\), \(f(\Psi_s)\) and \(r_{c, i}\) are determined. \(r_{c, i}\) is assigned upper and lower limits of 5000 and 10 \(s m^{-1}\) respectively, and the accumulated stomatal resistance for the canopy is incremented by \(X_i / r_{c, i}\). In loop 950, if the incoming visible radiation is small, the stomatal resistances are likewise set to a large number. Otherwise, the stomatal resistance of vegetation over snow is set to a large number, and the normalized, aggregated stomatal resistance of vegetation over soil is obtained by inverting the accumulated value.