2#ifndef MOBILE_MODULE_ECHY_H_
3#define MOBILE_MODULE_ECHY_H_
5#include "mbe_legacymodel.h"
6#include "state/mbe_state.h"
8#include "ld_eventqueue.h"
9#include "eventhandler/flood/flood.h"
10#include "watercycle/ld_icesnow.h"
14class substate_microclimate_t;
15class substate_soilchemistry_t;
16class substate_watercycle_t;
26class LDNDC_API EcHy :
public MBE_LegacyModel
28 LMOD_EXPORT_MODULE_INFO(EcHy,
"watercycle:echy",
"EcHy");
32 cbm::io_kcomm_t *, timemode_e);
35 lerr_t configure( ldndc::config_file_t
const *);
36 lerr_t register_ports( cbm::io_kcomm_t *);
40 lerr_t unregister_ports( cbm::io_kcomm_t *);
48 cbm::io_kcomm_t * io_kcomm;
50 input_class_groundwater_t
const * gw_;
51 input_class_climate_t
const * m_climate;
52 input_class_setup_t
const * m_setup;
53 input_class_soillayers_t
const * soillayers_in;
54 input_class_siteparameters_t
const * m_param;
56 substate_soilchemistry_t
const & sc_;
57 substate_microclimate_t & mc_;
58 substate_watercycle_t & wc_;
59 substate_physiology_t & ph_;
60 MoBiLE_PlantVegetation * m_veg;
62 EventHandlerFlood m_eventflood;
63 WaterCycleSnowDNDC m_snowdndc;
65 SubscribedEvent<LD_EventHandlerQueue> m_ManureEvents;
66 SubscribedEvent<LD_EventHandlerQueue> m_IrrigationEvents;
70 double kst_bottom_gw_lateral;
71 double kst_bottom_gw_vertical;
110 lvector< double > kst_eq_sl;
141 double surface_snowmelt;
163 double minimum_watertable_height;
172 double irrigation_event;
177 CONSTANT_POSITIVE_WATER_TABLE,
178 CONSTANT_NEGATIVE_WATER_TABLE
180 irrigation_e irrigation_switch;
183 double surface_water;
190 WaterCycleSnowDNDC::IceContentStateOut m_icecontent_out;
198 bool have_capillary_rise;
310 lvector_t< double > &,
311 lvector_t< double > &);
362 EcHyGetDepthLimitation(
379 EcHyGetWaterLimitationTranspiration(
388 EcHyGetWaterLimitationEvaporation(
405 EcHy_check_for_negative_value(
413 pore_space(
size_t _sl)
const
415 return sc_.poro_sl[_sl] * sc_.h_sl[_sl];
double gw_fill_surface
Definition echy.h:125
lvector< double > wlfc_sl
Definition echy.h:116
lerr_t EcHyBypassFlow(double, double &)
Calculates water percolation within the soil profile.
lvector< double > bypass_fill_sl
Definition echy.h:100
lvector< double > wl_sl
Definition echy.h:113
double EcHyGetInterceptionCapacity()
...
Definition echy.cpp:377
double daily_potential_soil_evaporation
Definition echy.h:157
double accumulated_irrigation_old
Definition echy.h:80
double thornthwaite_heat_index
Definition echy.h:148
double runoff
Definition echy.h:131
double ev_surfacewater
Definition echy.h:103
double throughfall_water
Definition echy.h:137
lerr_t EcHyPercolation(size_t, size_t)
Calculates water percolation within the soil profile.
double canopy_snowmelt
Definition echy.h:140
double daily_potential_leaf_evaporation
Definition echy.h:154
lerr_t EcHySnowIce()
Calls SnowDNDC for the calculation of snowpack and soil ice formation.
Definition echy-snow.cpp:21
lerr_t EcHyFlood()
sets hydrologic conditions during flooding events, e.g.,
Definition echy-management.cpp:17
double EcHyGetRootLimitation(size_t _sl, double)
...
Definition echy-evapotranspiration.cpp:468
double EcHyGetAvailableWaterTranspiration(size_t)
...
Definition echy-evapotranspiration.cpp:392
double daily_potential_transpiration
Definition echy.h:160
double daily_potential_evapotranspiration
Definition echy.h:151
lerr_t EcHyStepInit()
...
Definition echy.cpp:193
lerr_t EcHyEvapotranspiration()
Calculates evapotranspiration within the soil profile.
double cr_fill_groundwater
Definition echy.h:128
lvector< double > evsws_sl
Definition echy.h:106
lvector< double > kst_sl
Definition echy.h:109
double throughfall_snow
Definition echy.h:134
lvector< double > trwl_sl
Definition echy.h:83
lerr_t EcHyCapillaryRise(double const &, double const &, size_t const &, double const &, double &)
...
Definition echy-groundwater.cpp:253
lerr_t EcHyGroundwater()
...
Definition echy-groundwater.cpp:19
lerr_t EcHyBalanceCheck(double &)
...
Definition echy.cpp:486
WaterCycleSnowDNDC::IceContentStateIn m_icecontent_in
Definition echy.h:189
cbm::string_t evapotranspiration_method
Definition echy.h:193
lerr_t EcHyIrrigation()
Irrigation.
Definition echy-management.cpp:91
lerr_t EcHyCalculateLeafWaterDistribution(lvector_t< double > &, lvector_t< double > &)
...
Definition echy.cpp:390
double EcHyGetMinimumWater(size_t)
...
Definition echy-evapotranspiration.cpp:441
void EcHyreset()
...
Definition echy.cpp:161
double EcHyGetAvailableWaterEvaporation(size_t)
...
Definition echy-evapotranspiration.cpp:433
lerr_t EcHyPotentialEvapotranspiration()
Calculates potential evapotranspiration. Specific concept can be given as model option.
Definition echy-evapotranspiration.cpp:30
lerr_t EcHyIntegration()
...
Definition echy.cpp:452
double canopy_water
Definition echy.h:144
double EcHyGetWiltingPoint(size_t)
...
Definition echy-evapotranspiration.cpp:449
lerr_t solve()
Definition echy.cpp:35
lerr_t EcHyStepExit()
...
Definition echy.cpp:320
double ev_leaf
Definition echy.h:122
lvector< double > gw_fill_sl
Definition echy.h:97
lvector< double > wlwp_sl
Definition echy.h:119
double EcHySoilWaterChange(size_t)
Definition echy.cpp:440
double accumulated_potentialtranspiration_old
Definition echy.h:77
lvector< double > cr_fill_sl
Definition echy.h:94
double kst_bottom
Definition echy.h:69
double gw_depth_static
Definition echy.h:74
cbm::string_t runoff_method
Definition echy.h:196
lvector< double > wlfl_sl
Definition echy.h:91
Spatially explicit groundwater model.
Definition airchemistryput.h:15