Subversion Repositories public iLand

Rev

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

Rev 276 Rev 304
Line 54... Line 54...
54
    inline double temperatureResponse(const double &delayed_temp) const;
54
    inline double temperatureResponse(const double &delayed_temp) const;
55
    double nitrogenResponse(const double &availableNitrogen) const { return mSet->nitrogenResponse(availableNitrogen, mRespNitrogenClass); }
55
    double nitrogenResponse(const double &availableNitrogen) const { return mSet->nitrogenResponse(availableNitrogen, mRespNitrogenClass); }
56
    double canopyConductance() const { return mMaxCanopyConductance; } ///< maximum canopy conductance in m/s
56
    double canopyConductance() const { return mMaxCanopyConductance; } ///< maximum canopy conductance in m/s
57
    inline double soilwaterResponse(const double &psi_kPa) const; ///< input: matrix potential (kPa) (e.g. -15)
57
    inline double soilwaterResponse(const double &psi_kPa) const; ///< input: matrix potential (kPa) (e.g. -15)
58
    double lightResponse(const double lightResourceIndex) {return mSet->lightResponse(lightResourceIndex, mLightResponseClass); }
58
    double lightResponse(const double lightResourceIndex) {return mSet->lightResponse(lightResourceIndex, mLightResponseClass); }
59
    double psiMax() const { return mPsiMax; }
-
 
-
 
59
    double psiMin() const { return mPsiMin; }
60
60
61
    const Stamp* stamp(const float dbh, const float height) const { return mLIPs.stamp(dbh, height);}
61
    const Stamp* stamp(const float dbh, const float height) const { return mLIPs.stamp(dbh, height);}
62
    // maintenance
62
    // maintenance
63
    void setup();
63
    void setup();
64
private:
64
private:
Line 105... Line 105...
105
    // environmental responses
105
    // environmental responses
106
    double mRespVpdExponent; ///< exponent in vpd response calculation (Mäkela 2008)
106
    double mRespVpdExponent; ///< exponent in vpd response calculation (Mäkela 2008)
107
    double mRespTempMin; ///< temperature response calculation offset
107
    double mRespTempMin; ///< temperature response calculation offset
108
    double mRespTempMax; ///< temperature response calculation: saturation point for temp. response
108
    double mRespTempMax; ///< temperature response calculation: saturation point for temp. response
109
    double mRespNitrogenClass; ///< nitrogen response class (1..3). fractional values (e.g. 1.2) are interpolated.
109
    double mRespNitrogenClass; ///< nitrogen response class (1..3). fractional values (e.g. 1.2) are interpolated.
110
    double mPsiMax; ///< maximum water potential (MPa), i.e. wilting point (is below zero!)
-
 
-
 
110
    double mPsiMin; ///< minimum water potential (MPa), i.e. wilting point (is below zero!)
111
    // water
111
    // water
112
    double mMaxCanopyConductance; ///< maximum canopy conductance for transpiration (m/s)
112
    double mMaxCanopyConductance; ///< maximum canopy conductance for transpiration (m/s)
113
    int mPhenologyClass;
113
    int mPhenologyClass;
114
    double mLightResponseClass; ///< light response class (1..5) (1=shade intolerant)
114
    double mLightResponseClass; ///< light response class (1..5) (1=shade intolerant)
115
};
115
};
Line 144... Line 144...
144

144

145
  */
145
  */
146
inline double Species::soilwaterResponse(const double &psi_kPa) const
146
inline double Species::soilwaterResponse(const double &psi_kPa) const
147
{
147
{
148
    const double psi_mpa = psi_kPa / 1000.; // convert to MPa
148
    const double psi_mpa = psi_kPa / 1000.; // convert to MPa
149
    double result = limit( 1. - psi_mpa / mPsiMax, 0., 1.);
-
 
-
 
149
    double result = limit( 1. - psi_mpa / mPsiMin, 0., 1.);
150
    return result;
150
    return result;
151
}
151
}
152
152
153
#endif // SPECIES_H
153
#endif // SPECIES_H