Subversion Repositories public iLand

Rev

Rev 369 | Rev 608 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1
 
113 Werner 2
#ifndef PRODUCTION3PG_H
3
#define PRODUCTION3PG_H
4
 
226 werner 5
class SpeciesResponse;
228 werner 6
class ProductionOut;
113 Werner 7
class Production3PG
8
{
9
public:
10
    Production3PG();
227 werner 11
    void setResponse(const SpeciesResponse *response) { mResponse=response;}
12
    double calculate(); ///< return  year GPP/rad: kg Biomass/MJ PAR/m2
369 werner 13
    void clear(); ///< clear production values
227 werner 14
    double rootFraction() const { return mRootFraction; } /// fraction of biomass that should be distributed to roots
257 werner 15
    double GPPperArea() const { return mGPPperArea; } ///<  GPP production (yearly) (kg Biomass) per m2 (effective area)
436 werner 16
    double fEnvYear() const { return mEnvYear; } ///< f_env,yr: aggregate environmental factor [0..1}
115 Werner 17
private:
227 werner 18
    inline double calculateUtilizablePAR(const int month) const;
19
    inline double calculateEpsilon(const int month) const;
20
    inline double abovegroundFraction() const; ///< calculate fraction of biomass
21
    const SpeciesResponse *mResponse; ///< species specific responses
251 werner 22
    double mUPAR[12]; ///< utilizable radiation MJ/m2 and month
227 werner 23
    double mGPP[12]; ///< monthly Gross Primary Production gC/MJ radiation
24
    double mRootFraction; ///< fraction of production that flows into roots
230 werner 25
    double mGPPperArea; ///< kg GPP Biomass / m2 interception area
436 werner 26
    double mEnvYear; ///< f_env,yr: factor that aggregates the environment for the species over the year (weighted with the radiation pattern)
228 werner 27
 
28
    friend class ProductionOut;
113 Werner 29
};
30
 
31
#endif // PRODUCTION3PG_H