Rev 1221 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1 | |||
671 | werner | 2 | /******************************************************************************************** |
3 | ** iLand - an individual based forest landscape and disturbance model |
||
4 | ** http://iland.boku.ac.at |
||
5 | ** Copyright (C) 2009- Werner Rammer, Rupert Seidl |
||
6 | ** |
||
7 | ** This program is free software: you can redistribute it and/or modify |
||
8 | ** it under the terms of the GNU General Public License as published by |
||
9 | ** the Free Software Foundation, either version 3 of the License, or |
||
10 | ** (at your option) any later version. |
||
11 | ** |
||
12 | ** This program is distributed in the hope that it will be useful, |
||
13 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of |
||
14 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||
15 | ** GNU General Public License for more details. |
||
16 | ** |
||
17 | ** You should have received a copy of the GNU General Public License |
||
18 | ** along with this program. If not, see <http://www.gnu.org/licenses/>. |
||
19 | ********************************************************************************************/ |
||
20 | |||
113 | Werner | 21 | #ifndef PRODUCTION3PG_H |
22 | #define PRODUCTION3PG_H |
||
23 | |||
226 | werner | 24 | class SpeciesResponse; |
228 | werner | 25 | class ProductionOut; |
113 | Werner | 26 | class Production3PG |
27 | { |
||
28 | public: |
||
29 | Production3PG(); |
||
227 | werner | 30 | void setResponse(const SpeciesResponse *response) { mResponse=response;} |
31 | double calculate(); ///< return year GPP/rad: kg Biomass/MJ PAR/m2 |
||
369 | werner | 32 | void clear(); ///< clear production values |
227 | werner | 33 | double rootFraction() const { return mRootFraction; } /// fraction of biomass that should be distributed to roots |
257 | werner | 34 | double GPPperArea() const { return mGPPperArea; } ///< GPP production (yearly) (kg Biomass) per m2 (effective area) |
436 | werner | 35 | double fEnvYear() const { return mEnvYear; } ///< f_env,yr: aggregate environmental factor [0..1} |
115 | Werner | 36 | private: |
227 | werner | 37 | inline double calculateUtilizablePAR(const int month) const; |
38 | inline double calculateEpsilon(const int month) const; |
||
39 | inline double abovegroundFraction() const; ///< calculate fraction of biomass |
||
40 | const SpeciesResponse *mResponse; ///< species specific responses |
||
251 | werner | 41 | double mUPAR[12]; ///< utilizable radiation MJ/m2 and month |
608 | werner | 42 | double mGPP[12]; ///< monthly Gross Primary Production [kg Biomass / m2] |
227 | werner | 43 | double mRootFraction; ///< fraction of production that flows into roots |
230 | werner | 44 | double mGPPperArea; ///< kg GPP Biomass / m2 interception area |
436 | werner | 45 | double mEnvYear; ///< f_env,yr: factor that aggregates the environment for the species over the year (weighted with the radiation pattern) |
228 | werner | 46 | |
47 | friend class ProductionOut; |
||
113 | Werner | 48 | }; |
49 | |||
50 | #endif // PRODUCTION3PG_H |