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

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 o

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 ro ro i a" W H > d- ct i to H- p o- 1 4 03 4 o ] < ^ 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— * o Z u UJ + lU 1 * w ». > * • » — i— * * r- q: to 10 LU 1 3 LU n i^ a >> a > a 1- 1- < t- - h~ rj O o 3 3^ >- —1 h- ^ _J UJ _J z s Luuj s UJ s: II II ^— < < < a < UJ X X O 3 II LU a II < UJ _l UJ < O _I_I UJ _l UJ ass: e: s S I/) r i/) Q l_l u v: CL z O a a > Q. 1- > < > t— Q. << I— < f- ^ en on ct lu K 1— 1- 1— < z 2 z Z 3 r LU S — LU — LU 1- 3 C) O C) C> UJ 3 3 < 3 C5 u. U. UJ _J a UJ li. _j U 1 Lu U_ U. U. U. Li- u. a u- u- U- U. < i/) q: CL CL ^ a U " -' ^ < L3 1— *-. < ^ < ^ rvj 1^ <'^ o o .-H o r\j <7> CO -J- rH O (\J .-H C\J vO CO m U1 h- r- r\j rv ^.-1 ^<-l ^.-H a u u u u u PL.ITS XII

"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 n Q- • II • II II .-4 • II »-t II >> > a > > ^ « • It u o C) C) o C5 U5 ^ ujuj 5; UJ X ui UJ E o .-H O .-^ CNJ o (SI .-H --I (\j -> z _1 _J LU _l LU _1 UJ _J UJ tl II 5: C) E E C) 5: £ C) II Z s: t— ,-1 (VJ m UJ I <<(-

'"' 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 fi r<$>i

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- a ^ > > Q. I- < o o II 3 s; t- -J S UJ 2: 2 LjJ UJ s CL II II t- II < < < < X C) D UI I 3 _) UJ < _J _J UJ ass: X ^ X Ui^CLZUQ.Q.>l • a 1- > < > a < »- I- < < h- s: en K q; lu ct: < z Z Z XZ> SUJ S — UJ — UJ 3 C) C) UJ D 3<'3CJU.U.UJ_JI ) UJ U I U I U- U. U_ U- (i- U_ U. a li- u- CLh-CLU-' — t-

CO a/i -

?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» • u_ u. Z «UJ .— ^ O^-t OO'J OOC) z z u^ z u. UJ (^ UJ < O o UJ • II <-• II .-I i^> UJ • II • II II ^ • II II u C) C) c> C> <) to rH to D: • r* » 1^ to ZUJ O .1 0<-t(\l Of-^CM r-4rH(Mn rH I z z 1 o z <-J h- II Si II II II CsJ <> s i: <5 £ z C) s 2: I- ^ c*^ UJ X UJ in II CJ II O UJ (-< a. a: i-aQiQ:t-aQ:o::i-a.Q:Q::2 to u to • IZ 1- ^ t- to •^ -^ UJ £ < s:<< 2:<< 5:< z z — Q U.U. o 3 _i C> D -I _l C) 3 _J _i C) D _l _l C) u u o U_ 3 U, U_ < c> < C) U. Z HHH- z a < h- t— t- « •- *~> 1— ^ UJ < OQ.<

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 H c^ W O tH tH O CM o to >-5 "H CM O O tH xH O CM |i< W^ fH tH O i-H O r-i <-( O O^ O ^ O tH ON rH O O tH O CM i CO O O O »H o CM

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 £ 0 in CM h- 1- X ». • D • U- z X 1 t- r- r- <*^ ,— m » * * 1 ir> u_ u_ ^ ^ ^ — •-< c) u. CD tM 0, «-• •• «t wu. ^ m c> •• f\] < :£ • CD <^ tr\ « >0 z • > >- UJ — <> + UJ 1 r-) ^ d- i^cvj U. < >o 1- 1— UJ M UJ * -J - -H -J • ^* -^ Z rH » t- .-, U- — — M i-< (D fsj CO • UJ w * UJ C\J S • • ,. -3- < " m X s u — (/I . „ ^ > - > -H UJ ir> •« •> • I/) 1 .-H UJ « (— 1 t ) r^ £z < < < I/) < 00 + UJ vO >0 X < I 0. Q. < • 1—0.-1 a '^ -J -I • I/) -J -I Q" U- r-» _J CNJ < < UJ -OO •l-Q.S< UJ (M UJ ir» .. II 2 < U U X c*^a)*ooooz2:uj II (M UJ z > n LO > •^ . > ^ < h- 1- 1 1 (M II II II 3 D 1- _J »- < _) UJ _J UJ UJ < < < Q- < UJ UJ XXi^Q-l-OCL 11 UJ C) II K- UJ _J UJ z _) C) -I <) Q-S £ E s: s. X T 1/5 ouuzszu — a> h- a « >< > <-> < r-l t- < .-4 h- 5: cr Oi K q; t- 1- — C) t- (.1 UJ33I-0lC>U.U.UJ_I C) UJ U 1 U 1 \f) u. m C) tn U_ CO 'J t-H r\j UJ en i-t fM ^ .-1 tNJ J3 to < CQ to 1^ r- (M rsj ^ rH ^ Q .-H -d-

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) ^ >o f^ ^ 3 3 f-l to l/l

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 < Z Z < 1- < (— ^- <\J z o o II D s _J P- z _J UJ _J 3 X (.> II 11 II UJ _l UJ 11 11 ^- < < < Q. < UJ UJ I I O 11 1- C) 3 UJ c> < z 1— CL s! 2 s: 2 2 I I lO £3 U U — V Q. Z U CL CL > 1- 0. H- > < > c> < a •— 1 UJ s: cc q: (r UJ q: < z z - z S 3 - — 2 UJ 5: — Ul — Ul z •m C) C) C) a Ul 13 3 U < D C) u. u_ UJ _l c> UJ u. _J U. -I CO < 3 C> CD !-• *-• -) Q. U- u_ u_ X U. y) LO UI q: a. Q. < 1- Q. U — t— < o 1- ^ < — < Q O z « HH fsl u < r- fO o o i-H O (>0 o- 00 * ^ O CVJ Ul PI X 1-4 f-H i-H *"* (\i *o CO < CD lO r- I--

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 D_J_JC)D-J_JC>D_J_J C) u u u U- 3 u_ li- < c> < C) u. z '"' •" ^ Q. < u 1— l- k- " a " H- UJ

.-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 • » » •> *• ^0

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 u. UJ u_ u_ u. u_ u. u_ U_ u. Q cO U- E C) to o CO CO U U UJ O 1- u ID (— t- •" u s: o ^ '" f- CQ U_ lO CO CQ Q m Q Q Q o o o

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 * vO t~- CO (^ o rsj P^ J- in iC CD O o C o o ,— CM C<1 O o o O o o o o o o o f— pH 1— t-H r-i f-H —1 f-H CM CM (M CM (M CM CM O o o O O c c o c c c o c- C O O o c o O O O O O c o o 9^

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 (- li. O X c> u. < u. I UJ z> o ~ O 1- o lo oc oc < ^ ^ ^ • ^ . ^ ^ ^ ^ •> ^ » ^ ^ ^ ^ * ^ ^ ^ • ^ z '^ < r-H f^ T-t .-H .—1 ^H ( r- f^ f^ rH rH (-H rH rH ,-i c~- rH on o o o o o * * o o o o o o o o o o o o o o O o o o o o O o o o •• * • • •> •> c> a. a. -.

(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 o •O o lO gD r- r- h-

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 o o VT* o o -I r-l O o o O CD o tj J> •-< -' '-• ^ -< •-' a rH o o o |i -0 rg O O h- o * o o- ^ 03 ^ tr gf o 00 sO o tj * in o •o O o in 4 vO o o o to CO nO •Si \0 to 1 O O o> J- CO •* o> o 0^ J rH in o o r^ o 1— (\i rg o r~1 rt O o rg rg rg rg I-H o rg rg a- >* -3- -t in -O lO r- o o <> O O- c^ Pst o <\J o^ o o^ o o (NJ O o O o o o rg o rj rg o o rg rg o o O o o O o o o o o -< '-I -I lf\ o irt o -< •-I •-I o -1 f-H rH o -1 -> -t C3 -< ^ '-< rH

4> ^ -t p^ rt in if> in •e o 1*1 ir> c * .o rg rg c^ rg (M iC C -C >1> >c 0 J) rg eg cti en + -f * -' •-< * !U -r -r » * m r f+t + * rM r+t ru ftJ ttJ ttJ tU rtj r* tu tn tn cf^

o o rsi -a- •^ to o ,-, C\J en ^ o CO -o -o CO o to 00 o t\i ^ -0 -H rH f-1 —1 fH i-H f-H o o o o o o o o o o o o ,— rH rg rg fvj rg CM rg rg c\i rg tn tn tn tn en * c o o o c c o c o o c o o o o c o o o c o o o C O C c c c O o c c o o c o 99

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 j -I -J _l i^ V I X 13 D 3 X I irVJfMfVJfMCVJ »-ll-*rH 'H q: K q: u u

+ 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<-.-lX(M,H I X'-"X(N_J_IO>I<< zs ti: I • o * ^n^nz*l^l^-u^z*^n[n£D^-aJl-<^-<<*u<^-

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 inminm\ONO'00>0'0^0o*D>r)r^f^f^ O C C C" o ooooccooooooocooocooooooocoocooo 1

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 J- %0 ' in sD O mm m 'O \0 o %Oh-p-h-r-ooa3coQO CO c> o o^ c^ C7N o O O o o ^ iH i-H rH (M CM CM CM nj (M CM (M (M fSJ CM CM CM CM CM (M CM 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 O O CM o in CO r* o 0^ cn r^ CO >* h- h- m o c^ o CO OT o o-*^3- •4<^ln(^<(-^oc^c^c^oc^ O c^ c> o O 0^ Ov o O CM rH O O C\J o o o (> o o o o oooooo.-too o o O O .-1 o o o o o o o o o rHrH O ir> ^ f-H d) rH o O^'-H^.-HnHrMOO O fH ^ rH rt o o .-H o rtio^ «4) in m (M (MCMCvIfMfNJ *OOnO rg vO t\j -* ^O ov in a> CM CM CM vO CM CM rH O ^ >D ftJ4- rw 4< ^ +*^ ooooP^ 0^ 1-H CM CM s^- p^ O rn \o CO i r*- h- r^ h- h- f^ r- r^ COCOCOOOOOCOCDCOCO CJN o^ O^ o o o c* O^ O^ c^ o o^ o o o o o O o o o O O 1 c c o o c ccoccococ o o c o o o c o o o c .-. (

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 t a^ -* 0\ ON (— t- t- 1- 0^ o O O OOO ON 0> I/) uj uj Ui tu uj ^ o UJ O UJ ON -^QQrHQ Hi:r-(^rHQ;rH O UJ mo ttmo: (y^ r-t r-t t-l (\1 in fNJ CNJ cH tn ^- rH

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-.# >-i* UJ UJ UJ UJ UJ ^ O'-HQce^* CtU'Ht-* QOQOZQ* ce 1- CK 1- 1- Q Q o O O u- so: u- q: (t zu_ij-r(j_zQrzs2:u.u_u_QQ o u. !! l/)Kh-

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)33d>o O O O O O i-H CJ> (M o rg o oooooo o O O O o -* o rMOfNO oooooo O O O O 0^ '-t o Oi-H^cp'-tciirtici) a)ct»+i'-HOOif\o '4 3) CD ^^ ^ o lf^c^c^c^^-^-r-^c^ ^r^oo^oosO.-icoo -toocooinrsjr-rgo-^o »H (7\ ' h.r-ii-Hi-iso,£)coh-r^tNj\o

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: rH CD q; Qi w o ^ a: (K a: fM tM a: w q: q; Q:a:fMOO'-tQ;Q;ininrH LO rH rH

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 ~X + m + OOi^UUU>>l— UrH>uULiJO 1 CNJ UJ 1 3 + + > 3 -h-hUJUJUJ-4->UJ 1 ^ — -HUJ<<rH i Qi UJ UJ U_ I/) o o o O C) * OQI-OZCQi/lQ * QQCii— u-u_u.Q'-'Q[::i>-i~H U_ U_ t/) rH 1

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 rH O r- rH Q rH O r-lr-lrHtM(MrHrHO r-H rH rHrHfMOO <-HrHfMC0<>rH O in rH o oco tn o o o o o o o t*ir-inoor^oo r- m h-mcl>oooocnmc>o^co CD rH O CM CD rH 0.-H o rH O ^ J> O O O r+^*4r+<00 r+< r+i +lr4^0C*34*r4<4

O fM o -H o r- r- GO m o O r- o f-Hcocor-coh-fMincOh- f*^ CO CO CP" o iri f^ tr\ lo (Ni r^ o o o o cnco^fMmfMfMfM o fM en CO^^^^OrHfMOOv^ -:f tM -< fH rH c\j in i-i o o> «i)*C^|)fMfSJvCrHCy* ^ ^0 en >4) ^0 ^o cnrtj CO f*i "* fU Hh rfi 4- * +lr+<'ft+r<^rft+<4- '+< r^^ ^H^t^rH^^rflrf<^|^r+«r+^r^^ en CM r+H ^ t\J -fl-iA in in in in in in in ji *o ^ >0>OOvO'0'0'^nO h- r^ r- r-r-h-r^p-r-f^coooooco CO CO CO 00 •} ^^^ *-• ^^^^^^^r^r^^^^^^^^^^^ ^ ,-H 1 103

Q* CO o c^ CO O^ O CO ON -* o rH in in h- * •-HoocNjtNjoorgcococo^ininina

< ZQ>

*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- -iu Ul q; z z z u < li- " O U- C) <> U. C) UJ UJ Ul tr en <— •»— oe) -.oo— o o Q (tJ < * • o Z ^ ^ o < ^ i-H o o r-or^oorH r^or^oo CTv O O O o i-l f-H 0^ iH o ***** » * * * * a: Ol o o ^ ^ o * 00 QD Q o CO * rH .-1 o m o t^ -J -J ,_! o 1 rH * ^ 00 1 CO C) C) O -* 'H -« * * O ^ * o -t O X o X .-t O -H w ;4c v^ *

4- O vO O O Odd O 00 o^ ^ o CO o CO + 00 Q o o in o OfNJoi/) irtoo(MOijj- * >- * * • X s:luu_c» c)u_q £ u. u. oD c: Oh- 1/>UCQI— 1 CDODl— LO^CQh-OQCDQ u m 1- t- CD Q 1— 1- lO 1- K CD Q Q Q

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 O O o o •-*>-< o ,_, o • • V •• » » •• •• • «, * C) ot a. o o o * CD CO Q Q CO * --H O <<1 r~1 o m -J _l .-H o .-1 rt * { CO 1 CO () C) O -H * * O 'H

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 t O CO CM .3 CO CM o D ^ o en o o^ CO CO D O o o o J- o O O O ^ .-H ^ o o r-i o ^ CM O cj- CM CM O CM o CM o o ^t -t o o o o o o ^ rH O l-H O O O t-l ,-i o M o o o O O O O O o O O f-i o o O O o o pH rH O O -H 'H ^ ^ O i-H .-t ^ t—1 r~t ^ o O rt rl O .-H o r-* O rH o o o o o o

»l)r\j^i^s0^a^vO cv' ^ h- •O -3 C> o in c^ \0 in CM ^0 vO CM rH .-. 4- 4- rH -« o m * O C^ nH -H * C»J ^ -t- CVJ .H r-. ,-1 ,H

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 4 f— r^ 1 o o o o o o o o o o ^ I (H CM CM CM CM CM CM CM CM CM CNJ O O ceo o o c o o o c c o o c o o o c o o o o c o o o o O O .-H O 1 (

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 OiooOrgottlJ0Or^ -H -H + CO UJ + UJ 1 C> CO 00 + 1 o rH^-HrH* --H rH -.^ZVJ-'H * - * * X ^ <5- * tn UJ

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)oO(Njoxooooo^ooo4r>(«^oo in o " _ oooc^^c^voOL^lOco(^(^JC^^^c^ooco O 3 o o OOOO 000<-<000^0 .-HOO -t -3-00 o o 0>-«»-tOt-iOOOOf-<>-HOf-*00»-<00 o o o o O^rHrH rH^0r-l0^rH,-4^,H0rH00 o o o o

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<--HOOOOOOr-iOO

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 *-3--*'t'*cn^^^^^-j-*m^

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--''-'-HOO'-<<-tOOPs('-'00^

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'(*icn(Tifvir-toooo<>cNJ{N'--'

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*t-*c<^sd>r3c<^<^-t-3c^•d'

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-HOO(>fNI(N)f\l'--IOOChP^

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.