|
|
|
|
||
|
DEFINITION MODULE TreePopuls; (******************************************************************* Module TreePopuls (Version 1.0) Copyright (c) 2003-2006 by Dimitrios Gyalistras and ETH Zurich. Purpose Data types and procedures to handle tree cohorts and populations. Remarks This module is part of the package Trees. Programming o Design Dimitrios Gyalistras 19/07/2003 o Implementation Dimitrios Gyalistras 19/07/2003 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: 22/06/2006 DG *******************************************************************) FROM SYSTEM IMPORT ADDRESS; FROM TreeSpecies IMPORT TreeSpecies, TSParamsPtr; CONST CohortMaxMemory = 10; TYPE TreePopulAttr = ADDRESS; CohortMemoryRArr = ARRAY [1..CohortMaxMemory] OF REAL; CohortPtr = POINTER TO CohortRec; TreePopulPtr = POINTER TO TreePopulRec; CohortRec = RECORD parentPop : TreePopulPtr; params : TSParamsPtr; cohortId : LONGINT; (* unique id of cohort, e.g. for monitoring *) attribute : LONGINT; (* for free use *) next : CohortPtr; (* cohort state *) age : INTEGER; (* age of cohort *) nrTrees : INTEGER; (* number of trees in cohort *) D : REAL; (* diameter at breast height, cm *) slowGrowth : INTEGER; (* counter registering slow growth *) (* cohort growth / state change *) gALGF : REAL; gSMGF : REAL; gDDGF : REAL; gSNGF : REAL; gF : REAL; DIncMax : REAL; (* this year's maximum diameter increment *) DInc : REAL; (* this year's diameter increment *) relDInc : CohortMemoryRArr; (* stored relative diameter increments *) relBAInc : CohortMemoryRArr; (* stored relative basal area increments *) (* diagnostic variables *) gH : REAL; (* tree height, cm *) gFolA : REAL; (* leaf area *) gSBio : REAL; (* FC24: dry stemwood biomass, FC26: stemwood biomass (Derbholz, diameter > 3 inches) *) gFolW : REAL; (* FC24 & FC26: dry foliage biomass *) gTBio : REAL; (* FC26: dry twigwood biomass (branches and twigs, i.e. wood < 3" diameter) *) gRBio : REAL; (* FC26: dry large root biomass *) gFRBio : REAL; (* FC26: dry fine root biomass *) biomass : REAL; (* biomass of cohort *) (* mortality in cohort *) totNumDeaths : INTEGER; END; TreePopulRec = RECORD species : TreeSpecies; (* parent species *) firstCoh : CohortPtr; firstNewCoh : CohortPtr; attribute : TreePopulAttr; (* for free use *) next : TreePopulPtr; (* general state of population *) nrTrees : REAL; (* average #/patch *) biomass : REAL; (* average kg/ha/patch *) stemWdBiom : REAL; twigBiom : REAL; foliageBiom : REAL; coarseRtBiom : REAL; fineRtBiom : REAL; (* tree establishment for population *) nWinTemperLim : REAL; nLightLim : REAL; nBrowsingLim : REAL; nDegDaysLim : REAL; nTreeEstblFailed : REAL; (* mean growth factors for population *) gALGF : REAL; gSMGF : REAL; gDDGF : REAL; gSNGF : REAL; gF : REAL; (* mortality in population *) totNumDeaths : REAL; nAgeRltdDeaths : REAL; nSlowGrwthDeaths : REAL; nSlowGrwthCond1 : REAL; nSlowGrwthCond2 : REAL; nDstrbRltdDeaths : REAL; END; VAR undefCohortPtr : CohortPtr; (* read only *) undefTreePopulPtr : TreePopulPtr; (* read only *) undefTreePopulAttr : TreePopulAttr; (* read only *) (*************************) (*##### Cohorts #####*) (*************************) PROCEDURE AllocCohort ( VAR first : CohortPtr; parentPopul : TreePopulPtr; parameters : TSParamsPtr; kInitDBH : REAL; nrOfTrees : INTEGER ); PROCEDURE DeallocCohort ( VAR first, cohort: CohortPtr ); PROCEDURE DeallocAllCohorts( VAR tp: TreePopulPtr ); PROCEDURE MergeCohortLists ( VAR tp: TreePopulPtr ); (**********************************) (*##### Tree populations #####*) (**********************************) PROCEDURE AllocTreePopul ( VAR first : TreePopulPtr; species : TreeSpecies ); PROCEDURE FindTreePopul ( VAR first : TreePopulPtr; species : TreeSpecies ): TreePopulPtr; PROCEDURE DeallocTreePopul ( VAR first : TreePopulPtr; species : TreeSpecies ); PROCEDURE DeallocAllTreePopuls( VAR first : TreePopulPtr ); END TreePopuls.
|
||
|
|
|