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

Organizes calculation of radiation-related and other surface parameters. More...

Functions/Subroutines

subroutine radiationdriver (FC, FG, FCS, FGS, ALVSCN, ALIRCN, ALVSG, ALIRG, ALVSCS, ALIRCS, ALVSSN, ALIRSN, ALVSGC, ALIRGC, ALVSSC, ALIRSC, TRVSCN, TRIRCN, TRVSCS, TRIRCS, FSVF, FSVFS, RAICAN, RAICNS, SNOCAN, SNOCNS, FRAINC, FSNOWC, FRAICS, FSNOCS, DISP, DISPS, ZOMLNC, ZOMLCS, ZOELNC, ZOELCS, ZOMLNG, ZOMLNS, ZOELNG, ZOELNS, CHCAP, CHCAPS, CMASSC, CMASCS, CWLCAP, CWFCAP, CWLCPS, CWFCPS, RC, RCS, RBCOEF, FROOT, FROOTS, ZPLIMC, ZPLIMG, ZPLMCS, ZPLMGS, ZSNOW, WSNOW, ALVS, ALIR, HTCC, HTCS, HTC, ALTG, ALSNO, TRSNOWC, TRSNOWG, WTRC, WTRS, WTRG, CMAI, FSNOW, FCANMX, ZOLN, ALVSC, ALIRC, PAIMAX, PAIMIN, CWGTMX, ZRTMAX, RSMIN, QA50, VPDA, VPDB, PSIGA, PSIGB, PAIDAT, HGTDAT, ACVDAT, ACIDAT, ASVDAT, ASIDAT, AGVDAT, AGIDAT, ALGWV, ALGWN, ALGDV, ALGDN, THLIQ, THICE, TBAR, RCAN, SNCAN, TCAN, GROWTH, SNO, TSNOW, RHOSNO, ALBSNO, ZBLEND, Z0ORO, SNOLIM, ZPLMG0, ZPLMS0, FCLOUD, TA, VPD, RHOAIR, COSZS, FSDB, FSFB, REFSNO, BCSNO, QSWINV, RADJ, DLON, RHOSNI, DELZ, DELZW, ZBOTW, THPOR, THLMIN, PSISAT, BI, PSIWLT, HCPS, ISAND, FCANCMX, ICTEM, ctem_on, RMATC, ZOLNC, CMASVEGC, AILC, PAIC, NOL2PFTS, SLAIC, AILCG, AILCGS, FCANC, FCANCS, IDAY, ILG, IL1, IL2, NBS, JL, N, IC, ICP1, IG, IDISP, IZREF, IWF, IPAI, IHGT, IALC, IALS, IALG, ISNOALB, ALVSCTM, ALIRCTM, ipeatland)
 

Detailed Description

Organizes calculation of radiation-related and other surface parameters.

Author
D. Verseghy, M. Lazare, J. Cole, Y. Wu, J. Melton

Function/Subroutine Documentation

◆ radiationdriver()

subroutine radiationdriver ( real, dimension (ilg), intent(out)  FC,
real, dimension (ilg), intent(out)  FG,
real, dimension (ilg), intent(out)  FCS,
real, dimension (ilg), intent(out)  FGS,
real, dimension(ilg), intent(out)  ALVSCN,
real, dimension(ilg), intent(out)  ALIRCN,
real, dimension (ilg), intent(out)  ALVSG,
real, dimension (ilg), intent(out)  ALIRG,
real, dimension(ilg), intent(out)  ALVSCS,
real, dimension(ilg), intent(out)  ALIRCS,
real, dimension(ilg), intent(out)  ALVSSN,
real, dimension(ilg), intent(out)  ALIRSN,
real, dimension(ilg), intent(out)  ALVSGC,
real, dimension(ilg), intent(out)  ALIRGC,
real, dimension(ilg), intent(out)  ALVSSC,
real, dimension(ilg), intent(out)  ALIRSC,
real, dimension(ilg), intent(out)  TRVSCN,
real, dimension(ilg), intent(out)  TRIRCN,
real, dimension(ilg), intent(out)  TRVSCS,
real, dimension(ilg), intent(out)  TRIRCS,
real, dimension (ilg), intent(out)  FSVF,
real, dimension (ilg), intent(out)  FSVFS,
real, dimension(ilg), intent(out)  RAICAN,
real, dimension(ilg), intent(out)  RAICNS,
real, dimension(ilg), intent(out)  SNOCAN,
real, dimension(ilg), intent(out)  SNOCNS,
real, dimension(ilg), intent(out)  FRAINC,
real, dimension(ilg), intent(out)  FSNOWC,
real, dimension(ilg), intent(out)  FRAICS,
real, dimension(ilg), intent(out)  FSNOCS,
real, dimension (ilg), intent(out)  DISP,
real, dimension (ilg), intent(out)  DISPS,
real, dimension(ilg), intent(out)  ZOMLNC,
real, dimension(ilg), intent(out)  ZOMLCS,
real, dimension(ilg), intent(out)  ZOELNC,
real, dimension(ilg), intent(out)  ZOELCS,
real, dimension(ilg), intent(out)  ZOMLNG,
real, dimension(ilg), intent(out)  ZOMLNS,
real, dimension(ilg), intent(out)  ZOELNG,
real, dimension(ilg), intent(out)  ZOELNS,
real, dimension (ilg), intent(out)  CHCAP,
real, dimension(ilg), intent(out)  CHCAPS,
real, dimension(ilg), intent(out)  CMASSC,
real, dimension(ilg), intent(out)  CMASCS,
real, dimension(ilg), intent(out)  CWLCAP,
real, dimension(ilg), intent(out)  CWFCAP,
real, dimension(ilg), intent(out)  CWLCPS,
real, dimension(ilg), intent(out)  CWFCPS,
real, dimension (ilg), intent(out)  RC,
real, dimension (ilg), intent(out)  RCS,
real, dimension(ilg), intent(out)  RBCOEF,
real, dimension (ilg,ig), intent(out)  FROOT,
real, dimension(ilg,ig), intent(out)  FROOTS,
real, dimension(ilg), intent(out)  ZPLIMC,
real, dimension(ilg), intent(out)  ZPLIMG,
real, dimension(ilg), intent(out)  ZPLMCS,
real, dimension(ilg), intent(out)  ZPLMGS,
real, dimension (ilg), intent(out)  ZSNOW,
real, dimension (ilg), intent(out)  WSNOW,
real, dimension (ilg), intent(out)  ALVS,
real, dimension (ilg), intent(out)  ALIR,
real, dimension (ilg), intent(out)  HTCC,
real, dimension (ilg), intent(out)  HTCS,
real, dimension (ilg,ig), intent(out)  HTC,
real, dimension(ilg,nbs), intent(out)  ALTG,
real, dimension(ilg,nbs), intent(out)  ALSNO,
real, dimension(ilg), intent(out)  TRSNOWC,
real, dimension(ilg,nbs), intent(out)  TRSNOWG,
real, dimension (ilg), intent(out)  WTRC,
real, dimension (ilg), intent(out)  WTRS,
real, dimension (ilg), intent(out)  WTRG,
real, dimension (ilg), intent(out)  CMAI,
real, dimension (ilg), intent(out)  FSNOW,
real, dimension(ilg,icp1), intent(in)  FCANMX,
real, dimension (ilg,icp1), intent(in)  ZOLN,
real, dimension (ilg,icp1), intent(inout)  ALVSC,
real, dimension (ilg,icp1), intent(inout)  ALIRC,
real, dimension(ilg,ic), intent(in)  PAIMAX,
real, dimension(ilg,ic), intent(in)  PAIMIN,
real, dimension(ilg,ic), intent(in)  CWGTMX,
real, dimension(ilg,ic), intent(in)  ZRTMAX,
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,ic), intent(in)  PAIDAT,
real, dimension(ilg,ic), intent(in)  HGTDAT,
real, dimension(ilg,ic), intent(in)  ACVDAT,
real, dimension(ilg,ic), intent(in)  ACIDAT,
real, dimension(ilg), intent(in)  ASVDAT,
real, dimension(ilg), intent(in)  ASIDAT,
real, dimension(ilg), intent(in)  AGVDAT,
real, dimension(ilg), intent(in)  AGIDAT,
real, dimension(ilg), intent(in)  ALGWV,
real, dimension(ilg), intent(in)  ALGWN,
real, dimension(ilg), intent(in)  ALGDV,
real, dimension(ilg), intent(in)  ALGDN,
real, dimension (ilg,ig), intent(in)  THLIQ,
real, dimension (ilg,ig), intent(in)  THICE,
real, dimension (ilg,ig), intent(in)  TBAR,
real, dimension (ilg), intent(in)  RCAN,
real, dimension (ilg), intent(in)  SNCAN,
real, dimension (ilg), intent(in)  TCAN,
real, dimension(ilg), intent(in)  GROWTH,
real, dimension (ilg), intent(in)  SNO,
real, dimension (ilg), intent(in)  TSNOW,
real, dimension(ilg), intent(in)  RHOSNO,
real, dimension(ilg), intent(in)  ALBSNO,
real, dimension(ilg), intent(in)  ZBLEND,
real, dimension (ilg), intent(in)  Z0ORO,
real, dimension(ilg), intent(in)  SNOLIM,
real, dimension(ilg), intent(in)  ZPLMG0,
real, dimension(ilg), intent(in)  ZPLMS0,
real, dimension(ilg), intent(in)  FCLOUD,
real, dimension (ilg), intent(in)  TA,
real, dimension (ilg), intent(in)  VPD,
real, dimension(ilg), intent(in)  RHOAIR,
real, dimension (ilg), intent(in)  COSZS,
real, dimension(ilg,nbs), intent(in)  FSDB,
real, dimension(ilg,nbs), intent(in)  FSFB,
real, dimension(ilg), intent(in)  REFSNO,
real, dimension(ilg), intent(in)  BCSNO,
real, dimension(ilg), intent(in)  QSWINV,
real, dimension (ilg), intent(in)  RADJ,
real, dimension (ilg), intent(in)  DLON,
real, dimension(ilg), intent(in)  RHOSNI,
real, dimension (ig), intent(in)  DELZ,
real, dimension (ilg,ig), intent(in)  DELZW,
real, dimension (ilg,ig), intent(in)  ZBOTW,
real, dimension (ilg,ig), intent(in)  THPOR,
real, dimension(ilg,ig), intent(in)  THLMIN,
real, dimension(ilg,ig), intent(in)  PSISAT,
real, dimension (ilg,ig), intent(in)  BI,
real, dimension(ilg,ig), intent(in)  PSIWLT,
real, dimension (ilg,ig), intent(in)  HCPS,
integer, dimension (ilg,ig), intent(in)  ISAND,
real, dimension(ilg,ictem), intent(in)  FCANCMX,
integer, intent(in)  ICTEM,
logical, intent(in)  ctem_on,
real, dimension(ilg,ic,ig), intent(in)  RMATC,
real, dimension(ilg,ic), intent(in)  ZOLNC,
real, dimension(ilg,ic), intent(in)  CMASVEGC,
real, dimension(ilg,ic), intent(in)  AILC,
real, dimension(ilg,ic), intent(in)  PAIC,
integer, dimension(ic), intent(in)  NOL2PFTS,
real, dimension(ilg,ic), intent(in)  SLAIC,
real, dimension(ilg,ictem), intent(in)  AILCG,
real, dimension(ilg,ictem), intent(in)  AILCGS,
real, dimension(ilg,ictem), intent(in)  FCANC,
real, dimension(ilg,ictem), intent(in)  FCANCS,
integer, intent(in)  IDAY,
integer, intent(in)  ILG,
integer, intent(in)  IL1,
integer, intent(in)  IL2,
integer, intent(in)  NBS,
integer, intent(in)  JL,
integer, intent(in)  N,
integer, intent(in)  IC,
integer, intent(in)  ICP1,
integer, intent(in)  IG,
integer, intent(in)  IDISP,
integer, intent(in)  IZREF,
integer, intent(in)  IWF,
integer, intent(in)  IPAI,
integer, intent(in)  IHGT,
integer, intent(in)  IALC,
integer, intent(in)  IALS,
integer, intent(in)  IALG,
integer, intent(in)  ISNOALB,
real, dimension(ilg,ic), intent(in)  ALVSCTM,
real, dimension(ilg,ic), intent(in)  ALIRCTM,
integer, dimension(ilg), intent(in)  ipeatland 
)
Parameters
[in]isnoalbSwitch to model snow albedo in two or more wavelength bands
[out]fcSubarea fractional coverage of modelled area [ ]
[out]fgSubarea fractional coverage of modelled area [ ]
[out]fcsSubarea fractional coverage of modelled area [ ]
[out]fgsSubarea fractional coverage of modelled area [ ]
[out]alvscnVisible albedo of vegetation over bare ground [ ]
[out]alircnNear-IR albedo of vegetation over bare ground [ ]
[out]alvsgVisible albedo of open bare ground [ ]
[out]alirgNear-IR albedo of open bare ground [ ]
[out]alvscsVisible albedo of vegetation over snow [ ]
[out]alircsNear-IR albedo of vegetation over snow [ ]
[out]alvssnVisible albedo of open snow cover [ ]
[out]alirsnNear-IR albedo of open snow cover [ ]
[out]alvsgcVisible albedo of bare ground under vegetation [ ]
[out]alirgcNear-IR albedo of bare ground under vegetation [ ]
[out]alvsscVisible albedo of snow under vegetation [ ]
[out]alirscNear-IR albedo of snow under vegetation [ ]
[out]trvscnVisible transmissivity of vegetation over bare ground [ ]
[out]trircnNear-IR transmissivity of vegetation over bare ground [ ]
[out]trvscsVisible transmissivity of vegetation over snow [ ]
[out]trircsNear-IR transmissivity of vegetation over snow [ ]
[out]fsvfSky view factor for bare ground under canopy [ ]
[out]fsvfsSky view factor for snow under canopy [ ]
[out]raicanIntercepted liquid water stored on canopy over bare ground \([kg m^{-2}]\)
[out]raicnsIntercepted liquid water stored on canopy over snow \([kg m^{-2}]\)
[out]snocanIntercepted frozen water stored on canopy over bare soil \([kg m^{-2}]\)
[out]snocnsIntercepted frozen water stored on canopy over snow \([kg m^{-2}]\)
[out]fraincFractional coverage of canopy by liquid water over snow-free subarea [ ]
[out]fsnowcFractional coverage of canopy by frozen water over snow-free subarea [ ]
[out]fraicsFractional coverage of canopy by liquid water over snow-covered subarea [ ]
[out]fsnocsFractional coverage of canopy by frozen water over snow-covered subarea [ ]
[out]dispDisplacement height of vegetation over bare ground [m]
[out]dispsDisplacement height of vegetation over snow [m]
[out]zomlncLogarithm of roughness length for momentum of vegetation over bare ground [ ]
[out]zomlcsLogarithm of roughness length for momentum of vegetation over snow [ ]
[out]zoelncLogarithm of roughness length for heat of vegetation over bare ground [ ]
[out]zoelcsLogarithm of roughness length for heat of vegetation over snow [ ]
[out]zomlngLogarithm of roughness length for momentum of bare ground [ ]
[out]zomlnsLogarithm of roughness length for momentum of snow [ ]
[out]zoelngLogarithm of roughness length for heat of bare ground [ ]
[out]zoelnsLogarithm of roughness length for heat of snow [ ]
[out]chcapHeat capacity of canopy over bare ground \( [J m^{-2} K^{-1}]\)
[out]chcapsHeat capacity of canopy over snow \([J m^{-2} K^{-1}]\)
[out]cmasscMass of canopy over bare ground \([kg m^{-2}]\)
[out]cmascsMass of canopy over snow \([kg m^{-2}]\)
[out]cwlcapStorage capacity of canopy over bare ground for liquid water \([kg m^{-2}]\)
[out]cwfcapStorage capacity of canopy over bare ground for frozen water \([kg m^{-2}]\)
[out]cwlcpsStorage capacity of canopy over snow for liquid water \([kg m^{-2}]\)
[out]cwfcpsStorage capacity of canopy over snow for frozen water \([kg m^{-2}]\)
[out]rcStomatal resistance of vegetation over bare ground \([s m^{-1}]\)
[out]rcsStomatal resistance of vegetation over snow \([s m^{-1}]\)
[out]zplimcMaximum water ponding depth for ground under canopy [m]
[out]zplimgMaximum water ponding depth for bare ground [m]
[out]zplmcsMaximum water ponding depth for ground under snow under canopy [m]
[out]zplmgsMaximum water ponding depth for ground under snow [m]
[out]rbcoefParameter for calculation of leaf boundary resistance
[out]trsnowcShort-wave transmissivity of snow pack under vegetation [ ]
[out]zsnowDepth of snow pack \([m] (z_s)\)
[out]wsnowLiquid water content of snow pack \([kg m^{-2}]\)
[out]alvsDiagnosed total visible albedo of land surface [ ]
[out]alirDiagnosed total near-infrared albedo of land surface [ ]
[out]htccDiagnosed internal energy change of vegetation canopy due to conduction and/or change in mass \([W m^{-2}]\)
[out]htcsDiagnosed internal energy change of snow pack due to conduction and/or change in mass \([W m^{-2}]\)
[out]wtrcDiagnosed residual water transferred off the vegetation canopy \([kg m^{-2} s^{-1}]\)
[out]wtrsDiagnosed residual water transferred into or out of the snow pack \([kg m^{-2} s^{-1}]\)
[out]wtrgDiagnosed residual water transferred into or out of the soil \([kg m^{-2} s^{-1}]\)
[out]cmaiAggregated mass of vegetation canopy \([kg m^{-2}]\)
[out]fsnowDiagnosed fractional snow coverage [ ]
[out]frootFraction of total transpiration contributed by soil layer over snow-free subarea [ ]
[out]frootsFraction of total transpiration contributed by snow-covered subarea [ ]
[out]htcDiagnosed internal energy change of soil layer due to conduction and/or change in mass \([W m^{-2}]\)
[out]trsnowgShort-wave transmissivity of snow pack in bare areas [ ]
[out]altgTotal albedo in each modelled wavelength band [ ]
[out]alsnoAlbedo of snow in each modelled wavelength band [ ]
[in]fcanmxMaximum fractional coverage of modelled area by vegetation category [ ]
[in]zolnNatural logarithm of maximum roughness length of vegetation category [ ]
[in,out]alvscBackground average visible albedo of vegetation category [ ]
[in,out]alircBackground average near-infrared albedo of vegetation category [ ]
[in]paimaxMaximum plant area index of vegetation category [ ]
[in]paiminMinimum plant area index of vegetation category [ ]
[in]cwgtmxMaximum canopy mass for vegetation category \([kg m^{-2}]\)
[in]zrtmaxMaximum rooting depth of vegetation category [m]
[in]rsminMinimum stomatal resistance of vegetation category \([s m^{-1}]\)
[in]qa50Reference value of incoming shortwave radiation for vegetation category (used in stomatal resistance calculation) \([W m^{-2}]\)
[in]vpdaVapour pressure deficit coefficient for vegetation category (used in stomatal resistance calculation) [ ]
[in]vpdbVapour pressure deficit coefficient for vegetation category (used in stomatal resistance calculation) [ ]
[in]psigaSoil moisture suction coefficient for vegetation category (used in stomatal resistance calculation) [ ]
[in]psigbSoil moisture suction coefficient for vegetation category (used in stomatal resistance calculation) [ ]
[in]paidatOptional user-specified value of plant area indices of vegetation categories to override CLASS-calculated values [ ]
[in]hgtdatOptional user-specified values of height of vegetation categories to override CLASS- calculated values [m]
[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]thliqVolumetric liquid water content of soil layers \([m^3 m^{-3}]\)
[in]thiceVolumetric frozen water content of soil layers \([m^3 m^{-3}]\)
[in]tbarTemperature of soil layers [K]
[in]asvdatOptional user-specified value of snow visible albedo to override CLASS-calculated value [ ]
[in]asidatOptional user-specified value of snow near- infrared albedo to override CLASS-calculated value [ ]
[in]agvdatOptional user-specified value of ground visible albedo to override CLASS-calculated value [ ]
[in]agidatOptional user-specified value of ground near- infrared albedo to override CLASS-calculated value [ ]
[in]algwvReference albedo for saturated soil (visible) [ ]
[in]algwnReference albedo for saturated soil (NIR) [ ]
[in]algdvReference albedo for dry soil (visible) [ ]
[in]algdnReference albedo for dry soil (NIR) [ ]
[in]rhosniDensity of fresh snow \([kg m^{-3}]\)
[in]z0oroOrographic roughness length [m]
[in]rcanIntercepted liquid water stored on canopy \([kg m^{-2}]\)
[in]sncanIntercepted frozen water stored on canopy \([kg m^{-2}]\)
[in]tcanVegetation canopy temperature [K]
[in]growthVegetation growth index [ ]
[in]snoMass of snow pack \([kg m^{-2}] (W_s)\)
[in]tsnowSnowpack temperature [K]
[in]rhosnoDensity of snow \([kg m^{-3}] (\rho_s)\)
[in]albsnoSnow albedo [ ]
[in]fcloudFractional cloud cover [ ]
[in]taAir temperature at reference height [K]
[in]vpdVapour pressure deficit of air [mb]
[in]rhoairDensity of air \([kg m^{-3}]\)
[in]coszsCosine of solar zenith angle [ ]
[in]qswinvVisible radiation incident on horizontal surface \([W m^{-2}]\)
[in]dlonLongitude of grid cell (east of Greenwich) [degrees]
[in]zblendAtmospheric blending height for surface roughness length averaging [m]
[in]snolimLimiting snow depth below which coverage is < 100% \([m] (z_{s,lim})\)
[in]zplmg0Maximum water ponding depth for snow-free subareas (user-specified when running MESH code) [m]
[in]zplms0Maximum water ponding depth for snow-covered subareas (user-specified when running MESH code) [m]
[in]radjLatitude of grid cell (positive north of equator) [rad]
[in]refsnoSnow grain size (for ISNOALB=1 option) [m]
[in]bcsnoBlack carbon mixing ratio (for ISNOALB=1 option) \([kg m^{-3}]\)
[in]fsdbDirect solar radiation in each modelled wavelength band \([W m^{-2}]\)
[in]fsfbDiffuse solar radiation in each modelled wavelength band \([W m^{-2}]\)
[in]delzwPermeable thickness of soil layer [m]
[in]delzSoil layer thickness [m]
[in]zbotwDepth to permeable bottom of soil layer [m]
[in]thporPore volume in soil layer \([m^3 m^{-3}]\)
[in]thlminResidual soil liquid water content remaining after freezing or evaporation \([m^3 m^{-3}]\)
[in]psisatSoil moisture suction at saturation [m]
[in]biClapp and Hornberger empirical "b" parameter [ ]
[in]psiwltSoil moisture suction at wilting point [m]
[in]hcpsVolumetric heat capacity of soil particles \([J m^{-3}]\)
[in]isandSand content flag
[in]ipeatlandPeatland flag: 0 = not a peatland, 1 = bog, 2 = fen

In the first loop, the depth of snow \(z_s\) is calculated from the snow mass \(W_s\) and density \(\varrho_s\) as: \( z_s = W_s / \varrho_s. \)

If the calculated value of \(z_s\) is less than the limiting snow depth \(z_{s, lim}\), the snow cover is deemed to be discontinuous. The fractional snow coverage \(X_s\) of the modelled area is evaluated as \( X_s = z_s / z_{s, lim} \) and the snow depth is reset to \(z_{s, lim}\). The water content of the snow pack is corrected according to the new snow fractional area.

The subarea albedo and transmissivity arrays (for canopy, bare ground, canopy over snow and snow over bare ground) are next initialized to zero, and the four radiationDriver subsidiary subroutines are called in turn: calcLandSurfParams to evaluate various model parameters for the four subareas, groundAlbedo to calculate the ground surface albedo, snowAlbedoTransmiss to calculate the snow albedo and transmissivity, and canopyAlbedoTransmiss to calculate the canopy albedo, transmissivity and stomatal resistance. Finally, the overall visible, near-infrared and total albedos for the modelled area are determined as weighted averages over the four subareas.