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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

224 Appendix<br />

sp := firstSp;<br />

WHILE sp NIL DO (* declare numbers *)<br />

sp^.statArrN := notExist<strong>in</strong>gStatArray;<br />

DeclStatArray( sp^.statArrN, arrLen );<br />

DeclDispMV( sp^.statArrN, fp, sp^.meanNr, fp, timeIsIndep );<br />

IF withNr THEN<br />

DeclStatArrayForOutput( sp^.statArrN, sp^.longDescNr, "#/ha", m<strong>in</strong>ValNr );<br />

END;<br />

sp := sp^.next;<br />

END;<br />

statArrLAI := notExist<strong>in</strong>gStatArray;<br />

DeclStatArray( statArrLAI, arrLen );<br />

DeclDispMV( statArrLAI, fp, meanLAI, fp, timeIsIndep );<br />

DeclStatArrayForOutput( statArrLAI, "Leaf area <strong>in</strong>dex", "m^2/m^2", 0.0 );<br />

statArrTotBio := notExist<strong>in</strong>gStatArray;<br />

DeclStatArray( statArrTotBio, arrLen );<br />

DeclDispMV( statArrTotBio, fp, meanTotBio, fp, timeIsIndep );<br />

DeclStatArrayForOutput( statArrTotBio, "Total biomass", "t/ha", 0.0 );<br />

statArrTotNr := notExist<strong>in</strong>gStatArray;<br />

DeclStatArray( statArrTotNr, arrLen );<br />

DeclDispMV( statArrTotNr, fp, meanTotNr, fp, timeIsIndep );<br />

DeclStatArrayForOutput( statArrTotNr, "Total number", "#/ha", 0.0 );<br />

FOR i:= MIN(Litter) TO MAX(Litter) DO<br />

statArrLitt[i] := notExist<strong>in</strong>gStatArray;<br />

DeclStatArray( statArrLitt[i], arrLen );<br />

DeclDispMV( statArrLitt[i], fp, meanLitt[i], fp, timeIsIndep );<br />

END;<br />

DeclStatArrayForOutput( statArrLitt[leafFast], "Litterfall (foliage fast)", "t/ha", 0.0 );<br />

DeclStatArrayForOutput( statArrLitt[leafMedium], "Litterfall (foliage medium)", "t/ha", 0.0 );<br />

DeclStatArrayForOutput( statArrLitt[leafSlow], "Litterfall (foliage slow)", "t/ha", 0.0 );<br />

DeclStatArrayForOutput( statArrLitt[twigs], "Litterfall (twigs)", "t/ha", 0.0 );<br />

DeclStatArrayForOutput( statArrLitt[roots], "Litterfall (f<strong>in</strong>e roots)", "t/ha", 0.0 );<br />

DeclStatArrayForOutput( statArrLitt[wood], "Litterfall (wood)", "t/ha", 0.0 );<br />

END DeclareStatArrays;<br />

PROCEDURE DisplayStatArrays;<br />

VAR i: Litter;<br />

BEGIN<br />

IF NOT ExperimentAborted() THEN<br />

sp := firstSp;<br />

WHILE sp NIL DO<br />

DisplayArray( sp^.statArrB, TRUE, prob950 );<br />

DisplayArray( sp^.statArrN, TRUE, prob950 );<br />

sp := sp^.next;<br />

END;<br />

DisplayArray( statArrLAI, TRUE, prob950 );<br />

DisplayArray( statArrTotBio, TRUE, prob950 );<br />

DisplayArray( statArrTotNr, TRUE, prob950 );<br />

FOR i:= MIN(Litter) TO MAX(Litter) DO<br />

DisplayArray( statArrLitt[i],TRUE, prob950 );<br />

END;<br />

END;<br />

END DisplayStatArrays;<br />

(***********************************)<br />

(* Procedures for model dynamics *)<br />

(***********************************)<br />

PROCEDURE Initialize;<br />

VAR j, x0New, y0New, z0New, arrLen: INTEGER;<br />

tend, c, h, er: REAL;<br />

ok: BOOLEAN;<br />

(*<br />

PROCEDURE SetImmigPar( desc: ARRAY OF CHAR; kImmYrNew: REAL );<br />

VAR found: BOOLEAN;<br />

BEGIN<br />

found := FALSE;<br />

sp := firstSp;<br />

WHILE (sp NIL) AND NOT found DO<br />

IF CompareStr<strong>in</strong>gs( sp^.shortDescBio, desc ) = equal THEN<br />

found := TRUE;<br />

sp^.p.kImmYr := kImmYrNew;<br />

END;<br />

sp := sp^.next;<br />

END; (* WHILE *)<br />

IF NOT found THEN HALT END;<br />

END SetImmigPar;<br />

*)<br />

PROCEDURE SetSpeciesParameter( VAR sensSp, modelSp: SpeciesPtr; nrRun: INTEGER );<br />

VAR par: INTEGER;<br />

BEGIN<br />

par := nrRun MOD 14;<br />

ResetAllSpeciesParameters;<br />

IF (par = 1) AND (nrRun 1) THEN (* move to a new species *)<br />

sensSp := sensSp^.next;<br />

modelSp := modelSp^.next;<br />

END;<br />

(* now assign a new species parameter *)<br />

IF par = 1 THEN<br />

modelSp^.p.kA1 := sensSp^.p.kA1;<br />

modelSp^.p.kA2 := sensSp^.p.kA2;<br />

modelSp^.p.kC1 := sensSp^.p.kC1;<br />

modelSp^.p.kC2 := sensSp^.p.kC2;<br />

ELSIF par = 2 THEN<br />

modelSp^.p.kDm := sensSp^.p.kDm;<br />

modelSp^.p.kB2 := 2.0*(modelSp^.p.kHm - 137.0) / modelSp^.p.kDm;<br />

modelSp^.p.kB3 := modelSp^.p.kB2 / 2.0 / modelSp^.p.kDm;<br />

ELSIF par = 3 THEN

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

Saved successfully!

Ooh no, something went wrong!