08.09.2014 Views

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 ...

SHOW MORE
SHOW LESS

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;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!