1#ifndef M1D_MOD_PHYSIOLOGY_MYCOFON_H
2#define M1D_MOD_PHYSIOLOGY_MYCOFON_H
6#include "physiologymodule.h"
12class PhysiologyMYCOFON :
public PhysiologyModule {
15 PhysiologyMYCOFON(ModelCore & modelCore,
unsigned int timeInterval) : PhysiologyModule(modelCore,timeInterval),
16 modelCore_(modelCore),
17 time_(modelCore.getLandscape().getTime()),
18 si_(modelCore.getInput().getSite()),
19 sppar_(modelCore.getInput().getParameter().getSpeciesPar()),
20 sipar_(modelCore.getInput().getParameter().getSitePar()),
21 ac_(modelCore.getSubstates().getAc()),
22 mc_(modelCore.getSubstates().getMc()),
23 sc_(modelCore.getSubstates().getSc()),
24 wc_(modelCore.getSubstates().getWc()),
25 ph_(const_cast<Physiology &>(modelCore.getSubstates().getPh())),
26 vs_(modelCore.getSubstates().getVs())
29 this->setName(
"PhysiologyMYCOFON");
32 ~PhysiologyMYCOFON() {
47 ModelCore & modelCore_;
53 AirChemistry
const & ac_;
54 MicroClimate
const & mc_;
55 SoilChemistry
const & sc_;
56 WaterCycle
const & wc_;
58 VegStructure
const & vs_;
62 static const double CCDMmyc;
63 static const double NCFUNGOPT;
64 static const double MYC_M;
65 static const double NTORmyc;
66 static const double PAMMmyc;
67 static const double PNITmyc;
68 static const double PORGmyc;
69 static const double FYIELDmyc;
70 static const double KM20myc;
71 static const double CSUBmyc;
72 static const double TMINmyc;
73 static const double TMAXmyc;
74 static const double TREFmyc;
75 static const double KMMMmyc;
76 static const double DR_MYCmyc;
77 static const double DR_Mmyc;
78 static const double NH4UPTmyc;
79 static const double NO3UPTmyc;
80 static const double DONUPTmyc;
81 static const double RSMAX;
82 static const double NLIM;
83 static const double TLIM;
84 static const double RNLIM;
85 static const double MAXUPT;
86 static const double FCSTOR;
87 static const double COVOPT;
107 double CFCROPT,NCROOTOPT;
114 void MycNAllocation();
116 void MycCAllocation();
118 inline double Max(
double x,
double y){
119 return (x > y) ? x : y;
122 inline double Min(
double x,
double y){
123 return (x > y) ? y : x;
126 inline double Sqr(
double x){