|
Objects in this document may appear out of sequence if not viewed with Internet Explorer |
|
ORMSware NMOD Primer: Chapter 15 |
|
![]() |
AND-arc multiplier property of an arc allows us to
override the default requirement of having one surrogate of a customer
arrive along an AND arc to the target node.
Recall that each time NETrans detects an AND arc terminating at a node, it adds 1 to that node's convergence requirement count. When NETrans finishes translating a model, it writes the final convergence requirement count for each Convergence node into a file. NMOD engine reads this file to get all of the network data making up the model at the time of model execution. Sometimes it is useful to be able to change convergence requirement count at a Convergence node, whether or not the existing value is the default value of one. This can be accomplished in three ways as explained below: |
There are 5 elements in a Flow vector, of which AND arc multiplier is the last element. Other elements in the vector are not used in NMOD, but some value must be provided as placeholder for each element if one chooses to use the AND arc multiplier element. In the image above, you can see that we have used zeros as placeholders and specified AND arc multiplier to be tnyMaxZones.
AND arc multiplier can be a constant, variable, function, or a
combination thereof, yielding a scalar numerical value, but this value must
be calculable before logic entered in nodes and arcs through NMOD's Visio
interface or the model's NET file is executed. a[7] in Example Problem 5 (Fleet
Flow), the dialog box of which is displayed above, has tnyMaxZones as
the AND arc multiplier. tnyMaxZones is an integer constant declared by the
analyst in the ADD file for that model, and therefore, it is calculated at
the very beginning of model execution before logic entered in any node or
arc is executed.
| CALL ChangeANDarcMult ( regArcObj, regNewReq, regPageNum ) |
Third argument, the page number where the subject arc is located, is
optional. When absent, the page is assumed to be the same as that of the
object in which the above CALL is located.
regArcObj is the Visio-assigned number of the arc object. regNewReq is the
number to which we want to set the new value. Notice that all arguments have
to be integers of the reg KIND. Typically, one would be using argument of
the form {Object.n} where n is the Visio object ID of the given arc. The {Object.n}
argument automatically yields an integer result of the reg KIND. If one
wishes to use a constant for regNewReq (say, 5) instead, it should be suffixed with
_reg (i.e. as in 5_reg).
| Note: Since ANSI Fortran 95 is strongly typed, it will produce a compilation error or execution error pointing to the exact location of the infraction if an argument type is not matched exactly. Therefore, getting all of the argument types absolutely right the first time is not critical. You will never have model development and debugging problems due to type mismatches. |
Remember that the new AND incidents
requirement can be higher or lower than the original requirement. AND arc multiplier property is typically used in
conjunction with signals/temporal arcs. You will see how AND-arc multipliers are used in Example Problem 2 (State
Transition model) and Problem 5
(Fleet Flow model) posted at this site.
| Note: NMOD does not actually check to see if AND count for each AND arc into a [Convergence] node is satisfied. NMOD only checks whether a surrogate has arrived at a Convergence node via any of the AND arcs, and if so, whether the total AND count for that node is satisfied. This approach provides the analyst with additional flexibility in structuring models. |
|
Click to go to Chapter 14: Signal targets/temporal arcs property of network objects |
|
Click to go to Chapter 16: Using Microsoft Excel for inputs |
|
Click to go to Introduction: NMOD Primer |