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 239<br />

END Immobilization;<br />

PROCEDURE M<strong>in</strong>eralization;<br />

VAR humMDelta: REAL;<br />

BEGIN<br />

IF HOM 0.0 THEN<br />

gAETM := Rm<strong>in</strong>( uAET / (kAET-uAET), 1.0 );<br />

IF gLNC 0.0 THEN<br />

(* new formulation based on data <strong>in</strong> Pastor et al. (1984), avoids occurrence<br />

<strong>of</strong> m<strong>in</strong>eralization values <strong>of</strong> ±∞ (pole <strong>in</strong> Pastor & Post formulation *)<br />

humusNM<strong>in</strong> := Rmax( k5 + k6/gLNC, 0.0005 ) * decMlt * gAETM * HOM;<br />

ELSE<br />

humusNM<strong>in</strong> := HN * kM<strong>in</strong> * decMlt * gAETM;<br />

END; (* IF *)<br />

HNNew := HN - humusNM<strong>in</strong>;<br />

humMDelta := HOM * humusNM<strong>in</strong> / HN;<br />

IF HOM < humMDelta THEN HALT END;<br />

HOMNew := HOM - humMDelta;<br />

totCO2 := totCO2 + humMDelta;<br />

totNM<strong>in</strong> := totNM<strong>in</strong> + humusNM<strong>in</strong>;<br />

ELSE<br />

HOMNew := 0.0;<br />

HNNew := 0.0;<br />

END; (* IF *)<br />

END M<strong>in</strong>eralization;<br />

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

(* Monitor<strong>in</strong>g & statistics *)<br />

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

PROCEDURE DeclareStatArrays( arrLen : INTEGER );<br />

BEGIN<br />

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

DeclStatArray( statArrAvN, arrLen );<br />

DeclDispMV( statArrAvN, fs, meanAvN, fs, timeIsIndep );<br />

DeclStatArrayForOutput( statArrAvN, "Available nitrogen", "kg/ha", 0.0 );<br />

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

DeclStatArray( statArrLitM, arrLen );<br />

DeclDispMV( statArrLitM, fs, meanLitM, fs, timeIsIndep );<br />

DeclStatArrayForOutput( statArrLitM, "Litter mass", "t/ha", 0.0 );<br />

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

DeclStatArray( statArrHumM, arrLen );<br />

DeclDispMV( statArrHumM, fs, meanHumM, fs, timeIsIndep );<br />

DeclStatArrayForOutput( statArrHumM, "Humus mass", "t/ha", 0.0 );<br />

END DeclareStatArrays;<br />

PROCEDURE DisplayStatArrays;<br />

BEGIN<br />

IF NOT ExperimentAborted() THEN<br />

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

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

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

END;<br />

END DisplayStatArrays;<br />

PROCEDURE Monitor<strong>in</strong>g;<br />

VAR t: REAL;<br />

<strong>in</strong>dex: INTEGER;<br />

BEGIN<br />

IF ExperimentRunn<strong>in</strong>g() THEN<br />

IF exp.type = estimEquil THEN<br />

t := 0.0;<br />

<strong>in</strong>dex := 1;<br />

ELSE<br />

t := CurrentTime();<br />

<strong>in</strong>dex := TRUNC( (t-tzero)/hm + 0.5 ) + 1;<br />

END;<br />

IF NOT ((exp.type = estimEquil) AND (CurrentTime()

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

Saved successfully!

Ooh no, something went wrong!