Subversion Repositories public iLand

Rev

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

Rev 779 Rev 798
Line 36... Line 36...
36
  This is based on the utilizable photosynthetic active radiation.
36
  This is based on the utilizable photosynthetic active radiation.
37
  @sa http://iland.boku.ac.at/primary+production
37
  @sa http://iland.boku.ac.at/primary+production
38
  The resulting radiation is MJ/m2       */
38
  The resulting radiation is MJ/m2       */
39
inline double Production3PG::calculateUtilizablePAR(const int month) const
39
inline double Production3PG::calculateUtilizablePAR(const int month) const
40
{
40
{
41
    // calculate the available radiation. This is done at SpeciesResponse-Level
-
 
-
 
41
    // calculate the available radiation. This is done at SpeciesResponse-Level (SpeciesResponse::calculate())
42
    // see Equation (3)
42
    // see Equation (3)
43
    // multiplicative approach: responses are averaged one by one and multiplied on a monthly basis
43
    // multiplicative approach: responses are averaged one by one and multiplied on a monthly basis
44
//    double response = mResponse->absorbedRadiation()[month] *
44
//    double response = mResponse->absorbedRadiation()[month] *
45
//                      mResponse->vpdResponse()[month] *
45
//                      mResponse->vpdResponse()[month] *
46
//                      mResponse->soilWaterResponse()[month] *
46
//                      mResponse->soilWaterResponse()[month] *
Line 66... Line 66...
66
66
67
inline double Production3PG::abovegroundFraction() const
67
inline double Production3PG::abovegroundFraction() const
68
{
68
{
69
    double utilized_frac = 1.;
69
    double utilized_frac = 1.;
70
    if (Model::settings().usePARFractionBelowGroundAllocation) {
70
    if (Model::settings().usePARFractionBelowGroundAllocation) {
-
 
71
        // the Landsberg & Waring formulation takes into account the fraction of utilizeable to total radiation (but more complicated)
-
 
72
        // we originally used only nitrogen and added the U_utilized/U_radiation
71
        utilized_frac = mResponse->totalUtilizedRadiation() / mResponse->yearlyRadiation();
73
        utilized_frac = mResponse->totalUtilizedRadiation() / mResponse->yearlyRadiation();
72
    }
74
    }
73
    double harsh =  1 - 0.8/(1 + 2.5 * mResponse->nitrogenResponse() * utilized_frac);
75
    double harsh =  1 - 0.8/(1 + 2.5 * mResponse->nitrogenResponse() * utilized_frac);
74
    return harsh;
76
    return harsh;
75
}
77
}