Rev 257 | Rev 266 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 257 | Rev 265 | ||
---|---|---|---|
Line 58... | Line 58... | ||
58 | const Stamp* stamp(const float dbh, const float height) const { return mLIPs.stamp(dbh, height);} |
58 | const Stamp* stamp(const float dbh, const float height) const { return mLIPs.stamp(dbh, height);} |
59 | // maintenance
|
59 | // maintenance
|
60 | void setup(); |
60 | void setup(); |
61 | private: |
61 | private: |
62 | Q_DISABLE_COPY(Species); |
62 | Q_DISABLE_COPY(Species); |
- | 63 | QMutex mMutex;
|
|
63 | // helpers during setup
|
64 | // helpers during setup
|
64 | bool boolVar(const QString s) { return mSet->var(s).toBool(); } ///< during setup: get value of variable @p s as a boolean variable. |
65 | bool boolVar(const QString s) { return mSet->var(s).toBool(); } ///< during setup: get value of variable @p s as a boolean variable. |
65 | double doubleVar(const QString s) { return mSet->var(s).toDouble(); }///< during setup: get value of variable @p s as a double. |
66 | double doubleVar(const QString s) { return mSet->var(s).toDouble(); }///< during setup: get value of variable @p s as a double. |
66 | int intVar(const QString s) { return mSet->var(s).toInt(); } ///< during setup: get value of variable @p s as an integer. |
67 | int intVar(const QString s) { return mSet->var(s).toInt(); } ///< during setup: get value of variable @p s as an integer. |
67 | QString stringVar(const QString s) { return mSet->var(s).toString(); } ///< during setup: get value of variable @p s as a string. |
68 | QString stringVar(const QString s) { return mSet->var(s).toString(); } ///< during setup: get value of variable @p s as a string. |
Line 103... | Line 104... | ||
103 | double mRespTempMax; ///< temperature response calculation: saturation point for temp. response |
104 | double mRespTempMax; ///< temperature response calculation: saturation point for temp. response |
104 | double mRespNitrogenClass; ///< nitrogen response class (1..3). fractional values (e.g. 1.2) are interpolated. |
105 | double mRespNitrogenClass; ///< nitrogen response class (1..3). fractional values (e.g. 1.2) are interpolated. |
105 | // water
|
106 | // water
|
106 | double mMaxCanopyConductance; ///< maximum canopy conductance for transpiration (m/s) |
107 | double mMaxCanopyConductance; ///< maximum canopy conductance for transpiration (m/s) |
107 | int mPhenologyClass; |
108 | int mPhenologyClass; |
108 | - | ||
109 | }; |
109 | }; |
110 | 110 | ||
111 | 111 | ||
112 | // inlined functions...
|
112 | // inlined functions...
|
113 | inline void Species::hdRange(const double dbh, double &rLowHD, double &rHighHD) |
113 | inline void Species::hdRange(const double dbh, double &rLowHD, double &rHighHD) |
114 | {
|
114 | {
|
- | 115 | QMutexLocker m(&mMutex); // serialize access |
|
115 | rLowHD = mHDlow.calculate(dbh); |
116 | rLowHD = mHDlow.calculate(dbh); |
116 | rHighHD = mHDhigh.calculate(dbh); |
117 | rHighHD = mHDhigh.calculate(dbh); |
117 | }
|
118 | }
|
118 | /** vpdResponse calculates response on vpd.
|
119 | /** vpdResponse calculates response on vpd.
|
119 | Input: vpd [kPa]*/
|
120 | Input: vpd [kPa]*/
|