Subversion Repositories public iLand

Rev

Rev 541 | Rev 547 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 541 Rev 546
Line 146... Line 146...
146
146
147
/// calculate the dynamic climate modifier for decomposition 're'
147
/// calculate the dynamic climate modifier for decomposition 're'
148
/// calculation is done on the level of ResourceUnit because the water content per day is needed.
148
/// calculation is done on the level of ResourceUnit because the water content per day is needed.
149
double Snag::calculateClimateFactors()
149
double Snag::calculateClimateFactors()
150
{
150
{
151
    double psi_kpa;
-
 
-
 
151
    double deficit;
152
    double ft, fw;
152
    double ft, fw;
153
    const double min_kpa = Model::settings().decayReferencePsi;
-
 
-
 
153
    const double top_layer_content = Model::settings().topLayerWaterContent;
154
    double f_sum = 0.;
154
    double f_sum = 0.;
155
    for (const ClimateDay *day=mRU->climate()->begin(); day!=mRU->climate()->end(); ++day)
155
    for (const ClimateDay *day=mRU->climate()->begin(); day!=mRU->climate()->end(); ++day)
156
    {
156
    {
157
        psi_kpa = mRU->waterCycle()->psi_kPa(day->day);
-
 
-
 
157
        deficit = mRU->waterCycle()->waterDeficit_mm(day->day);
158
158
159
        ft = exp(308.56*(1./56.02-1./((273.+day->temperature)-227.13)));  // empirical variable Q10 model of Lloyd and Taylor (1994), see also Adair et al. (2008)
159
        ft = exp(308.56*(1./56.02-1./((273.+day->temperature)-227.13)));  // empirical variable Q10 model of Lloyd and Taylor (1994), see also Adair et al. (2008)
160
        fw = 1. - limit(psi_kpa / min_kpa, 0., 1.);
-
 
-
 
160
        fw = 1. - limit(deficit / top_layer_content, 0., 1.);
-
 
161
        // the water effect: depends on the water deficit; if the deficit is higher than the parameterized
-
 
162
        // content of the top layer (where most microbial activity is located), than then fw gets 0.
161
163
162
        f_sum += ft*fw;
164
        f_sum += ft*fw;
163
    }
165
    }
164
    // the climate factor is defined as the arithmentic annual mean value
166
    // the climate factor is defined as the arithmentic annual mean value
165
    mClimateFactor = f_sum / double(mRU->climate()->daysOfYear());
167
    mClimateFactor = f_sum / double(mRU->climate()->daysOfYear());