modules_needleleaf (04/13/09)

CRHM Borland

NeedleLeaf.

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.