I::
This type of node can only be activated from the INIT section or from another node. It generates a message and sends it to the successor node (by default the following in the program).
MainEntrance (I) Office1, Office2 ::
IF Number < 40 THEN IT := TRIA(TBAMin, TBAMode, TBAMax);
ClassOff := FunClass;
IF ClassOff = Normal THEN SENDTO(Office1) ELSE SENDTO(Office2);
-------------------------------------------------------------
INIT TIME := 5; TSIM := 2000; ACT(MainEntrance, 0);
TBAMin := 3; TBAMode := 5; TBAMax := 8;
FunClass := Normal, 4 / Special, 1;
DECL TYPE Tc = (Normal, Special);
VAR TBAMin, TBAMode, TBAMax: REAL;
MESSAGES MainEntrance(ClassOff: Tc; h: REAL);
GFUNCTIONS FunClass FREQ(Tc): REAL: 2;
Messages are generated and sent to Office1
or Office2 according
to the field ClassOff, whose value is given by the function
FunClass. Up to 40 messages are generated. The time between
successive generations are taken from a triangular distribution. Samples (I) [1 .. 7] LabSec[INO] :: IT := EXPO(MeanArrT[INO]);
BactConc := GAMMA(MBac[INO], 0.2 * MBac[INO]);
SENDTO(LabSec[INO]);
LabSec (R) [1 .. 7] :: STAY := 0.031 * BactConc;
INIT TSIM := 7200;
ASSI MeanArrT[1..7] := (3.2, 3.6, 3.3, 3.8, 4.0, 3.97, 3.5);
FOR I := 1 TO 7 DO ACT(Samples[I], EXPO(MeanArrT[I]));
ASSI MBac[1 .. 7] := (98, 106, 86, 113, 102, 122, 104);
DECL
VAR MBac: ARRAY[1 .. 7] OF REAL; I: INTEGER;
MeanArrT: ARRAY[1 .. 7] OF REAL;
MESSAGES Samples(BactConc: REAL);
The messages (samples to be analyzed in a Lab) arrive at random
from seven original points and after being assigned a value
for BactConc by means of a GAMMA function, they are delivered
to one of the seven nodes LabSec (according to their source).
Hangar (I) Quarry[INO], Mine, City :: SENDTO(City);
COPYMESS(5) IF ICOPY <= 3 THEN SENDTO(Quarry[ICOPY])
ELSE SENDTO(Mine);
The produced message (Truck) is sent to City. Five copies
are made. The 1,2, and 3 are sent respectively to Quarry[1],
Quarry[2], and Quarry[3]. The other two (4 and 5)
are sent to Mine.