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

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

Saved successfully!

Ooh no, something went wrong!