On the Ecology of Mountainous Forests in a Changing Climate: A ...
On the Ecology of Mountainous Forests in a Changing Climate: A ...
On the Ecology of Mountainous Forests in a Changing Climate: A ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Appendix 229<br />
Swiss Federal Institute <strong>of</strong> Technology Zurich ETHZ<br />
CH-8092 Zurich<br />
Switzerland<br />
Last revision <strong>of</strong> def<strong>in</strong>ition: 2.3.1992 hb<br />
****************************************)<br />
FROM FCPBase IMPORT SpeciesPtr;<br />
PROCEDURE DeclSubMParameters;<br />
(* declares ForClim-P parameters *)<br />
PROCEDURE LitterInitialization( t0, kPatchSize: REAL );<br />
(* <strong>in</strong>itializes litter production and assigns accumulated litter to <strong>the</strong><br />
correspond<strong>in</strong>g ForestBase variables;<br />
t0 is simulation start time (used for <strong>in</strong>itialization);<br />
LitterInitialization is to be called <strong>in</strong> <strong>the</strong> Output proc<br />
*)<br />
PROCEDURE TreeDeathAndGrowth( VAR firstSp: SpeciesPtr; VAR cumLA: ARRAY OF REAL;<br />
gLAI: REAL );<br />
PROCEDURE TreeEstablishment( VAR firstSp: SpeciesPtr;<br />
uWiT: REAL; uDD, gLAI, totalTrees, kPatchSize: REAL );<br />
PROCEDURE UpdateGap( VAR firstSp: SpeciesPtr; uDD, uDrStr: REAL );<br />
END FCPDynamic.<br />
IMPLEMENTATION MODULE FCPDynamic;<br />
(*<br />
Implementation and Revisions:<br />
============================<br />
Author Date Description<br />
------ ---- -----------<br />
hb 18. 1.1991 First implementation (DM 2.02, MacMETH 2.6.2)<br />
hb 30. 1.1991 PROCs TreeDeath and TreeGrowth merged (V0.1)<br />
hb 26. 2.1991 Version 0.3 implemented<br />
hb 21. 3.1991 Version 0.4 implemented<br />
hb 28. 1.1992 More efficient establishment at <strong>the</strong> beg<strong>in</strong>n<strong>in</strong>g <strong>of</strong> <strong>the</strong><br />
simulation <strong>in</strong>troduced<br />
hb 30. 1.1992 List management changed <strong>in</strong> TreeDeathAndGrowth<br />
hb 11. 3.1992 Formulation <strong>of</strong> brows<strong>in</strong>g changed<br />
hb 13. 8.1992 New formulation for light growth factor (kShaw = [1…9])<br />
hb 10.11.1992 Adaptation <strong>of</strong> limit<strong>in</strong>g factor statistics to new equations<br />
hb 1. 3.1993 Adaptation for new gH-diameter relationship <strong>in</strong> maximum<br />
growth equation<br />
hb 8. 6.1993 calculation <strong>of</strong> litter output fixed (twigs were too high)<br />
*)<br />
FROM ForestBase IMPORT Power, Rmax, uBrPr, Litter, uLitt;<br />
FROM FCPBase IMPORT SpeciesPtr, CohortPtr, CreateCohort, DeleteCohort,<br />
MergeCohorts, SpeciesType;<br />
FROM FCPMon IMPORT WriteTreeR<strong>in</strong>gs;<br />
FROM RandGen IMPORT U;<br />
FROM SYSTEM IMPORT Exp;<br />
FROM SimBase IMPORT DeclP, RTCType, CurrentTime, GetGlobSimPars;<br />
VAR kInitDBH, kM<strong>in</strong>AbsInc, kM<strong>in</strong>RelInc, kLAtt, kDeathP, kSlowGrP, kSlowGrYrs,<br />
kEstP, kEstNr, kTwig, kAFW, kRSR: REAL;<br />
littF: ARRAY [1..3] OF REAL;<br />
littW, littT, littR: REAL;<br />
kFRT: ARRAY [deciduous..coniferous] OF REAL;<br />
PROCEDURE DeclSubMParameters;<br />
BEGIN<br />
DeclP(kM<strong>in</strong>AbsInc, 0.03, 0.0, 1.0, noRtc, 'M<strong>in</strong>. abs. growth (vigorous tree)', 'kM<strong>in</strong>AbsInc', 'cm');<br />
DeclP(kM<strong>in</strong>RelInc, 0.1, 0.0, 1.0, noRtc, 'M<strong>in</strong>. rel. growth (vigorous tree)', 'kM<strong>in</strong>RelInc', '%');<br />
DeclP(kLAtt, 0.25, 0.0, 1.0, noRtc, 'Light attenuation coefficient', 'kLAtt', '--');<br />
DeclP(kDeathP, 4.605, 0.0, 10.0, noRtc, 'Death probability coefficient', 'kDeathP', '--');<br />
DeclP(kSlowGrP, 0.368, 0.0, 1.0, noRtc, 'Slow growth enhanced mortality', 'kSlowGrP', '--');<br />
DeclP(kSlowGrYrs, 2.0, 0.0, 10.0, noRtc, 'Nr <strong>of</strong> slow growth years required', 'kSlowGrYrs', '#');<br />
DeclP(kEstP, 0.1, 0.0, 1.0, noRtc, 'Probability <strong>of</strong> tree establishment', 'kEstP', '--');<br />
DeclP(kEstNr, 0.006, 0.0, 1.0, noRtc, 'Max. establishment per species', 'kEstNr', '#/m2*yr');<br />
DeclP(kInitDBH, 1.27, 0.0, 10.0, noRtc, 'DBH <strong>of</strong> new trees', 'kInitDBH', 'cm');<br />
DeclP(kFRT[coniferous], kFRT[coniferous], 0.0, 10.0, noRtc, 'Foliage retention time (conifers)', 'kFRT', 'years');<br />
DeclP(kTwig, 0.0025, 0.0, 0.1, noRtc, 'Twig litter production parameter', 'kTwig', 'kg/cm2');<br />
DeclP(kAFW, 0.92, 0.5, 1.0, noRtc, 'Ash-free weight <strong>of</strong> litter', 'kAFW', '--');<br />
DeclP(kRSR, 4.0, 0.0, 10.0, noRtc, 'Root:shoot ratio <strong>of</strong> litter', 'kRSR', '--');<br />
END DeclSubMParameters;<br />
PROCEDURE LitterInitialization( t0, kPatchSize: REAL );<br />
VAR conv: REAL;<br />
BEGIN<br />
IF CurrentTime() = t0 THEN (* <strong>in</strong>itialize variables *)<br />
littW := 0.0; littT := 0.0; littR := 0.0;<br />
littF[1] := 0.0; littF[2] := 0.0; littF[3] := 0.0;<br />
END;<br />
(* assign ForestBase variables, and reset <strong>in</strong>ternal variables to zero *)<br />
conv := 10.0 / kPatchSize; (* conversion factor kg/gap -> t/ha *)<br />
uLitt[leafFast] := littF[1]*conv; littF[1] := 0.0;<br />
uLitt[leafMedium] := littF[2]*conv; littF[2] := 0.0;<br />
uLitt[leafSlow] := littF[3]*conv; littF[3] := 0.0;<br />
uLitt[wood] := littW*conv; littW := 0.0;<br />
uLitt[twigs] := littT*conv; littT := 0.0;