This module defined in Classneedleleaf, models net all-wave radiation at the snow surface under a needleleaf forest canopy from the observed incoming short-wave radiation and the Satterlund (1979) modified form of the Brunt equation. Other climatic data required are air temperature, relative humidity/vapour pressure and windspeed.
Observations
- Qsi (W/m2) - incident short-wave.
- Qli (W/m2) - incident long-wave. Optional.
Observation Variable.
- Ts (°C) - snow surface temperature.
- Qnsn (W/m2) - net all-wave at snow surface.
- Qsisn (W/m2) - incident short-wave at snow surface.
- Qlisn (W/m2) - incident long-wave at snow surface.
- Qlisn (W/m2) -refected long-wave at snow surface.
Variables
- k () - extinction coefficient.
- Tauc () - short-wave transmissivity through the canopy.
- ra (s/m) - resistance.
- Pa (kPa) - atmospheric pressure calculated from the elevation.
Parameters
- Ht (m) - canopy height.
- Albedo () - initial average HRU snow cover albedo.
- hru_elev (m) - HRU mean elevation.
- Z0snow (m) - roughness length.
- Zref (m) - temperature measurement height.
- Zwind (m) - wind measurement height.
- LAI (m2/m2) - leaf area index.
Variable Inputs
- hru_t (°C) - (*) air temperature.
- hru_rh (%) - (*) relative humidity.
- hru_ea (kPa) - (*) vapour pressure. Often calculated by an observation filter from t and rh.
- hru_u (m/s) - (*) average wind speed over time step.
- SWE (mm) - (*) snow water equivalent.
- albedo (albedo) - (*)
- SolAng (radians) - (*) from global or similar module.
Notes.
Pa[hh] = 101.3*pow((293.0-0.0065*hru_elev[hh])/293.0, 5.26); // kPa
Exposure = Ht[hh] - DepthofSnow(SWE[hh]); /* depths(m) SWE(mm)
if(Exposure < 0.0) Exposure = 0.0
LAI_ = LAI[hh]*Exposure/Ht[hh]
Vf_ = Vf[hh] + (1.0 - Vf[hh])*sin((Ht[hh] - Exposure)/Ht[hh]*M_PI_2)
if(beta[hh] > 0.001) {
k[hh] = 1.081*beta[hh]*cos(beta[hh])/sin(beta[hh]);
Tauc[hh] = exp(-k[hh]*LAI_[hh]);
}
else {
k[hh] = 0.0; Tauc[hh] = 0.0;
}
rho[hh] = Pa[hh]*1000/(Rgas*(t[0] + 273.15));
float U1 = max(u[0], 1.0e-3); // Wind speed (m/s)
ra[hh] = sqr(log(z1[hh]/z0[hh]))/(sqr(kappa)*U1);
delta[hh] = 0.622*Ls*Qstar[hh]/(Rgas*sqr(t[0] + 273.15));
float q = (rh[0]/100)*Qs(Pa[hh], T1); // specific humidity (kg/kg)
Ts[hh] = T1 + (emiss*(Qli[Qlimax] - sbc*pow(T1, 4)) + Ls*(q - Qs(Pa[hh], T1))*rho/ra[hh])/(4*emiss*sbc*pow(T1, 3) + (Cp + Ls*delta)*rho/ra[hh])
// Canopy temperature is approximated by the air temperature.
Qn[hh] = Vf_[hh]* Qli[Qlimax] + (1.0 - Vf[hh])*emiss_c*sbc*pow(T1, 4.0) - emiss*sbc*pow(Ts[hh] + Tm, 4.0) + Qsi[0]*Tauc[hh]*(1-Albedo[hh])
Constants
sbc = 5.67E-8 (W/m2/k4) Stephan-Boltzmann constant.
Ls = 2.845e6 (J/kg) latent heat of sublimation.
Lf = 0.334e6 (J/kg) latent heat of fusion.
Rgas = 287.0 (J/kg/K) gas constant for dry air.
rho = 1.23 (kg/m3) density of dry air.
Cp = 1005 (J/kg/K) volumetric heat capacity of dry air.
Tm = 273.15 (K) melting point.