DEFINITION MODULE SampleMods;
(*******************************************************************
Module SampleMods (Easy_ModelWorks_1.5)
Copyright (c) 1996-2006 by Andreas Fischlin and ETH Zurich.
Purpose Supports the definition of a custom collection
of sample models to be executed from within
'Easy ModelWorks'.
Remarks Up to a maximum of 6 sample models can be
installed. These sample models are freely
editable and are ordinary 'Easy ModelWorks'
models. The only difference to user defined
ones is that they are defined (entered) via
programing, i.e. by using the client interface
of 'Easy ModelWorks'. The latter is provided
by the module EasyMWFcts ('Easy ModelWorks'
Functions). Reimplement this module to
customize 'Easy ModelWorks' to your needs, for
instance while teaching another subject
than ecological modeling or control theory.
Note, this technique has an important
implication: In order to recompile a new
implementation of this module you need
a compiler (eventually also a linker, depending
on your computer platform) and ModelWorks.
None of these tools are needed if you work
only with ordinary 'Easy ModelWorks' models
(where you do not even need a text editor to
edit 'Easy ModelWorks' models. Although you can
optionally use a text editor to write Easy
ModelWorks models, this can of course also be
acomplished from within 'Easy ModelWorks'
itself).
All needed software tools are available as
freeware for any Macintosh computer (given it
has at least 1 MB RAM). ModelWorks is also available
as freeware for IBM-PCs, but to reprogram
the sample modules you require a development
environment which is only commercially available.
For the currently valid specifications see the
www site respectively ftp host addresses given
below. At the same addresses you can also obtain
all freeware.
In addition it is optionally also possible to
implement or import ordinary ModelWorks Model
Definition Programs (MDPs) via this module,
e.g. by programming a MDP within this module
(see sample code wihin local module of the
implementation template (file
SampleMods.TEMPLATE.MOD) or by importing MDPs
from other modules. Any such MDP has to be
announced to 'Easy ModelWorks' by installing it
via procedure StructModAux.AssignSubModel.
IMPORTANT NOTE: This definition module MUST NOT
be changed. Only its implementation may
be freely modified.
Reference:
Fischlin et al., 1994. ModelWorks - An Interactive
Simulation Environment for Personal Computers and
Workstations. Systems Ecology Report #14, 324pp.
Programming
o Design
Andreas Fischlin 10/04/1996
o Implementation
Andreas Fischlin 10/04/1996
ETH Zurich
Systems Ecology
CHN E 35.1
Universitaetstrasse 16
8092 Zurich
SWITZERLAND
URLs:
<mailto:RAMSES@env.ethz.ch>
<http://www.sysecol.ethz.ch>
<http://www.sysecol.ethz.ch/SimSoftware/RAMSES>
Last revision of definition: 16/04/1996 AF
*******************************************************************)
CONST
maxSmplMods = 6;
TYPE
CmdText = ARRAY [0..63] OF CHAR;
VAR
subMenuTitle: CmdText;
sampleModelCmdText: ARRAY [1..maxSmplMods] OF CmdText;
userFctCmdText: CmdText; userFctAliasChar: CHAR;
(* Above strings (idents) are the ones 'Easy ModelWorks' uses as menu
text respectively command text in its submenu "Sample Models" (=
default subMenuTitle). You may assign any text to them in order to
customize 'Easy ModelWorks' to your needs. If you specify a string as
empty, the corresponding menu command will not be installed. In
particular, if you specify subMenuTitle as empty string, none of the
procedures below (SampleModel1 .. SampleModel6, announced MDPs,
UserFunction) become accessible for the 'Easy ModelWorks' user. *)
chooseMDPCmdText: CmdText; chooseMDPAliasChar: CHAR;
(* IMPORTANT NOTE: In contrast to the rule given above, the menu
command chooseMDPCmdText behaves differently: First, if some of your
modules currently executing call EasyMWFcts.AnnounceMWMDP, the needed
menu command will be installed, regardless of an empty
chooseMDPCmdText (using default text "ModelWorks MDP..."). Secondly,
the command becomes visible only in the to so-called power user mode
of 'Easy ModelWorks'. This is because the access of ordinary
ModelWorks MDPs is intended mainly for users who already know
ModelWorks well, for students it may be rather confusing. For
instance 'Easy ModelWorks'' help, can't explain the use of ModelWorks
standard simulation environment, hence it should remain reserved to
power users, e.g. teachers using 'Easy ModelWorks' also to demonstrate
a MDP. The mode power user on-off, can only be toggled with a hidden
key combination, i.e. Cmd^Shift^Caps-lock^P. *)
PROCEDURE SampleModel1;
PROCEDURE SampleModel2;
PROCEDURE SampleModel3;
PROCEDURE SampleModel4;
PROCEDURE SampleModel5;
PROCEDURE SampleModel6;
PROCEDURE UserFunction;
(* UserFunction may be used to provide any additional function. Since it
is possible to learn which sample model is currently in use from within
this function, you can provide an additional user function to any sample
model by a large CASE statement within UserFunction. A typical use of
this mechanism is to show the signal flow diagram of the sample models,
e.g. by provididing parameter editing via scroll bars or edit fields
within the diagram. Use the 'Dialog Machine' for easy programing of
these functions (also available as part of RAMSES). *)
END SampleMods.