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 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