LandscapeDNDC 1.37.0
output-soilchemistry-metrx-fluxes-layer-subdaily.h
1
8#ifndef LM_OUTPUT_SOILCHEMISTRYMETRX_FLUXES_LAYER_SUBDAILY_H_
9#define LM_OUTPUT_SOILCHEMISTRYMETRX_FLUXES_LAYER_SUBDAILY_H_
10
11#include "mbe_legacyoutputmodel.h"
12
13#define LMOD_OUTPUT_MODULE_ID "output:soilchemistry-metrx-fluxes-layer:subdaily"
14#define LMOD_OUTPUT_MODULE_DESC "SoilchemistryMeTrX Fluxes Output"
15namespace ldndc {
16class LDNDC_API OutputSoilchemistryMeTrXFluxes : public MBE_LegacyOutputModel
17{
18 LMOD_EXPORT_MODULE_INFO(OutputSoilchemistryMeTrXFluxes,LMOD_OUTPUT_MODULE_ID,LMOD_OUTPUT_MODULE_DESC);
19 public:
20 OutputSoilchemistryMeTrXFluxes(
21 MoBiLE_State *,
22 cbm::io_kcomm_t *,
23 timemode_e _timemode);
24
25 ~OutputSoilchemistryMeTrXFluxes();
26
27
28 lerr_t configure( ldndc::config_file_t const *);
29 lerr_t initialize();
30 lerr_t solve();
31 lerr_t finalize();
32
33 lerr_t wake() { return LDNDC_ERR_OK; }
34 lerr_t sleep() { return LDNDC_ERR_OK; }
35
36
37 lerr_t write_results(
38 unsigned int /* layer index */,
39 ldndc_flt64_t *);
40
41 size_t record_size() const;
42
43 private:
44 cbm::io_kcomm_t * m_iokcomm;
45 ldndc::sink_handle_t m_sink;
46
47 input_class_soillayers_t const & sl_;
48 substate_surfacebulk_t & sb_;
49
50 public:
51
52 lvector_t< double > accumulated_n_nh4_throughfall_sl;
53 lvector_t< double > accumulated_n_no3_throughfall_sl;
54 lvector_t< double > accumulated_n_nh4_throughfall_sbl;
55 lvector_t< double > accumulated_n_no3_throughfall_sbl;
56
57 lvector_t< double > accumulated_n_to_living_plant_and_algae_from_extern_sl;
58
59 lvector_t< double > accumulated_n_plant_nh4_uptake_sl;
60 lvector_t< double > accumulated_n_plant_no3_uptake_sl;
61 lvector_t< double > accumulated_n_plant_nh3_uptake_sl;
62 lvector_t< double > accumulated_n_plant_don_uptake_sl;
63 lvector_t< double > accumulated_n_algae_nh4_uptake_sbl;
64 lvector_t< double > accumulated_n_algae_no3_uptake_sbl;
65 lvector_t< double > accumulated_n_algae_nh3_uptake_sbl;
66
67
68 lvector_t< double > accumulated_n_litter_from_plants_below_rawlitter_sl;
69 lvector_t< double > accumulated_n_litter_from_plants_below_wood_sl;
70 double accumulated_n_litter_from_plants_above_rawlitter;
71 double accumulated_n_litter_from_plants_above_wood;
72 double accumulated_n_litter_from_plants_above_stubble;
73 lvector_t< double > accumulated_n_aboveground_raw_litter_fragmentation_sl;
74 lvector_t< double > accumulated_n_belowground_raw_litter_fragmentation_sl;
75 lvector_t< double > accumulated_n_litter_from_algae_sl;
76 lvector_t< double > accumulated_n_litter_from_dung_sl;
77 lvector_t< double > accumulated_n_urea_from_dung_sl;
78
79 double accumulated_n_export_harvest_cutting_grazing;
80
81 lvector_t< double > accumulated_n_nh4_fertilization_sl;
82 lvector_t< double > accumulated_n_no3_fertilization_sl;
83 lvector_t< double > accumulated_n_nh3_fertilization_sl;
84 lvector_t< double > accumulated_n_don_fertilization_sl;
85 lvector_t< double > accumulated_n_urea_fertilization_sl;
86 lvector_t< double > accumulated_n_litter_fertilization_sl;
87 lvector_t< double > accumulated_n_aorg_fertilization_sl;
88 lvector_t< double > accumulated_n_nh4_fertilization_sbl;
89 lvector_t< double > accumulated_n_no3_fertilization_sbl;
90 lvector_t< double > accumulated_n_nh3_fertilization_sbl;
91 lvector_t< double > accumulated_n_urea_fertilization_sbl;
92
93 lvector_t< double > accumulated_n_surface_litter_incorporation_via_tilling_sl;
94 lvector_t< double > accumulated_n_litter_tilling_sl;
95 lvector_t< double > accumulated_n_aorg_tilling_sl;
96 lvector_t< double > accumulated_n_humus_1_tilling_sl;
97 lvector_t< double > accumulated_n_humus_2_tilling_sl;
98 lvector_t< double > accumulated_n_humus_3_tilling_sl;
99 lvector_t< double > accumulated_n_no3_tilling_sl;
100 lvector_t< double > accumulated_n_no2_tilling_sl;
101 lvector_t< double > accumulated_n_no_tilling_sl;
102 lvector_t< double > accumulated_n_n2o_tilling_sl;
103 lvector_t< double > accumulated_n_urea_tilling_sl;
104 lvector_t< double > accumulated_n_don_tilling_sl;
105 lvector_t< double > accumulated_n_nh4_tilling_sl;
106 lvector_t< double > accumulated_n_nh3_tilling_sl;
107 lvector_t< double > accumulated_n_microbes_tilling_sl;
108
109 lvector_t< double > accumulated_n_humus_1_spinup_sl;
110 lvector_t< double > accumulated_n_humus_2_spinup_sl;
111 lvector_t< double > accumulated_n_humus_3_spinup_sl;
112 lvector_t< double > accumulated_n_surface_litter_spinup_sl;
113 lvector_t< double > accumulated_n_litter_spinup_sl;
114
115 lvector_t< double > accumulated_n_urea_nh4_hydrolysis_sl;
116 lvector_t< double > accumulated_n_urea_nh4_hydrolysis_sbl;
117
118 lvector_t< double > accumulated_n_nh4_assimilation_sl;
119 lvector_t< double > accumulated_n_no3_assimilation_sl;
120 lvector_t< double > accumulated_n_don_assimilation_sl;
121
122 lvector_t< double > accumulated_n_nh4_nh3_conversion_sl;
123 lvector_t< double > accumulated_n_nh3_nh4_conversion_sl;
124 lvector_t< double > accumulated_n_nh4_nh3_conversion_sbl;
125 lvector_t< double > accumulated_n_nh3_nh4_conversion_sbl;
126
127 lvector_t< double > accumulated_n_micro_leaching_sl;
128 lvector_t< double > accumulated_n_aorg_leaching_sl;
129 lvector_t< double > accumulated_n_litter_leaching_sl;
130 lvector_t< double > accumulated_n_humus_1_leaching_sl;
131 lvector_t< double > accumulated_n_humus_2_leaching_sl;
132 lvector_t< double > accumulated_n_humus_3_leaching_sl;
133 lvector_t< double > accumulated_n_nh4_leaching_sl;
134 lvector_t< double > accumulated_n_no3_leaching_sl;
135 lvector_t< double > accumulated_n_nh3_leaching_sl;
136 lvector_t< double > accumulated_n_don_leaching_sl;
137 lvector_t< double > accumulated_n_urea_leaching_sl;
138 lvector_t< double > accumulated_n_no_leaching_sl;
139 lvector_t< double > accumulated_n_n2o_leaching_sl;
140
141 lvector_t< double > accumulated_n_urea_liq_diffusion_sl;
142 lvector_t< double > accumulated_n_nh3_liq_diffusion_sl;
143 lvector_t< double > accumulated_n_nh4_liq_diffusion_sl;
144 lvector_t< double > accumulated_n_no3_liq_diffusion_sl;
145
146 lvector_t< double > accumulated_n_nh4_infiltration_phys_sl;
147 lvector_t< double > accumulated_n_nh3_infiltration_phys_sl;
148 lvector_t< double > accumulated_n_urea_infiltration_phys_sl;
149 lvector_t< double > accumulated_n_no3_infiltration_phys_sl;
150 lvector_t< double > accumulated_n_don_infiltration_phys_sl;
151 lvector_t< double > accumulated_n_aorg_infiltration_phys_sl;
152
153 lvector_t< double > accumulated_n_nh4_infiltration_leach_sl;
154 lvector_t< double > accumulated_n_nh3_infiltration_leach_sl;
155 lvector_t< double > accumulated_n_urea_infiltration_leach_sl;
156 lvector_t< double > accumulated_n_no3_infiltration_leach_sl;
157 lvector_t< double > accumulated_n_don_infiltration_leach_sl;
158 lvector_t< double > accumulated_n_no_infiltration_leach_sl;
159 lvector_t< double > accumulated_n_n2o_infiltration_leach_sl;
160
161 lvector_t< double > accumulated_n_nh4_infiltration_liqdif_sl;
162 lvector_t< double > accumulated_n_nh3_infiltration_liqdif_sl;
163 lvector_t< double > accumulated_n_urea_infiltration_liqdif_sl;
164 lvector_t< double > accumulated_n_no3_infiltration_liqdif_sl;
165
166 lvector_t< double > accumulated_n_nh3_bubbling_sl;
167 lvector_t< double > accumulated_n_no_bubbling_sl;
168 lvector_t< double > accumulated_n_n2o_bubbling_sl;
169 lvector_t< double > accumulated_n_nh3_bubbling_sbl;
170 lvector_t< double > accumulated_n_no_bubbling_sbl;
171 lvector_t< double > accumulated_n_n2o_bubbling_sbl;
172
173 lvector_t< double > accumulated_n_nh3_dissolution_sbl;
174 lvector_t< double > accumulated_n_no_dissolution_sbl;
175 lvector_t< double > accumulated_n_n2o_dissolution_sbl;
176
177 lvector_t< double > accumulated_n_nh3_phys_diffusion_sl;
178 lvector_t< double > accumulated_n_no_phys_diffusion_sl;
179 lvector_t< double > accumulated_n_n2o_phys_diffusion_sl;
180 lvector_t< double > accumulated_n_nh3_gas_diffusion_sl;
181 lvector_t< double > accumulated_n_no_gas_diffusion_sl;
182 lvector_t< double > accumulated_n_n2o_gas_diffusion_sl;
183
184 lvector_t< double > accumulated_n_micro_perturbation_sl;
185 lvector_t< double > accumulated_n_aorg_perturbation_sl;
186 lvector_t< double > accumulated_n_litter_perturbation_sl;
187 lvector_t< double > accumulated_n_humus_1_perturbation_sl;
188 lvector_t< double > accumulated_n_humus_2_perturbation_sl;
189 lvector_t< double > accumulated_n_humus_3_perturbation_sl;
190
191 lvector_t< double > accumulated_n_nh4_no2_nitrification_sl;
192 lvector_t< double > accumulated_n_nh4_no_nitrification_sl;
193 lvector_t< double > accumulated_n_nh4_n2o_nitrification_sl;
194 lvector_t< double > accumulated_n_no2_no3_nitrification_sl;
195
196 lvector_t< double > accumulated_n_no3_no2_denitrification_sl;
197 lvector_t< double > accumulated_n_no3_no_denitrification_sl;
198 lvector_t< double > accumulated_n_no3_n2o_denitrification_sl;
199 lvector_t< double > accumulated_n_no3_n2_denitrification_sl;
200 lvector_t< double > accumulated_n_no2_no_denitrification_sl;
201 lvector_t< double > accumulated_n_no2_n2o_denitrification_sl;
202 lvector_t< double > accumulated_n_no2_n2_denitrification_sl;
203 lvector_t< double > accumulated_n_no_n2o_denitrification_sl;
204 lvector_t< double > accumulated_n_no_n2_denitrification_sl;
205 lvector_t< double > accumulated_n_n2o_n2_denitrification_sl;
206
207 lvector_t< double > accumulated_n_no2_chemodenitrification_sl;
208
209 lvector_t< double > accumulated_n_mic_naorg_decay_sl;
210 lvector_t< double > accumulated_n_mic_nh4_mineral_sl;
211 lvector_t< double > accumulated_n_mic_don_dissolve_sl;
212
213 lvector_t< double > accumulated_n_aorg_nh4_mineral_sl;
214 lvector_t< double > accumulated_n_aorg_don_dissolve_sl;
215
216 lvector_t< double > accumulated_n_humus_1_don_dissolve_sl;
217 lvector_t< double > accumulated_n_humus_1_nh4_mineral_sl;
218 lvector_t< double > accumulated_n_humus_2_don_dissolve_sl;
219 lvector_t< double > accumulated_n_humus_2_nh4_mineral_sl;
220 lvector_t< double > accumulated_n_humus_3_don_dissolve_sl;
221 lvector_t< double > accumulated_n_humus_3_nh4_mineral_sl;
222
223 lvector_t< double > accumulated_n_litter_don_dissolve_sl;
224 lvector_t< double > accumulated_n_litter_nh4_mineral_sl;
225
226 lvector_t< double > accumulated_n_don_humus_1_humify_sl;
227 lvector_t< double > accumulated_n_don_humus_2_humify_sl;
228 lvector_t< double > accumulated_n_don_humus_3_humify_sl;
229 lvector_t< double > accumulated_n_litter_humus_1_humify_sl;
230};
231
232} /*namespace ldndc*/
233
234#undef LMOD_OUTPUT_MODULE_ID
235#undef LMOD_OUTPUT_MODULE_DESC
236
237#endif /* !LM_OUTPUT_SOILCHEMISTRYMETRX_FLUXES_LAYER_SUBDAILY_H_ */
Spatially explicit groundwater model.
Definition: airchemistryput.h:15