A SYSTEMS SIMULATOR PROGSAMMING LANGUAGS FOR THE IBM 1620 COMPUTER
by
THOMAS ALLEN liTEBB III
B. S. , Kansas State University, I965
A MASTER'S THESIS
submitted in partial fulfillment of the
requirements for the degree
MASTER OF SCIENCE
Department of Industrial Engineering
KANSAS STATE UNIVERSITY Manhattan, Kansas
1966
Approved by:
Major Professor t-p 2(;6»? r4 \lO(f U/ 3(^
C. X . , Oom m-ey-^
TABLE OP CONTENTS
INTRODUCTION 1
FOHTBAH II k
DECISION SYSTEMS 1?
RANDOM NUMBERS 2?
IMPLEMENTATION OF THE MODIFIED PROCESSOR 30
TRIAL PROGRAMS 36
CONCLUSION UrO
FIGURES 42
APPENDIX 1 91
APPENDIX 2 109
BIBLIOGEAPHY 137
''] ''} ^ : : yj
'"'"' \' '- ... ^ '^. \ *, - - T - \ IHTRODUCTION
Through simulation the performance of an orcanizatlon or some part of an orcanization can be represented over a certain period of time (Martin, I96I). This is accomplished by devising mathe- matical models representing the components of the organization and 'oroviding decision systems for these components to represent
the various interrels-tionships. A digital computer may be used
to progress through the model for various intervals of time, paus-
ing at the end of each interval to compute the interactions be-
ti.'cen certain components. In this way it is possible to obtain a
"simulated" history of the organization under certain specified
conditions. By changing the conditions and repeating the process
it is possible to compare various parameters or decision systems.
In -this manner it is possible to experiment with changes in an
organization without affecting the actual organization being
studied.
Eandon variations are characteristic of many organizations.
In many situations, the randomness is so essential that the com-
mon simplifying technique of using average values simply "assumes
away" the problem. VJhenever uncerts-inty is s.n essential considera-
tion in an organization, a method must be available to produce
a similar uncertainty in the simulation model of the organization.
The use of a computer in such problems depends to a great
c:;tcnt on one's ability to structure a simulation in a machine
or cyntcr.s language. Kore specifically, it depends a great deal .
on the oonfomance of certain prosrammins languases to tho needs of
simulation problems. For the programmer the most important need is that the language be problem oriented, since an organization will be reduced to a mathematical model.
Inherent in all organizations are many and varied decisions, i. e. rules of action. Decisions may more accurately be described as decision systems since a single decision may be dependent on many factors. Decision systems, due to their complexities, normally occupy the greatest portion of the simulation routing. Thus, the ability of a programming language to implement decision systems is
' important -. v \ Speed and efficiency are also primary factors. Speed refers to the time required by a compiled decision system to make the cor- rect decision. This time must be minimized without occupying ex- cessive amounts of computer memory.
Efficiency refers to the amount of computer memory required.
Since the memory must provide room for the compiled mainline program, and many, sometimes large, areas for working and storage, the amount occupied by any one of these should be minimized. The size of the mainline program and, to a certain extent, the size of the working areas are variable and depend upon the simulation being performed. However, since the subroutines do the bulk of the work, it seems only natural to make them as efficient as possible. This is true especially for the decision process.
Another important and sometimes over-looked factor, is flexi- bility. The process of trying several different conditions or changes within the organization is inherent to simulation. These .
chances are typically within the decision process itself. Thus, provisions should be nade. to Ha]:e these changes in the fora of data on the object level. This should reduce the need to recom- pile a program each time a change must be made.
Three important factors in the selection of a procraramins lanEuage for use with simulation pi-oblens have been discussed.
They are speed, efficiency in the size of compiled progrsjns and their subroutines, and flexibility on the object level of the com- piled prosrams. Another requirement in Konte Carlo simulations is the ability to generate and use of random numbers (Hull, 19^2).
Chance variation is generally introduced into systems models by probability distributions. The distribution function may be a standard one (i.e. normal, exponential, Poisson, etc.) or an arbit- rary observed distribution derived from historical data. The most important of these distributions is the rectajigular or uniform dis- tribution because any distribution may be represented by random numbers dratm from a rectangular distribution by use of a probabil- ity integral transformation (Freund, I963)
IBM 1620 Fortran II is not a programming language that satis- fies all of the above needs. Thus it is the objective of this thesis to augment the Fortran II programming language so that the needs specified above are satisfied.
'EaJidom nujibers generated on a computer are called "pseudo-random" numbers and only appea.r to be dravm at random from certain probabil- ity distributions. However, they are expected to be non-repeating for a "long" sequence of numbers. ?OETEAH II
Fortran ("formula translation") II is a language that closely
resenbles algebra (IBM, I962) , It is a programming language de- signed primarily for scientific and engineering calculations.
Since It is problem oriented, it provides engineers with a method of communication that is more familiar, easier to learn, and easier to use than actual machine language. In this light, Fortran II meets one of the aforesaid qualifications for a programming lan- guage that is suited for simulation problems.
In addition, Fortran II object programs are generally as ef- ficient as those which might be icritten by an experienced program- mer (IBM, 1962). A baiilc of efficient subroutines is included in every Fortran program. These subroutines are used throughout the entire program. The mainline program consists of branches to the subroutines. Since the subroutines occupy such an Important posi- tion and make up the majority of the object program, great pains have been talcen to make them as short and as fast as possible.
In addition to speed and brevity, Fortran II is equipped with floating point capabilities. Although this is not necessary, it is' convenient and makes programming considerably easier.
Perhaps the greatest disadvantage associated with Fortran II, is the complexity of the decision process for multiple decisions.
The basic element of the decision process is the "IP" statement which permits the programmer to change the sequence of statement execution, depending upon the value of an arithmetic expression. The general form is: • -
IF(a)Hl,W2,N3 where (a) is an expression, and Nl, N2, and N3 are statement num- bers. Control is transferred to statement number Nl, N2, or K3 de- pending on whether the value of (a) is less than, equal to, or greater than zero respectively (IBM, I962). The "IF" statement will test only one decision parameter at a time.
As long as only one parameter need be tested at a time, the
"I?" statement is quite sufficient. However, the number of "I?"
statements required increases e:cponentially with the number of para- meters in the decision system. As an example, suppose A and B need
to be tested independently. A flow diagram of the process is as in
figure 1.
This means that there are nine possible configurations of the
tvro variables. In tabular form these are as follows.
A+ + -1- 000 B+-0 + -0 + -0
Each possible configuration will require a seperate branch to a seperate or identical position within the program. A program fol- lowing the logical flow listed above would contain the following
"IP" statements:
IF (A) 11,12,13
11 IF (B) 1, 2, 3
12 IF (3) ^i, 5, 6
13 IF (B) 7, 8, 9 It is possible to generalize the nimber of possible paths as follows!
Number of Paths = 3 . vihere n = the number of decision parameters. The number of "IF"
statements necessary to program a decision on (n) parameters would be "1-1 i=l
This can be seen by sitniming the following series, representing a decision tree.
1 2 n-1 1 + 3 + 3 + + 3
Thus if twenty parameters are necessary, there would be 3,^86,78^,^01 possible paths and 1,7^1-3,392,110 "IP" statements would be necessary to malce the decision as to which path should be followed. In addi- tion to this difficulty in implementing complex decisions, the mach- ine language programs resulting from "IP" statements are relatively slow and inefficient.
Another disadvantage to Fortran II is that random numbers are not readily available. Certainly, there are several models by which random number generators may be inserted into Fortran programs, but these are relatively time consuming if they are programmed in the
Fortran language. The same models when programmed in SPS (Symbolic
Programming System) are much faster and occupy much less space.
The choice of Fortran II for further study and implementation is quite logical since it is "easily implemented to problem solv- ing applications and still compiles relatively efficient machine language programs". It remains, however, to Implement a method by which decisions may be made more efficiently, both in terms of the memory occupied and in terms of the time necessary for execution.
Implementation of an efficient "random number generator" will also be necessary.
Fortran II is capable of using "functions" or subroutines.
Functions are divided into three types:
1. Library functions
a. Non-relocatable library functions
b. Relocatable library functions
2. Arithmetic statement functions
' 3. Fortran subprograms , ^ •,
a. Subprogram functions
b. Subprogram subroutines.
The most elementary type of function is the "non-relocatable" li- brary fmiction. These, along with the relocatable library functions, occupy the subroutine dec)!: of the Fortran II compiler. This type of subroutine is used for the Input and output fxinctions as well as the basic arithmetic operations (such as add or multiply). They are under the control of the processor only and may not be called direct- ly from a Fortran source program. Non-relocatable library functions occupy a fixed area in core
storage. They will be present in all Fortran programs and in the
same location unless the processor is changed. These subroutines may be changed only with direct changes to the processor. It would be better to rewrite the entire processor than to attempt to worl:
at the level of the "non-relocatable" library function. The rewards for direct work on the proooGsor would be about the same for a great- er investment in time and effort. Hereafter, when reference is made to library functions, it will be to the exclusion of the non-relo- catable variety.
Relocatable library functions will be compiled into the object program only if they are called from within the source program (with the exception of the exponential and logarithm library functions), and they will not occupy a fixed location. Certain functions, for instance the square root function, are not always required and would only occupy space in the computers memory. These are included as relocatable library functions so that core storage is not needless- ly taken up.
Library functions are preprogrammed and exist in a prepared deck, referred to as the subroutine deck of Fortran II. Instead of appearing in the object program every time they are called, they appear only once and only if they are called. They may be called by including the name of the function in an arithmetic statement within the source program. The name is follovred by a single argu- ment enclosed in parentheses which may be a constant, a variable
(subscripted or not subscripted), or an expression.
An example of a statement which will call two of the library functions. Viz, SINF and SQHTF, is:
Y = A-SIWP(B*SQRTP(C) ),
In this case, the assembled instructions of the object program will:
1. Branch to the square root subroutine to compute the value of the square root of C.
2. Multiply the value of the square root of C by 3,
3, Branch to the SIHF subroutine to conpute the value of the
sine of the product.
^. Subtract this value from A.
5. Replace the present value of Y with the value obtained in
step 4,
Only one value is produced by a library function and only one value
may be used as an argument, Fortran II has the capability of using
up to fifty library functions. The compiler furnished by IBM has
seven. The process by which a user may add library functions will
be discussed later.
An arithmetic statement function is defined by one arithmetic
statement and applies only to the program in which it appears. The
name of the function determines the mode of the value that is com-
puted. The mode must be either fixed point or floating point as
determined by the first letter in the name of the function.
The arithmetic statement function is defined as follows:
NAME (AEG) = EXPRESSION where KAIiE is the name of the function, AEG is the argument" and con-
sists of one or more variable names of non-subscripted variables; and EXPRESSION is an arithmetic expression that must conform to the rules for forming expressions. Examples of arithmetic statement functions are as follows:
FIHST(X) = A * X + B 10
SECONr>(X,B) = COS(X) * FIHST(B)
Y = SECOND(C,D).
This sequence of functions could be replaced (losing a great deal of versatility but saving much space and computing time) by the fol- lowing statement.
Y = COS(C) * (A * D + B)
The appearance of the name of an arithmetic statement function in an arithmetic statement serves to call the function.
As many of the variables appearing within the expression of a function as desired may be stated on the left hand side of the arith- metic statement function as arguments. The arguments are really only dummy variables so their names are unimportant except to spec- ify the mode. They may even be the same as names appearing later in the program.
Those variables which are not stated as arguments are treated as parameters. Thus, if FIHST is defined in a function statement as
FIRST (X) = A * X + 3, then a later reference to FIRST (Y) will cause
A * Y + B, based on the current values of A, B, and Y, to be computed.
The arguments of an arithmetic statement function may be ex- pressions and nay involve subscripted variables. Thus, a reference to
FIRST (Z + Y(I)), 11
as a result of the previous definition of FIRST, villi cause
A * (Z + Y(I)) +3,
to be computed on the basis of the current values of A, 3, Y(I),
and Z,
Functions defined by arithmetic statements are always compiled
as closed subroutines. A closed subroutine is used only by calling
for it in the source program and will be used only in the program in
which it was compiled. This means that the machine language instruc-
tions are compiled only once in the object progr;3un. Calling is ac-
complished either with the use of a "CALL" statement or by mention-
ing the name of a subroutine in the source program.
Fortran subprograms consist of subroutines that are not used frequently enough to be library functions, yet due to their size or complexity, they cannot be defined in a single arithmetic statement.
Fortran subprograms are compiled seperately but the object program cannot be executed by itself. For execution they must be called and loaded by a main program. For this reason they are called subprograms. Since each subprogram is compiled seperately, the arithmetic function and variable names used in the main program are completely independent of the function and variable names used in the subprogram. This means that very general subprograms can be cres.ted and used with any main Fortran II program.
Subprograms may be divided into two types; function subprograms and subroutine subprograms. Four statements are necessary for their definition and use. They are: 12
FUNCTIOH,
' '"; SUBROUTINE, T ; ,'1
CALL, and
EETUHN,
and will be described later. Although function and subroutine subprograms are similar and
are treated together in this thesis, thoy differ in two signifi-
cant respects:
1. Function subprograms can compute only one value, whereas
subroutine subprograms can compute many values and return
them to the main program.
• 2. Function subprograms may be called by an expression con-
taining its name but subroutine subprograms are called by
the use of a CALL statement. This means that function sub-
programs may be used in arithmetic statements.
The FUNCTIOK statement is always the first in a function sub-
program and defines it as such. The general form of a FUNCTION
statement is as follows:
FUNCTION "Name" (al, a2, an).
"Name" is the symbolic name of a single-valued function, and each
argument (al, a2, ... , an) is a non-subscripted variable name,
i.e. must not be a member of a dimensioned array.
In a function subprogram, the name of the function must appear
in an input list or on the left-hand side of an arithmetic state- ment. An example indicating the use of a FUNCTION statement and a
HETUEK statement and which conforms to this rule is as follovjs: 13
FUNCTIOS SUK (A, 3)
SUM = A + B
BETUEN.
function subprogram and The EETUEN statement terminated the calling program. Any returns the value of the function to the but control must end with number of these statements may be used one of them. reference in the cal- The arguments which follow the function and order with the argu- ling program must agree in number, mode, function subprogram. ments listed m the FTOICTION statement in the an array name the Vmen the argument in the reference statement is also be an corresponding argument in the PUHCTIOH statement must their respective array name sjid both must be dimensioned ^jithin EQUIVALENCE programs. None of the dummy variables may appear in
statements in the function subprogram. subprogram The SUBHOUTINE statement is used in a subroutine a function sub- in the same manner a FUNCTION statement is used in as follows: prograjn. The general form of the statement is
an). SUBHOUTINE "Name" (al, a2 ,
argument, "Name" is the symbolic name of a subprogram, and each name. The if any is specified, is a non-subscripted variable must SUBROUTINE statement defines the subroutine subprogram and must be the first statement in the subprogram. The subprogram statement except be a Fortran program and may use any Fortran II
a FUNCTION statement or another subroutine statement, A calling program may refer to a subroutine subprogram by a lit
CiiLL statement which specifies the name of the subprogram and its arguments. The subroutine subprogram uses one or more of its arguments to return resialts. Therefore, the arguments that are used for this purpose must appear on the left-hand side of an arithmetic statement in the subprogram or in an input list within the subprogram. ''
The correspondence between arguments applys in the case of the subroutine subprogram just as it did for the function subpro- gram. That is, the arguments listed in the CALL statement must correspond in number, order, mode, and dimension.
The CALL statement refers only to the subroutine subprogram whereas the BSTUEl-I statement is used by both the function and sub- routine subprograms. The general form of the CALL statement is as follows:
CALL "Name" (al, a2, .... , an) .
Name is the name of the subroutine subprogram being called and
(al, a2 , an) are the arguments. Each argument may be a fixed or floating point constant or variable (vjlth or without sub-
scripts) , or an expression.
A priority list of the functions in order of their power and flexibility would be as follovfs:
- 1. Non-relocatable Functions ..
2. Library Functions
3. Subroutine Subprograms
k. Function Subprograms
5. Arithmetic Statement Functions, 15
This list would have the same priority of difficulty of pro-
gramming, the first being difficult and the last being norraal For-
tran programming.
A symbol table is a straightforward list of all encountered
symbols such as subroutine names, variable names, and statement
numbers (Leeson, 1962). A symbol table look-up operation occurs
each time a constant, variable, or a statement number is encountered.
If the symbol is in the table its object time address is found in
the corresponding "Table of Addresses of Encountered Symbols" and
is used in the generated object prograj^i. If the syiabol is not in
the table it is placed there and its object time address is deter-
mined and stored in the corresponding address table. The address
is then used as above.
A brute force comparison is used to determine if a symbol is
in the symbol table until a successful comparison is made, the
temporary end of the symbol table is found, or the symbol table
is found to be full. This way, the mere mention of a symbol de-
fines it.
The first symbols in the symbol table are the names and alternate names of the library functions.
With the use of the symbol table and the table of encountered addresses, Fortran II generates a series of branch and transmit instructions, of the regular, immediate, and floating varieties, for the mainline program. The P address depends upon the operation
desired and directs control to a subroutine. The Q, address depends upon which symbol wants action at that time. Both will come from the table of addresses with the exception of operations requiring 16
the use of non- relocatable subroutines. These have a fixed lo- cation and their addresses may be found more directly. The symbol table and the table of addresses are both compiling aids and there- fore are not used in an object program.
If the basic processor is changed we lose the ability of in- corporating revisions furnished by IBM, If we work at the library function level or higher with very little additional worl;; our devel- oped subroutines may be used by a different processor (on a machine other than the 1620). For this reason, alterations and additions irill be made in the form of library functions. 1?
DECISION SYSTEMS
A deoislon system is the algorithm for relating interacting
variables in a problem solution. Deoislon systems can be simpli-
fied and put in a losical flow. For this discussion, then, a
decision system will be described as a locical and orderly method
by vihich decisions may be made.
The inefficiencies of a decision tree have already been dem-
onstrated in the discussion of the "IF" statement. For simplifica-
tion, this discussion will be reduced to one of "limited entry", or
binary decisions. Even when using "IP" statements in Fortran, the
two-way decision is often adequate.
The decision tree, for limited entry decisions, is sho^m in
figure 2, vrhere J and K stand for Yes and no respectively. The
use of two decision parameters yields four paths and requires
three "IF" statements to accurately describe the system. Thus
20 parameters yield 1,048,576 possible paths and requires 1,048,575 "IF" statements to describe the system.
An example of a decision system is the problem of credit ap- proval (Kirk, 1965). In this case three parameters are chosen on which to base a decision. They are:
1. Is the credit limit OK?
2. Is the pay experience favorable?
3. Has special clearance 'oeen obtained?
The decision tree to describe these parameters is shovrn in figure 2. The three parameters yield eight possible branches and 18
require seven comparisons to describe the systen.
Structure tables are an advantageous method for unambiguously
describing complex, multi-variable, multi-rule decision systems
(Schmidt, is6k) , Saoh table is a precise statement of the logical
and quantitative relationships supporting a particular elementary
process. They are developed in terms of the criteria or parameters
affecting the problem and the various outcomes which may result.
An example of a decision table incorporating the above parameters
Is described in figure J,
This table may be shortened by introducing another symbol
other than the Y or K, This symbol is "-" and means "not perti-
nent", Wienever this symbol is used, the parameter in question
(the row) has no significance in that rule (the oolu:.Tn) , Using
this new symbol the decision table in figure 3 is reduced to figure
i>. Using this new decision table we E.ay shorten the tree in figure
2 to that shoTni in figure 5. This shortens the problem to one of
four paths and three "IP" statements by eliminatins redundancies.
Another economy in the decision table is gained by introduc-
ing the concept of "ELSE", This concept merely states: if no rule
in a decision table can be matched then the action specified by
"ELSE" will be executed. Using this idea we may reduce the decision
table above to two rules, one a formal rule and the second an Implied
rule (figure 6).
The conversion of a decision table into a decision tree is not always as easy as above. The usual case has been to construct the general tree vrlth all of its redundancies and inefficiencies.
Several algorithms by which a fairly consistant and efficient tree 19
may be constructed have been devised. One such alsoritlni. will be
presented here, This algorithm minlml2es computer storage space
required for the resultant progran. It is a.lso designed to pin-
point any contradictions or redundacies among the rules in a table
(Pollaolc, 1965).
Figure ? presents an example of a limited-entry decision table
that could easily present redundancies and inefficiencies in the
normal procedure of constructing a tree. The il-^ are the actions,
the Ci are the conditions or parameters, and the 3]_ are the rules.
Before converting the decision table to individual comparisons and
the series of branches associated with each path, the number of
Trritten decision rules should be reduced to a miniaiua to simplify
the use of the algorithm. As an example, figure 7 may be reduced
to the table described by figure 8.
It would be helpful to present a general description of hovi
to convert the decision table to tree form before the algorithm due
to Pollacl: is presented. The procedure is as follows.
One row of the original decision table is selected. The
criterion for selection is given in the algorithm. The condition
in that row becomes the first comparison of the flowchart. The
original decision table is then decomposed into two subtables
(containing one less rov:) , or a subtable and a rule, or only two
rules; and each of these is associated with each branch of the comparison.
This is continued with each subtable until the branches lead
only to completed rules or "ELSE", or until a subtable indicates that the original table contained redundant or contradictory rules.
' ' • I,- - t-. ^ . .:..'_.' 20
The alsorlthn is presented without proof, hotrever when applied, it
has proven to be effective (Pollaclc, I965). The o-ojective of the
algorithm is to convert a decision table to a computer program and
have this program use the minimum number of stora,",-e locations, and
still be relatively fast.
Step one of the algorithin is a check for redundancy or con-
tradiction. If at any stage, a pair of rules does not contain at
least one (Y, S) pair in any of its roij, redundancy or contradiction
exists. Such is the case for rules 1 and 2 in figure 9. If the
actions for rules 1 and 2 are identical a redundancy exists and
rule 2 may be eliminated. Figure 10 presents an example of this.
Vlhere the actions for rule 1 differ from those of rules 2 and 3,
a contradiction exists. Where the actions of rule 1 are identical
with those of rules 2 and 3, a redundancy exists.
Step two of the algorithm is to malce a dash count and deter-
mine those rows which have a minimum dash count, A dash that ap-
pears in a rule (column) that contains r dashes is counted as 2 r dashes. For each rule, 2 is denoted as the column count. In
each row, the s'om of the column counts corresponding to the dashes
in that row is called the dash count. A row dash count is the sum of the column counts of those jrules that have dash entries in the row. This is illustrated in figure 11 in which row 2 has the mini- mum dash count.
Step three is used in the event that more than one row has a minimum dash count. It is to select that row which has a maximum delta, which is the absolute value of the difference of the X- oount and the N-count. The Y-count is the sum of the column- ,
21
counts correspondins to the Y's in tho roiT, The H-count is simi-
lar. Figure 12 is an example of a decision table with a miniEum
dash count in all of the rows. Since Cj^ had the maximum delta,
it was selected. The selected row is called k. In figure 12
Ci=C,j.,
Step four is to discriminate on the condition in row !c. This discrimination has two branches, each of which leads to a subtable
X'Thlch contains one or more rules, with one row less than the orig- inal table (row k is deleted). The Y-branch had a X in row It.
The N-branoh worlcs similarly. In addition both subtables contain those rules that had a dash in row k of the previous table.
Step five is to go back to step one if the subtable of inter- est contains more than one rule.
Step six may be divided into four smaller steps each of vrhioh handles a different situation. They are as follows:
a. If a branch leads to a subtable containing one rule,
and if that rule contains all dashes, then replace
the subtable with the rule itself,
b. If a branch leads to a subtable with one rule, and that
rule does not have all dashes but has more than one Y,
K, or a combination of Y or N, choose as row Ic any row
that has no dash. The selected branch will indicate a
subtable with one less row in it. The opposing branch will Indicate "ELSE",
c. If a branch does not lead to a subtable, it leads to "ELSS"
d. If a branch leads to a subtable containing only one rule. 22
and that rule contains only one oondltion whose value is
Y or K, then one branch of the discrimination on that
condition leads to the rule, the other branch leads to
"ELSE".
As an example of the use of this algoritlim, refer to the
table in figure 8. The application of the algorithm yields figure
13.
Using this algorithm one may reduce a decision table to the
minimum tree and program it in Fortran. This is then a valuable
programming aid. This does not, however, allow a programmer to
program decision tables into his Fortran program. This means, also,
that the programmer must recalculate the entire decision tree, re-
program it, and reprocess the program in order to ma]:e any change
in the decision process, A possible program might perform the pro-
cess of reducing the table to a tree, and might even generate the
completed "IF" statements on cards. The compiling process woiad remain, however. It would be more desirable to change the decision table at object level.
It is possible to program decision tables into Fortran with the use of the computed "GO TO" statement and a simple arithmetic statement (Veinott, I966) , The computed "GO TO" statement Indicates the statement that is to be executed next. However, the statement number that the program control is transferred to can be altered during the program. The general form of the computed "GO TO" state- ment is
GO TO (Kl,JJ2,...,Km),I 23
where Nl, K2,.,., Hm are statement numbers and I is a non-sub- scripted fixed point variable. This statement causes transfer of control to the first, second, third, etc., statement in the list depending on vfhether the value of I is 1, 2, 3, etc.
The approach taken considers a decision table as a multiple branch within a program. The procedure is to calculate a unique number for each possible set of conditions. The unique numbers must be an unbroken series of consecutive numbers in order to be used as a branching variable. Figure ^- will serve as an example.
A new table is constructed, adding a "value" column. Since there 3 are 2 =8 possible combinations of three conditions, 8 columns will be provided, one for each possible combination. The 8 columns are numbered from to 7 inclusive. X's are placed in the ooliomns so that the corresponding "values" add to the number heading the colujLn. This is represented in figure 14. This provides a unique number for each possible combination with a consecutive order.
Since the series contains a zero it is necessary to add one to make it a branching variable. Ordinarily yes is denoted by 1 and no Is denoted by 0. This convention is carried over in this case. In the above table the following notation is used:
11=1, Credit Limit OK
=0, Otherwise
12=1, Pay Experience OK
=0, Otherwise
13=1) Special Clearance
=0, Otherwise 2i^
Kl= Statement number to initiate the action
"do not approve order"
N2= Statenent number to Initiate the action
"approve order"
The Fortran program for this table is as follows:
JUMP=l+Il+2*I2+ij-*I3
GOTO (N1,N2,N2,K2,N2,N2,N2,IJ2) ,JUMP
It may be desirable to represent one or more conditions by
more than two states. Again, let there be m conditions, the states
of each of which is indicated by the value of variables 11,12,...
,Im. Let the various conditions have Kl,K2,...,Km mutually exclu-
sive states. That is, the conditions themselves are represented by
the "I" variables: each of these "I" variables can take on different
values, starting with zero, to express the state of this particular
condition. The number of states of any condition.
Since the states, for any condition, are mutually exclusive,
by definition, only one state can exist at a time for any given
condition. The number of combinations or "rules" that exist will be:
Number of rules = (Kl) (K2) . . . (Km)=E. (Veinott, I966)
For convenience, let KNL equal the number of states of the nezt- to-the-last condition.
The procedure in programming such a table is to set up H rules and identify each combination. To each combination a state- ment number must be assigned. The Fortran program would be: 25
JOTiP=l+Il+ia*I2+Kl«K2*I3+ +(ia*K2, . .*:fflFL)*Im
GOTO (N1,N2 ,Kr),JUKP
For an example, see figure 15.
This technique requires the exclusion of the "-" or "not
pertinent" element as well as the use of "ELSE". This means that
a table must be expanded to cover all possible combinations of
conditions. For the limited entry decision table 2^ rules are
required for n decision parameters. Finally, changes in the de-
cision table cannot be made on the object level. The user must
recompile his program to nalce any such changes.
A more efficient and faster method is desirable, as well as
one which will allow changes on the object level. An algorithm
which should best fit these requirements was presented by Kirlc
in January, I965. It is as follows.
The first step is to prepare a binary image of the condition
portion of the decision table. This image, called the "table
vector" and consisting of "rule vectors" is shoxmi in figure 16 for
the credit-approval table in figare 3.
The table matrix and the data vector alone do not have suffic-
ient information for solving the problem because of the use of a
zero for nonpertinent conditions in the table matrix. A masicing matrix is used to screen out nonpertinent conditions from the data vector prior to scanning the table matrix. The masking matrix is produced by replacing a Y and an K with a 1, and "-" with 0.
Therefore, a logical multiplication will insure a zero in the element of the data vector corresponding with a nonpertinent element in the original table. The masking matrix for the credit 26
approval table Is as in figure 1?, •-"'''
A table of logical multiplication, shoxm in figure 18 is used to multiply the data vector, elenent by element, by the appropriate masking vector prior to scanning. The result is then compared to the corresponding table vector. If a match is found the resulting action is executed; if not the next masking vector and table vector are tried until the table is exhausted. If the table is exhausted then "ELSE" is executed.
Since the IBM 1620 computer is not a binary computer, the use of characters is necessary. The logic used in the programming of this algorithm is presented in a subsequent section of this thesis. .
27
RAI''!DOri KUi'iSSES
A Monte Carlo calculation makes systematic use of random num- bers. The simulation is provided with intei-nally generated data that has the same characteristics as the actual data (Boi'iEian and a Fetter, 196I) . A schematic diagram of a process might consist of
jagged, irregular figure representing the collection of facts as observed. An idealized model, represented by a smooth curve may be derived from the schematic diagram of observations. This model, used with a random number generator, produces an artificially irreg- ular figure, representing the simulated experience. The simulated data is used in mathematical models for further simulations. In ad- dition to providing more extensive data, you can generate your data according to any icnoifin rule or give it any special characteristics
that you wish in order to study the effects on your simulation model.
The scheme choosen for generating random numbers has the fol- loTfing features: (a) the numbers generated are uniforialy distributed betvreen and 1; (b) there is no serial correlation between succes-
sive numbers in the sequence; (c) about 50 million numbers can be generated before the sequence repeats itself; (d) the calculation is
easy to perform on an electronic computer (Hull, I962)
The scheme is this: Start with any ten-digit number of the form xyzOOOOOOl; call it Kg. Thereafter
10'''°) Hjj = K • Rj^_i (mod
vrhere IC is a fixed multiplier, which should be a ten digit odd power 28
for K of a prine that is relatively prime to 10. Possible values include (Hull, 1962),
3^5 = 1,162,261,46?
7II = 1,977,326,743
11^ = 2,357,947,691.
The recursion relation expressed above in symbols can be trans- lated: To get the nest nujuber in the sequence, multiply the previous number by K. The result will be a 20 digit number. Take the last
(right-hand) ten digits of the product as the next number in the se- quence. Treat the number as a ten-digit decimal.
This scheme will generate rectangular or uniform random numbers which in turn may be used to ssxiple from any distribution desired.
It was coded in the Symbolic Programming System (SPS) language for the 1620 and compiled as a library function for Fortran II (see page
). ';:.-,.: : Non-uniform random numbers are occasionally needed in order to more properly describe a particular process. For one dimensional distributions we need only to solve the equation x=?(y) for y, vrhere
X is uniformly distributed, and where P(y) is the required (cumula- tive) distribution function. For example, if y is to be exponentially distributed, the following distribution function is used:
X = 1 - e'^ and
y = ln(l - x).
An arithmetic statement function to generate random n-jmbers repre- senting an exponential distribution could be as follows. 29
E3CPB1I(X) = L0C-?(1. - EI.im(X))
The use of these functions has been previously described.
Many simulations require the use of arbitrary distributions, iThich may be used with a table loo!c-up operation. For a detailed study on the vise of arbitrary distributions, see Starr and i.iller
(12),
Since its developenent, the random number generator has been
tested by VJichlan (l'^-). ^iie numbers were found to be rcots.n^-ular on the five per-oent level. The Chi-squared and Serial Correlation tests were used. 30
IKPLEJIENTATION OF TH3 KODIFISD rHOCSSSOH
a relocatable The Decision Table sutooutliie h;r.s been coded into capability to library subroutine. There is present a need for the they actually set up data vectors, i.e. present the conditions as must be in the form er.ist in the fom of a vector. This capability the Decision Table of relocatable subroutines to be conpatible with the proper subroutine. A one parameter data vector, with the help of statement. subroutine, could be set up -rith the followinc Fortran
DATA = EQ(T-S)
vector; if not If T and S are equal, a 1 will becoae the entire data the a will be produced. The functions available for oonstractins
data vector a.re;
. - . ^_ SQ Equal
"'' UK Not equal '
GE Greater than LR Less than
GE Greater than or equal , ^ ^^^__'
LE Less than or equal
KC No change (for data vectors that have already been
produced)
YES Always generates a 1 HO Always generates a EDATA The entire data vector will be read in.
An example of the use of these functions is illustrated by the )
31
following Fortran statement.
DATA=EQ { T-S ) +GH ( U-T+LRU-S ) -i-GE ( T-U) +LE ( U-T
if T=l, S=2, and U=3 the following data vector will be produced.
011000
The data vector may then be tested after a table has been read into core. This is accomplished by the following statement.
ACTI0N=BDTB(1)
This will cause a decision table to be read into the proper place in core (common). It will also be named table niimber 1. There- after a table may be referred to by its number in testing as follows:
JUMP=TEST(1).
The last data vector produced will then be tested by decision table number 1. The resulting value will be assigned to the branch- ing variable, JUMP. JUMP is then used in a computed GO TO state- ment.
The credit approval table will serve as an example (figure 4),
The following variables will be used in the example:
JUMP = the branching variable
OEDLMT = the customers credit limit
CUSDBT = the amount owed by the customer
OHDAMT = the dollar amount of the order
X = a dummy variable +
32
The Fortran program is as follows;
DATA=GE(CRDLMT-(CUSDBT+OBDA]yiT) )+YES(X)+NO(X)
ACTI0N=HDTB(1)
JUMP=TEST(1)
GO TO (1,1, 1,2), JUMP
The DATA statement may vary and options may be placed under
switch control. When DATA is executed a data vector is produced
and stored in core according to the function names and the values
of their arguments. When the function EDTB(l) is executed a
table will be read into common and labeled with a 1. In this
case the table will look like the folloifing:
Oif-03 1— 01-* 001* ooot
vjhere 0403 means that there are four rules and three conditions
in the table. For each table the limit on conditions is 79 and
the limit on rules is 99. The rules may be presented in any order but the desired actions must be expressed in the same order in the
computed GO TO statement used in the source program. ACTION and
DATA are dummy variables but must be floating point variables.
The data vector must fit the table it is intended for. The decis- ion table and data vector must be based on the same number of conditions or parameters. In addition, the data vector must be used before another data vector is produced. However, a decision system may contain more than one decision table. Tables may also 33
vary in length.
When the arithmetic statement defining JUMP is encountered a value will be assigned to the variable, JUMP. Assuming this particular customer has exceeded his credit limit, the value of the data vector is as follows.
010
The resulting value of JUMP will be 2 and statement number 1 will be the next statement executed within the program.
If a data vector is to be read in, the entire data vector must be ready and must be right justified on the data card with a flag over the left-most element on the card as follows.
columns 78-80 010
The data vector should have the same number of conditions as does the table used for testing. -r
The purpose of the "data arranging" subroutines is to set up the data vectors in a place in core which is accessable to all of the relocatable subroutines. In this way any subroutine can make changes to or use the data vector as it must. The purpose of the "table reading and testing" subroutine is to read a table into core, label it and set up the table and masking matrices. At the time of testing the logical multiplication is performed on the data vector to mask it and the result is compared to the table vector. Each time a comparison is made a counter is incremented by one. I'Jhen a comparison is successfully made this counter be- comes the value of the branching variable. The subroutines and 3^
their flow-charts are presented In the appendix.
In order to implement relocatable library functions, they must first be coded into a 1620 SPS source prosram. The origin is assigned at location 10,000. All P and Q addresses that are relative to the origin must be labeled as such by placing a flag in the 0-, and Op positions of that same instruction, respectively.
The resi;ilting condensed object, w-ith the first 2 and last 7 cards removed, must be preceded by a header card punched vjith the following information:
Columns 1- 5 XX30QC Total number of storage locations
required by the subroutine. This
number must be even.
Columns 11-12 YY The alternate subroutine number
if any.
Colianns 16-20 WVfWliW The alternate entry point if any. Column 63 -A record mark.
_. Columns 75-80 XXOOOl Card sequence number, where XX
is the subroutine number.
The object deck, minus the header card, must be renumbered start- ing with XX0002, where XX is the subroutine number.
If a subroutine contains two entry points the card sequence numbering does not change and is done as if no alternate entry vrere in effect. The information given on the header is suffi- cient for the use of the alternate entry point. The packet of cards can be inserted between any two subroutines in the library subroutine deck. 35
It is also necessary to increase the number in columns 1-2 of card 030OO of the Pass I deck to reflect a new total number of relocatable subroutines. Then add the subroutine name(s) at the end of the last card. If a new card is required, it must be num- bered consecutively.
Linkage into the subroutine is provided with one of the
"Branch and Transmit" instructions. For instance:
> '. 1 BTM SUBH, A .
will branch to SUBE and carry A I'lith it. It will place the field represented by A into core just before the entry point of SUBE.
When the subroutine is finished a "Branch Back" will be encountered and control will be transferred back to the mainline program. 36
TRIAL PEOGEAJIS
In order to test the effectiveness of the decision processes
and Illustrate the use of the random number generator, a system
was chosen for simtilation. This system entails a pump and a tank.
The pump is used to fill the tank and may have various capacities.
The capacity of the pump is stated in terms of the depth of liquid
replaced in the tanlc per pass through the simulation. Thus, a
continuous process is simplified into a discrete process. The
pvunp will also have a tendency to heat during the process of pump-
ing. It is assumed that the process of pumping will increase the
temperature of the pump by one degree during one pass through the
simulation. Initially the pump is 70 degrees and the upper safety
limit is 180 degrees. It Is assumed that the atmosphere is 70
degrees.
The loss of heat from the pump depends upon the temperature
of the pump. The computer program removes heat from the pump by
finding the temperature gradient between the pump and the atmos-
phere and subtracting one hundreth of it from the pump tempera-
ture during each pass through the simulation when the pump is
'.. /• inactive. *_,',,., ,
The tank has a valve which may be used to remove liquid from
the tank at the rate of "B" feet per pass through the simulation.
The control of this valve Is placed linder a user of users. The program places the control of this valve under a switch on the
1620 console or will simulate the use of the valve with the ran- dom number generator at the discretion of the operator. It is 37
considered desirable to keep the level of the tanli: 'between four
and five feet.
In addition, two alarms are provided. The first is a heat
alarm and will be turned on when the temperature of the pump ex-
ceeds 180 degrees. The second is a "tank level high" alarm and
will be turned on when the liquid level in the tank exceeds five
feet. The decision table used to govern the pump and the alaims
is depicted by figure I9.
This entire process has been simulated in four different
ways each of which differs In the decision process. The general
flow diagram is as presented in figure 20. They are as follows:
1. Using a tree constructed by eliminating the table (figure
19) one condition at a time In the order of their occur-
rence.
2. Using a tree constructed by eliminating the table accor-
ding to the "dash count" of the conditions (thus construct-
ing an optimal tree).
3. Programming the table in the Fortran language.
1+, Using the table on the object level, thus using the afore-
mentioned library subroutines.
The tree which resulted from reducing the table one condition
at a time is illustrated in figure 21. This reduction was accom-
plished by first discriminating on condition number one (tank in
use) and progressing directly through the rest of the conditions until the conversion was complete. The resulting program is
Illustrated by figure 22.
The tree which resulted from the reduction of the table 38
according to the dash count is as described by figure 23. Accord-
ing to the proponents of the algorithm used, this is the smallest
tree that can be produced. The resulting program is illustrated
by figure 24.
Programming the decision table in the Fortran language is
accomplished by expanding the decision table into the form indi-
cated in figure 25. This is then programmed with the use of a
single arithmetic statement and a computed "GO TO" statement.
The resulting program is illustrated by figure 26.
The use of the decision table on the object level calls
for a reduction for the decision table as depicted in figure 2?.
The resulting program is illustrated by fiugre 28.
The resulting programs are compared in figure 29. This com-
parison is made to illustrate the difference in programming, time
and core storage necessary to perform the simulation with 1000
passes. Although the tank use was controlled by the random number
generator, the same tank usage was experienced since the same ar-
gument controlled the random number gnerator in all of the programs
in the comparison.
The fastest programs were the programs which used the decision
trees. Both had times of 1.901 minutes. The slowest program was
the program using the SPS subroutines with a time of 5.222 minutes.
The shortest mainline program is the program using the SPS sub- routines. However, when the subroutines are taken into considera-
tion this program becomes the longest. The shortest program (in-
cluding the required subroutines) is the decision tree produced by
Pollack's algorithm. However, the subroutines are of a constant 39
length and the mainline programs are of a variable length. For programs requiring more complicated decision systems the program produced with Pollack's algorithm would soon prove to be shorter.
There would be a break-even point where the length of the improved decision tree program would be the same as the length of a program utilizing the decision table subroutines. Any larger systems would yield a shorter program with these subroutines.
C '" 40
CONCLUSION
The comparison of the different trial programs yields the following information.
1) Small to medium decision systems yield shorter programs 2 when reduced to a tree with Pollack's algorithm .
2) Larger decision systems would probably yield the short-
est programs using decision tables and the special sub-
routines.
3) The particular example shoirn above indicates that faster programs are feasible, using a decision tree. There is,
however, nothing on which to base a generalization about
the speed of resulting programs.
In addition, the SPS subroutines allow changes to be made on the object level of compiled programs, thus allowing a greater flexi- bility. This is important for simulations because you can try several different rules and arrangements and study the effects they have on an organization without recompiling any programs.
The SPS subroutines are of the following lengths. Eandom Number Generator 240
Bead Table and Test 2164
Greater than or equal and Less than equal 290
Greater than and Less than 290
Equal and Unequal 280
^Pollack has met with recent criticism of his algorithm. His assumption has been proven not infallable by Sprague (11). 41
Xes and. No 19^
No Change 90 Read Data 36
Some of these are quite small and efi-ioient; others (due to their complexity) are large and bulky. It is quite probable that some of the subroutines oould be shortened and/or made to operate fast- er by another approach, either to the problem solution or to the techniques used in programming the solution. Due to its length and bulk the "Head Table and Test" subroutine could probably be shortened considerably. 42
FIGURES PLATE I
Figure 1 is an exsxmle of a decision tree in which each condition has three states. Figure 2 illustrates a binary or limited-entry decision tree.
;"/?-'>. 44
START
lo 1
Fig. 1
A X
START '<:>''
Y /\ N C2 ^/'c^"
N Y N Y N Y
APPLY 1' 1' RULE R R2R3 R4R5 RcR6 "7
Pig. 2 PLATS II
Figure 3 is a credit approval decision talDle which is expanded to include all possible oases. Figure k is the ssune table after the rules have been combined with "not-pertinent" elements. Figure 5 is the credit approval table illustrated in the form of a tree. 1*6 Logic Rules CONDITIONS 1 2 3 4 5 6 7 8 Credit Limit OK YYYYNNNN ^1 Pay Experience OK YYNNYYNN =3 Special Clearance YNYNYNYN ACTIONS
Approve Order X X X X X X X A2 Disapprove Order X
FiS. 3
Logic Hules CONDITIONS 12 3 4
Credit Limit OK Y N N N Pay Experience OK Y N N 1 Special Clearance - Y N ACTIONS
Approve Order X X X Ag^ Disapprove Order X
Fig. 4
START
Y/,\ N
Y/^^ N
Fig. 5 - ,--, PLATS III
Figure 6 is the credit approval table simplif ied by using the implied decision rule - "ELSE". Fisure 7 is any decision table. Pigure 8 is the simplified version of figure
7 after the introduction of the "not-pertinent" element. 1*8
Logic Rules CONDITIONS 1 E
Credit Limit OK K Pay Experience OK N C3 Special Clearance N
ACTIOMS
Approve Order X A2 Disapprove Order X
Fl£
Hi R2 E3 % Eg
°1 Y Y N N c? N Y Y N °3 Y N Y Y
Ai X X X X t2 X
FlS. 7
R, H3 ,4 ^2 % =1 - Y N c. N Y Y C3 Y N Y
A1 X A? X X Ae X
Fig. 8 PLATE IV
Figures 9 and 10 illtistrate decision tables which contain redundant or Inoonsistant rules. Fisure 11 is a decision table which Indicates the use of a dash count. Figure 12 illustrates the use of a dash count and the delta of each condition.
-.-") ' 50
Hi H2 N
=2 N N
Fig. 9
^1 ^2 R3 Y N
• < I'i Fig, 10
unn Count k k 2
Hi ^2 R3 Dash Count N _ Y k ^1 ^2 N Y - 2 - i^ <=3 Y N - - N 8
Pig. 11
Jlumri Count 1 2 1 2 2 2 Dash Y N El S2 R, H/^ ^5 ^6 Count Delta Count Coxmt _ Ci Y N K N N 2 6 1 7 =2 Y N Y - Y N 2 k J+ =3 N N N Y - Y 2 k 4 N - N N Y Y 2 k 4
Fig. 12 PLATE V
figure 13 Illustrates the application of Pollaolc's al- gorithm for the expansion of decision tables into mininum decision trees. 52
Column Count 2 1 1
^1 ^2 ^3 Dash Count Delta - Y N 2 C^ N Y Y C3C^ Y N Y 2
Colximn Count
Dash Count
> ELSE
>-ELSE
Pig. 13 - -^ - PLAT3 VI ' *- '
Figure Ik illustrates the credit approval table modified for prograimiiinc In Fortran. Pl^are 15 Illustrates a table containing conditions with more than two states modified for
Fortran procrsjiiniing. 54
C-J c^ X X CM CM X X CM W X X f>J O X X X X iHCX) X X X X X X X X X X X tH C^ X X >H CM X X XX X o iH t-H X X X X X ^ rH C\J jS" -P H O f^vo ON OK OK a) CO Clearance H Limit Experience m EH o t> M o o M ft O O o ft o Special u a Credit ft CO ft-H Pay fH CO tH CM 0^ rH CM r^ji- rH CM C C c o o a) CD O CD +i ^ ,H +J 4J +J iJ •H 4-1 -p +J cd c8 cd p cd cd cd cfl +3 cj cd •H +> -P +1 ^ 4^ 4J -P +i •H 4J 4> d CO CO CO XI m Oi (n ui t:* CO CO C C PLATE XII ,-,. Figure 16 is the table matrix for the credit approval table. Figure 1? is the maslcing matrix i''or the credit ap- proval table. Figure 18 illustrates a table of logical mul- tiplication. 5(> Logic Rules COImDITIONS 12 3-^ °1 Credit Limit OK 10 C2 Pay Experience OK 10 C3 Special Clearance 10 Fig. 16 Logic Rules COHDITIONS 123^ Credit Limit OK ^1 1111 Pay Experience OK 111 c'C3 Special Clearance 11 Pig. 17 1 1 1 Pig. 1£ PLATS VTTI Fisiire 19 is the decision table for the "pump s.nd tan!:" simulation. 58 ? v": > > > > o o o o o '; * 4="^ ro h* U\ -P-VJ N l-" d h3 M M *;) t-i iri y 1^ e: P rt- ct o B 3 p j > d iVd 4 > d ro 13 ^ o o ct o H M p j ct mr<>T) 1^ t-3 W H ^ h* (C (0 p *T) M ro > tx)C 3 y o B d (t 'd i 3 W o mB a h3 CD H •« Cfl ro ^ »-» ^ P CO 4 o B 1 '^ t-» 1 vo (-* *" I H* H* 1 r i-» 1 (-» 1 \ 1 M 1 l-» 1 O 1 Kl VJ M O l-> 1 l-»0 1 M 1 '. -P- H" O 1 1 F-' O 1 O 1 Ct) 0\ O O H' 1 O O 1 M o ON O O 1 H' O O l-" O (-> o\c; ro i -v! O O 1 1 O O O O M V] M j 1 -~J O O 1 1 O O t-^ h-^ l-k 00 Ijx O O H- 1 O O O M h-* VO 1-* -J O O 1 1 O O 1 o o o ] _, - 1 '-..,^-- r PLATE IX •• 1 1 Figure 20 is the flow logic used to simulate the pump ,j and tanli:. ; ) 60 i \ READ: ,/ 1 LEVEL / TEMP / \ A B / PUMP N, \ ^ . . K ON y \ » y j TEMP=TEMP+1 TEMP=TEMP- ( TEMP-70 /lOO LEVEL=LEVEL+A ( ) L J i Y>//tank \ N ON yi \ NV ? X LEVEL=LEVEL-B . i 1 i ""' .'"::- .' •;';,. . DECISION \ f SYSTEM \ \ '• '.••' -^ 1 PUMP=0 i AT APIVI1 —1 V PUMP=0 ALARK1=C) ALAEM2=] PUKP=0 ] ALAHM1=0 -> DETERMINE ALAEI'!2=C TANK USE —> 6 PUMP=1 '\ i ALAEI42=0 - '! ' - Fig, 20 : ^ PLATE X . , Pigiire 21 is the uninproved decision tree for the p-LEip simulation taole. \.- 62 PLATS XI " ?lsure 22 (3 pa^es) is the program for the unimproved decision tree for the punp simulation. V .i V. —1• —I —11 — <1 . 61+ C) 1/5 — — O U • Q -< a -> X q; ,-1 — if> UJ CL u_ m X > z s: • • ^ _J C) — o »0 z Q. < Z • Li. o s > h- -J 3 fvj • .i^ 3 < UJ «^ — rH O Q. to a ^^ -I > • li- • 2: • z 3 UJ o z • >0 D -o UJ < Z J o 1— tJ --I U. 0. u. X 1 < •-( •—•••' •> I II ul ,_l v t- n (*> f^ CO UJ a h- — < r-l . X X U- X UJ s: * • _J u_ ^ in tvj C) I UJ r~t o D » IL z X 1 1 r- r^ m in 4" en \0 fo A » Z o • (3 in > u. 1 t— -. » •> . o t <) u. CD CNJ a ^ •— •> lO rj . i^ <^ c> (NJ < S ""I t£) r^ »? ^ n •4" • \0 * rt • >- ^-. * 1— * "iGure 22 continued. 4 — 66 O o UJ ^_ Z UJ 1/1 a. < _J 3 -J U5 CK _I >0 UJ 3 C) Z -H > 1- I/) 01 UJ . UJ < 1- CO in _i I r-t fM t— Z 3 - -< < in UJ C) C) I/) U Z z ^ a. I • * lA in * I 3 t-* -H S • f- n * in • r^ u '^ V 3 I •* • in <} vo •• z V Z i^ z I a 1 r^ * in m in r^ • 3 z < z < u • in •— a < t- < t— t- ^ in + 1 — z ^ 0^ O lA O in in 1— o o (> 1 t 2 < t 1 CO 1 CC in 1 CO 1 00 z f- 1 1 I/) 1- -J _/ ^ _l ^ in _/ -t-1 -I_I ^-< > • • • • • • • 3 u_ u. UJ — n-l LU lU t 1 UJ 1 UJ 1 '"' f\j en -d- in lO r- ^ 3 3 3 in 1/5 to 1/5 u u u u u u u PLATS XIII Figure 22 concluded. 68 I — t-Jt UJ< o O UJ i/jo: • r- • h- ly) Z 1 o z UJIA It CJ II C> UJ lO • zv: 1- zJ^ 1- •/) o ll-U. < CJ < C) u. z \£>CD a i-H PLAT3 XIV Plsure 23 is the Improved decision tree for the pimp simulation. 70 START ^ ^^f^ (^ Y /c> N f Y /^\N Rg R7 J, Rfi R7 Fig. 23 PLATS ;CV Figure Z^ is the Fortran program for the Improved decis- ion tree for the pump simulation. 72 UJ w >.-( — ( C) Ul ro > z < — — ,-. o Q. i^ -J u_ • s: z D z . >o 3 < 2: CJ -I u. a I- -" (- (^ en I < -- • _J U- O I •• 3 u. : s: o » I HH • O • (/) (\J ; »-H 5; CD m (*^ m in •^ CM -J- %o ; >- UJ . rt ^ V I ^ en CO vO »o mm i^ U_ U- • »- f- lu -^ - O -I » O « m — —. « Z • » I — — tsl IS! • • Ll.1 •»- t-H UJ (\J en • • * • • • en -- < o u u ^ <» rt > — . > rt * if> o r- CO ?i2>T;.re 2i^ concluded. t — 1 I 7^ n Q UJ )_ Z UJ m » < _J 3 _J 10 q: -J ^0 UJ -H 3 C> z rt > <^ rg o K I/) q: UJ • UJ rH rsj < — h- 1/5 in _j - o K z 3 h- .-» < CO rvj ,_i 10 UJ o O •" •— rg LO u Z z — Q. -~ o —. X D •-4 'H S: CM (VJ m u i^ i^ 3 -^ ^^ Z 1^ z i*' z I Q. X X h->- to 3 Z < z < u « u n u t^ — < a < 1- < 1- 1- iZ 1- a- h- t- 1 ^ z « CNJ — ir» Figure 25 is the expanded decision table for prosram- ming the puap simulation decision table in Fortran, 76 , 1 C^<-l rH tH tH T-H rH tH 1 r^o O W T-H tH W w •i oj o\ tH O iH T-H T-f CM ojoo O O t-( T-H rH CM C\) c^- tH tH O ^ tH tH CM u> T-t O O W iH CM CM^ O O O 'H tH CM '- CM C^ tH iH tH O iH c^ C\J CM O i-H tH O i-H (^ (M w tH O rH O »H ^ CM O O O tH Or^ -a- tH 0\ tH rH O O tH c^ HCO 0»H O O W c^ 1 7 »H O O O tH ^ 6 Rules 1 O O OOiH -* 1 5 ^H r^ rH O T-^ O CN- rH vH tH O O 1>- - i NO O T-t tH o O lA VO tH O -rH O O VO - ' •d- O OrH o o C-- 1 . c^ t-l w o oo VA (M OtH O O O lA i ' ' , tH tH oo o o c^ O o o o o o CN- H ! > a t- o •H P 4J O 0) o o o o u <; c/3 '^1 •- 1 _ ' > t ' \ r-s 1 PLAT3 :CVIII Figure 26 Is the prograa for the pump simulation using t the decision ta.lDle in Fortran, 1 . t 78 "., \ \ . » ' ., , - ''-'> w f X • -•v»»'' "j' "' fNJ i. ',' ' z ' * ct -. «^ < oa: <_J >/) to -J i uUJ >UJ C) UJ _J aq; X Q X t) in \ 2; 2: \ K UJ 3 h- i C) X X ^ X ' t— r^ a - -J UJ 1/) > UJ rg UJ _lrt -I CQU. X < . — IT* UJ 1-0 m X > z • • .0 _l U.-H vO z < - UJr-. U. > 1- -I QU. • A < UJ ^» — . D. cn CL ^ -J > • • « S Z 3 UJ Z ' 3 vO 3 < 2; -J CJtvj u. a. u. a 1- — < t-1 X 1/5 >v »- L_ rt r- m UJ UJ a r- — •-H <» . • • 4- < X X X X UJ £ J PLilTE XIX Figure 26 continued. '• • < « 80 >- 1/1 ct ou •-• Q. lA rH CL 03 f\J —. r) ^ o f-H a. (NJ CNJ X •« X — 2 < u ^ u c<^ -< a < t- < 1- H- ^ ^— 0 l_IC>Q l_IO0 I _) C) U U U l_l U U 1-1 PLATE XX Lgure 26 concluded. < I 1 82 o O lu o r-- •— 1^ lO ri II z ^C> v: o UJ Zt- z 1— lO < < — Q >-<) 1- <) u. Z ~li) — ID — UJ o ^ 0^ rsi (NJ <-< Figure 27 is the pump decision table sinplified "oy the use of "ELSE" for use by the modified processor. 8k Logic Bui es 1 2 3 4 5 6 7 E - _ _ Ci - 1 1 c. 1 1 1 1 - c^ - - - 1 1 1 % - ^5 - 1 1 _ _ _ Ai _ 1 _ - A? 1 1 - 1 1 - A^ 1 1 - % - 1 1 Fig. 27 ?LAT3 XXII ; Figure 28 Is the prosraa for simula-tln^ the puiap and. tanlc with the Kodifled processor. — —« 1 ;. "- 86 ^..-n, { '^ ' ' . -» , -n »' •• . o . r-4 -. ** X ' - fVJ •,- • ' jt S o ! ^^ q: . 00 ce < t-l ' C) -J 1 00 < Q. ^ S LjJ _j UJ 1- U lij ** C) > CcL LU q: Ql _l + O ^ ^ LU rH , • 1 K m 1 Ll. 1 a. _i Q ^ UJ ' C) UJ > S 1— Ul z „ X -I c>« X o •J- < t- • x — I/) fc-1 CNJ r- or 3 CD U- LU + Ul -^ lO •t > a LlJ-O LU -I • -J ^ UJ EU 1-H X 1 I < rH ^^ in UJ -J t- U- CO > z UJ • _l c> > C) LJ o ^o Z < - Ul 1 1- -J LLt u. C) > -I a O (Ni ^ < UJ < s C3 ,—1 Q. (O ii -J — — 3 z o a > -) u. 5: « S Z 21 UJ •—1 q: •-* z o 3 vO D < S _l o -i "«> Q <) ,-i u. a. iL Q. 1- — < • + q: •> •> — r-' C> « X II I/) T-4 * •> 1— CO CO (^ CD UJ UJ a. f*- — a ^J 1-H • UJ s: «l • z ID w < X X X I ^ _) u. o in (\J t- t- I Ul r-l o 3 < 3 u_ z X t- r- r~ m a ^ •• •> •t rH ^- l/> £ O o in U. u. 1 o •> C} C) u. £ eg a ^ z »r» UJ -1 (»^ • _J Ul Csl i.^ ^ o rg < s: m 3 Ul " .-1 CQ r-i nO z « >- >- UJ — » + 1 + ^ -~ * i^ u. U- o 1- 1- UJ N « UJ <^ _l 1— o _J » < < •— «, •- * • r-i CM ii: ^« z t— ,^ li. « PsJ ^ CO — IM Ul — UJ s: m CO l-l — •> UJ •-H - Qi < o to X s: II u u - CO - CD > > ^ z » UJ 1- — CM h- « • r- a: < < < lo • < 1- I/) + UJ 1 o — < < OD -I '-I _l _l • cO 1 1— • r- vO X < X a. a. < » Q 1 a a > >- — f) •-H LL li- (^ -J < < UJ • O O Di ^ E < Figure 28 continued. '. . V I 1 ' — — — H- I/) z z ^ Q. — — I 3 1— r-t s: tM (NJ m u :>^ ^ 3 . z v: z ^ z X a X — X « D Z < z < IJ •• u en u 1— 3- r-t Q. < < 1- f— ^ t— + f— t- t— z •— f\J -^ * <5 1 1 3 < 3 3 ^ 1/5 1- 1 Irt — u1 z 1 •> D li_ u. z >3- Oi-tvJ- O O .-1 Ov CO -4- \f\ sO P^ -J 3 3 3 ir» -0 CD •-< f-H I/) I/) lO r-t l-t «-t CM rsi u u u u u u u PLATE XXrX Figure 28 concluded. Decision table input for the modified processor. Figure 29 is a comparison of the four different pump simulations. 90 0705 _l_l_4r -0-1-* -1-01* -0-01* 01-00* • 10100* 11000* Fig. 28 (concluded) Time for Length of Length of Total 1000 Passes Mainline Subroutines Length (Minutes) Program Program 1 1.901 14134 240 14374 Program 2 1.901 13590 240 13830 Program 3 2.762 13872 240 14112 Program U- 5,222 13514 3066 I658O Fig. 29 , 91 APPENDIX 1 Suliroutines 1) Random Niaaber Generator Figure Al Flowchart Program Al SPS Source Program 2) Read Table and Decision Subroutine Figure A2(a) Head Table Figure A2Cb) Set Up Matrices Figure A3 (a) Determine Branching Variable Figure A3(b) Mask Data Vector Program A2 Read Table and Decision Subroutine 3) Set Up Data Vector Subroutines Program A3... Greater Than or Equal, Less Than or Equal Program A^J- Greater Than, Less Than Program A5 Equal, Unequal Program a6 Yes, No Program A? No Change Program A8 Read Data 92 /Branch &N / Transmit = <^ Argument ? Ho n=n+l xyzOOOOOOl n = 1 Rn=Hn-l'7^^ (Ko'i 10^°> Load Bj^ into FAC (Branch \ Back J Fig. Al — — — 1 —t1 4 1• — — — t t 93 UJ z • > < 3 a o a: UJ z s. o Q Z o < C) ! _l z u q; Q^ o UJ < U UJ a. I UJ _1 — I J t- CQ a. h- h- UJ < -J s . »_« 10 C) z D t- Q Q. o z ^ -<2 o D Z" z C) -1 q: < _j , llj Q. < 1- 3 UJ UJ z _J s t- E z i-a: 1- h~ UJ D C) D « UJ U C) < z C) o: s: Q CD h— 1- > < U- z LLl z C) z >— X 3 C) QC £ 1- 3 < d; UJ • C) £ < 1- C) 3 u_ I/O UJ ,—t Q^ ) z u a X I/) 1 o >-4 z o CO < >- < kj UJ o; z o < t— ^ U- Ij Q^ CO 1 ^ < ^ UJ o Q < Z < o^ UJ , I o UJ C) -. CO I C) < * 3 1 1— 1 o t- S z K- Pvi CO 1 1— 1 m * LU z z o < a: q: z — UJ z * z UJ UJ UJ u -J o •— -J u < UJ I X * Si 5: z CO D U- UJ < UJ sou u * lO 3 3 — < O o: Q s: z z z z UJ O o u_ _J Z C) < q: UJ < < < C) Q^ or UJ l/J < D w c> c> u. I I q: q: t-A a < < Q < u lO _) z — t- U lO CO < • • " * • • * * » •> • •1 » • z < rH r~t t— o o on fM o O o o o o o o t~t o ^ o o • » » «. * «. » * » » » •. •> » •. •• «• •• C) q: a. 1 ^ UJ * £ lo ce; * Q m m z (> >o n * Z oo CD O h- c> r^ o r- CO <«» * q: -t CM ' r^ o UJ UJ 1 1 o o or: U q: z s: s: s ^ ^ s. -^ S o in c) _J o z> 3 Z) 13 3 ro in u m vO in q: m u- 1— • Q • 1 1- r- r^ CO ; O CO < z z z Z o Z CO 00 < c> 1 1 o o z .^ * 10 o i/i q: a; q: ct a- ct UJ l_ s. u z ^ en z CO a _j q: u o 3 z z < () < h- Z a Ql u z ID CO q; u ^ CM -* ^ CO O CM o. m o C*l f\J d- o C\J 3 (^ f^ o >0 CO O -1 o o 0> 00 o CO CVJ o o K1 o 0^ c^ c^ t^ CO o 4- o irt « -* •o ^ sO •c T \ V Read / ^-^^ ' \ / 1 Set up Masking & Table Matrices >^ y ' y f Branch ^ V^ Back y " ; ! : - ,^ Fig. A2(a) "" -.' ' .-" » ;.: .1 J 95 Put a in Put a 1 in Masking and Masking Table Element Element Put a 1 in Table Element Increment Last \^ y Element Element Pig, A2(b) 96 ^ ': "' \ > .J \,.-.i' \ V Initiate / \ Data / \ Vector/ Haslc Data Vector and , Increment Counter ^ 1 >^ataS. y ^ ""N^able ^-""'^ N^X • .'^y one N^ . ^ NV 7 ./ • • Increment Counter _] > Branching Variable Equals Counter , f ( Branch V Back y) f is. A3{a) i :>, . >. .; 97 .^/ Put a 1 in Put a in New Element Nevj Element New Vector New Vector J > < I Increment Last Element Element^ Pig. A3(b) 1 — 1 1 I 1 — t — r —« 98 LU U. 1- UJ z _J z C) o I •— m C) z • DC < o Q z U •" Z U- CO I C) ^ UJ — 1 « q: \- o lO C) UJ • a r~* z a: Q. I i.; UJ C) tn •- 1- -I CO t- c> • «^ u. o CQ z Q. X o tn z lO o D C> X a: Z UJ o •- Z zoo: < (> I IK UJ 3 <) u *-H '" 3 UJ UJ •" t- z >- q: 1 UJ X 1- u C) C) UJ Q c> I (— < UJ t3 o Z z 1 C5 1— z u _1 UJ z * to a: CO X C) vJ CO ID x< * •-t M _I UJ < (— < t- * I c> X O £D t> I C5 (- (O z 1 * (^ CQ Q UJ m z z * fH (^ K Q > (— o UJ UJ ci o o o 1 * 1 o> Q O UJ Q Q > > Q Q Q Q •5 tn rg * * o 1 1 a 1 1 q: rg * ^ C) UJ tu C) C) o " C) * - • •• • ' - - ' *• 1 m ^ g3 lO -o o 1 _) c^ 00 z _J z + + + 1 1 + o aj m e^ CN UJ Q Q. CO UJ Q z z •o -o ^ -o ^o 13 13 i^ rg rg rg o r— ^ Q »— (^ 0< > I m S Q tn > I Q UJ tn UJ O + + + + + < < a. ^ ^ ^ >- o 1 a z Z Z (> O X UJ Q 1 C) Z 1 UJ a Q > X 1 > 13 rg z tn _I _l < X X X -< -I -< <.•> >- •- * q: u UJ u if\ IT* X I q: * X U UJ * I a. UJ X * UJ C} m m CD u. U- z u u u o a O to Q q: tu s: Z oc or: Ct o: (K tt: U Oli. u. z: z z: Q u o u z U- C) z z C) UJ z z C) z z U- u. u. U- u_ U- z u. z U- U- Q 1- lO V-J to < t- o (- o m 1- CD o CD CD m £3 u m to CO ID Q to CO f- »- >- t- 1- t- < ^- oc tO m v: -J 1 _j CD ,1 m CO a. o ' »- o Q z I i Q z X Z C) o o: UJ X UJ u X a: I r\j r-i rg -1^ (M Jf -o CO o ^ -o O' -a- >0 CO o i 1 i 0^ 111 4- O o ^ o ^ o o CO o O o Ch o rg rg o * in o o in in in ^ o o O i 4- -3- o> o o o o o o (? o> o * in o c^ o o o o o o <» in in 4> ^ -t p^ rt in if> in •e o 1*1 ir> c * .o rg rg c^ rg (M iC C -C >1> >c o o rsi -a- •^ to o ,-, C\J en ^ o CO -o -o CO o to 00 o t\i ^ -0 z q: •-< < m _i < — • 1— t— Ul z -I UJ 3 • Z) X T CK K- lO C) >- < a uUJ 3 - I/) Q a: CL < 1- h- () UJ UJ < (— q: ifl 3: lO ^ 1^ (^ oooooooo or-f^r- OOOOO 0<\JfMO MO(\JO (MOOOOOOOOO 000000!N000 + + UJ UJ UJ + in liN + ^ J- 1^ rtrt^ r^ ^ r-> + + ^ + o o -i o a: CK _i O O UJ c <<3X3 I I 0>-03 I zoos 0<- COOtNJ^OCOOrM-^xOaOOr\J^vOOOOC\i^>OOOOfNJ^vOa30rsj^^oOO(NJJ'%rtCOO i^ooeoa)ooooooo(>oooooortrH,-irt^t\jr\j<\jfvj(Mmrrim(nmj-^j-^ 00000 0000 '-OOO f-tC\J(\Jf\JfSi(NIrH.-4.-(0 •-Hoooooor-oo O O O r-* O rHOOO 0'-<00 0CDCDlict(3)CDd>d>0 Cl)t-«i-i^OOOOOO o o in o o 0000 0000 000000300 OOOOOOOOrgO r-lrt O ^ O f-HOOO -D.-HOO 0000000000 rt -H o -n o r+OOO Or+100 0000000000 Of+Hr+ ^intno m(tiifio ir»t\jc\jc\jrgf\j^i-t.-ioN -*»l^»f>'Crtjrtj(\j4-v0rtj * ^ ^ * ^ -t ^ -t ,-i,+(+i,4)^^*^(^^ *>fi**rutUm(U*r»j O t^J 100 z z ^ •- u IbJ C) UJ t- • C) -J (/) ^ K CO • UJ i/) UJ C> 1- QC i^ X W M a: t- C) < Ui o »- z u. -J z Z c> EO •-• o < ll. QZC H- OC c> r c> U HI x§ H UJ u< u q: uj UJ X i^ X O • > C) t- • U 3 2 1- 3 to < -H > < h- UJ llJ CO (- t- UJ 1— 1— _J 3 lO Q < 0. < ID X C) UJ o ID U < U •- C5 »-" f— Z O h- UJ 1- Q < Z UJ > UJ z u_ £K - X C) C) t/) --H C) ca u_ 1- o •> •> ^ z * • ^ * ' * * o o o o o o i~H •-' rH P- ^ ^ ^ ^ ^ ^ o r-t r- t^ r- r- f^ r- r- rvj* ^ o o OOfNJ* OOOOOO'-iC' o o o o c o c o o o *o o o o o o CM *o in + + DO OS O f-i tr\ rsj ^ 0^ 0^ OO CO -t- ^ oc 1-H ^ c^ o- o o u t— 0^ X < 1 c^ rH .H UJ u 1 3: ^ 1 r\jr\jt\jojt\JOO'-H * in in •o (NJ in CM rH + h- f\j --H 01 en O O + .-t ^ -J C> 00 sO ^0 vO xO -H 1 O ^O 1 <-! 1 f- + + CT\ ^ + fT) 1— + CO Ch r-t q: a: m +++++^UU r-* U U > U <<1 u u {*! u <-• cn O O > CM > I— 1 <> < Q + + 1 UJ UJ UJ rH wrgzcn>x<< z 1 Z UJ 1 UJ + 1 UJ Z + (jj UJ s:Qi in ^ * * * ^tDcOh-CDI-UU.U. * Q Q O ^ * ^ Q o >- >- * ^ a: — * d Q u o o a Ql z z 5: s: s: a: Q^ q: q: u. c>Quij-i:cioz2:s:5:5:u.ii_u_ CQ U- U- UJ C) z c> z z o u. u_ s u_ t/)CO z z Q h-QKlOt-OlOO>i/)U)tOI-t-l- CO t— t/) U CD CD O 03 CD o I/) to CD Q lO t- U7 lO OD t- ^ h- Q£ O U > < UJ z UJ Z O >- Q rsi^ o CO c^ in r- o C^(^J^sOooo(^JJ-^oooo^^J^^OCO o CM oso o ^o .-^ rs)rsirsi(Njrsjoot-( o o in o GO o o O O (M CM 3 O O --H fH .-H rH oo o o o o ^ Ct) C]) ^ C]> ^ C]i t-H O -! o o o o O O o o o o CO o o 00 in o^o r^ o o o ooooooo•^*oc^oc^^No c^ o o o o o o o o o c^ i-tO o o --1 o o oooooooo O O O (> o o o o o o O *H O O l-H o rH CD O O ^ o oooooooo O rH O l*\ O O l*^ CD rH .-1 O O o O a» CJ> 4* *o^ O r- f-i f\j (M <-' -* rr\ o 101 Ot-H UJ 2 1 CC — z a: — c> h- Q£ U C> UJ 1- > U UJ UJ > -1 < <03 < O UJ I UJI I— 1- Q. 3 • i^ c^ I/) 1- O < UJ UI 2: i/i ii: r- r- r- f^ o o o o o 1^ o h-rHrHr-.-ir^rgr-P^r^rH (VJ ^ f^ ^ ^ ^ ^ rt fNJ f^ rH .-H 1 OOOOOO'-HOOOOO ooo OO"-*© oooooo o o or~ of^ or^ o o r-l .-( W + 4- O .* in f-H ^ t-H rH ^ ^ ^ + + ^ rH + 1 ^ ^ -H rH ^ i^ ^ 1—< fH .— r~t ^ -^ rH++ + CKQ:r-.^«0 1 O O ^ ^ «JD + + q; + + H-i-i-S2:co++m oo cxj rHi- ^ cot— +sO++t- m I- 2 (— (— sO «o -XU)t/)LJUO>>C\J>r^ OUOX(<1 O Ot/)mi— + ujiuiijujuJLUfHZ2 OOXI— m 13 to U f) W + + 1 + z+ -H.-.ajLjj r UJ rHLU|UJ V il i > 1- O X ! CO U i liJ Z ^ ^ UJ UJ UJ il Q Z U 1- a: aDOt\l^sOOOOlM-4-sOOOOOO^.OOOOrsI^%0000(NJ^sOCOO(NJJ-vD c>jmncomcn *aitfvr-«ir\rsjr-t.-Hi-i.-Hrsjooo -Joo r-4^.-(0 •-* op^f*-or*o<^ooornoooooo r«JrHt-l.-tCMO kTl CNJ Pg r-H vO •* cnocno a)3 in rsj rg tNj ^ \4) .-H fU r+l +< + * (U -+H ^OcoOf^J-3^ocoO(^J^^O(DO(^J<^vOco^o OOOOtMOOrsj^vOOOOOO -* j c^or^J^^^lf^*£looc^o^-^^M^^^^o^-coc^ CO O fM ^O OO O c>orNjm-* fMcimncncnmcnmrn^-^^Nt^^fj-j--* 1 ^^ ^ ^^^^ ; ^^^^^^^^^^^^^^^^^_^^^^^^^^^^^^^^^^^^ , Z 102 c> • • •-• UJ t-t t— u t- < CO D u_ q: 4 C) C> UJ t- • QC C) t- ^ U) < ^- UJ UJ > • ui X z m C) u K (J O o < H Z 1 UJ X UJ •-H • q; -J Lu 8 X fO < z a ae U UJ C) D O a z > t- O li-l U_ 3 < "0 LU X M Qi i-H (— (T, 13 UJ CC UJ q: > > $ UJ C) q: < cK I/) i- I 1- H- • 1- lO UJ V 1-0 UJ Ul UJ q: UJ »- q; u Q. CC < X C5 C5 z If 13 a 1- z f- < t- 2 £ u > l/> h- Ul C) U. U- UJ Q UJ UJ X -* u - > < q: t/) h- «. «. • r- f^ r^ h- r- r^ r- t^ r»- (-H •-I -* r- 03 rH rH rH ^- r^ rH CO rH r~ --HrHO h-rHrnr-r-r- co o o o o o o o o oooooooa o o oof-^r^ooooooc rH o r- + a: -I + CO O^ rH o ^o rn 5: o ^ ^ ^ ^ rH vO in fH r- in '-t ^0 + rH + ^- o+ rMi-- + rHmm vo vO O j rH rH .-1 rH CH r-H h- )- cn O + + + ^ ^0 + + t- 1 1 t- + 1 + rH + 1 (<1 O 1 + K- -< --H UJ 1— CO \ilt-~ O O o ; q: Qi 2 ZZ Z q: s s: ssizsizsisssss; S £ i u. u. u_ UJ U- s z z c>u_u-U-ss:u.s: c> u. u_ U.U.U-U.U-U.U.U.U.U-U- U_ U. U. ll_ j l/)l~ I/) UCDI-U)CCl .-H rg O Q UJ u. C) rsj^>Ocoorg-*sOCOO fM ^«OCOOfM^.OcO fM o ^t vOaOOfM^vOOOO(M-;r^O OO O OJ * 1 •-< '-I f-H iH 1-H CM CM (MfMfMCOrOfnmm O O O O ^ ^ -t -^>t"ininininm*OsOvOO o r- p- h- 1 m m n m (*! m m ri en en rO O fM o -H o r- r- GO m o O r- Q* CO o c^ CO O^ O CO ON -* o rH in in h- * •-HoocNjtNjoorgcococo^ininina < *OcootM-:fOooof<^mr-ONrsjincorH p^h-cocoa3aoooa»ONON(>c>ooor-i c*^ m m cn rn cn ri^ ( oo.-(0 runjorgooo ^fmmtno oooooooooooooOOOcOOOoOOOOtOQO OO ooo03 ooooooooooooooooOOOOOOOOOOOO 3000 tN4 4"*omor-ooi~i--i'-H--Hino moo oococooorHor-incncnNj-^j-ino 0Na»^OCT»CT»a^c>o "-itNfMCNjrgcMo f-(.-lCrH.-),-l,-*,-(f\jrS(fV/OJ(\>f\fMO 1 IQi^ • z C) t- UJ >- UJ t- C) > C) > c> C) o •—' z « z o • t- h- 1— C) , , j •-• li- -- u. c> c) ce UJ Q if) •— 1 ly) k-« CK Z UJ z _J o C5 Ul Nl C5 C) d. a NJ Li. X i^ • • • -^ < < 1^ CO 1/5 • I/) ijj to ly) 1— < iK --i UJ C5 —< UJ LU •— LLl UJ Z CD * > Z (O >- . 1- Ul U o O lO < < Z X * a: o c> cc c) UJ * <) CK a: QC UJ u < -t- 4- O vO O O Odd O 00 o^ ^ o CO o QrH UJ l/) UJ Ul J UJ o UJ C) O -I if) z > X CVJ st ^0 OOOCM,a-^OCOOfM-:J-vOQOOrg 't O CO O fM ^ vO CO O rg <} vo 00 ,Hr-tF-Hi-HrH ch o ooo cnoc^oooo(no Q O O O O O t-H rH o ^ o c^ o ooqocoqcoooocoooo O O 1> o o o o :> CJ> >-i o o o 0C\J0'*00 0OrsJ0-*O i fvj O O O o o O O rH O (J. o OrH,-(00000--*--IOO rH o c O ,H O O l-H O o o o o CDOr+<00-iO(3)Or4<00 o o ^ o o .-1 o o o o o O lA sO oooocoinoo^o-*oo vO ( f\J ^^^^o^o^^4)c^J<^^-*04c^ 105 • V111 c> liJ > 1- > C) C) - m k- Z h- liJ i;) c) • f~* < •- >- () z a: UJ o 13 li- to a; lij Z -J UJ — C) <) LU O N O C) Z a. '" I u • < < w O) • HI Irt o m c> l- < * — C) liJ « CJ o — O UJ UJ Z OQ * Z I/) z t- UJ • o o 1- 13 h- < < s I * CK C5 () a C) o Qi c> a: q: UJ u * < >- - < t- z < Z llJ UJ 0^ z z z u < li- C) c> u. o li. U- U- LU UJ LU en cf O sO o o sO o o CM ,_! O CO 0^ 4- 0^ 00 o ^ c^ CO + CO c^ o o in o o ra o uJ in O O t\i o if) en en lO .-t I/) en rH _i in en 1— 1—4 O QO r^ -< ^ UU C) CO < -1 UJ 1 UJ UJ r-i CO + + C) CO + 1 + c) CO 1 q: .H * rH -1 * r-( lO z -t *- ^ * -1 z > « vt >- « V * • X I •H a j Ul V) -J Qf <£ UJ t) UJ o in _l I/) z >- I rj CO INJ >0 CO rg CO a- o ooomQtnoo o O l<^ o 3 o o O O O ^ rH o ^ 3 o- o O O 03 CO O CO o o o 00 CO o o o 0< o o C7> O Ct 0) r-l O <^ o O CNJ o •* o o o o CM o 4- o d) CM o o o O O O O rf^ o o- o O .-< .-1 o o o o o « o o O --H rH o o ^ o o o o o o o J) O 4< O O .-I o o 3 -n o o O O -( o o rt o o o o o iTi sO CO ITI sO O O O O ^ o »l)r\j^i^s0^a^vO cv' ^ h- •O -3 C> CM ^a* 00 r\j nJ- CO CM O O ^o o ^ o -J- -o -a- -ct- NO CO O CM o O CM ~f .O CO O .-H o o O C .H (Nl tn 106 - z C) o H- 1- C> C) • o • o I/) • » C) UJ C) • >— C) z t> >- cr UJ o ce a: UJ Z _l LU C) LU C) N C5 C> M K- NJ 1— X ^ < < u * 1/5 C> to c> < * ~ O ~ O UJ UJ z CQ * (- 1- UJ * O 1- o t- < < s X * a: C) q: C) a: q: UJ KJ < z < Z UJ UJ CL Z Z U < in ii_ u_ u. U. UJ UJ UJ tr < -. >-, — - o \o o m * o ON £ r-< ^ o < rH rf o o r-- o h- c^ o c a o f-H r-i a> ^ o * * * K a o O pH ^ o * 00 OO Q Q CO -H * O -^ O _J _r .-H o * 1 -^ 1 ^ c> O O f-i * O -1 o * O -HO X c X ^ ^ o ^ ^ 3^ •'••••v«L«i»«.»«. ^ O ^ O O xO o o fM rH o CO c^ -* o> CO CT' •4' ON CO + GO O o OiooOrgot O O o c • o; _j lij ijj -J UJ s: s UJ £: a s: 2 3: ct z ;, OU.U.ZZU.SZ li-U. s z u. s Z U. Q C) U_ Q S U_ U. CO C) u tu Q»-l/)UCDH-UCDCDKL0Utt)»-U£I3h-(- CD Q 1- 1- I/) t- »- CD Q O Q Q O O^ _J ' Z C3 UJ <> 1 UJ 3 z >- ^ I (M^^OflOOfM^vOCOOrvj e\j 1 \ a^0000000i4>0 o o o o o o o o O fH .-H _> r-l O c^ooocooooc^oooaoooc^oo ON O d) 3) r-l O (>ooojoa)t\jooo OCNJOC»(MOOO O o o o **< o <>30r-l,-IO,-IOOO O ^ ^ O r-l .-.O o ^ O O O O o 1 0Or4 O^I^«oooomo cnjiAno O vO O C*l (M CO O o o o o o in en o O in o OOOCOa^^OOcOCO«-^aoaO OiTiOcO'-* O^OCO o en o o CO CO o o o o 0>tOOOO-*'-i(\J-3-0 O -• O -t tM •-« O rg o fM o o -* >* o o o o 00--Hf-H0.-lO0OOr-( rH O >-i O O O O O o o O .-H o 00>-Ht-lf-).-IOt-<>-(0>-t o o o o o .-H f-H rH O rH rH O o r-H O --< O O o o o o vCfNJ^f^O-S'P^O'fiCVJ ^r-'0<}-r- <> i£\ Q\ vO in (M o *o fM omrt*rt^4--rom rH 4- .-1 rH OOf\I>t^OCOO^\J^^OCO OCM-^sOOOOtNJ^ C\J (\j -d- *o 00 o r\j en o o OO^-^rgt^l^O^^00C^O (Njri'd-msO oooo t-H <-i fsi en ^ vO r- r*- ON O OOOOOOOOOO'H rsi rsi nj (\j rj f\j tNj fM rg O O coooooooooocoooocoo o c o o o c C O fi o i 107 • • o • -< K UJ Q llJ . Z -1 N C) C5 * i>; I 1 < < u t- < j • UJ lU z CD * »- h- tu * < < z I a a: UJ u * UJ UJ q: z z z u < UJ UJ UJ q: ca * o s O0^ < o o •-' o * * q: a. O -H O rt o * 00 Q CO O 00 * O _l O _J r-( o -HO -H C) O rt *.°.J'F°. ° rHI^rtO-l •H -a- rvj OvOOO + OOO .-H OCOO^^C>aO to QOO-*ONCO Q o ooorgo-H i/)rnoot\jo^ _jtr\(^ t OrHrt + -(+ UJ|rt-( + -H+ ^rtrt*,-<« OOOOO 1 c> ' >#rt^#r-,* X-tvl * in z 1 10 O o '^ CC UJZZtE UJZZZZ q: 2- OU-ZZU-U-Q OU-ZZU-U-QZU-U. CD C) U UJ 1 Q4/)ucQ^-^-^-cDQl/^UCD»-^-t-cot-^— COOOQ 1 ! to O 1 ol ul -1 C> UJ UJ O J z >- > I rg-t-ocoo(Nj-*vOcoot\J^sOflOOOg 1 OOOOO^O OOOOO'-H.-HO^ o OOOOOCT^OO - OOrsJOOOO OOC\JOOOOOr4<0OOOCOO>od) f\j^r~%o»ou^o t\J-*^-^o^omt^J^o^o (M m ^ Jt ^ ru ^ -t mrH^rttU^rtrtrt -* OOCM-*Oa30rMOO(M-*vOCOOrvJ'3-vO CO o o o oO'-tf\j(n^vOf^a3oo(>OrHc\j^tr>NOr^ CO CO o o 00000000000<-< • < o• u. UJ • .HO OS O 1- c> -1 z 1- o« z X •-t i<; >- u o < * ^i * * liJ D * < * ZO * U I * UJ * (^ * XX. Q « Q Z u < < < UJ C) UJ q: -J Q CO1 q; 03 .... • o < * * * * Si o 21 < O O .-H < o a: i~- a t~ fH ,-H c^ »-• a: ^ On o . . . * o *•,«.•, o C) ct i Q. a O O ifl * 00 CO CO * o o ^ Ift i-H -H -H r-H * O O * O *-H * O r-t r-H O -H ^ o * O '-t vO r-H O O O CM f-H < 00 ON O ^ O Q ) o O (— O O O rs) O -1 U U o O in CO < rH + rt O ^ C)< < u 3 "1 CO CO Cl 1 X u. u. in -^ Z r-\ -H ^ ^ q: O Q o Q Q % ac Lu z s z z Q^ u 5: s: ^ C) li- li- S Z ru. u. CQ U uO UJ C> Z U- Li. CO UJ )- Q « U CD t/) t- 1- CO O QQ O CK J- t- dl Q ^ < Q f- _J u < U C5 < o z X li- QC rg o o o o .-H O rH o o o •-< o 00 fH o o o ct) a> o O (t r-l O O O fvj O o o + o in o + o O O -1 rt o o o o o o o o o a o * o o o o o o o o *0 O O CO o O iT^ rn o ir\ .-H o o <-< in CO o o o 00 o> -a- o- ^ QO CO o o o o o O GO 00 3 O o o o o o o -* ^ o o o o o o o pj >r CO O f\J -* iTi o o O O o o og -J- ^o o O O f-H fSI C<^ -^ ot^ CD O' CO o o O rH rg CO o ooooooooo o ^ o o o o o o o o o c o o c c o o -- o o o c o o o o •— I O f-H 109 1 ' ' '''-' *. - ' T' -:t/ '''^'' : \ APPENDIX 2 Pump and Tanlc Simulation Results A= Pump Capacity B= Tank Valve Capacity ' " ' ' ' ^ . j ' .>;;<^ :. ] 110 aoooooooooooooooooooooooooooooooo -lOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO uJlA^cnr^(^J•-t-looo^oc^<^^c^oo^c^oc^ooc^c^oc^oc^ooc^c^ IrHt-HO'HO'Hf-tO^O Oi lO'HO'-HOO'-t'-l o ^ r-lOO'-t'-H r^ Z 3 ^ -H O r-. . lr-40--<0.-lf-^0^00--lrH 3^0 • < Ill oooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooo ^Ol^f^^^.x^l^^^^Of^a)coc^o^-^r^ooc^o.-^^'^Jc^J(^JrH1--^f^J^-l^^Jrn^n(^icn o^ooo^oooc^c^^c^c^c^ooooc^o^c^ooooc^oc^c^ooc^oo^c^ i-tOOrHOOOrHrHO'-* rHrHOOOO'-<'-*rHOOOO'-<0 r-(^03'-H.-4rHr-t -HOOrHOOOrH^OrHr-trHOOOOrHrH^OOOO'-HO^.-IOOrH^^.-t 112 oooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooo vO'OOinLnst-j"ii^vOf^Or--f^^r^r--sO'^inirt-4--*tniri'4"iriir(Oir»^^or^^^o ooooooc^c^c^oc^ooo^oooooooc^oo<^oc^oc^OCT»ooc^ OOOOOOrHrH^O'-^OO'-HOOOOOOOr-tOOr-lO'-HO'-HO.-tOO' 000000^'-H'-iO<-fOO>-IQOOOOOO'-«0 0--tO'-<0<-HOi-<00'-i 113 aoooooooooooooooooooooooooooooooo -JOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO llJl^^-d•mmcMt^JrHoc^oc^oc^33^0(^'-^o<^(^-^^oc^oc^^^^o (SOOOOOOOOr-iOr-IOrHOOOOr-tOO'HrHOOO^Or-toOOO r^ZO-l-lO-lO'H ^rHO.H^rHDOOOrHO^rH.-lOO»-I^OrHOOOrH • < ixk oooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooo oc^oc^'-^-^ooc^oooc^c^^•~^.-^r-loooc^ooa^oc^o^'Hr-^oo(^o 0>-iOr-iOOOOrHO<-(0'-H^OOOOOOO'HOOr-«OfHr-iOOOO^O 0rH0--HOO^O'-H0<-t^'-*'-iOOO0<-IO3rH0O'-t--l^.-H00'-«0f-i0 115 oooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooo o(^'-l'^•-^^~^oooo<^^c^'-^oo<^<^oc^c^l--loo(^oooo3ac^^-^o 0>-tOOOOOOOO<-*OrHOOO<- O^OOOO'-HOOO'-fO'-IOr-IO.-lr-t.-l.-l.-HOi-HO'-HOOOOOOrHO'-l 116 aoooooooooooooooooooooooooooooooo _J o o o ooooooooooooooooooooooooooooo so^c^c^oocoa)l^^-^~r-col^r~coooc»^-^-lOool-l-^^r-^or-^-^-.o^-o-o lu<^o^c^tJ^c^c^t^o^t^(^c^c^c^o^a-(^!^o^c^<^o^c^c^t^c^c^(^c^<^(^o^o^ lu^nJmm(^i'-^'-lOoc^oo(^rf'^- I o o o o o o O-HOO-HOOOOrHOOOOOOrHOOOOOOO .-I : o ^ ^ ^ OrtO.-H^O«~HOOOr-(^^00000^0^00000 117 oooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooo oc^-^oc^•-^oc^l-loc^oooc^oooc^ooo<^'-|'-^'-^'-*ooc^oooc^ OrHOOi-iOOr-<00'-<000'-HOOO'-<000'H000OOO'-*O0O'-( O rH O rH rH O ^ . lOO'-Hr-HOO^.-lOO^OOOO.-tOr-lt-IOO'-i 118 oooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooo ooo£^--^.-^r^o^oc^oc^oc^oooc^'--lr-t.-ll-4ooc^oc^-^.~lOOoc^ OOOf-<000000>-<0»-tO'-<000«-HOOO OOOi-HOrHOOOrHO r-t -IOO'-'000«-HOO'-t.-(,-..-Hr-Hr-(OO^OOOOi-lOf-H--t'- z h- Z < < _l O ooooooooooooooooooooooooooooooo liJ> UJ -1 a • z 0- tij c^ t— _i UJ in > • UJ z O CJ 1 o rt Q. • . z o OOOOOOOrHOOOOOOO'-HOOO'-lOO'HOOOOOOOO a CD z o c> in i^ • (N 2 O .-lO'-i'-iO'-i'-H'-lOOO'-HOOOi-ii-Hf-tO'-l'-iOt-lOt-iOOOOOO • < < i 1 120 oooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooo 0<^00C^'-^'-^00C^00C^'-^300C^0000C^f^J(M-^~^0 0C^^000 O'HO0'-«0000«-<0O'-HOOOO'-<00 OOrHOOOOOO' o o o o .-t l-H ^ O ' , o ^ -H o - lf-<—100'-H^OOO<-iOO'-HC--hO»-IO'-<00 121 oooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooo 000'-i'-'00^'-f--''- O0'-t000i-«0000000«-*0000'-to0' iOO'-tOOO>~*OOOi 0O'-t'-HO<-l.--iOO0' lOOOi-tOf-Hr-IO^'-HO'-l'-lr-l.-HOO.-ti-HOi 122 OlOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO uoooooooooooooooooooooooooooooooo LJJlr^•3-Jf^cnrg(M^^ooc^^g(Mc^J(^J^^JrH.-^ooc^^ooo^•-^ooo<^M ,j:00000000000'-IOOOOOOOOO'-hOOO'-<0000'-*0 (flZ0-*O-*0•-^O^O•-lO--^00OOO^-^Or^O^-l'~^-^O^^ -I .-1 O O -1 O 123 oooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooo •-^oooo^oJt^J»-Hoooooc^<- 00OO'-HOO000000'~«0Oi-t0O00'-<0O00O0'-»OOO'HO -H.-HOOf-HOO'-l'-HOOOOf-l'-'.-lr-tOf-HO'-l'-'O'-tOO'-'Ot-H.-tO'-H^O 12* ooooooooooooooooooooooooooooooocoo oooooooooooooooooooooooooooooooooo o^c^cJ^(^c^o^o^l>c^c^c^(>c^o^(>c^c^c^c^c^<>c^c^c^c^c^c^c^o^c^c^<^c^c^ .-HOCT^'H.-iOOO^fVJ'-<000000>r\Jf\J.-HOOOOOOOPJ<- OO'-tOOOO'-HOOOOOOO'-lOOOOOOOOOrHOOO'-HOOOO ^^^,_(Ot-HO'-lOrH-- Q.OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO —lOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO UJ > u>'a' lr-lOOO«-'rHO'-H<-t--ti-1000000'-l'-lrHOOO>-IOOrH 126 oooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooo 1-^oc^(^J'--'OC^'^J'--•'--'OOC^o^f^J^--lOC^(^l»--'OC^m(^J{^J'--^<-lOC^r^ooc^(^I ^^cn* O0r-<000'HOOOOO>-«0000'-)000<-H000000'--<000<-<0 127 oooooooooooooooooooooocooooooooooo oooooooooooooooooooooooooooooooooo rvJ^^oc^t^l'-^'-^•-^oooc^(^]<^J(^J(^JC\^cM{\]f-Hr-l^oc^'-^ooooo^c^J^sI^-^ OOOO'-«oOO0OOOi-iOOOOOOO0OOO<-HOOOOO<-tOO0 O^O-'-i'-HO^OO.-HOO'-l^OOOOOOi-iOO'-H'-H.-l^OOOt-H.-HO.-i 128 0.00000000000000000000000000000000 _IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO ujif\iri(r\^^Nrc*^f\jr-Hooa' t O O O O -" o o <-! ' 1 --< ir-t.-HO'-t'-iOOO'-HOO. I O O O O O ^ .-I o 129 oooooooooooooooooooooooooooooooooo 0000000000000000000000000000000( (^J-^00\^sJC^J^^J.-^l-HOOO^c^J(^J{^J^sJ<^J1-l.-lOOC^P^c*^(<^r\J^OOO^*^^(^J<^|f-t 000<-IOOOOOOO«HOOOOOOOOO«-tOOOOOOOi I o o o o 0--i'-HnH,-iOO'HO'-iOi-i^OOOO«-<0—lO^OOO'-t^^O'-t'-lOO' 130 (OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO lOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO ^^^^J^g(^J-^.-^^rH O0^(^(^J'-HOOO(^rnc*^cncnf^Jr^J(^|(^J.--lOO<^(^l--'<-^'--^OO<^cf>(^l'--^•--^•-^<-^ O rH o o OOOO'-HOOOOOOOOOOO-^OOOOOOrHOOOOOO ,-H ^ O --H .-•-400'-iOOOO'-iOOO.-i'-<0'-''-<^00<-iO<-iO«-H^OOO 131 0,00000000000000000000000000000000 _IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO UJiniA iOOOOOO»HOOOOOOOOOOOOrHO in i^ • ^ Z O o . jO<-Hi-l'-HO'-l<-HOO»-H<-H0'H0r-IOOOtH.-lO<-IOOO'-'O • < 132 oooooooooooooooooooooooooooooooooo o o o o o ooooooooooooooooooooooooooooo rfj-*j(«imtomvtrnmmmm(vi!Niogr\i.-ir\jt\j(NC\i'^'-< m^<^mmr^J^o(^mmf\l^r^.-HOOOoc^lM<^J^rtOc^mc^«^<»lc^Jr^^^^o OOOOOOOrHOOOOOOOOOOrHOOOOOrtOOOOOOOOO OOOO'-H^^^'-'O.-l.-HOO^OOOi I ,-1 o ^ o - lt-Hr- oooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooo OC^t^J^-^-l"-^OOC^cnf\J(^Jf^J^OC^c^f^J'-*'H<-'OOC^cOC^J.-*r^.-l^-l•-l^l-^^ 0«--i0O0O0O«-»00O000<-H0OOOO00i-*OO00OOOO00 O'-HrH.-HOO'-HOi li-HOOrH'-Hf-tO'-H^OO'HO'-H'-H.-Hf-HOOOOOOO 13^ aoooooooooooooooooooooooooooooooo lOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO Z<^c^o^cococor^r^r-^-o^o<)^lf^Lr\lr^lrl^^ .SOOOOOOOOOOOOOOOOOOOOOOOOOOrHOOOOO '.-HOOOOOOOOOOO.-lOOi-HOOOOO'-lOO ^ ^ i-H o o o o 135 oooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooo ^Jrgf^J^-^oo^-Sc«^o^t^Jr^rHf-^o(^'dc<^r^m OOOOO'-HOOOOOOOO'-'OOOOOOOOOO'-fOOOOOOOO i-H0OTHi-HnHO'-HOr-H--IOO'-<'-H0'-HOOO<-<'-'0O'Hi-H.-HO0O^O0'-l 136 oooooooooooooooooooooooooooooooooo ooooooooooooooooooooooooocoooooooo <^cococ^c>c^c^(»coaJ(X)aoa)^-coa)cococx)^-^-^-p^coa^co^-^-^^r^^-»c^--^* (XJcocoascooDoooococococococococoaocococococoaocoaocococoaOaocococoGO r-^0C^lTlr^tM.-l^--l^-^000<^^cnf^Jr-^0000(^4C'^(^JMCMf^'-^0C^-*m OOrHOOOOOOOOOO'HOOOOOOOOr-iOOOOOOOOr-tOO Oi-lrHt-)0'-H.-IOOO.-lOO'HO'-H>-Hi-H^OOO'-<0>-<'- BIBLIOGHAPKY 1 Bowman, Edward H. and Robert B. Fetter, Analysis for Production Kanap;ement ; Elchard D. Irwin, Inc., I96I. 2 Brown, Robert C, Statistical Forecastln;^ For Inventory Control ; McGraw-Hill, 1959. 3 Freund, John E. , Mathematical Statistics , Englewood Cliffs, Hevf Jersey: Prentice-Hall, Inc., I963. il- Hull, T, E. and A. R. Dobell, "Random Number Generators". SIAM Review . Vol. 4, #3, July, I962, 5 International Business Kaohlnes, IBM 1620 Fortran II Prw^raimalng System , Reference Manual, File No. 1620-25: IBM, 196^. 6 Kirk, H. W, , "Use of Decision Tables in Computer Programming". Communications of the ACM , January, I965. 7 Leeson, Daniel N. and Donald L. Dlnitry, Basic Pro,°:rammlnK Concepts and the IBM l620 Computer . Holt, Hinehart & Wln- ston, 1962. 8 Martin, E. Uainright Jr. , Electronic Data Processing, An Intro - duction . Irwin, 1961. 9 Pollack, Soloman L. , "Conversion of Limited Entry Decision Tables to Computer Programs". Communications of the ACM November, I965. 10 Schmidt, D. T. and T. F, Kavanaugh, "Using Decision Structure Tables". Datamation . February, 1964. 11 Sprague, V. G. , "Letters to the Editor-on Storage Space of Decision Tables". Communications of the ACM , May, I966. 12 Starr, Martin K. and David W. Miller, Inventory Control ; Theory and Practice , Englewood Cliffs, New Jersey: Pren- tice-Hall, Inc., 1962. 13 Velnott, Cyril G., "Programming Decision Tables In Fortran, Cobol or Algo". Communications of the ACM . January, I966. 14 Wichlan, Daniel Jospeh, A Study of the Effect of Non-Mormal Distribution Upon Simple Lenear Regression , Kansas State University: Thesis, I966. A SYSTEMS SIMULATOR PROGRAMMING LANGUAGE FOR THE IBM 1620 COMPUTER by THOtLAS ALLEN WEBB III B. S., Kansas State University, 1965 AN ABSTRACT OF A MASTER'S THESIS Submitted in partial fulfillment of the requirements for the degree MSTER OF SCIENCE Department of Industrial Engineering KANSAS STATE UNIVERSITY Manhattan, Kansas 1966 The objective of this thesis was to develope a system for the IBM 1620 computer which would facilitate the simulation of systems. The Fortran II programming language was chosen as a basis for further study and implementation. Four methods for programming decision systems were studied and implemented in Fortran either as Fortran programs or as subroutines to Fortran. The four methods were each used to program a simulation and the results were compared. The four methods xrere; normal Fortran Programming (using a decision tree), an algorithm for minimum Fortran programming (improved decision tree), a decision tables programmed in Fortran, and decision tables used with Fortran ob- ject programs (using SPS subroutines). The results indicate that shorter and probably faster pro- grams can be -written using the minimum decision tree programmed in Fortran for small to medium decision systems. However, for large decision systems, shorter and possible faster programs may be vjritten if use is made of the SPS subroutines. oi r<$>ir+<00 r+< r+i +lr4^0C*34*r4<4
P^