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.

Appendix 225<br />

modelSp^.p.kHm := sensSp^.p.kHm;<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 = 4 THEN<br />

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

ELSIF par = 5 THEN<br />

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

ELSIF par = 6 THEN<br />

modelSp^.p.kDDM<strong>in</strong> := sensSp^.p.kDDM<strong>in</strong>;<br />

ELSIF par = 7 THEN<br />

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

ELSIF par = 8 THEN<br />

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

ELSIF par = 9 THEN<br />

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

ELSIF par = 10 THEN<br />

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

ELSIF par = 11 THEN<br />

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

ELSIF par = 12 THEN<br />

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

ELSIF par = 13 THEN<br />

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

ELSE (* par 14 *)<br />

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

END;<br />

END SetSpeciesParameter;<br />

BEGIN<br />

DisableCommand( fMenu, statsCmd );<br />

DisableCommand( fMenu, newSpeciesCmd );<br />

DisableCommand( fMenu, chooseSiteCmd );<br />

DisableCommand( fMenu, chooseWea<strong>the</strong>rCmd );<br />

DisableCommand( fMenu, treeR<strong>in</strong>gCmd );<br />

AssignAllometricParameters;<br />

IF CurrentSimNr() = 1 THEN<br />

sp := firstSp;<br />

WHILE sp NIL DO<br />

FOR j := 1 TO 7 DO sp^.limCounter[j] := 0 END;<br />

sp^.sumALGF := 0.0; sp^.sumDDGF := 0.0;<br />

sp^.sumSMGF := 0.0; sp^.sumSNGF := 0.0; sp^.sumGF := 0.0;<br />

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

END; (* WHILE *)<br />

END; (* IF *)<br />

GetGlobSimPars(tzero, tend, h, er, c , hm);<br />

IF ExperimentRunn<strong>in</strong>g() AND (CurrentSimNr() = 1 ) THEN<br />

IF exp.type = manyRuns THEN<br />

arrLen := TRUNC((tend-tzero)/hm+1.5);<br />

DeclareStatArrays( arrLen );<br />

ELSIF exp.type = estimEquil THEN<br />

DeclareStatArrays( 1 );<br />

(* for sensitivity analysis <strong>of</strong> species parameters only: *)<br />

IF exp.doSensAnalysis THEN<br />

(*. ReadSpeciesFile( sensFirstSp, "", ok ); .*)<br />

sensSp := sensFirstSp;<br />

modelSp := firstSp;<br />

END;<br />

ELSE<br />

(* do noth<strong>in</strong>g *)<br />

END;<br />

END;<br />

IF ExperimentRunn<strong>in</strong>g() AND (exp.type = estimEquil)<br />

AND exp.doSensAnalysis THEN (* experiment for parameter sensitivity *)<br />

(* execute this procedure only if <strong>the</strong> experiment is for <strong>the</strong> analysis<br />

<strong>of</strong> parameter sensitivity <strong>of</strong> tree species! *)<br />

(*. SetSpeciesParameter( sensSp, modelSp, CurrentSimNr() ); .*)<br />

END;<br />

IF exp.readState THEN<br />

AssignStr<strong>in</strong>g( exp.<strong>in</strong>FileName, pathAndFilename );<br />

CreateStateFileName( fn );<br />

Concat( pathAndFilename, fn );<br />

ReadStateFromFile( ok, x0New, y0New, z0New, pathAndFilename );<br />

IF ok AND (x0New undefSeed) THEN<br />

SetRandomNumberSeeds( x0New, y0New, z0New );<br />

END;<br />

END;<br />

END Initialize;<br />

PROCEDURE Output;<br />

BEGIN<br />

LitterInitialization( tzero, kPatchSize );<br />

UpdateGap( firstSp, uDD, uDrStr );<br />

END Output;<br />

PROCEDURE Input;<br />

BEGIN<br />

StandCharacteristics( totalTrees, totalBiomass, gLAI, cumLA, firstSp );<br />

sp := firstSp;<br />

WHILE sp NIL DO<br />

DegreeDayGrowthFactor( sp, uDD );<br />

DroughtGrowthFactor( sp, uDrStr);<br />

SoilNitrogenGrowthFactor( sp, uAvN );<br />

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

END; (* WHILE *)<br />

END Input;<br />

PROCEDURE Dynamic;<br />

BEGIN<br />

IF U() < kPDist THEN (* catastrophic disturbance occurs, all trees die *)<br />

sp := firstSp;<br />

WHILE sp NIL DO

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

Saved successfully!

Ooh no, something went wrong!