89 const double& roughness_length,
const double& height_of_wind_val,
90 const bool& adjust_VW_height=
true);
95 static double get_f1(
const double& ris);
97 static double RootFraction(
const double& zupper,
const double& zlower,
const double rootdepth);
99 void SoilWaterUptake(
const size_t& SoilNode,
const double& transpiration,
101 const double rootdepth,
const double h_wilt)
const;
103 static double get_f4(
const double& tempC);
105 static double get_f2f4(
const size_t& SoilNode,
ElementData* EMS,
106 const double wp_fraction,
const double rootdepth);
108 static double get_f3(
const double& vpd,
const double f3_gd);
111 const bool& force_rain=
false)
const;
113 static double IntUnload(
const double& capacity,
const double& storage);
115 static double IntRate(
const double& capacity,
const double& storage,
const double& prec,
116 const double& direct,
const double interception_timecoef);
118 static double CanopyAlbedo(
const double& tair,
const double& wetfrac,
const SnowStation& Xdata);
120 static double TotalAlbedo(
double CanAlb,
double sigf,
double SurfAlb,
double DirectThroughfall,
121 double CanopyClosureDirect,
double RadFracDirect,
double sigfdirect);
123 static double CanopyShadeSoilCover(
const double& HEIGHT,
const double& COVER,
const double& ELEV,
const double& can_diameter);
125 static double CanopyWetFraction(
const double& capacity,
const double& storage);
127 static double CanopyTransmissivity(
const double& lai,
const double& elev,
const double krnt_lai);
130 double& iswrac,
double& rsnet,
double& ilwrac,
double& r0,
double& r1,
131 const double& canopyalb,
double& CanopyClosureDirect,
double& RadFracDirect,
132 const double& sigfdirect,
double& r1p)
const;
135 double& iswrac,
double& rsnet,
double& ilwrac,
double& r0,
double& r1,
double& r2,
136 double& rt0,
double& rt1,
double& rt2,
const double& canopyalb,
double& CanopyClosureDirect,
double& RadFracDirect,
137 const double& sigfdirect,
const double& sigftrunkdirect,
double& r1p,
double& r2p)
const;
139 static void LineariseSensibleHeatFlux(
const double& ch_canopy,
const double& tair,
double& h0,
double& h1,
double scalingfactor);
141 static double DSaturationPressureDT(
const double& L,
const double& T);
143 static void LineariseLatentHeatFlux(
const double& ce_canopy,
const double& tc_old,
const double& vpair,
144 double& le0,
double& le1,
double scalingfactor);
146 static void CalculateHeatMass(
const double& height,
const double& BasalArea,
double& lai ,
double& HMLeaves,
147 double& HMTrunks,
const double biomass_density,
const double biomass_heat_capacity);
149 void LineariseConductiveHeatFlux(
const double& tc_old,
const double& HM,
double& HM0,
double& HM1,
const double& DT,
const double& scalingfactor)
const;
151 static void CanopyEnergyBalance(
const double& h0,
const double& h1,
const double& le0,
152 const double& le1,
const double& HM0,
const double& HM1,
153 const double& ce_canopy,
154 const double& ce_condensation,
155 double& r0,
double& r1,
double& TCANOPY,
double& RNCANOPY,
156 double& HCANOPY,
double& LECANOPY);
158 static void CanopyEnergyBalance2L(
double& h0,
double& h1,
double& le0,
159 double& le1,
double& HM0,
double& HM1,
double& TT0,
double& TT1,
160 const double& ce_canopy,
161 const double& ce_condensation,
162 double& r0,
double& r1,
double& r2,
double& TCANOPY,
double& Ttrunk,
double& RNCANOPY,
163 double& HCANOPY,
double& LECANOPY);
165 static void CanopyEvaporationComponents(
const double& ce_canopy,
166 const double& ce_transpiration,
double& LECANOPY,
167 const double& ta,
const double& I,
const double DT,
168 double& CanopyEvaporation,
169 double& INTEVAP,
double& TRANSPIRATION,
170 double& RNCANOPY,
double& HCANOPY,
double& TCANOPY,
171 const double& r0,
const double& r1,
const double& h0,
const double& h1,
172 double& LECANOPYCORR,
173 const double& wetfraction,
const double& HM0,
const double& HM1);
175 static void CanopyEvaporationComponents2L(
const double& ce_canopy,
176 const double& ce_transpiration,
double& LECANOPY,
177 const double& ta,
const double& I,
const double DT,
178 double& CanopyEvaporation,
179 double& INTEVAP,
double& TRANSPIRATION,
180 double& RNCANOPY,
double& HCANOPY,
double& TCANOPY,
double& Ttrunk,
181 const double& TT0,
const double& TT1,
182 const double& r0,
const double& r1,
const double& r2,
const double& h0,
const double& h1,
183 double& LECANOPYCORR,
184 const double& wetfraction,
185 const double& HM0,
const double& HM1);
187 static double get_psim(
const double& xi);
189 static double get_psih(
const double& xi);
191 static double RichardsonToAeta(
double za,
double TempAir,
double DiffTemp,
double Windspeed,
double zom,
double zoh,
int maxitt);
193 void CanopyTurbulentExchange(
const CurrentMeteo& Mdata,
const double& refheight,
const double& zomg,
194 const double& wetfraction,
SnowStation& Xdata,
double& ch_canopy,
195 double& ce_canopy,
double& ce_transpiration,
196 double& ce_interception,
double& ce_condensation)
const;
199 double &iswrac,
double &rswrac,
200 double &iswrbc,
double &rswrbc,
double &ilwrac,
201 double &rlwrac,
double &ilwrbc,
double &rlwrbc,
202 double CanopyClosureDirect,
double RadFracDirect,
double sigfdirect,
double sigftrunkdirect)
const;
204 std::string hn_density, hn_density_parameterization, variant, watertransportmodel_soil;
205 double hn_density_fixedValue, calculation_step_length;
209 bool Twolayercanopy, Twolayercanopy_user;
210 bool canopytransmission;
211 bool forestfloor_alb;
Canopy data used as a pointer in the SnowStation structure.
Definition DataClasses.h:442
Computes interception of precipitation and radiation, and reduction of windspeed in a canopy layer ab...
Definition Canopy.h:79
static void DumpCanopyHeader(std::ofstream &fout)
Write header for 28 canopy parameters to Outfile, columns 65-92.
Definition Canopy.cc:40
bool runCanopyModel(CurrentMeteo &Mdata, SnowStation &Xdata, const double &roughness_length, const double &height_of_wind_val, const bool &adjust_VW_height=true)
MAIN CANOPY FUNCTION CALLED BY Meteo.c This routine computes interception of precipitation and radiat...
Definition Canopy.cc:1575
static void DumpCanopyData(std::ofstream &fout, const CanopyData *Cdata, const SurfaceFluxes *Sdata, const double cos_sl)
Dump 28 canopy parameters to Outfile, columns 65-92.
Definition Canopy.cc:122
static void DumpCanopyUnits(std::ofstream &fout)
Write units for 28 canopy parameters to Outfile, columns 65-92.
Definition Canopy.cc:90
static void writeTimeSeriesAdd2LCanopy(std::ofstream &fout, const CanopyData *Cdata)
Definition Canopy.cc:165
CurrentMeteo is the class of interpolated meteo data for the current calculation time step.
Definition DataClasses.h:86
The physical properties of an individual element used in snow layers (one or multiple elements are co...
Definition DataClasses.h:288
Station data including all information on snowpack layers (elements and nodes) and on canopy.
Definition DataClasses.h:609
Definition SnowpackConfig.h:28
The surface fluxes data as computed by Snowpack.
Definition DataClasses.h:743