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

PROCEDURE InitializeFWM;<br />

BEGIN<br />

DisableCommand( fMenu, chooseEnvCmd );<br />

currWater := site.kFC; (* <strong>in</strong>itial conditions <strong>in</strong> January <strong>of</strong> <strong>the</strong> first year *)<br />

IF site.kSlAsp > 0.0 THEN kPMod := 1.0 + site.kSlAsp*0.125;<br />

ELSE kPMod := 1.0 + site.kSlAsp*0.063;<br />

END;<br />

Lookup( <strong>in</strong>F, fileName, FALSE );<br />

SkipFileHeader;<br />

END InitializeFWM;<br />

PROCEDURE FileWea<strong>the</strong>rOutput;<br />

VAR t: REAL;<br />

i: Month;<br />

PROCEDURE GetWea<strong>the</strong>rDataFromFile;<br />

BEGIN<br />

GetReal( <strong>in</strong>F, t );<br />

FOR i:= Jan TO Dec DO<br />

GetReal( <strong>in</strong>F, rTVect[i] );<br />

END;<br />

FOR i:= Jan TO Dec DO<br />

GetReal( <strong>in</strong>F, rPVect[i] );<br />

END;<br />

SkipGap( <strong>in</strong>F );<br />

IF EOF(<strong>in</strong>F) THEN<br />

Reset( <strong>in</strong>F );<br />

SkipFileHeader;<br />

END; (* IF *)<br />

END GetWea<strong>the</strong>rDataFromFile;<br />

BEGIN<br />

GetWea<strong>the</strong>rDataFromFile;<br />

DegreeDays( uDD, rTVect );<br />

SoilMoisture( uDrStr, uAET, rTVect, rPVect );<br />

uWiT := rTVect[Jan];<br />

IF rTVect[Feb] < uWiT THEN uWiT := rTVect[Feb] END;<br />

IF rTVect[Dec] < uWiT THEN uWiT := rTVect[Dec] END;<br />

END FileWea<strong>the</strong>rOutput;<br />

PROCEDURE Term<strong>in</strong>ateFWM;<br />

BEGIN<br />

Close( <strong>in</strong>F );<br />

EnableCommand( fMenu, chooseEnvCmd );<br />

END Term<strong>in</strong>ateFWM;<br />

PROCEDURE DeclFileWea<strong>the</strong>rObjects;<br />

BEGIN<br />

RemoveAllWea<strong>the</strong>rTabFuncs;<br />

DeclareDDCorrectionTabF;<br />

DeclMV( uDD, 0.0, 2500.0, "Degree-days", "uDD" , "d*°C",<br />

not<strong>On</strong>File, writeInTable, notInGraph);<br />

DeclMV( uDrStr, 0.0, 1.0, "Drought stress", "uDrStr" , "-",<br />

not<strong>On</strong>File, writeInTable, notInGraph);<br />

DeclMV( uWiT, -30.0, 30.0, "W<strong>in</strong>ter temperature", "uWiT" , "°C",<br />

not<strong>On</strong>File, writeInTable, notInGraph);<br />

DeclSoilMoistureParameters;<br />

declEMod := fileW;<br />

END DeclFileWea<strong>the</strong>rObjects;<br />

PROCEDURE DeclFileWea<strong>the</strong>rModel;<br />

BEGIN<br />

IF declEMod = stochE THEN<br />

RemoveMonitor<strong>in</strong>gProc( Monitor<strong>in</strong>g );<br />

END;<br />

DeclM(fe, discreteTime, InitializeFWM, NoInput, FileWea<strong>the</strong>rOutput, NoDynamic,<br />

Term<strong>in</strong>ateFWM, DeclFileWea<strong>the</strong>rObjects, modDescrFileW, modIdent, NoAbout);<br />

END DeclFileWea<strong>the</strong>rModel;<br />

(* Bioclimatic data from file *)<br />

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

PROCEDURE TestTheBioclimaticFile( VAR allOK: BOOLEAN );<br />

VAR x: REAL;<br />

i: INTEGER;<br />

PROCEDURE TestNum;<br />

BEGIN<br />

IF NOT legalNum AND allOK THEN<br />

allOK := FALSE;<br />

Warn( "The file you specified conta<strong>in</strong>s illegal numbers!",<br />

"The stochastic environment model will be declared <strong>in</strong>stead", "" );<br />

END;<br />

END TestNum;<br />

BEGIN<br />

allOK := (<strong>in</strong>F.res = done);<br />

IF allOK THEN<br />

SkipFileHeader;<br />

WHILE NOT EOF(<strong>in</strong>F) DO<br />

FOR i:= 1 TO 4 DO GetReal( <strong>in</strong>F, x ); TestNum END;<br />

SkipGap( <strong>in</strong>F );<br />

END; (* WHILE *)<br />

ELSE<br />

Warn( "The file you specified could not be found or opened!",<br />

"The stochastic environment model will be declared <strong>in</strong>stead", "" );<br />

END; (* IF *)<br />

END TestTheBioclimaticFile;

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

Saved successfully!

Ooh no, something went wrong!