|
|
|
|
||
|
DEFINITION MODULE TrSpecCalc; (******************************************************************* Module TrSpecCalc (Version 1.0) Copyright (c) 2005-2006 by Dimitrios Gyalistras and ETH Zurich. Purpose Procedures to compute establishment, growth, and litter production of trees. Remarks This module is part of the package Trees. Programming o Design Dimitrios Gyalistras 25/05/2005 o Implementation Dimitrios Gyalistras 25/05/2005 ETH Zurich Systems Ecology CHN E 35.1 Universitaetstrasse 16 8092 Zurich SWITZERLAND URLs: <mailto:RAMSES@env.ethz.ch> <http://www.sysecol.ethz.ch> <http://www.sysecol.ethz.ch/SimSoftware/RAMSES> Last revision of definition: 15/12/2005 DG *******************************************************************) FROM TreeSpecies IMPORT TreeSpeciesType; (************************************) (*##### Tree establishment #####*) (************************************) PROCEDURE WinterTemperLim24( uWiT, kWiTN : REAL ): BOOLEAN; PROCEDURE WinterTemperLim29( uWiT, kWiTN, kWiTX: REAL ): BOOLEAN; PROCEDURE LightLim24( kLy, kLAtt, gLAI: REAL ): BOOLEAN; PROCEDURE LightLim26( kLy, kLAtt, gLAI: REAL ): BOOLEAN; PROCEDURE BrowsingLim( kBrow, uBrPr, browsU: REAL ): BOOLEAN; PROCEDURE DegDaysLim24( uDD, kDDMin, kDDMax: REAL ): BOOLEAN; PROCEDURE DegDaysLim29( uDD, kDDMin : REAL ): BOOLEAN; (*****************************) (*##### Tree growth #####*) (*****************************) PROCEDURE LightGrowthFactorForClim( cumLA, kLAtt, kLa: REAL ): REAL; PROCEDURE LightGrowthFactorZelig ( cumLA, kLAtt, kLa: REAL ): REAL; PROCEDURE LightGrowthFactorDG ( cumLA, kLAtt, kLa: REAL ): REAL; PROCEDURE SoilMoistureGrowthFactor24( kDrT, uDrStress: REAL ): REAL; PROCEDURE SoilMoistureGrowthFactor29( kDrT, kFl, kWaTD, uDrStress: REAL ): REAL; PROCEDURE DegreeDayGrowthFactor24( kDDMin, kDDMax, uDD: REAL ): REAL; PROCEDURE DegreeDayGrowthFactor29( kDDMin, kDDSl, uDD: REAL ): REAL; PROCEDURE SoilNitrogenGrowthFactor( kN1, kN2, uAvN: REAL ): REAL; PROCEDURE CalcTreeGrowth( D, gH : REAL; (* tree state *) kG, kHMax, kB2, kB3 : REAL; (* growth parameters *) gALGF, gSMGF, gDDGF, gSNGF : REAL; (* growth factors *) VAR gF : REAL; (* compound growth factor *) VAR DIncMax : REAL; (* maximum posible diameter increment *) VAR DInc : REAL ); (* actual diameter increment *) (******************************) (*##### Tree biomass #####*) (******************************) PROCEDURE CalcTreeBiomass24( D : REAL; (* diameter at breast height, cm *) kA1, kA2 : REAL; (* parameters *) kB2, kB3 : REAL; (* parameters *) kC1, kC2 : REAL; (* parameters *) VAR gH : REAL; (* tree height, cm *) VAR gSBio : REAL; (* dry stemwood biomass *) VAR gFolW : REAL; (* dry foliage biomass *) VAR gFolA : REAL ); (* leaf area *) PROCEDURE CalcTreeBiomass26( specType : TreeSpeciesType; D : REAL; (* diameter at breast height, cm *) kA1, kA2 : REAL; (* parameters *) kB2, kB3 : REAL; (* parameters *) kC1, kC2 : REAL; (* parameters *) kFRT : REAL; (* foliage retention time *) kAFW : REAL; (* ash-free weight of litter *) VAR gH : REAL; (* tree height, cm *) VAR gSBio : REAL; (* dry stemwood biomass *) VAR gTBio : REAL; (* dry twigwood biomass (wood < 3" diameter) *) VAR gRBio : REAL; (* dry large root biomass *) VAR gFRBio : REAL; (* dry fine root biomass *) VAR gFolW : REAL; (* dry foliage biomass *) VAR gFolA : REAL ); (* leaf area *) (******************************************) (*##### Litter production (FC24) #####*) (******************************************) TYPE LitterType24 = ( leafFast, leafMedium, leafSlow, fineRt24, twigs24, wood24 ); LitterRealArr24 = ARRAY [ MIN(LitterType24)..MAX(LitterType24) ] OF REAL; PROCEDURE GetLitterTypeIdent24( l: LitterType24; VAR ident: ARRAY OF CHAR ); PROCEDURE SetLitterRealArr24( VAR litter: LitterRealArr24; val: REAL ); PROCEDURE AddLitterRealArr24( VAR litter1, litter2: LitterRealArr24 ); (* sum is returned in litter2 *) PROCEDURE ScalarMultLitterRealArr24( scalar: REAL; VAR litter: LitterRealArr24 ); PROCEDURE CalcLivingTreeLitterProduction24( kLQ : INTEGER; (* leaf litter type *) specType : TreeSpeciesType; D : REAL; (* diameter at breast height, cm *) gFolW : REAL; (* dry foliage biomass *) kFRT : REAL; (* foliage retention time *) kTwig : REAL; (* twig litter production parameter *) kAFW : REAL; (* ash-free weight of litter *) kRSR : REAL; (* root:shoot ratio of litter *) VAR litter : LitterRealArr24 ); PROCEDURE CalcDeadTreeLitterProduction24( kLQ : INTEGER; (* leaf litter type *) D : REAL; (* diameter at breast height, cm *) gFolW : REAL; (* dry foliage biomass *) gSBio : REAL; (* dry stemwood biomass *) kTwig : REAL; (* twig litter production parameter *) kAFW : REAL; (* ash-free weight of litter *) kRSR : REAL; (* root:shoot ratio of litter *) VAR litter : LitterRealArr24 ); (******************************************) (*##### Litter production (FC26) #####*) (******************************************) TYPE LitterType26 = ( leaf1, leaf2, leaf3, leaf4, needle1, needle2, fineRt26, twigs26, wood26 ); LitterRealArr26 = ARRAY [ MIN(LitterType26)..MAX(LitterType26) ] OF REAL; PROCEDURE GetLitterTypeIdent26( l: LitterType26; VAR ident: ARRAY OF CHAR ); PROCEDURE SetLitterRealArr26( VAR litter: LitterRealArr26; val: REAL ); PROCEDURE AddLitterRealArr26( VAR litter1, litter2: LitterRealArr26 ); (* sum is returned in litter2 *) PROCEDURE ScalarMultLitterRealArr26( scalar: REAL; VAR litter: LitterRealArr26 ); PROCEDURE CalcLivingTreeLitterProduction26( kLQ : INTEGER; (* leaf litter type *) specType : TreeSpeciesType; D : REAL; (* diameter at breast height, cm *) gFolW : REAL; (* dry foliage biomass *) kFRT : REAL; (* foliage retention time *) kTwig : REAL; (* twig litter production parameter *) kAFW : REAL; (* ash-free weight of litter *) VAR litter : LitterRealArr26 ); PROCEDURE CalcLivingTreesLitterProduction26( nTrees : INTEGER; (* number of trees *) kLQ : INTEGER; (* leaf litter type *) specType : TreeSpeciesType; D : REAL; (* diameter at breast height, cm *) gFolW : REAL; (* dry foliage biomass *) kFRT : REAL; (* foliage retention time *) kTwig : REAL; (* twig litter production parameter *) kAFW : REAL; (* ash-free weight of litter *) VAR litter : LitterRealArr26 ); PROCEDURE CalcDeadTreeLitterProduction26( kLQ : INTEGER; (* leaf litter type *) gFolW : REAL; (* dry foliage biomass *) gSBio : REAL; (* dry stemwood biomass *) gTBio : REAL; (* dry twigwood biomass *) gFRBio : REAL; (* dry fine root biomass *) gRBio : REAL; (* dry large root biomass *) kAFW : REAL; (* ash-free weight of litter *) VAR litter : LitterRealArr26 ); END TrSpecCalc.
|
||
|
|
|