11#ifndef LM_MICROCLIMATE_CANOPY_ECM_H_
12#define LM_MICROCLIMATE_CANOPY_ECM_H_
14#include "mbe_legacymodel.h"
15#include "state/mbe_state.h"
20class LDNDC_API MicroClimateCanopyECM :
public MBE_LegacyModel
22 LMOD_EXPORT_MODULE_INFO(MicroClimateCanopyECM,
"microclimate:canopyecm",
"Microclimate CanopyECM");
27 static const double QMASSAREA;
29 static const double EXPW;
31 static const double ROUGH;
33 static const double FEXT_W;
36 static const double FLITALB;
39 static const double HLMIN;
41 static const double HBASE;
43 static const double SDAMP;
46 MicroClimateCanopyECM(
51 ~MicroClimateCanopyECM();
54 lerr_t configure( ldndc::config_file_t
const *);
60 lerr_t finalize() {
return LDNDC_ERR_OK; }
62 lerr_t sleep() {
return LDNDC_ERR_OK; }
63 lerr_t wake() {
return LDNDC_ERR_OK; }
66 input_class_setup_t
const & se_;
67 substate_watercycle_t
const & wc_;
68 substate_microclimate_t & mc_;
69 substate_physiology_t
const & ph_;
71 MoBiLE_PlantVegetation * m_veg;
73 input_class_climate_t
const & climate_;
74 input_class_soillayers_t
const & sl_;
75 substate_soilchemistry_t
const & sc_;
77 substate_surfacebulk_t & sbl_;
79 solver_tridiagonal_t tdma_solver_;
83 lvector_t< double > loc_lw_rad_down_fl;
84 lvector_t< double > loc_lw_rad_up_fl;
85 lvector_t< double > loc_sw_rad_fl;
86 lvector_t< double > loc_sw_rad_refl_fl;
87 double loc_sw_rad_refl_a;
88 lvector_t< double > f_area_fl;
89 lvector_t< double > lai_fl;
90 lvector_t< double > loc_temp_fl;
91 lvector_t< double > loc_fsun_fl;
92 lvector_t< double > loc_parshd_fl;
93 lvector_t< double > loc_parsun_fl;
94 lvector_t< double > loc_vpd_fl;
95 lvector_t< double > loc_rh_fl;
96 lvector_t< double > loc_win_fl;
100 double * temp_old_sl;
101 double * temp_old_sbl;
106 double * h_extended_sl;
107 double * som_extended_sl;
108 double * min_extended_sl;
119 bool dirichletboundarycondition;
120 double annual_average_temperature;
122 double domainextension;
126 cbm::string_t soiltemperature_method;
128 double accumulated_evapotranspiration_canopy;
129 double accumulated_evapotranspiration_soil;
132 double loc_sw_rad_out;
135 double loc_lw_rad_out;
138 double loc_sensible_heat_out_top;
139 double loc_sensible_heat_out_bottom;
159 lerr_t CanopyECM_step_init();
160 lerr_t CanopyECM_step_out();
162 void CalcTemperature();
169 lerr_t CalcSoilTemperature_implicite(
170 lvector_t< double > & ,
174 lerr_t CalcSoilTemperature_implicite_extended(
175 lvector_t< double > & ,
179 lerr_t CalcSoilTemperature_explicite(
180 lvector_t< double > & ,
194 void CalcShortwaveRadiation();
215 void CalcWindspeed();
229 double foliage_layer_heat_capacity(
size_t );
236 double get_canopy_energy();
238 double get_surface_bulk_energy();
240 double get_soil_energy( lvector_t< double > & );
247 double get_lai_fraction(
size_t ,
255 double get_sky_view(
double const & );
262 double get_lw_radiation_down(
double const & ,
Spatially explicit groundwater model.
Definition: airchemistryput.h:15