226 Appendix DeleteAllCohorts( sp ); sp := sp^.next; END; (* WHILE *) ELSE (* normal year with all three submodels *) TreeDeathAndGrowth( firstSp, cumLA, gLAI ); TreeEstablishment( firstSp, uWiT, uDD, gLAI, totalTrees, kPatchSize ); END; END Dynamic; PROCEDURE Term<strong>in</strong>ate; VAR x, y, z: INTEGER; fn : ARRAY [0..31] OF CHAR; ok: BOOLEAN; BEGIN IF exp.writeState THEN GetSeeds( x, y, z ); AssignStr<strong>in</strong>g( exp.outFileName, pathAndFilename ); CreateStateFileName( fn ); Concat( pathAndFilename, fn ); DumpStateToFile( ok, TRUNC(CurrentTime()), x, y ,z, site.name, pathAndFilename ); END; sp := firstSp; WHILE sp NIL DO DeleteAllCohorts( sp ); sp := sp^.next; END; (* WHILE *) CloseTreeR<strong>in</strong>gFile; IF ExperimentRunn<strong>in</strong>g() AND ((CurrentSimNr() MOD TRUNC(exp.nrRuns+0.5)) = 0) THEN IF exp.type = manyRuns THEN DisplayStatArrays; END; IF exp.<strong>in</strong>BatchMode THEN AssignStr<strong>in</strong>g( site.name, fn ); Concat( fn, ".LF.DAT" ); ELSE fn[0] := 0C; END; IF NOT exp.doSensAnalysis AND NOT ExperimentAborted() THEN CalcAndWriteLimFactorsToFile( fn, firstSp ); END; END; EnableCommand( fMenu, statsCmd ); EnableCommand( fMenu, newSpeciesCmd ); EnableCommand( fMenu, chooseSiteCmd ); EnableCommand( fMenu, chooseWea<strong>the</strong>rCmd ); EnableCommand( fMenu, treeR<strong>in</strong>gCmd ); END Term<strong>in</strong>ate; (*************************************) (* Procedures for model declaration *) (*************************************) PROCEDURE DeclModelObjects; VAR str: ARRAY [0..6] OF CHAR; BEGIN sp := firstSp; (* declare biomass MVs *) WHILE sp NIL DO WITH sp^ DO DeclMV( biomass, 0.0, maxBioScal<strong>in</strong>g, longDescBio, shortDescBio, "kg/patch", noF, noT, mon.graphBio); END; (* WITH *) sp := sp^.next; END; (* WHILE *) DeclMV( totalBiomass, 0.0, maxBioScal<strong>in</strong>g, "Total biomass", "totBio" , "kg/patch", noF, isT, noG); DeclMV( gLAI, 0.0, 20.0, "Leaf area <strong>in</strong>dex", "gLAI" , "--", noF, isT, noG); sp := firstSp; (* declare tree number MVs *) WHILE sp NIL DO WITH sp^ DO DeclMV( nrTrees, 0.0, 100.0, longDescNr, shortDescNr, "#/patch", noF, noT, mon.graphNr); END; (* WITH *) sp := sp^.next; END; (* WHILE *) DeclMV( totalTrees, 0.0, 200.0, "Total number <strong>of</strong> trees", "totNr" , "#/patch", noF, isT, noG); sp := firstSp; (* declare average biomass MVs *) WHILE sp NIL DO WITH sp^ DO AssignStr<strong>in</strong>g( shortDescBio, str ); AppendCh( str, "µ" ); DeclMV( meanBio, 0.0, 400.0, longDescBio, str, "t/ha", noF, noT, noG); END; (* WITH *) sp := sp^.next; END; (* WHILE *) DeclMV( meanLAI, 0.0, 20.0, "Mean leaf area <strong>in</strong>dex", "µLAI" , "--", noF, noT, noG); DeclMV( meanTotBio, 0.0, 400.0, "Mean total biomass", "µtotBio" , "t/ha", noF, noT, noG); sp := firstSp; (* declare average number MVs *) WHILE sp NIL DO WITH sp^ DO AssignStr<strong>in</strong>g( shortDescNr, str ); AppendCh( str, "µ" ); DeclMV( meanNr, 0.0, 100.0, sp^.longDescNr, str, "#/ha", noF, noT, noG); END; (* WITH *) sp := sp^.next; END; (* WHILE *) DeclMV( meanTotNr, 0.0, 200.0, "Mean total number <strong>of</strong> trees", "µtotNr" , "#/ha", noF, noT, noG); DeclMV( uLitt[leafFast], 0.0, 50.0, "Fast decay<strong>in</strong>g foliage litter", "uLittLF", "t/ha", noF, noT, noG ); DeclMV( uLitt[leafMedium], 0.0, 50.0, "Medium dec. foliage litter", "uLittLM", "t/ha", noF, noT, noG ); DeclMV( uLitt[leafSlow], 0.0, 50.0, "Slowly dec. foliage litter", "uLittLS", "t/ha", noF, noT, noG ); DeclMV( uLitt[roots], 0.0, 50.0, "Root litter", "uLittR", "t/ha", noF, noT, noG ); DeclMV( uLitt[twigs], 0.0, 50.0, "Twig litter", "uLittT", "t/ha", noF, noT, noG ); DeclMV( uLitt[wood], 0.0, 50.0, "Stemwood litter", "uLittW", "t/ha", noF, noT, noG ); DeclMV( meanLitt[leafFast], 0.0, 50.0, "Fast decay<strong>in</strong>g foliage litter", "µLittLF", "t/ha", noF, noT, noG ); DeclMV( meanLitt[leafMedium], 0.0, 50.0, "Medium dec. foliage litter", "µLittLM", "t/ha", noF, noT, noG );
Appendix 227 DeclMV( meanLitt[leafSlow], 0.0, 50.0, "Slowly dec. foliage litter", "µLittLS", "t/ha", noF, noT, noG ); DeclMV( meanLitt[roots], 0.0, 50.0, "Root litter", "µLittR", "t/ha", noF, noT, noG ); DeclMV( meanLitt[twigs], 0.0, 50.0, "Twig litter", "µLittT", "t/ha", noF, noT, noG ); DeclMV( meanLitt[wood], 0.0, 50.0, "Stemwood litter", "µLittW", "t/ha", noF, noT, noG ); DeclP(kPDist, 0.0, 0.0, 1.0, noRtc, 'Disturbance probability', 'kPDist', '/year'); DeclAllometricParameters; DeclSubMParameters; END DeclModelObjects; PROCEDURE DeclareGapModel; BEGIN DeclM(fp, discreteTime, Initialize, Input, Output, Dynamic, Term<strong>in</strong>ate, DeclModelObjects, modDescr, modIdent, NoAbout); SetSimTime( 0.0, 1200.0); SetMonInterval( 20.0 ); END DeclareGapModel; (********************************************) (* Procedures for site & species selection *) (********************************************) PROCEDURE ChooseSpecies; VAR ok: BOOLEAN; BEGIN ReadSpeciesFile( firstSp, "", ok ); IF ok THEN RemoveM( fp ); DeclareGapModel; END; (* IF *) END ChooseSpecies; PROCEDURE DumpTheState; VAR x, y, z: INTEGER; f: TextFile; ok: BOOLEAN; BEGIN GetSeeds( x, y, z ); CreateNewFile( f, "File to dump state vector", "ForClim-P State.DAT" ); IF f.res = done THEN AssignStr<strong>in</strong>g( f.path, pathAndFilename ); Concat( pathAndFilename, f.filename ); Close( f ); DumpStateToFile( ok, TRUNC(CurrentTime()), x, y ,z, site.name, pathAndFilename ); END; END DumpTheState; PROCEDURE ReadTheState; VAR ok: BOOLEAN; x0New, y0New, z0New: INTEGER; f: TextFile; BEGIN GetExist<strong>in</strong>gFile( f, "File to read state vector" ); ok := f.res = done; IF ok THEN AssignStr<strong>in</strong>g( f.path, pathAndFilename ); Concat( pathAndFilename, f.filename ); Close( f ); ReadStateFromFile( ok, x0New, y0New, z0New, pathAndFilename ); IF ok AND (x0New undefSeed) THEN SetRandomNumberSeeds( x0New, y0New, z0New ); END; END; END ReadTheState; PROCEDURE DoTreeR<strong>in</strong>gs; BEGIN ChooseSpeciesForTreeR<strong>in</strong>gs( site.name ); END DoTreeR<strong>in</strong>gs; PROCEDURE CustomizeStats; CONST startL<strong>in</strong>e = 3; VAR l<strong>in</strong>e, lem : INTEGER; ef : FormFrame; ok : BOOLEAN; BEGIN l<strong>in</strong>e := startL<strong>in</strong>e; lem := 2; WriteLabel( l<strong>in</strong>e-1, lem-1, "Customization <strong>of</strong> statistical output:" ); INC( l<strong>in</strong>e ); CheckBox( l<strong>in</strong>e, lem, "Write species biomasses higher than", withBiom ); RealField(l<strong>in</strong>e, lem+34, 5, m<strong>in</strong>ValBiom, useAsDeflt, 0.0, 20.0 ); WriteLabel( l<strong>in</strong>e, lem+40, "t/ha" ); INC( l<strong>in</strong>e ); CheckBox( l<strong>in</strong>e, lem, "Write tree numbers higher than", withNr ); RealField(l<strong>in</strong>e, lem+30, 5, m<strong>in</strong>ValNr, useAsDeflt, 0.0, 50.0 ); WriteLabel( l<strong>in</strong>e, lem+36, "#/ha" ); ef.x:= 0; ef.y:= -1; (* display entry form <strong>in</strong> middle <strong>of</strong> screen *) ef.l<strong>in</strong>es:= 8; ef.columns:= 50; UseEntryForm( ef,ok ); END CustomizeStats; PROCEDURE DeclForClimP; VAR ok: BOOLEAN; BEGIN IF NOT MDeclared( fp ) THEN RemoveConstPlants; ReadSpeciesFile( firstSp, "SpecPars.DAT", ok ); DeclMonitor<strong>in</strong>gProc( Monitor<strong>in</strong>g ); DeclSiteProc( AssignMonitor<strong>in</strong>gAttributes ); AssignMonitor<strong>in</strong>gAttributes; DeclareGapModel;
- Page 1:
Diss. ETH No. 10638 On the Ecology
- Page 4 and 5:
ii Table of contents A BSTRACT.....
- Page 6 and 7:
iv APPENDIX .......................
- Page 8 and 9:
vi Harald BUGMANN, 1994: On the eco
- Page 10 and 11:
viii Harald BUGMANN, 1994: Aspekte
- Page 13 and 14:
1 1 . Introduction 1.1 Climatic cha
- Page 15 and 16:
Introduction 3 1.2 Methods for the
- Page 17 and 18:
Introduction 5 in a changing climat
- Page 19 and 20:
Introduction 7 Their integrative ca
- Page 21 and 22:
Introduction 9 (1984) provides a mo
- Page 23 and 24:
Introduction 11 The main advantage
- Page 25 and 26:
13 2 . Analysis of existing forest
- Page 27 and 28:
Analysis of existing forest gap mod
- Page 29 and 30:
Analysis of existing forest gap mod
- Page 31 and 32:
Analysis of existing forest gap mod
- Page 33 and 34:
Analysis of existing forest gap mod
- Page 35 and 36:
Analysis of existing forest gap mod
- Page 37 and 38:
Analysis of existing forest gap mod
- Page 39 and 40:
The forest model FORCLIM 45 carbon
- Page 41 and 42:
The forest model FORCLIM 47 TREE GR
- Page 43 and 44:
The forest model FORCLIM 49 gBFlag
- Page 45 and 46:
The forest model FORCLIM 51 Disturb
- Page 47 and 48:
The forest model FORCLIM 53 decay o
- Page 49 and 50:
The forest model FORCLIM 55 the est
- Page 51 and 52:
The forest model FORCLIM 57 3.3 Mod
- Page 53 and 54:
The forest model FORCLIM 59 Light a
- Page 55 and 56:
The forest model FORCLIM 61 Overall
- Page 57 and 58:
The forest model FORCLIM 63 D (cm)
- Page 59 and 60:
The forest model FORCLIM 65 a) b) c
- Page 61 and 62:
The forest model FORCLIM 67 Growth
- Page 63 and 64:
The forest model FORCLIM 69 Stress-
- Page 65 and 66:
The forest model FORCLIM 71 Tab. 3.
- Page 67 and 68:
The forest model FORCLIM 73 3.3.2 F
- Page 69 and 70:
The forest model FORCLIM 75 where k
- Page 71 and 72:
The forest model FORCLIM 77 NITROGE
- Page 73 and 74:
The forest model FORCLIM 79 peratur
- Page 75 and 76:
The forest model FORCLIM 81 of degr
- Page 77 and 78:
The forest model FORCLIM 83 microcl
- Page 79 and 80:
The forest model FORCLIM 85 Tab. 3.
- Page 81 and 82:
The forest model FORCLIM 87 3.4.3 F
- Page 83 and 84:
The forest model FORCLIM 89 All the
- Page 85 and 86:
The forest model FORCLIM 91 The mas
- Page 87 and 88:
The forest model FORCLIM 93 FORCLIM
- Page 89 and 90:
Behaviour of FORCLIM along a transe
- Page 91 and 92:
Behaviour of FORCLIM along a transe
- Page 93 and 94:
Behaviour of FORCLIM along a transe
- Page 95 and 96:
Behaviour of FORCLIM along a transe
- Page 97 and 98:
Behaviour of FORCLIM along a transe
- Page 99 and 100:
Behaviour of FORCLIM along a transe
- Page 101 and 102:
Behaviour of FORCLIM along a transe
- Page 103 and 104:
Behaviour of FORCLIM along a transe
- Page 105 and 106:
Behaviour of FORCLIM along a transe
- Page 107 and 108:
Behaviour of FORCLIM along a transe
- Page 109 and 110:
Behaviour of FORCLIM along a transe
- Page 111 and 112:
Behaviour of FORCLIM along a transe
- Page 113 and 114:
Behaviour of FORCLIM along a transe
- Page 115 and 116:
Parameter sensitivity & model valid
- Page 117 and 118:
Parameter sensitivity & model valid
- Page 119 and 120:
Parameter sensitivity & model valid
- Page 121 and 122:
Parameter sensitivity & model valid
- Page 123 and 124:
Parameter sensitivity & model valid
- Page 125 and 126:
Parameter sensitivity & model valid
- Page 127 and 128:
Parameter sensitivity & model valid
- Page 129 and 130:
Parameter sensitivity & model valid
- Page 131 and 132:
Parameter sensitivity & model valid
- Page 133 and 134:
Parameter sensitivity & model valid
- Page 135 and 136:
Parameter sensitivity & model valid
- Page 137 and 138:
Parameter sensitivity & model valid
- Page 139 and 140:
Parameter sensitivity & model valid
- Page 141 and 142:
Parameter sensitivity & model valid
- Page 143 and 144:
Parameter sensitivity & model valid
- Page 145 and 146:
Parameter sensitivity & model valid
- Page 147 and 148:
153 6 . Model applications Climatic
- Page 149 and 150:
Model applications 155 The simulate
- Page 151 and 152:
Model applications 157 6.2 Possible
- Page 153 and 154:
Model applications 159 simulation s
- Page 155 and 156:
Model applications 161 Simulation e
- Page 157 and 158:
Model applications 163 At the site
- Page 159 and 160:
Model applications 165 Bever Biomas
- Page 161 and 162:
Model applications 167 tainty inher
- Page 163 and 164:
Model applications 169 scenario cho
- Page 165 and 166:
Discussion 171 Finally, the analysi
- Page 167 and 168:
Discussion 173 bitrarily chosen par
- Page 169 and 170: Discussion 175 comparably small imp
- Page 171 and 172: Discussion 177 end of the 21st cent
- Page 173 and 174: Conclusions 179 Ecological factors
- Page 175 and 176: Conclusions 181 species composition
- Page 177 and 178: References 183 Begon, M., Harper, J
- Page 179 and 180: References 185 Burger, H., 1951. Ho
- Page 181 and 182: References 187 Faber, P.J., 1991. A
- Page 183 and 184: References 189 Huntley, B. & Birks,
- Page 185 and 186: References 191 Leemans, R. & Prenti
- Page 187 and 188: References 193 Olson, J.S., 1963. E
- Page 189 and 190: References 195 Rudloff, W., 1981. W
- Page 191 and 192: References 197 Smith, T.M., Leemans
- Page 193 and 194: References 199 Whittaker, R.H., 195
- Page 195 and 196: Appendix 201 II. Derivation of para
- Page 197 and 198: Appendix 203 Tab. A-4: Tree species
- Page 199 and 200: Appendix 205 Tab. A-7: Values for m
- Page 201 and 202: Appendix 207 The minimum winter tem
- Page 203 and 204: Appendix 209 Tab. A-11: Shade toler
- Page 205 and 206: Appendix 211 Tab. A-14: Climatic pa
- Page 207 and 208: Appendix 213 IV. Source code of the
- Page 209 and 210: Appendix 215 FROM SimBase IMPORT De
- Page 211 and 212: Appendix 217 END; (* IF *) prevDay
- Page 213 and 214: Appendix 219 PROCEDURE InitializeFW
- Page 215 and 216: Appendix 221 InstallSeparator( fMen
- Page 217 and 218: Appendix 223 FROM FCPFileIO IMPORT
- Page 219: Appendix 225 modelSp^.p.kHm := sens
- Page 223 and 224: Appendix 229 Swiss Federal Institut
- Page 225 and 226: Appendix 231 (*********************
- Page 227 and 228: Appendix 233 BEGIN WITH sp^ DO d :=
- Page 229 and 230: Appendix 235 Definition module FCPB
- Page 231 and 232: Appendix 237 Purpose Simulation mod
- Page 233 and 234: Appendix 239 END Immobilization; PR
- Page 235 and 236: Appendix 241 CONST lem = 3; VAR ef:
- Page 237 and 238: Appendix 243 Purpose Provides the b
- Page 239 and 240: Appendix 245 Example of a text file
- Page 241 and 242: Appendix 247 Tab. A-15: Lower end o
- Page 243 and 244: Appendix 249 Tab. A-17: Percentage
- Page 245 and 246: Appendix 251 Tab. A-19: Significant
- Page 247 and 248: Appendix 253 VI. Derivation of para
- Page 249 and 250: Appendix 255 Tab. A-21: Species-spe
- Page 251 and 252: Appendix 257 Tab. A-22 (continued)