CLASSIC
Canadian Land Surface Scheme including Biogeochemical Cycles
|
Calls subroutines to perform surface energy budget calculations. More...
Functions/Subroutines | |
subroutine | energybudgetdriver (TBARC, TBARG, TBARCS, TBARGS, THLIQC, THLIQG, THICEC, THICEG, HCPC, HCPG, TCTOPC, TCBOTC, TCTOPG, TCBOTG, GZEROC, GZEROG, GZROCS, GZROGS, G12C, G12G, G12CS, G12GS, G23C, G23G, G23CS, G23GS, QFREZC, QFREZG, QMELTC, QMELTG, EVAPC, EVAPCG, EVAPG, EVAPCS, EVPCSG, EVAPGS, TCANO, TCANS, RAICAN, SNOCAN, RAICNS, SNOCNS, CHCAP, CHCAPS, TPONDC, TPONDG, TPNDCS, TPNDGS, TSNOCS, TSNOGS, WSNOCS, WSNOGS, RHOSCS, RHOSGS, ITERCT, CDH, CDM, QSENS, TFLUX, QEVAP, EVAP, EVPPOT, ACOND, EVAPB, GT, QG, ST, SU, SV, SQ, SRH, GTBS, SFCUBS, SFCVBS, USTARBS, FSGV, FSGS, FSGG, FLGV, FLGS, FLGG, HFSC, HFSS, HFSG, HEVC, HEVS, HEVG, HMFC, HMFN, HTCC, HTCS, HTC, QFCF, QFCL, DRAG, WTABLE, ILMO, UE, HBL, TAC, QAC, ZREFM, ZREFH, ZDIAGM, ZDIAGH, VPD, TADP, RHOAIR, QSWINV, QSWINI, QLWIN, UWIND, VWIND, TA, QA, PADRY, FC, FG, FCS, FGS, RBCOEF, FSVF, FSVFS, PRESSG, VMOD, ALVSCN, ALIRCN, ALVSG, ALIRG, ALVSCS, ALIRCS, ALVSSN, ALIRSN, ALVSGC, ALIRGC, ALVSSC, ALIRSC, TRVSCN, TRIRCN, TRVSCS, TRIRCS, RC, RCS, WTRG, groundHeatFlux, QLWAVG, FRAINC, FSNOWC, FRAICS, FSNOCS, CMASSC, CMASCS, DISP, DISPS, ZOMLNC, ZOELNC, ZOMLNG, ZOELNG, ZOMLCS, ZOELCS, ZOMLNS, ZOELNS, TBAR, THLIQ, THICE, TPOND, ZPOND, TBASE, TCAN, TSNOW, ZSNOW, RHOSNO, WSNOW, THPOR, THLRET, THLMIN, THFC, THLW, TRSNOWC, TRSNOWG, ALSNO, FSSB, FROOT, FROOTS, RADJ, PCPR, HCPS, TCS, TSFSAV, DELZ, DELZW, ZBOTW, FTEMP, FVAP, RIB, ISAND, AILCG, AILCGS, FCANC, FCANCS, CO2CONC, CO2I1CG, CO2I1CS, CO2I2CG, CO2I2CS, COSZS, XDIFFUS, SLAI, ICTEM, ctem_on, RMATCTEM, FCANCMX, L2MAX, NOL2PFTS, CFLUXCG, CFLUXCS, ANCSVEG, ANCGVEG, RMLCSVEG, RMLCGVEG, TCSNOW, GSNOW, ITC, ITCG, ITG, ILG, IL1, IL2, JL, N, IC, IG, IZREF, ISLFD, NLANDCS, NLANDGS, NLANDC, NLANDG, NLANDI, NBS, ISNOALB, DAYL, DAYL_MAX, ipeatland, ancsmoss, angsmoss, ancmoss, angmoss, rmlcsmoss, rmlgsmoss, rmlcmoss, rmlgmoss, Cmossmas, dmoss, iday, pdd) |
Calls subroutines to perform surface energy budget calculations.
subroutine energybudgetdriver | ( | real, dimension (ilg,ig), intent(out) | TBARC, |
real, dimension (ilg,ig), intent(out) | TBARG, | ||
real, dimension(ilg,ig), intent(out) | TBARCS, | ||
real, dimension(ilg,ig), intent(out) | TBARGS, | ||
real, dimension(ilg,ig), intent(out) | THLIQC, | ||
real, dimension(ilg,ig), intent(out) | THLIQG, | ||
real, dimension(ilg,ig), intent(out) | THICEC, | ||
real, dimension(ilg,ig), intent(out) | THICEG, | ||
real, dimension (ilg,ig), intent(out) | HCPC, | ||
real, dimension (ilg,ig), intent(out) | HCPG, | ||
real, dimension(ilg,ig), intent(out) | TCTOPC, | ||
real, dimension(ilg,ig), intent(out) | TCBOTC, | ||
real, dimension(ilg,ig), intent(out) | TCTOPG, | ||
real, dimension(ilg,ig), intent(out) | TCBOTG, | ||
real, dimension(ilg), intent(out) | GZEROC, | ||
real, dimension(ilg), intent(out) | GZEROG, | ||
real, dimension(ilg), intent(out) | GZROCS, | ||
real, dimension(ilg), intent(out) | GZROGS, | ||
real, dimension (ilg), intent(out) | G12C, | ||
real, dimension (ilg), intent(out) | G12G, | ||
real, dimension (ilg), intent(out) | G12CS, | ||
real, dimension (ilg), intent(out) | G12GS, | ||
real, dimension (ilg), intent(out) | G23C, | ||
real, dimension (ilg), intent(out) | G23G, | ||
real, dimension (ilg), intent(out) | G23CS, | ||
real, dimension (ilg), intent(out) | G23GS, | ||
real, dimension(ilg), intent(out) | QFREZC, | ||
real, dimension(ilg), intent(out) | QFREZG, | ||
real, dimension(ilg), intent(out) | QMELTC, | ||
real, dimension(ilg), intent(out) | QMELTG, | ||
real, dimension (ilg), intent(out) | EVAPC, | ||
real, dimension(ilg), intent(out) | EVAPCG, | ||
real, dimension (ilg), intent(out) | EVAPG, | ||
real, dimension(ilg), intent(out) | EVAPCS, | ||
real, dimension(ilg), intent(out) | EVPCSG, | ||
real, dimension(ilg), intent(out) | EVAPGS, | ||
real, dimension (ilg), intent(out) | TCANO, | ||
real, dimension (ilg), intent(out) | TCANS, | ||
real, dimension(ilg), intent(out) | RAICAN, | ||
real, dimension(ilg), intent(out) | SNOCAN, | ||
real, dimension(ilg), intent(out) | RAICNS, | ||
real, dimension(ilg), intent(out) | SNOCNS, | ||
real, dimension (ilg), intent(out) | CHCAP, | ||
real, dimension(ilg), intent(out) | CHCAPS, | ||
real, dimension(ilg), intent(out) | TPONDC, | ||
real, dimension(ilg), intent(out) | TPONDG, | ||
real, dimension(ilg), intent(out) | TPNDCS, | ||
real, dimension(ilg), intent(out) | TPNDGS, | ||
real, dimension(ilg), intent(out) | TSNOCS, | ||
real, dimension(ilg), intent(out) | TSNOGS, | ||
real, dimension(ilg), intent(out) | WSNOCS, | ||
real, dimension(ilg), intent(out) | WSNOGS, | ||
real, dimension(ilg), intent(out) | RHOSCS, | ||
real, dimension(ilg), intent(out) | RHOSGS, | ||
integer, dimension(ilg,6,50) | ITERCT, | ||
real, dimension (ilg), intent(out) | CDH, | ||
real, dimension (ilg), intent(out) | CDM, | ||
real, dimension (ilg), intent(out) | QSENS, | ||
real, dimension (ilg), intent(out) | TFLUX, | ||
real, dimension (ilg), intent(out) | QEVAP, | ||
real, dimension (ilg), intent(out) | EVAP, | ||
real, dimension(ilg), intent(out) | EVPPOT, | ||
real, dimension (ilg), intent(out) | ACOND, | ||
real, dimension (ilg), intent(out) | EVAPB, | ||
real, dimension (ilg), intent(out) | GT, | ||
real, dimension (ilg), intent(out) | QG, | ||
real, dimension (ilg), intent(out) | ST, | ||
real, dimension (ilg), intent(out) | SU, | ||
real, dimension (ilg), intent(out) | SV, | ||
real, dimension (ilg), intent(out) | SQ, | ||
real, dimension (ilg), intent(out) | SRH, | ||
real, dimension (ilg), intent(out) | GTBS, | ||
real, dimension(ilg), intent(out) | SFCUBS, | ||
real, dimension(ilg), intent(out) | SFCVBS, | ||
real, dimension(ilg), intent(out) | USTARBS, | ||
real, dimension (ilg), intent(out) | FSGV, | ||
real, dimension (ilg), intent(out) | FSGS, | ||
real, dimension (ilg), intent(out) | FSGG, | ||
real, dimension (ilg), intent(out) | FLGV, | ||
real, dimension (ilg), intent(out) | FLGS, | ||
real, dimension (ilg), intent(out) | FLGG, | ||
real, dimension (ilg), intent(out) | HFSC, | ||
real, dimension (ilg), intent(out) | HFSS, | ||
real, dimension (ilg), intent(out) | HFSG, | ||
real, dimension (ilg), intent(out) | HEVC, | ||
real, dimension (ilg), intent(out) | HEVS, | ||
real, dimension (ilg), intent(out) | HEVG, | ||
real, dimension (ilg), intent(out) | HMFC, | ||
real, dimension (ilg), intent(out) | HMFN, | ||
real, dimension (ilg), intent(out) | HTCC, | ||
real, dimension (ilg), intent(out) | HTCS, | ||
real, dimension (ilg,ig), intent(out) | HTC, | ||
real, dimension (ilg), intent(out) | QFCF, | ||
real, dimension (ilg), intent(out) | QFCL, | ||
real, dimension (ilg), intent(out) | DRAG, | ||
real, dimension(ilg), intent(out) | WTABLE, | ||
real, dimension (ilg), intent(out) | ILMO, | ||
real, dimension (ilg), intent(out) | UE, | ||
real, dimension (ilg), intent(out) | HBL, | ||
real, dimension (ilg), intent(out) | TAC, | ||
real, dimension (ilg), intent(out) | QAC, | ||
real, dimension (ilg), intent(in) | ZREFM, | ||
real, dimension (ilg), intent(in) | ZREFH, | ||
real, dimension(ilg), intent(in) | ZDIAGM, | ||
real, dimension(ilg), intent(in) | ZDIAGH, | ||
real, dimension (ilg), intent(in) | VPD, | ||
real, dimension (ilg), intent(in) | TADP, | ||
real, dimension(ilg), intent(in) | RHOAIR, | ||
real, dimension(ilg), intent(in) | QSWINV, | ||
real, dimension(ilg), intent(in) | QSWINI, | ||
real, dimension (ilg), intent(in) | QLWIN, | ||
real, dimension (ilg), intent(in) | UWIND, | ||
real, dimension (ilg), intent(in) | VWIND, | ||
real, dimension (ilg), intent(in) | TA, | ||
real, dimension (ilg), intent(in) | QA, | ||
real, dimension (ilg), intent(in) | PADRY, | ||
real, dimension (ilg), intent(in) | FC, | ||
real, dimension (ilg), intent(in) | FG, | ||
real, dimension (ilg), intent(in) | FCS, | ||
real, dimension (ilg), intent(in) | FGS, | ||
real, dimension(ilg), intent(in) | RBCOEF, | ||
real, dimension (ilg), intent(in) | FSVF, | ||
real, dimension (ilg), intent(in) | FSVFS, | ||
real, dimension(ilg), intent(in) | PRESSG, | ||
real, dimension (ilg), intent(in) | VMOD, | ||
real, dimension(ilg), intent(in) | ALVSCN, | ||
real, dimension(ilg), intent(in) | ALIRCN, | ||
real, dimension (ilg), intent(in) | ALVSG, | ||
real, dimension (ilg), intent(in) | ALIRG, | ||
real, dimension(ilg), intent(in) | ALVSCS, | ||
real, dimension(ilg), intent(in) | ALIRCS, | ||
real, dimension(ilg), intent(in) | ALVSSN, | ||
real, dimension(ilg), intent(in) | ALIRSN, | ||
real, dimension(ilg), intent(in) | ALVSGC, | ||
real, dimension(ilg), intent(in) | ALIRGC, | ||
real, dimension(ilg), intent(in) | ALVSSC, | ||
real, dimension(ilg), intent(in) | ALIRSC, | ||
real, dimension(ilg), intent(in) | TRVSCN, | ||
real, dimension(ilg), intent(in) | TRIRCN, | ||
real, dimension(ilg), intent(in) | TRVSCS, | ||
real, dimension(ilg), intent(in) | TRIRCS, | ||
real, dimension (ilg), intent(in) | RC, | ||
real, dimension (ilg), intent(in) | RCS, | ||
real, dimension (ilg), intent(out) | WTRG, | ||
real, dimension(ilg), intent(out) | groundHeatFlux, | ||
real, dimension(ilg), intent(out) | QLWAVG, | ||
real, dimension(ilg), intent(in) | FRAINC, | ||
real, dimension(ilg), intent(in) | FSNOWC, | ||
real, dimension(ilg), intent(in) | FRAICS, | ||
real, dimension(ilg), intent(in) | FSNOCS, | ||
real, dimension(ilg), intent(in) | CMASSC, | ||
real, dimension(ilg), intent(in) | CMASCS, | ||
real, dimension (ilg), intent(in) | DISP, | ||
real, dimension (ilg), intent(in) | DISPS, | ||
real, dimension(ilg), intent(in) | ZOMLNC, | ||
real, dimension(ilg), intent(in) | ZOELNC, | ||
real, dimension(ilg), intent(in) | ZOMLNG, | ||
real, dimension(ilg), intent(in) | ZOELNG, | ||
real, dimension(ilg), intent(in) | ZOMLCS, | ||
real, dimension(ilg), intent(in) | ZOELCS, | ||
real, dimension(ilg), intent(in) | ZOMLNS, | ||
real, dimension(ilg), intent(in) | ZOELNS, | ||
real, dimension (ilg,ig), intent(in) | TBAR, | ||
real, dimension (ilg,ig), intent(inout) | THLIQ, | ||
real, dimension (ilg,ig), intent(inout) | THICE, | ||
real, dimension (ilg), intent(in) | TPOND, | ||
real, dimension (ilg), intent(inout) | ZPOND, | ||
real, dimension (ilg), intent(in) | TBASE, | ||
real, dimension (ilg), intent(in) | TCAN, | ||
real, dimension (ilg), intent(in) | TSNOW, | ||
real, dimension (ilg), intent(in) | ZSNOW, | ||
real, dimension(ilg), intent(in) | RHOSNO, | ||
real, dimension (ilg), intent(in) | WSNOW, | ||
real, dimension (ilg,ig), intent(in) | THPOR, | ||
real, dimension(ilg,ig), intent(in) | THLRET, | ||
real, dimension(ilg,ig), intent(in) | THLMIN, | ||
real, dimension (ilg,ig), intent(in) | THFC, | ||
real, dimension (ilg,ig), intent(in) | THLW, | ||
real, dimension(ilg), intent(in) | TRSNOWC, | ||
real, dimension(ilg,nbs), intent(in) | TRSNOWG, | ||
real, dimension(ilg,nbs), intent(in) | ALSNO, | ||
real, dimension(ilg,nbs), intent(in) | FSSB, | ||
real, dimension (ilg,ig), intent(in) | FROOT, | ||
real, dimension(ilg,ig), intent(in) | FROOTS, | ||
real, dimension (ilg), intent(in) | RADJ, | ||
real, dimension (ilg), intent(in) | PCPR, | ||
real, dimension (ilg,ig), intent(in) | HCPS, | ||
real, dimension (ilg,ig), intent(in) | TCS, | ||
real, dimension(ilg,4), intent(out) | TSFSAV, | ||
real, dimension (ig), intent(in) | DELZ, | ||
real, dimension (ilg,ig), intent(in) | DELZW, | ||
real, dimension (ilg,ig), intent(in) | ZBOTW, | ||
real, dimension (ilg), intent(out) | FTEMP, | ||
real, dimension (ilg), intent(out) | FVAP, | ||
real, dimension (ilg), intent(out) | RIB, | ||
integer, dimension (ilg,ig), intent(in) | ISAND, | ||
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, | ||
real, dimension(ilg), intent(in) | CO2CONC, | ||
real, dimension(ilg,ictem), intent(in) | CO2I1CG, | ||
real, dimension(ilg,ictem), intent(in) | CO2I1CS, | ||
real, dimension(ilg,ictem), intent(in) | CO2I2CG, | ||
real, dimension(ilg,ictem), intent(in) | CO2I2CS, | ||
real, dimension(ilg), intent(in) | COSZS, | ||
real, dimension(ilg), intent(in) | XDIFFUS, | ||
real, dimension(ilg,ictem), intent(in) | SLAI, | ||
integer, intent(in) | ICTEM, | ||
logical, intent(in) | ctem_on, | ||
real, dimension(ilg,ictem,ig), intent(in) | RMATCTEM, | ||
real, dimension(ilg,ictem), intent(in) | FCANCMX, | ||
integer, intent(in) | L2MAX, | ||
integer, dimension(ic), intent(in) | NOL2PFTS, | ||
real, dimension(ilg), intent(in) | CFLUXCG, | ||
real, dimension(ilg), intent(in) | CFLUXCS, | ||
real, dimension(ilg,ictem), intent(inout) | ANCSVEG, | ||
real, dimension(ilg,ictem), intent(inout) | ANCGVEG, | ||
real, dimension(ilg,ictem), intent(inout) | RMLCSVEG, | ||
real, dimension(ilg,ictem), intent(inout) | RMLCGVEG, | ||
real, dimension(ilg), intent(out) | TCSNOW, | ||
real, dimension (ilg), intent(out) | GSNOW, | ||
integer, intent(in) | ITC, | ||
integer, intent(in) | ITCG, | ||
integer, intent(in) | ITG, | ||
integer, intent(in) | ILG, | ||
integer, intent(in) | IL1, | ||
integer, intent(in) | IL2, | ||
integer, intent(in) | JL, | ||
integer, intent(in) | N, | ||
integer, intent(in) | IC, | ||
integer, intent(in) | IG, | ||
integer, intent(in) | IZREF, | ||
integer, intent(in) | ISLFD, | ||
integer, intent(inout) | NLANDCS, | ||
integer, intent(inout) | NLANDGS, | ||
integer, intent(inout) | NLANDC, | ||
integer, intent(inout) | NLANDG, | ||
integer, intent(inout) | NLANDI, | ||
integer, intent(in) | NBS, | ||
integer, intent(in) | ISNOALB, | ||
real, dimension(ilg), intent(in) | DAYL, | ||
real, dimension(ilg), intent(in) | DAYL_MAX, | ||
integer, dimension(ilg), intent(in) | ipeatland, | ||
real, dimension(ilg), intent(inout) | ancsmoss, | ||
real, dimension(ilg), intent(inout) | angsmoss, | ||
real, dimension(ilg), intent(inout) | ancmoss, | ||
real, dimension(ilg), intent(inout) | angmoss, | ||
real, dimension(ilg), intent(inout) | rmlcsmoss, | ||
real, dimension(ilg), intent(inout) | rmlgsmoss, | ||
real, dimension(ilg), intent(inout) | rmlcmoss, | ||
real, dimension(ilg), intent(inout) | rmlgmoss, | ||
real, dimension(ilg), intent(in) | Cmossmas, | ||
real, dimension(ilg), intent(in) | dmoss, | ||
integer, intent(in) | iday, | ||
real, dimension(ilg), intent(in) | pdd | ||
) |
[in,out] | nlandcs | Number of modelled areas that contain subareas of canopy over bare ground / bare ground / canopy over snow /snow |
[in,out] | nlandgs | Number of modelled areas that contain subareas of canopy over bare ground / bare ground / canopy over snow /snow |
[in,out] | nlandc | Number of modelled areas that contain subareas of canopy over bare ground / bare ground / canopy over snow /snow |
[in,out] | nlandg | Number of modelled areas that contain subareas of canopy over bare ground / bare ground / canopy over snow /snow |
[in,out] | nlandi | Number of modelled areas that are ice sheets [ ] |
[in] | isnoalb | Switch to model snow albedo in two or more wavelength bands |
[in] | itc | Flag to select iteration scheme for canopy temperature |
[in] | itcg | Flag to select iteration scheme for surface under canopy |
[in] | itg | Flag to select iteration scheme for ground or snow surface |
[in] | izref | Flag governing treatment of surface roughness length |
[in] | islfd | Flag governing options for surface stability functions and diagnostic calculations |
[out] | acond | Diagnosed product of drag coefficient and wind speed over modelled area \([m s^{-1} ]\) |
[out] | cdh | Surface drag coefficient for heat \([ ] (C_{DH} )\) |
[out] | cdm | Surface drag coefficient for momentum \([ ] (C_{DM} )\) |
[out] | chcap | Surface drag coefficient for momentum \([ ] (C_{DM} )\) |
[out] | chcaps | Heat capacity of canopy over bare ground \([J m^{-2} K^{-1} ]\) |
[out] | drag | Surface drag coefficient under neutral stability [ ] |
[out] | evap | Diagnosed total surface water vapour flux over modelled area \([kg m^{-2} s^{-1} ]\) |
[out] | evapb | Evaporation efficiency at ground surface [ ] |
[out] | evapc | Evaporation from vegetation over ground \([m s^{-1} ]\) |
[out] | evapcg | Evaporation from ground under vegetation \([m s^{-1} ]\) |
[out] | evapcs | Evaporation from vegetation over snow \([m s^{-1} ]\) |
[out] | evapg | Evaporation from bare ground \([m s^{-1} ]\) |
[out] | evapgs | Evaporation from snow on bare ground \([m s^{-1} ]\) |
[out] | evpcsg | Evaporation from snow under vegetation \([m s^{-1} ]\) |
[out] | evppot | Diagnosed potential evapotranspiration \([kg m^{-2} s^{-1} ] (E_p)\) |
[out] | flgg | Diagnosed net longwave radiation at soil surface \([W m^{-2} ]\) |
[out] | flgs | Diagnosed net longwave radiation at snow surface \([W m^{-2} ]\) |
[out] | flgv | Diagnosed net longwave radiation on vegetation canopy \([W m^{-2} ]\) |
[out] | fsgg | Diagnosed net shortwave radiation at soil surface \([W m^{-2} ]\) |
[out] | fsgs | Diagnosed net shortwave radiation at snow surface \([W m^{-2} ]\) |
[out] | fsgv | Diagnosed net shortwave radiation on vegetation canopy \([W m^{-2} ]\) |
[out] | g12c | Subarea heat flux between first and second soil layers \([W m^{-2} ]\) |
[out] | g12cs | Subarea heat flux between first and second soil layers \([W m^{-2} ]\) |
[out] | g12g | Subarea heat flux between first and second soil layers \([W m^{-2} ]\) |
[out] | g12gs | Subarea heat flux between first and second soil layers \([W m^{-2} ]\) |
[out] | g23c | Subarea heat flux between second and third soil layers \([W m^{-2} ]\) |
[out] | g23cs | Subarea heat flux between second and third soil layers \([W m^{-2} ]\) |
[out] | g23g | Subarea heat flux between second and third soil layers \([W m^{-2} ]\) |
[out] | g23gs | Subarea heat flux between second and third soil layers \([W m^{-2} ]\) |
[out] | gt | Diagnosed effective surface black-body temperature \([K] (T_{0, eff} )\) |
[out] | gtbs | Surface temperature for CCCma black carbon scheme [K] |
[out] | gsnow | Heat conduction into surface of snow pack \([W m^{-2} ]\) |
[out] | gzeroc | Subarea heat flux at soil surface \([W m^{-2} ]\) |
[out] | gzerog | Subarea heat flux at soil surface \([W m^{-2} ]\) |
[out] | gzrocs | Subarea heat flux at soil surface \([W m^{-2} ]\) |
[out] | gzrogs | Subarea heat flux at soil surface \([W m^{-2} ]\) |
[out] | hbl | Height of the atmospheric boundary layer [m] |
[out] | hcpc | Heat capacity of soil layers under vegetation \([J m^{-3} K^{-1} ]\) |
[out] | hcpg | Heat capacity of soil layers in bare areas \([J m^{-3} K^{-1} ]\) |
[out] | hevc | Diagnosed latent heat flux on vegetation canopy \([W m^{-2} ]\) |
[out] | hevg | Diagnosed latent heat flux at soil surface \([W m^{-2} ]\) |
[out] | hevs | Diagnosed latent heat flux at snow surface \([W m^{-2} ]\) |
[out] | hfsc | Diagnosed sensible heat flux on vegetation canopy \([W m^{-2} ]\) |
[out] | hfsg | Diagnosed sensible heat flux at soil surface \([W m^{-2} ]\) |
[out] | hfss | Diagnosed sensible heat flux at snow surface \([W m^{-2} ]\) |
[out] | hmfc | Diagnosed energy associated with phase change of water on vegetation \([W m^{-2} ]\) |
[out] | hmfn | Diagnosed energy associated with phase change of water in snow pack \([W m^{-2} ]\) |
[out] | htc | Diagnosed internal energy change of soil layer due to conduction and/or change in mass \([W m^{-2} ]\) |
[out] | htcc | Diagnosed internal energy change of vegetation canopy due to conduction and/or change in mass \([W m^{-2} ]\) |
[out] | htcs | Diagnosed internal energy change of snow pack due to conduction and/or change in mass \([W m^{-2} ]\) |
[out] | ilmo | Inverse of Monin-Obukhov roughness length \((m^{-1} ]\) |
iterct | Counter of number of iterations required to solve surface energy balance for the elements of the four subareas | |
[out] | qac | Specific humidity of air within vegetation canopy space \([kg kg^{-1} ]\) |
[out] | qevap | Diagnosed total surface latent heat flux over modelled area \([W m^{-2} ]\) |
[out] | qfcf | Sublimation from frozen water on vegetation \([kg m^{-2} s^{-1} ]\) |
[out] | qfcl | Evaporation from liquid water on vegetation \([kg m^{-2} s^{-1} ]\) |
[out] | qfrezc | Heat sink to be used for freezing water on ground under canopy \([W m^{-2} ]\) |
[out] | qfrezg | Heat sink to be used for freezing water on bare ground \([W m^{-2} ]\) |
[out] | qg | Diagnosed surface specific humidity \([kg kg^{-1} ]\) |
[out] | qlwavg | Upwelling longwave radiation from land surface \([W m^{-2} ]\) |
[out] | qmeltc | Heat to be used for melting snow under canopy \([W m^{-2} ]\) |
[out] | qmeltg | Heat to be used for melting snow on bare ground \([W m^{-2} ]\) |
[out] | qsens | Diagnosed total surface sensible heat flux over modelled area \([W m^{-2} ]\) |
[out] | raican | Intercepted liquid water stored on canopy over ground \([kg m^{-2} ]\) |
[out] | raicns | Intercepted liquid water stored on canopy over snow \([kg m^{-2} ]\) |
[out] | rhoscs | Density of snow under vegetation \([kg m^{-3} ]\) |
[out] | rhosgs | Density of snow in bare areas \([kg m^{-3} ]\) |
[out] | sfcubs | Zonal surface wind velocity for CCCma black carbon scheme \([m s^{-1} ]\) |
[out] | sfcvbs | Meridional surface wind velocity for CCCma black carbon scheme \([m s^{-1} ]\) |
[out] | snocan | Intercepted frozen water stored on canopy over ground \([kg m^{-2} ]\) |
[out] | snocns | Intercepted frozen water stored on canopy over snow \([kg m^{-2} ]\) |
[out] | sq | Diagnosed screen-level specific humidity \([kg kg^{-1} ]\) |
[out] | srh | Diagnosed screen-level relative humidity [%] |
[out] | st | Diagnosed screen-level air temperature [K] |
[out] | su | Diagnosed anemometer-level zonal wind \([m s^{-1} ]\) |
[out] | sv | Diagnosed anemometer-level meridional wind \([m s^{-1} ]\) |
[out] | tac | Temperature of air within vegetation canopy [K] |
[out] | tbarc | Subarea temperatures of soil layers [C] |
[out] | tbarcs | Subarea temperatures of soil layers [C] |
[out] | tbarg | Subarea temperatures of soil layers [C] |
[out] | tbargs | Subarea temperatures of soil layers [C] |
[out] | tcano | Temperature of canopy over ground [K] |
[out] | tcans | Temperature of canopy over snow [K] |
[out] | tcbotc | Thermal conductivity of soil at bottom of layer \([W m^{-1} K^{-1} ]\) |
[out] | tcbotg | Thermal conductivity of soil at bottom of layer \([W m^{-1} K^{-1} ]\) |
[out] | tctopc | Thermal conductivity of soil at top of layer \([W m^{-1} K^{-1} ]\) |
[out] | tctopg | Thermal conductivity of soil at top of layer \([W m^{-1} K^{-1} ]\) |
[out] | tcsnow | Thermal conductivity of snow \([W m^{-1} K^{-1} ]\) |
[out] | tflux | Product of surface drag coefficient, wind speed and surface-air temperature difference \([K m s^{-1} ]\) |
[out] | thicec | Frozen water content of soil layers under vegetation \([m^3 m^{-3} ]\) |
[out] | thiceg | Frozen water content of soil layers in bare areas \([m^3 m^{-3} ]\) |
[out] | thliqc | Liquid water content of soil layers under vegetation \([m^3 m^{-3} ]\) |
[out] | thliqg | Liquid water content of soil layers in bare areas \([m^3 m^{-3} ]\) |
[out] | tpondc | Subarea temperature of surface ponded water [C] |
[out] | tpondg | Subarea temperature of surface ponded water [C] |
[out] | tpndcs | Subarea temperature of surface ponded water [C] |
[out] | tpndgs | Subarea temperature of surface ponded water [C] |
[out] | tsfsav | Ground surface temperature over subarea [K] |
[out] | tsnocs | Temperature of snow pack under vegetation [K] |
[out] | tsnogs | Temperature of snow pack in bare areas [K] |
[out] | ue | Friction velocity of air \([m s^{-1} ]\) |
[out] | ustarbs | Friction velocity for CCCma black carbon scheme \([m s^{-1} ]\) |
[out] | wsnocs | Liquid water content of snow pack under vegetation \([kg m^{-2} ]\) |
[out] | wsnogs | Liquid water content of snow pack in bare areas \([kg m^{-2} ]\) |
[out] | wtable | Depth of water table in soil [m] |
[out] | wtrg | Diagnosed residual water transferred into or out of the soil \([kg m^{-2} s^{-1} ]\) |
[out] | groundheatflux | Heat flux at soil surface \([W m^{-2} ]\) |
[in] | zrefm | Reference height associated with forcing wind speed [m] |
[in] | zrefh | Reference height associated with forcing air temperature and humidity [m] |
[in] | zdiagm | User-specified height associated with diagnosed anemometer-level wind speed [m] |
[in] | zdiagh | User-specified height associated with diagnosed screen-level variables [m] |
[in] | vpd | Vapour pressure deficit [mb] |
[in] | tadp | Dew point temperature of air [K] |
[in] | rhoair | Density of air \([kg m^{-3} ] (\rho_a)\) |
[in] | qswinv | Visible radiation incident on horizontal surface \([W m^{-2} ]\) |
[in] | qswini | Near-infrared radiation incident on horizontal surface \([W m^{-2} ]\) |
[in] | qlwin | Downwelling longwave radiation at bottom of atmosphere \([W m^{-2} ]\) |
[in] | uwind | Zonal component of wind speed \([m s^{-1} ] (U_a)\) |
[in] | vwind | Meridional component of wind speed \([m s^{-1} ] (V_a)\) |
[in] | ta | Air temperature at reference height \([K] (T_a)\) |
[in] | qa | Specific humidity at reference height \([kg kg^{-1} ]\) |
[in] | padry | Partial pressure of dry air \([Pa] (p_{dry} )\) |
[in] | fc | Subarea fractional coverage of modelled area [ ] |
[in] | fg | Subarea fractional coverage of modelled area [ ] |
[in] | fcs | Subarea fractional coverage of modelled area [ ] |
[in] | fgs | Subarea fractional coverage of modelled area [ ] |
[in] | rbcoef | Parameter for calculation of leaf boundary resistance |
[in] | fsvf | Sky view factor for bare ground under canopy [ ] |
[in] | fsvfs | Sky view factor for snow under canopy [ ] |
[in] | pressg | Surface atmospheric pressure [Pa] |
[in] | vmod | Wind speed at reference height \([m s^{-1} ]\) |
[in] | alsno | Albedo of snow in each modelled wavelength band [ ] |
[in] | alvscn | Visible/near-IR albedo of vegetation over bare ground [ ] |
[in] | alircn | Visible/near-IR albedo of vegetation over bare ground [ ] |
[in] | alvsg | Visible/near-IR albedo of open bare ground [ ] |
[in] | alirg | Visible/near-IR albedo of open bare ground [ ] |
[in] | alvscs | Visible/near-IR albedo of vegetation over snow [ ] |
[in] | alircs | Visible/near-IR albedo of vegetation over snow [ ] |
[in] | alvssn | Visible/near-IR albedo of open snow cover [ ] |
[in] | alirsn | Visible/near-IR albedo of open snow cover [ ] |
[in] | alvsgc | Visible/near-IR albedo of bare ground under vegetation [ ] |
[in] | alirgc | Visible/near-IR albedo of bare ground under vegetation [ ] |
[in] | alvssc | Visible/near-IR albedo of snow under vegetation [ ] |
[in] | alirsc | Visible/near-IR albedo of snow under vegetation [ ] |
[in] | trvscn | Visible/near-IR transmissivity of vegetation over bare ground [ ] |
[in] | trircn | Visible/near-IR transmissivity of vegetation over bare ground [ ] |
[in] | trvscs | Visible/near-IR transmissivity of vegetation over snow [ ] |
[in] | trircs | Visible/near-IR transmissivity of vegetation over snow [ ] |
[in] | rc | Stomatal resistance of vegetation over bare ground \([s m^{-1} ]\) |
[in] | rcs | Stomatal resistance of vegetation over snow \([s m^{-1} ]\) |
[in] | frainc | Fractional coverage of canopy by liquid water over snow-free subarea [ ] |
[in] | fsnowc | Fractional coverage of canopy by frozen water over snow-free subarea [ ] |
[in] | fraics | Fractional coverage of canopy by liquid water over snow-covered subarea [ ] |
[in] | fsnocs | Fractional coverage of canopy by frozen water over snow-covered subarea [ ] |
[in] | cmassc | Mass of canopy over bare ground \([kg m^{-2} ]\) |
[in] | cmascs | Mass of canopy over snow \([kg m^{-2} ]\) |
[in] | disp | Displacement height of vegetation over bare ground [m] (d) |
[in] | disps | Displacement height of vegetation over snow [m] (d) |
[in] | zomlnc | Logarithm of roughness length for momentum of vegetation over bare ground [ ] |
[in] | zoelnc | Logarithm of roughness length for heat of vegetation over bare ground [ ] |
[in] | zomlng | Logarithm of roughness length for momentum of bare ground [ ] |
[in] | zoelng | Logarithm of roughness length for heat of bare ground [ ] |
[in] | zomlcs | Logarithm of roughness length for momentum of vegetation over snow [ ] |
[in] | zoelcs | Logarithm of roughness length for heat of vegetation over snow [ ] |
[in] | zomlns | Logarithm of roughness length for momentum of snow [ ] |
[in] | zoelns | Logarithm of roughness length for heat of snow [ ] |
[in] | tpond | Temperature of ponded water [K] |
[in,out] | zpond | Depth of ponded water on surface [m] |
[in] | tbase | Temperature of bedrock in third soil layer [K] |
[in] | tcan | Vegetation canopy temperature [K] |
[in] | tsnow | Snowpack temperature [K] |
[in] | zsnow | Depth of snow pack [m] |
[in] | trsnowc | Transmissivity of snow under vegetation to shortwave radiation [ ] |
[in] | trsnowg | Transmissivity of snow in bare areas to shortwave radiation [ ] |
[in] | rhosno | Density of snow \([kg m^{-3} ]\) |
[in] | wsnow | Liquid water content of snow pack \([kg m^{-2} ]\) |
[in] | radj | Latitude of grid cell (positive north of equator) [rad] \((\varphi)\) |
[in] | pcpr | Surface precipitation rate \([kg m^{-2} s^{-1} ]\) |
[in] | fssb | Total solar radiation in each modelled wavelength band \([W m^{-2} ]\) |
[in] | tbar | Temperature of soil layers [K] |
[in,out] | thliq | Volumetric liquid water content of soil layers \([m^3 m^{-3} ]\) |
[in,out] | thice | Volumetric frozen water content of soil layers \([m^3 m^{-3} ]\) |
[in] | thpor | Pore volume in soil layer \([m^3 m^{-3} ]\) |
[in] | thlret | Liquid water retention capacity for organic soil \([m^3 m^{-3} ]\) |
[in] | thlmin | Residual soil liquid water content remaining after freezing or evaporation \([m^3 m^{-3} ]\) |
[in] | thfc | Field capacity \([m^3 m^{-3} ]\) |
[in] | thlw | Soil water content at wilting point, \([m^3 m^{-3} ]\) |
[in] | hcps | Heat capacity of soil material \([J m^{-3} K^{-1} ]\) |
[in] | tcs | Thermal conductivity of soil particles \([W m^{-1} K^{-1} ]\) |
[in] | delz | Overall thickness of soil layer [m] |
[in] | delzw | Permeable thickness of soil layer [m] |
[in] | zbotw | Depth to permeable bottom of soil layer [m] |
[in] | froot | Fraction of total transpiration contributed by soil layer over snow-free subarea [ ] |
[in] | froots | Fraction of total transpiration contributed by soil layer over snow-covered subarea [ ] |
[in] | isand | Sand content flag |
[in] | ailcg | GREEN LAI FOR USE WITH PHOTOSYNTHESIS SUBTROUTINE FOR CANOPY OVER GROUND SUBAREA |
[in] | ailcgs | GREEN LAI FOR USE WITH PHOTOSYNTHESIS SUBTROUTINE FOR CANOPY OVER SNOW SUBAREA |
[in] | fcanc | FRACTIONAL COVERAGE OF 8 CARBON PFTs, CANOPY OVER GROUND |
[in] | fcancs | FRACTIONAL COVERAGE OF 8 CARBON PFTs, CANOPY OVER SNOW |
[in] | co2conc | ATMOS. CO2 CONC. IN PPM |
[in] | co2i1cg | INTERCELLULAR CO2 CONC FOR 8 PFTs FOR CANOPY OVER GROUND SUBAREA (Pa) - FOR SINGLE/SUNLIT LEAF |
[in] | co2i1cs | SAME AS ABOVE BUT FOR SHADED LEAF |
[in] | co2i2cg | INTERCELLULAR CO2 CONC FOR 8 PFTs FOR CANOPY OVER SNOWSUBAREA (Pa) - FOR SINGLE/SUNLIT LEAF |
[in] | co2i2cs | SAME AS ABOVE BUT FOR SHADED LEAF |
[in] | coszs | COSINE OF SUN'S ZENITH ANGLE |
[in] | xdiffus | FRACTION OF DIFFUSED RADIATION |
[in] | slai | STORAGE LAI. SEE PHTSYN SUBROUTINE FOR MORE DETAILS. |
[in] | rmatctem | FRACTION OF ROOTS IN EACH SOIL LAYER FOR EACH OF CTEM's 8 PFTs |
[in] | fcancmx | MAX. FRACTIONAL COVERAGE OF CTEM PFTs |
[in,out] | ancsveg | NET PHOTOSYNTHETIC RATE FOR CTEM's 8 PFTs FOR CANOPY OVER SNOW SUBAREA |
[in,out] | ancgveg | NET PHOTOSYNTHETIC RATE FOR CTEM's 8 PFTs FOR CANOPY OVER GROUND SUBAREA |
[in,out] | rmlcsveg | LEAF RESPIRATION RATE FOR CTEM's 8 PFTs FOR CANOPY OVER SNOW SUBAREA |
[in,out] | rmlcgveg | LEAF RESPIRATION RATE FOR CTEM's 8 PFTs FOR CANOPY OVER GROUND SUBAREA |
[in] | ictem | 8 (CTEM's PLANT FUNCTIONAL TYPES) |
[in] | ctem_on | TRUE GIVES COUPLING TO CTEM |
[in] | dayl_max | MAXIMUM DAYLENGTH FOR THAT LOCATION |
[in] | dayl | DAYLENGTH FOR THAT LOCATION |
First, two parameters are calculated for later use in the energyBudgetDriver subroutines: the corrected wind speed \(v_a\) , and the Coriolis parameter \(f_{cor}\) (describing the effect of the earth’s rotation on the movement of air according to the reference frame of the earth’s surface). The wind speed correction is applied because it is assumed that air is never completely still, so \(v_a\) is specified as the maximum of VMOD and a limiting lower value of \(0.1 m s^{-1}\) . The Coriolis parameter is calculated from the angular velocity \(\Omega\) of the earth’s rotation (7.29 x 10 -5 radians/s), and the latitude \(\varphi\): \(f_{cor} = 2 \Omega sin \varphi\)
The packing and unpacking of binary files may cause small shifts in the values of variables at certain points in the model run, so checks are performed on the depth of ponded water and on the soil liquid and frozen moisture contents to ensure that unphysical values have not occurred. If the ponded water depth is vanishingly small or less than zero, it is set to zero. If the soil liquid water content falls below the set minimum value, it is set to the minimum value. If the soil frozen water content is less than zero, it is set back to zero. If the sum of the liquid water content and frozen water content converted to an equivalent liquid amount is greater than the pore volume, both are re-normalized by the pore volume. (This treatment of frozen water is employed in recognition of the fact that water expands upon freezing and can therefore occupy a greater volume than the nominal pore volume of the soil.) The small changes in internal energy and water content of the soil layers resulting from these operations are accounted for by updating the diagnostic variables HTC and WTRG.
If CLASS is being run in coupled mode with CTEM, several CTEM variables are initialized to zero. Subroutine energyBudgetPrep is then called, to carry out the initialization of a number of variables and to do preparatory calculations of various parameters associated with the energy and water budget calculations.
The energy budget calculations that follow are performed over the four subareas, of canopy over snow (CS), snow over ground (GS), canopy over bare ground (C) and bare ground (G). First, a counter NLANDx is defined for each subarea, containing the number of modelled areas in which the subarea occurs. The subarea calculations are only done if the relevant counter is greater than zero. A counter NLANDI is also set to the number of modelled areas that are ice sheets (indicated by ISAND = -4). (This is used later in subroutine waterBudgetDriver to toggle the call to subroutine iceSheetBalance.)
For each subarea, the roughness lengths for momentum and heat, ZOM and ZOH, are obtained from their logarithms, and are then used to determine various height intervals in the atmosphere for subsequent calculations. These heights are derived from the input variables ZREFM and ZREFH, the reference heights corresponding to the input values of wind speed and of air temperature and humidity respectively, and ZDIAGM and ZDIAGH, the heights at which the diagnostic values of anemometer wind speed and screen level temperature and humidity are to be determined. The form of the calculations depends on the value of the flag IZREF. If IZREF = 1, the zero plane is taken to lie at the physical ground surface (as with field measurements); if IZREF = 2, the zero plane is taken to lie at the local roughness height for momentum(as with atmospheric models). The variables ZRSLDM and ZRSLDH are the height differences used in subroutine DRCOEF to express the interval between the conceptual bottom of the atmosphere and the reference heights for wind speed and for temperature and humidity respectively; the variables ZRSLFM and ZRSLFH are the corresponding height differences used in subroutine FLXSURFZ. If IZREF = 1, ZRSLDM and ZRSLDH are set to ZREFM and ZREFH minus the displacement height DISP or DISPS, and ZRSLFM and ZRSLFH are set to ZREFM and ZREFH minus the roughness length ZOM and DISP or DISPS. If IZREF = 2, ZRSLDM and ZRSLDH are set to ZREFM and ZREFH plus the roughness height ZOM, and ZRSLFM and ZRSLFH are set to ZREFM and ZREFH minus DISP or DISPS. (In the absence of a vegetation canopy, the displacement height is zero.) The variables ZDSLM and ZDSLH are the heights above the bottom of the modelled atmosphere at which the diagnostic values are to be calculated. If IZREF = 1, they are set to ZDIAGM and ZDIAGH minus ZOM; if IZREF = 2 they are simply set to ZDIAGM and ZDIAGH. At the end of the branch in the code, the ratios ZOSCLM and ZOSCLH, which are used in subroutine DRCOEF, are calculated as ZOM/ZRSLDM and ZOH/ZRSLDH respectively.
Several other local parameters are also calculated. The potential temperature is the temperature that air would have if brought adiabatically (without addition or removal of heat) to a given height. The potential temperature of the air at the reference height, \(T_{a, pot}\) , is calculated relative to the height at which the horizontal wind speed goes to zero, using the dry adiabatic lapse rate, \(dT/dz = -g/c_p\) , where g is the acceleration due to gravity and \(c_p\) is the specific heat at constant pressure:. Thus, \(T_{a, pot} = T_a + z_{ref, h} g/c_p\) where \(T_a\) is the temperature of the air at the reference height and \(z_{ref, h}\) is the height interval, equivalent to ZRSLFH defined above. If CLASS is being run coupled to an atmospheric model, i.e. if IZREF=2, the air temperature at the reference height has already been adiabatically extrapolated before being passed to CLASS. Otherwise, the correction is performed using the above equation.
The virtual potential temperature of the air at the reference height, \(T_{a, v}\) , is the potential temperature adjusted for the reduction in air density due to the presence of water vapour. This is applied in order to enable the use of the equation of state for dry air. \(T_{a, v}\) can be approximated as: \(T_{a, v} = T_{a, pot} [1 + 0.61 q_a ]\) where \(q_a\) is the specific humidity of the air at the reference height.
The bulk Richardson number \(Ri_B\) , used in the calculations of the atmospheric stability functions in subroutine DRCOEF, is formulated as: \(Ri_B = [T_0 – T_{a, v} ] (-g z_{ref} )/(T_{a, v} v_a^2)\) where \(T_0\) is the surface temperature. For ease of calculation later on, the factor multiplying \([T_0 – T_{a, v} ]\) on the right-hand side of the above equation is evaluated and assigned to a coefficient CRIB, using ZRSLDM for \(z_{ref}\) . The drag coefficient under neutral stability, \(C_{DN}\) , is expressed using basic flux-gradient analysis as: \(C_{DN} = k^2 /[ln(z_{ref} ) – ln(z_0)]^2\) where k is the von Karman constant and \(z_0\) is the roughness length. ZRSLDM is used for \(z_{ref}\) and the logarithm of the local roughness length for \(ln(z_0)\), and the neutral drag coefficient DRAG over the modelled area is obtained as a weighted average over the four subareas.
For the two subareas with canopy cover, the wind speed of the air at the canopy top, \(v_{a, c}\) , is obtained by applying the classic logarithmic wind law for the wind speed v(z) at a height z: \(kv(z)/v_* = ln[(z – d)/z_0 ]\) where \(v_*\) is the friction velocity and d is the displacement height. Thus, \(v_{a, c}\) at the canopy height H can be related to v a at the reference height \(z_{ref}\) as: \(v_{a, c} = v_a [ln(H – d) – ln(z_0)]/[ln(z_{ref} ) – ln(z_0)]\)
The vegetation height is calculated as \(10z_0\) . Local values of the temperature of the canopy air TAC and the humidity of the canopy air QAC are assigned to variables TACCS/TACCO and QACCS/QACCO respectively.
At this point calls are made to a series of subroutines addressing the calculation of the energy balance components of the subarea in question. The calls are summarized in the table below.
\[ \begin{array} { | l | l | c | c | c | c | } \hline & & \text{CS} & \text{GS} & \text{C} & \text{G} \\ \hline \text{canopyPhaseChange} & \text{Freezing/thawing of liquid/frozen water on canopy} & \text{YES} & & \text{YES} & \\ \hline \text{soilHeatFluxPrep} & \text{Set coefficients for temperature calculations in soil} & \text{YES} & \text{YES} & \text{YES} & \text{YES} \\ \hline \text{snowHeatCond} & \text{Set coefficients for temperature calculations of snow} & \text{YES} & \text{YES} & & \\ \hline \text{energBalVegSolve} & \text{Calculate components of canopy energy balance} & \text{YES} & & \text{YES} & \\ \hline \text{energBalNoVegSolve} & \text{Calculate components of ground or snow energy balance} & & \text{YES} & & \text{YES} \\ \hline \text{snowTempUpdate} & \text{Heat conduction in snow pack} & \text{YES} & \text{YES} & & \\ \hline \text{soilHeatFluxCleanup} & \text{Heat conduction in soil} & \text{YES} & \text{YES} & \text{YES} & \text{YES} \\ \hline \end{array} \]
After these calls, various diagnostic calculations are performed. First the screen-level temperature and humidity, and the anemometer-level zonal and meridional wind speeds, are calculated. Three options are provided for doing this, indicated by the flag ISLFD. If ISLFD = 0, a simple similarity-based approach is used. (This is currently the standard option in the AGCM.) The ratio (RATIOM) of the square root of the surface drag coefficient for momentum \(C_{DM}\) to that of the neutral drag coefficient \(C_{DN}\) for the anemometer height is calculated, and an analogous calculation is performed for the ratio (RATIOH) of the square root of the surface drag coefficient for heat \(C_{DH}\) to that of the neutral drag coefficient for the screen height \(z_s\), to give a measure of the degree of atmospheric instability. If the bulk Richardson number RIB is negative (indicating unstable conditions), the ratio used for the temperature and humidity is the minimum of RATIOH and ( \(z_s\) / \(z_{ref}\))^(1/3), a measure of the depth of convection. These ratios are applied to the calculation of the screen and anemometer level variables. If the ratios are large, indicating strong coupling with the atmosphere, the screen level variables tend toward the values at the reference height; if the ratio is small, they tend to the values at the surface. At the end of the block of code, the CCCma subroutine screenRelativeHumidity is called to evaluate the screen-level relative humidity, and the grid-cell average values of the screen and anemometer level diagnostic variables are incremented. For the bare soil subarea, the zonal and meridional anemometer-level wind speeds, the friction velocity and the surface temperature are saved separately as inputs to the CCCma black carbon deposition scheme (Namazi et al., 2015) [72].
If ISLFD= 1 or 2, the more complex :: calculations in subroutines SLDIAG and DIASURFZ are followed for the screen-level and anemometer-level diagnostics. The calculations done in SLDIAG are consistent with the modelling approach used in subroutine DRCOEF to determine the atmospheric stability functions, so when ISLFD = 1, DRCOEF and SLDIAG are called. The calculations done in DIASURFZ are consistent with the modelling approach used in subroutine FLXSURFZ for the atmospheric stability functions, so when ISLFD = 2, FLXSURFZ and DIASURFZ are called.
A number of additional diagnostic variables are calculated as weighted averages over the four subareas. For the most part, these calculations are straightforward; only the calculation of the porential evapotranspiration \(E_p\) (EVPPOT) involves some complexity. \(E_p\) is defined as the evapotranspiration that would occur under ambient atmospheric conditions if the soil were completely saturated and the vegetation canopy were completely water-covered, i.e. if there were no surface resistances to evaporation: \(E_p = \rho_a C_{DH} v_a [q_{0, sat} – q_a ]\) where \(\rho_a\) is the density of air and \(q_{0, sat}\) is the saturated specific humidity at the surface. For the ground or snow surface \(q_{0, sat}\) was calculated in subroutine energBalNoVegSolve. For the canopy, the saturated specific humidity at the canopy air temperature, \(q_{ac, sat}\) , is used. This is obtained from the mixing ratio at saturation, \(w_{ac, sat}\) : \(q_{ac, sat} = w_{ac, sat} /[1 + w_{ac, sat} ]\)
The mixing ratio is a function of the saturation vapour pressure \(e_{ac, sat}\) at the canopy air temperature: \(w_{ac, sat} = 0.622 e_{ac, sat} /(p_{dry} )\)
For the saturated vapour pressure, following Emanuel (1994) [34] \(e_{sat}\) is from the temperature \(T_a\) and the freezing point \(T_f\):
\(e_{sat} = exp[53.67957 - 6743.769 / T - 4.8451 * ln(T)] T \geq T_f\)
\(e_{sat} = exp[23.33086 - 6111.72784 / T + 0.15215 * log(T)] T < T_f\)
At the end of the blocks of code dealing with the four subareas, several more diagnostic variables are evaluated. Again, these calculations are generally straightforward. The effective black-body surface temperature \(T_{0, eff}\) is obtained by inverting the Stefan-Boltzmann equation: \(L\uparrow = \sigma T_{0, eff}^4\) where \(L\uparrow\) is the outgoing longwave radiation and \(\sigma\) is the Stefan-Boltzmann constant. The evaporation efficiency parameter EVAPB is calculated as the ratio of the actual evapotranspiration to the potential evapotranspiration.