ETHZ_Logo RAMSES_Logo_Right   RAMSES   RAMSES_Logo_Left Systems Ecology  
Start    search button      Modules:   A-Z   Function   Layer        QuickRefs:   DM   AuxLib   AuxLibE   SciLib   EasyMW   MW   ISIS   RMSLib

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.

  Contact RAMSES@env.ethz.ch Last updated: 25-Jul-2011 [Top of page]