3#ifndef LM_SOILCHEMISTRY_DECONIT_H_
4#define LM_SOILCHEMISTRY_DECONIT_H_
6#include "mbe_legacymodel.h"
7#include "state/mbe_state.h"
9#include "eventhandler/fertilize/fertilize.h"
10#include "eventhandler/till/till.h"
12#include <input/event/events.h>
16class LDNDC_API SoilChemistryDECONIT :
public MBE_LegacyModel
18 LMOD_EXPORT_MODULE_INFO(SoilChemistryDECONIT,
"soilchemistry:deconit",
"Soilchemistry DECONIT");
25 ~SoilChemistryDECONIT();
27 lerr_t configure( ldndc::config_file_t
const *);
29 lerr_t register_ports( cbm::io_kcomm_t *);
34 lerr_t unregister_ports( cbm::io_kcomm_t *);
35 lerr_t finalize() {
return LDNDC_ERR_OK; }
37 lerr_t sleep() {
return LDNDC_ERR_OK; }
38 lerr_t wake() {
return LDNDC_ERR_OK; }
41 input_class_siteparameters_t
const & sipar_;
42 input_class_soillayers_t
const & sl_;
44 substate_surfacebulk_t & sb_;
45 substate_airchemistry_t & ac_;
46 substate_microclimate_t & mc_;
47 substate_physiology_t & ph_;
48 substate_soilchemistry_t & sc_;
49 substate_watercycle_t & wc_;
51 MoBiLE_PlantVegetation * m_veg;
53 timemode_e
const timemode_;
55 EventHandlerFertilize m_eventfertilize;
57 EventQueue m_TillEvents;
58 CBM_Handle m_TillHandle;
60 lvector_t< double > addC_lit1_Frt_sl;
61 lvector_t< double > addC_lit2_Frt_sl;
62 lvector_t< double > addC_lit3_Frt_sl;
64 lvector_t< double > addC_lit1_Fol_sl;
65 lvector_t< double > addC_lit2_Fol_sl;
66 lvector_t< double > addC_lit3_Fol_sl;
68 lvector_t< double > fact_m;
69 lvector_t< double > fact_t;
70 lvector_t< double > fact_tm;
72 lvector_t< double > fact_carbonQuality;
74 lvector_t< double > fdeniFROST_sl;
75 lvector_t< double > fdeni;
76 lvector_t< double > sumHeterotrophs;
78 lvector_t< double >
const &mc_temp_sl;
81 double *accumulated_waterflux_old_sl;
83 double tot_c_balance_1;
84 double tot_n_balance_1;
89 double DECONIT_Fact_T(
size_t);
90 double DECONIT_Fact_M(
size_t);
99 void DECONIT_GasSpecDiffusion(
102 double &chem_last_sl);
104 lerr_t DECONIT_step_init();
106 void DECONIT_AnaerobicVolumeFraction();
108 void DECONIT_EmpiricalAnaerobicVolumeFraction();
110 lerr_t DECONIT_fertilize();
111 lerr_t DECONIT_manure();
112 lerr_t DECONIT_till();
113 lerr_t DECONIT_urea_hydrolysis();
115 void DECONIT_ArahVintenAnaerobicVolumeFraction();
117 void DECONIT_DenitrifierFraction();
119 void DECONIT_MicrobialGrowth();
121 void DECONIT_Denitrification();
123 void DECONIT_UpwardDiffusion();
125 void DECONIT_Leaching();
127 void DECONIT_MicrobialDecay();
129 void DECONIT_Chemodenitrification();
131 void DECONIT_CalcRootResp();
133 void DECONIT_AllocLitter();
135 void DECONIT_Decomposition();
137 void DECONIT_Fragmentation();
139 void DECONIT_UpdateTempMoist();
141 double DECONIT_get_wfps(
148 DECONIT_balance_check(
163 lerr_t DECONIT_CHECK_FOR_NEGATIVE_VALUE(
Spatially explicit groundwater model.
Definition: airchemistryput.h:15