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 ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Appendix 217<br />
END; (* IF *)<br />
prevDay := currDay;<br />
currDay := prevDay + kDays;<br />
END; (* FOR *)<br />
uAET := uAET * 10.0; (* convert AET & PET from cm to mm *)<br />
uPET := uPET * 10.0;<br />
uDrStr := (uPET - uAET) / uPET;<br />
END SoilMoisture;<br />
(*****************************)<br />
(* Monitor<strong>in</strong>g & statistics *)<br />
(*****************************)<br />
PROCEDURE DeclareStatArrays( arrLen : INTEGER );<br />
BEGIN<br />
uAETStatArray := notExist<strong>in</strong>gStatArray;<br />
DeclStatArray( uAETStatArray, arrLen );<br />
DeclDispMV( uAETStatArray, fe, meanAET, fe, timeIsIndep );<br />
DeclStatArrayForOutput( uAETStatArray, "Actual evapotranspiration", "mm/yr", 0.0 );<br />
uDDStatArray := notExist<strong>in</strong>gStatArray;<br />
DeclStatArray( uDDStatArray, arrLen );<br />
DeclDispMV( uDDStatArray, fe, meanDD, fe, timeIsIndep );<br />
DeclStatArrayForOutput( uDDStatArray, "Degree-days", "°C*days", 0.0 );<br />
uDrStrStatArray := notExist<strong>in</strong>gStatArray;<br />
DeclStatArray( uDrStrStatArray, arrLen );<br />
DeclDispMV( uDrStrStatArray, fe, meanDrStr, fe, timeIsIndep );<br />
DeclStatArrayForOutput( uDrStrStatArray, "Drought stress", "%/100", 0.0 );<br />
uWiTStatArray := notExist<strong>in</strong>gStatArray;<br />
DeclStatArray( uWiTStatArray, arrLen );<br />
DeclDispMV( uWiTStatArray, fe, meanWiT, fe, timeIsIndep );<br />
DeclStatArrayForOutput( uWiTStatArray, "M<strong>in</strong>. w<strong>in</strong>ter temperature", "°C", -100.0 );<br />
END DeclareStatArrays;<br />
PROCEDURE DisplayStatArrays;<br />
BEGIN<br />
IF NOT ExperimentAborted() THEN<br />
DisplayArray( uAETStatArray, TRUE, prob950 );<br />
DisplayArray( uDDStatArray, TRUE, prob950 );<br />
DisplayArray( uDrStrStatArray, TRUE, prob950 );<br />
DisplayArray( uWiTStatArray, 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() 0.0 THEN kPMod := 1.0 + site.kSlAsp*0.125;<br />
ELSE kPMod := 1.0 + site.kSlAsp*0.063;<br />
END;<br />
IF ExperimentRunn<strong>in</strong>g() AND (CurrentSimNr() = 1 ) THEN<br />
IF exp.type = manyRuns THEN<br />
GetGlobSimPars(tzero, tend, h, er, c , hm);<br />
arrLen := TRUNC((tend-tzero)/hm+1.5);<br />
DeclareStatArrays( arrLen );<br />
ELSIF exp.type = estimEquil THEN<br />
DeclareStatArrays( 1 );<br />
ELSE<br />
(* do noth<strong>in</strong>g *)<br />
END;<br />
END;<br />
END Initialize;<br />
PROCEDURE StochWea<strong>the</strong>rOutput;<br />
BEGIN<br />
WITH site DO<br />
CorrWea<strong>the</strong>rGenerator( rTVect, rPVect );<br />
DegreeDays( uDD, rTVect );<br />
SoilMoisture( uDrStr, uAET, rTVect, rPVect );<br />
uWiT := rTVect[Jan];<br />
IF rTVect[Feb] < uWiT THEN uWiT := rTVect[Feb] END;