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 ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Appendix 213<br />
IV. Source code <strong>of</strong> <strong>the</strong> FORCLIM model<br />
Module ForClim<br />
MODULE ForClim;<br />
(*<br />
Implementation and Revisions:<br />
============================<br />
Author Date Description<br />
------ ---- -----------<br />
hb 17.12.92 First implementation (MacMETH_V3.2)<br />
af 08.07.93 About uses now FCResFileName<br />
hb 23. 9.93 F<strong>in</strong>al purg<strong>in</strong>g for <strong>the</strong> <strong>the</strong>sis<br />
*)<br />
FROM ForestBase IMPORT fMenu, configCmd, DeclForestBase, FCResFileName;<br />
FROM ForClimE IMPORT DeclForClimE, RemoveForClimE;<br />
FROM ForClimP IMPORT DeclForClimP, RemoveForClimP;<br />
FROM ForClimS IMPORT DeclForClimS, RemoveForClimS;<br />
FROM SimMaster IMPORT RunSimEnvironment;<br />
FROM DMMaster IMPORT AddKeyboardHandler, RemoveKeyboardHandler;<br />
FROM DMMenus IMPORT InstallMenu, InstallCommand, AccessStatus, Mark<strong>in</strong>g,<br />
InstallAliasChar, InstallAbout, ExecuteAbout;<br />
FROM DMW<strong>in</strong>dows IMPORT W<strong>in</strong>dow, CreateModalW<strong>in</strong>dow, ModalW<strong>in</strong>dowK<strong>in</strong>d, ScrollBars,<br />
W<strong>in</strong>dowFrame, AddW<strong>in</strong>dowHandler, W<strong>in</strong>dowHandlers, RemoveW<strong>in</strong>dow,<br />
RectArea, UseW<strong>in</strong>dowModally;<br />
FROM DMW<strong>in</strong>dowIO IMPORT DisplayPredef<strong>in</strong>edPicture, BackgroundWidth,<br />
BackgroundHeight;<br />
FROM DMEntryForms IMPORT FormFrame, WriteLabel, CheckBox, UseEntryForm;<br />
CONST<br />
w<strong>in</strong>dW = 500;<br />
w<strong>in</strong>dH = 315;<br />
VAR<br />
useFe, useFp, useFs: BOOLEAN;<br />
w: W<strong>in</strong>dow;<br />
PROCEDURE ConfigureForClim;<br />
CONST lem = 5;<br />
VAR ef: FormFrame;<br />
ok : BOOLEAN;<br />
cl: INTEGER;<br />
BEGIN<br />
cl := 2;<br />
WriteLabel(cl, lem-2, "Select <strong>the</strong> ForClim submodels you wish to use:"); INC(cl);<br />
CheckBox(cl,lem, "ForClim-E: Abiotic environment", useFe ); INC(cl);<br />
CheckBox(cl,lem, "ForClim-P: Plant population dynamics", useFp ); INC(cl);<br />
CheckBox(cl,lem, "ForClim-S: Soil organic matter turnover", useFs ); INC(cl);<br />
INC(cl);<br />
ef.x:= 0; ef.y:= -1; (* display entry form <strong>in</strong> middle <strong>of</strong> screen *)<br />
ef.l<strong>in</strong>es:= cl+1; ef.columns:= 50;<br />
UseEntryForm(ef,ok);<br />
IF ok THEN<br />
IF useFe THEN DeclForClimE ELSE RemoveForClimE END;<br />
IF useFp THEN DeclForClimP ELSE RemoveForClimP END;<br />
IF useFs THEN DeclForClimS ELSE RemoveForClimS END;<br />
END; (* IF *)<br />
END ConfigureForClim;<br />
PROCEDURE Pa<strong>in</strong>tStartup( w : W<strong>in</strong>dow );<br />
VAR r : RectArea;<br />
BEGIN<br />
r.x := 1; r.y := 1;<br />
r.w := 0; r.h := 0;<br />
DisplayPredef<strong>in</strong>edPicture( FCResFileName, 2000, r );<br />
END Pa<strong>in</strong>tStartup;<br />
PROCEDURE CloseStartupW<strong>in</strong>dow( w : W<strong>in</strong>dow );<br />
BEGIN RemoveW<strong>in</strong>dow( w ) END CloseStartupW<strong>in</strong>dow;<br />
PROCEDURE CloseStartupW<strong>in</strong>dowByKeyboard;<br />
BEGIN<br />
RemoveW<strong>in</strong>dow( w );<br />
RemoveKeyboardHandler( CloseStartupW<strong>in</strong>dowByKeyboard );<br />
END CloseStartupW<strong>in</strong>dowByKeyboard;<br />
PROCEDURE ShowStartupPicture;<br />
VAR f: W<strong>in</strong>dowFrame;<br />
ok: BOOLEAN;<br />
BEGIN<br />
f.w := w<strong>in</strong>dW;<br />
f.h := w<strong>in</strong>dH;<br />
f.x := (BackgroundWidth() - w<strong>in</strong>dW) DIV 2;<br />
f.y := (BackgroundHeight() - w<strong>in</strong>dH) DIV 2;<br />
CreateModalW<strong>in</strong>dow( w, S<strong>in</strong>gleFrameShadowed, WithoutScrollBars, f, Pa<strong>in</strong>tStartup );