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
|