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.
230 Appendix<br />
uLitt[roots] := littR*conv; littR := 0.0;<br />
END LitterInitialization;<br />
(**********************************)<br />
(* Procedure TreeDeathAndGrowth *)<br />
(**********************************)<br />
PROCEDURE TreeDeathAndGrowth( VAR firstSp: SpeciesPtr; VAR cumLA: ARRAY OF REAL;<br />
gLAI: REAL );<br />
VAR sp: SpeciesPtr;<br />
cohort, prevCohort: CohortPtr;<br />
gAL, gL1, gL9, slope, DIncMax, gF: REAL;<br />
iHT, i, cohortTrees: INTEGER;<br />
PROCEDURE CalculateLitterProduction( VAR sp: SpeciesPtr; VAR c: CohortPtr;<br />
nDead: REAL );<br />
(* calculates litter production <strong>of</strong> a tree cohort, <strong>in</strong>clud<strong>in</strong>g litter production<br />
if nTrees have died *)<br />
CONST<br />
pi4 = 3.141593/4.0;<br />
VAR<br />
nAlive: REAL;<br />
BEGIN<br />
nAlive := FLOAT( c^.nrTrees );<br />
(* normal annual litter production from liv<strong>in</strong>g trees: *)<br />
(* foliage litter depends on foliage quality and foliage retention time *)<br />
littF[sp^.p.kLQ] := littF[sp^.p.kLQ] + c^.gFolW * nAlive/ kFRT[sp^.specType]*kAFW;<br />
(* twig litter is calculated from basal area accord<strong>in</strong>g to Christensen (1977) *)<br />
littT := littT + pi4 * c^.D * c^.D * kTwig * nAlive * kAFW;<br />
(* root litter is calculated from foliage litter *)<br />
littR := littR + kRSR * c^.gFolW * nAlive/kFRT[sp^.specType] * kAFW;<br />
(* litter from <strong>the</strong> n dead trees *)<br />
IF nDead > 0.0 THEN<br />
(* foliage litter *)<br />
littF[sp^.p.kLQ] := littF[sp^.p.kLQ] + c^.gFolW*nDead*kAFW;<br />
(* twig litter *)<br />
littT := littT + pi4 * c^.D * c^.D * kTwig * nDead * kAFW;<br />
(* root litter *)<br />
littR := littR + kRSR * c^.gFolW * nDead * kAFW;<br />
(* woody litter *)<br />
littW := littW + c^.gSBio * nDead * kAFW;<br />
END;<br />
END CalculateLitterProduction;<br />
BEGIN<br />
sp := firstSp;<br />
WHILE sp NIL DO<br />
WITH sp^ DO<br />
prevCohort := NIL;<br />
cohort := sp^.firstCohort;<br />
WHILE cohort NIL DO<br />
WITH cohort^ DO<br />
cohortTrees := nrTrees;<br />
FOR i:= 1 TO cohortTrees DO (* mortality accord<strong>in</strong>g to Shugart (1984) *)<br />
IF ( U() = kSlowGrYrs) AND (U()