Lawrence Uvermore Laboratory - International Nuclear ...

436
\ UCIO im^ Lawrence Uvermore Laboratory MATERIAL CONTROL SYSTEM SIMULATOR PROGRAM REFERENCE MANUAL Roy B. Hollstien January 24, 1978 lhi>. ii'inpuier lode mnrnjl nut prrp.ir«J jt jn JVIIIUIII at uu[k %pi<riM>tec) Kt ihc I nurd vme* (nnciBIKCRI Vtuher itic I ititcd Siair- iwr ihe I tiled "»:JK* Ucpjilmcnt »»l (i*i^, IUM Jit» ••( Ihtir cmpli'ttr*. Dt'i J"> •>• then tuniuttoi*. mfctttnirji'tiHv iw ibtir etn- plirvrc^ nji**jn* wjrrjiit>.(t(>fcMiii imfinjJ. «r jvuunct jnn lepji liiitulu* iir r?>r»n*>t»l(» (•<> ihc JLVU(JW*.. ctuuf teicnmW uwrfulnc^ M jnt inMKMinm. jppjtjiui pntdui* itr proves diKhivd *" tepre- *«!<•* tJul il> HK »(•«)•) ""I infinite pntjiek-jmntid riphi* ll<flT\ This ts an informal report intended primarily for internal or limited external distribution. The opinions and conclusions stated ere those of the author and may or may tot be those of the laboratory. Prepared for U.S. €nergy Research £ Development Administration under contract No. W-7405-Eng48. JUSIBimmOM Off TiUS UocuSiENT IS UNLI1UXED

Transcript of Lawrence Uvermore Laboratory - International Nuclear ...

\

UCIO im^ Lawrence Uvermore Laboratory MATERIAL CONTROL SYSTEM SIMULATOR PROGRAM REFERENCE MANUAL

Roy B. H o l l s t i e n

January 24 , 1978 lhi>. ii'inpuier lode mnrnjl nut prrp.ir«J j t jn JVIIIUIII at uu[k %pi<riM>tec) Kt ihc I nurd vme* (nnciBIKCRI Vtuher itic I ititcd Siair- iwr ihe I tiled "»:JK* Ucpjilmcnt »»l ( i * i ^ , IUM Jit» ••( Ihtir cmpli'ttr*. Dt'i J"> •>• then tuniuttoi*. mfctttnirji'tiHv iw ibtir etn-plirvrc^ n j i * * j n * wjrrjiit>.(t(>fcMiii imfinjJ. «r jvuunct jnn lepji liiitulu* iir r?>r»n*>t»l(» (•<> ihc JLVU(JW*.. ctuuf teicnm W uwrfulnc^ M jnt inMKMinm. jppjtj iui pntdui* itr proves diKhivd *" tepre-*«!<•* tJul il> HK »(•«)•) " " I infinite pntjiek-jmntid rip hi*

ll<flT\

This ts an informal report intended primarily for internal or limited external distribution. The opinions and conclusions stated ere those of the author and may or may tot be those of the laboratory.

Prepared for U.S. €nergy Research £ Development Administration under contract No. W-7405-Eng48.

JUSIBimmOM Off TiUS UocuSiENT IS UNLI1UXED

MATERIAL CONTROL SYSTEM SIMILATOR PR03RAM REFERENCE MANUAL

R, B. H o l l s t l c n

Apr J t 25 1978

LAWRENCE LEVERMORE LABORATORY Ur\Evera. ( ty o f C a l i f o r n i a L J v e r n o r o , C a l i f o r n i a 9 4 5 5 0

Till, trfn.'l »i% p r p tpnruucd >•> iKr CnnrJ I'nrird St»ir> r,..r -hf

am Uitrunn. eipiru •• luHiliU in wipimjNditt • < uw1id»ni id n< tfii.i

j infunfTpniiich n»nr^

PREFACE

The Mater tat Control Systcn S mutator pro-gran wos developed for the Un i i.od Stat03 Nuc 1 cor Regulatory Conn i^slon, Off i CO Of Nuc lcar Regulatory Research under research order no. 60-77-012" and the United States Ocpartnont of Fncrgy under contract no. W-7405-ENG-48.

CONTENTS

INTRODUCTION Purpose of MCSS 1 Progran Organization 1 progranmi no; Language 2 CTcnory Management 2 Input/Output 3 Dloanostics 3

•ATA STRUCTURE Hcnory Management S Free Store 5 Tables 6 Lists 6 Stacks 7 Block. CI-3ins 8 Common 10 Events 1Z Event Notices 12 Scheduled Events Free Events 14 Funct i ons 1 5 System Data 15 Parameters 16 Variables 16 Initial Conditions Comnunicat ions la Address 18 Type 18 Data 18 Material 33 Type 33 Quant i ty 33 Conta i nnent 33 Exanple 40

PROGRAM DESCRIPTION 4 Macros 46 Dec1arat i on 46 Structured Programming Input/Output 47 Recurrent Code 48 Control Proarans 49 ASTORE 49 CEC 49

CLOCK 49 CMB SO COPYB SO CREATE SO CRMD1 51 CRHD2 51 DESTRO 52 DHPSYS 52 DUMP 53 ERROR S3 EVDRS 53 FPNTRS 53 FRMD 53 FSTORE 53 [AC 54 ICH 54 [CHECK 54 IIC 56 ILIC 56 [LP 55 ILV 57 INCREC 57 IP 57 [UN1F 57 [V 57 KEYWO 57 LCS 58 L11NM 58 MAIN 58 MZUR 59 NCBM 60 NSTATS 60 PCOM 60 PHLB 60 PICLB 60 P1DF 60 POP 61 PPLB 61 PUSH 61 PVLB 61 RAC El RIC 62 RLIC 62 RLP 62 RLV 62 RNORM 62 RNORMT 62 RP 63 RUN IF 63 RV b3 SAMPL 63 SCHED 63

SEND 64 SET 64 TIMER 65 TftNFRM 65 UMD 66 URN 66 WRMD 66 ZIA 67 ZIAC 67 ZRA 67 ZRAC 67 ZTABLE 67

Functlor> Prograna 67 8101 RCMB Receive Material Batches 67 - - - - (nltlata Diversion Action Sequer.ee

Transport Material Batches 68 Store Material 69 Independent Action 69 Material Acquisl-tlon Action 70 Dependent Actiork 70 Modification Action 71 Halt Diversion Action Sequence 71 Timor 72 Start Control Action 'Sequence 72 Measure Material Batches 72 Compute Material Balance 73 Monitor St 1nutus Type 1 74 Decision Table 74 Trace Control 75 Report Material Diversion Statistics

ADDITION OF NEW FUNCTIONS 77 Type Number 77 Communication Control 77 Subroutine Organization 77

PI 02 IDAS E <01 TRMB B401 STOM B501 INDA BS02 Mr.'Q A B503 DEPA BS04 MO DA B509 HDAS B601 TIMR B602 SCAS B701 MZMB B702 CMBA B703 MNTR B801 DTBL B901 TRCN B902 RMDS

REFERENCES

SOURCE PROGRAM

Macros SO Control Progrons 87 Function Programs 144

e FORTRAN PROGRAM 200 Control Prograns 200 Furction Programs 308

Program Organization

1 INTRODUCTION

PURPOSE OF MCSS The objective of the Material Control Project at Lawrence Livcrnoro

Laboratory Is tho development of a ncthodology for use by the Nuclear Regulatory Commission in the assessment of natc tal control and account iig systems. This report describes a Material Control System Sinulotor (MCSS) program for cetern i nat I on of material accounting unc^rtairst/ arid tt;'=tcn response to particular adversary action sequences that constitute plausible material diversion attempts. The program is intended for use in situations where randomness, uncertainty, or interaction of adversary actions and material control system components nake it difficult ro assess safeguards effectiveness against particular material diversion artenpts Although MCSS nay be used independently in the design or analysis of material handling and processing sysrens, it has been tailored tovard the deterninatior of material accountability and the response of natfinal control systcn* to adversary act i on sequences.

PROGRAM CRGANIZATION The MCSS program has two principal parts, control proflrans and function

programs. The control prograns provide a general conputor simulation framework within which the specialized function proarsns interact to simulate material control CMC) systems <1), All of the control programs and function programs are based on the top-down philosophy of systematic

-1-

Memory Management

programming (2,3), end xheir coding Is standardized by use Of Structured programming technique f4,5).

PROGRAMMING LANGUAGE HCSS is written in a specialized aouroc language that provides macro

statements for the control mechanisms of structured progranning, input/output, a»nd recurrent segments ef codto. The MCSS FORTRAN progran Is generated from the sourco program by preprocessor PREC0"1P aval tabIo on the CDC 7600 computers at Lawrence Llvermore Laboratory (LLL>. Tho source and FORTRAN programs are l*sted in The Append iocs..

MEMORY MANAGEMENT Space in a ono-cfinenaional array is allocated to control and function

programs as it is needed. When space is no longer needed, it 1s returned to tho free storage pool. Integer values at location L of tho dynamic storge array are referenced by IA(L) . Red values- are referenced by RACL).

The nsxlnun allowable size of the dynamic 3 f-or a go space Is limited toy the memory available in the computing systen on which MCSS is to be run. Array IA is dimensioned and cqulvaleneed t> art ,y RA in control progran MAIN.

Space is allocated from a chain of free storage blocks by control program ASTORE and is returned to free stone by control program r"STCR£. Clements in dynamically allocated storage apace mre located by control function program LCS. These control programs are used by other control programs and function programs to create., menage, end destroy table, list, stack, and chain data structures described In Section 2.

-2-

Oiagnost ics

1NPUT/OUTPUT The MCS5 progran roads Input data frer* file MCSSIN on device number Nil

and writes Its output Into file MCSSOUT on «lovlco nunber N01 Usor interaction with the program Is road fron ctovlco N12 and Is written on device N02. The flic nanos and device nunbers aro assigned In control program MAIN. For the CDC 7600 conputors at LLL, the symbolic device numbers are assigned tho following values: Nil =5. NI2 = 59. NO I = B, N02 = 59.

Input data are road In typo- and field- froo formal Output reports aro generated lay the function programs as described In the s CSS user's, manual .

DIAGNOSTICS Error messages are printed and the progran is halted when abnornal

conditions occur that are caused by either syaten limitations or the user's violation of HCSS nodellng rules. The progran in control at the tiro of the error writes the current sinulation tire and an error message, then calls rontrol program ERROR which calls program PWPS¥S to print a dunp of the complete i>,odel system data before It halts execution of the prograr This is to assist tha user in diagnosing the cause of the error.

Warning nessages aro alao written when suspicious conditions arise tha-should be brought to the attention of the user. Warning messages include the current simulation time, program identification, and an explanatory note. Warning conditions do not produce a <lunp of the model system or halt execution of the program.

Tracing and Interactive debesging capabilities arc providea to aid the

-3-

Diagnostics

user in development of complex simulation nodoia. See the MCSS '^cr's manual for a description of the run tine di-agnostic features of the proflran.

Memory Management

2 DATA STRUCTURE

MEMORY MANAGEMENT

Free Store Dynamic storage allocation is based on the free store data structure

shown In F iguro 2.1. Blocks of contIQUOUS locaxiors in onc-d mensiona t array 1A/RA arc linked to forn a free store- chain. The first word of each block, contains, a pointor to the next block, on the chain. The second word of each block, contain? the nunber of useable words in the block. Locations LFFB and LLF& in connon storage contain respectively pointers to the first and last blocks on the free store chain.

UF-B -

FIGURE 2 1 Free store data structure.

"1-

-S-

Memory Management

Tables Tables in allocated storage have tho data structure shown in Figure

2,2, Tables occupy a s i ng1c block if enough cont iguous tocatIons a-"c avsi labia in free store whon space for tho table is all ocatcr. Othor-wiae thuy nay occupy two or norc cha J nod b 1 ocks. The 1 ocat ion of a tabic is the \ ocat ion of tho first word of tho first block. The f Irst word of each bl ,->ck conta i ns a po i ntor to tho next bIock in the chaIn. The second uord of each block contains the nunber of useable locations In tho block. The third word of the first block contains the capacity of the table, which is one less than the total number of useable locations. T-ie location of the ith I ton in the table is given by control function LCSCL,i+1).

• O - d ! •- d l '•:'! , ^:,...n/

. ; L J ! LJ

FIGURE 2.2 Table data structure.

Li sts Lists in allocated storage space have the data structure shown In

Figure 2.3, Lists occupy a single block if enough contiguous locations are availab 1e in free store whon space for the list i s a 11ocated. Otherw t se they nay occupy two or more chained blocks. The location of a list is the location of tho first word of the first block. The first word of each block

-6-

Menory Management

contains a pointer to the next block. In the chain. The second word of each block; s.?ntaina the. nunbor of useable locations in the block,. The tnlrd word of the first block contains the capacity of the list data structure, which is twu less than the total nunber of useable locations in the blocks. The fourth word of tho first block contains the current court of the nu-tbor of I tens £ words) In tho list. The location of the 1th itort in the list is Oivcn by control function LCStL,!*?).

I *! L-?

FIGURE 2.3 List data structure.

Stacks Stacks in allocated storage space have the data structure shown in

Figure 2.4. Stacks occupy a single block If enough contiguous locations are available in free store when space for the stack is allocated. Otherwise they nay occupy two or more chainod blocks. The 1 ocat i on of a stack, is the location of the first word of the first block. The first word of each block contains a pointer xo the nevt block, ir. the chain. The second wo~d of each block contains the nunber of useable locations in the block. The third word of the first block cor ns the capacity of the stack, which is two lass than the total nunber of useable locations In the blocks. The fourth word

-:..J

-7-

Memory Managenenx

of the first block --ntPina the current count of the nunber of itens in the stack. The lucriion r the last iten placed on the stack, is Qivon oy control funct ion LCSCL, I At L+3)+2) .

FIGURE 2.4 Stack d-ats structure.

Block Chains Blocks of allocated noncry are chained as shown in Figure £.5 to forn

block ! istb, stpr.ks, queues, trees, etc. One useable location in each black of a one-way cha i n *>oi nts to the next block on the chain Two usoaole 1 ocst i ons i n each bl ock of a tv/o-way chai n are used as poi nters, one to the preceding and one to the next block on the chain. Additional pointors are used in narc conplex configurations; for ex&nple. four are used in the interconnected blocks of the MCPS natcrlai data structure. Locations LF and LL of the blocks on the ends of the chains are usually maintained to sinplify the addition and deletion of blocks in one- and two-way chains. The blocks in thoso data structures ney be either sinple blocks of cont JQUOU5 locat i ons or cha i ns of blocks el 1 ocated fron free storago. They nsy be created and destroyed by the rsanc program or created by one orogram and destroyed by another.

-e-

, * f '•

bj FIGURE 2-5 BlocK ch&in data structures.

Memory Managencnt

Memory Management

Common The allocated storage array lA/ftA Is in blank conmor-, and tho following

synbolic locations aro In named common block SV3TEM:

1CTYPE Typo ef communication. !GUMP Control parameter read fron t*io RUN connand lino.

IP sot to 1 J a dunp of the modal system Is printed just before the simulation is started.

IPO (NT Pointer to communicated data. ISECA increment size of the event, chair* storage allocation. I TRACE Control pa ranoter that specifies tho level of traco messages written during execution of the program. LB Location of the J1C5S function than currently has program

control. LBCA Location of the block checked for adjacency while

scanning the free store chain. LBL1ST Location of the list of blocks currently in the model system. LBPT Location of the block pointer tab-te. LBUF Location of a block of 80 contiguous locations used as

a buffer. LCSB Location of the block containing « location returned

by control function LCS. LEC Location of the event chain. LFFB Location of the first block in fneo store. LFFE LocaT.ion of the first free event notice. LLE Location of tho last scheduled event notice. LLF6 Location of the last block in froa store. LLF£ Location of the last free event notice. LMS Location of tho message stack, LIME Location of the next scheduled event.

-to-

Memory Management.

LP Location of tho paramoters of the*MCS3 function that currently has program control. LV Location of the variables of the MCSS function that currantIy has progrn i control. LI Location of tho initial i&ndltiona of the MCSS

function that currently has program control. LE Location of the lost word of the MCSS function that currently has program control. MINNFL Minimum numbor of free locations In freo store. MFROM Sending address of a conmnunication. MNSE Maximum number of scheduled events. MTO Receiving address of a communication. NFE Nunber of free event not Ices. NFL Number of free locations in free store. NI1 Input device number. NI2 Interactive input device nunber. NOl Output device nunber. NQ2 Interactive output device number. NREP Number of replicated runs in the-current Job. NRUN Number of the current run. NSE Number of scheduled events, TIME Current simulation tine. TSTOP Stopping tino for the current simulation run(s>.

-n-

E"cnLS

EVENTS

E '/cm No 11 ccs As shown in Figure 2.S, event notices arc groups of five contiguous

locations within tho uscahlo spaco allocated at J_EC for scheduled and free owont chains. Tho first word of an event notico points to tho next group of five locations on either tho scheduled ovont chain or tho free event chain. The second word contains the t l"ie of scheduled events. The third word contains the MCSS function in which a scheduled event is to occur. ihc fourth word contains an identification of tho event type. And tho fifth word is a pointer to data stored for reference at the tine a scheduled event occurs -

A block, of 500 useable locations is originally allocated by control program MAIN for event notices. If wore than 100 events are scheduled, additional space is allocated in increments of ISECA useable locations. ISECA is assigned by Control progran MAIN.

-12

n

-*- ncxl

timt*

funct ion

(,-v(.-nl

- — &A\H

— 11 ['XI

titm*

funct ion

uvcru

— ilaiu

11

— m.-Ki

tutii-

f i inct ion

I'VI'il!

— duia = ] •

F IGURE 2 6 Evert not ice data structure.

Scheduled Events Events a«~e scheduled by t i nk i ng event not i ces for future event s i n

chronolog ical order on a one-way chai n as shown in Figure 2.7. LNE points to the notice of the next scheduled Rvent, and LLE points to the notice of the 1ast scheduled event. ^^^

LNE t ime

f u n c t i o n

event

-— data

t ime

f u n c t i o n

event

-— data

t ime t ime

f u n c t i o n

event

-— data

f unc t i o

t ime

f u n c t i o n

event

-— data

event

t ime

f u n c t i o n

event

-— data — data

t ime

f u n c t i o n

evcrn

— data

FIGURE 2.7 Scheduled event data structure.

-13-

Events

Free Events Space allocated for event notices but not used In the scheduled event

chain is linked In a free event chain as shown In F.auro 2.8. LFFE points to the first froc event notice, and LL rE points to the last free ovent not ice. LLFE

LFFE -

FIGURE 2.8 Free event data structure.

14-

^uret i ons

FUNCTIONS MCSS functions occupy single blocks of contiguous words In allocated

storago spaco, as shown in Figure 2.9. If thoro aro not onough contiguous words aval lablo in free store at the tine an attonpt to create a function Is nadc. an error nossego is written and the progren *s noltod.

FIGURE 2.9 MCSS function data structure.

System Data The first five words of a function contain data used by MCSS control

programs. The first word contains the function type nunber. Since the function must occupy a single block, there is no need for the block pointer norrally in the first word o* allocated storage space. The second «*ord saves the nunber of useable locations allocated fron free store so that all

-13-

Functions

of the space con be returned if t^c function is dcstri. /cd Threo useable locations plus tho nunbcr of parameters plus twice tho lumber of variables aro required for the function data st-uctuno. The third «.'orq contains the nunbor of thiC function gspigncd in the user's ncdcl systcn. Tho fourth and fifth words contain rcscoct J vcly tho nunbcr of po--arot.or3 and ngnber of varlab'.oa used by t^o function

Paranetors Parameters aro stored irt locations LP through LV-1 of IA/RA. There aro

four types of paraneters^ i) Integor scalar, 2) integer list, 33 real scalar, and 4) real list. The first lAfl_B*3) elener.ts of the local, one-dimensional arrey 1 PVT of each function! contain an integer value fron 1 to 4 that defines tho type of the corresponding paranoter Scalar parameters arc stored directly in array IA/RA. '_ist paranctcrs aro stored indirectly i r, the list data structure at the location contained in tho corresponding scalar i ntcger paranetcr The i th integcr and real 3C% 'ar parancters of the function that currently has MCSS control arc returned respectively by control functions IP(i) and) RP(i). Tho jth element of the Ith integer and roai list paranotcrs arc returned respectively by control functions JLP<i,J> snd RLPli,j).

Variables MCSS function variables arc stored In locations LV throuph LI-1 of

lA/ftA. There aro four typos of variables identical to thr parameter types described above, and the last IAtl_B+4> clenenta of array IPVT contain integer values that define the corresponding variable types. Scalar

-16-

Furrct i ons

va~ i ables are stored d i rectly in array 1A/RA and list .'ariablci are stored i nd; ••oct 1 y In the list data structure at the location ccnwincr :n the corresponding scalar integer variable. The- it* n-ugcr ana roa; variables of the function that corrontlv has MCSS control o^c returned •'cspect I vc I y by control functions IV(i> and RVCi ) . The J th- el orient of *.he :th ntocor and rca1 1ist varI able arc returned respoct ivcly by control functions I LV f J,j) and RLVt i , j ) .

Initial Conditions Initial condition values of function variables arc iic-cd in locetioni.

Li through LE of 1A/RA initial condition Types Brc t <o sar-c as t~e cor respond! ng var : ab 1 OF. and arc dof i ned by the -J3r i ab 1 c '. ype def l i n e n s , i *•* array IPVT. The- ith j nteger and ri?al initial condition va i -e zro rciurnctJ "eyoectiue'y by control functions lIC(i) a^d R i C i ) *hc _• t- r..1. orient o* tne ith i nteger and rea 1 list initial cond 11 :or> are "cturncd "^;s:;cc: ivcly by control function !LICr:,j) and RL1CCi,j1

-17-

Connun icat1ons

COMMUNICATIONS

Address Each MCSS function In a nodol syston Is asslgnod a positive intogor

addross reforred to as tho function number. MCSS control prograns are assianed the address nunbor 20re. Connunicat ions among MCSS control prograns and functions of tho nodol system ore based upon those Intogor addresses and tho communication typo 1CTYPE. CormunIcations are transmitted from MFROM to M10 !f 1CTYPE is greater than> zero. Response comnunieations are returned to MFROK from MTO if 1CTYPE is- less than zero, An error nessace js written and the progran Is halted tf a communication is attempted with ICTYPE equal to zero.

Type Communication types. Identified by the value of ICTYPE, are described

in Table 2.I.

Data Common location IPOINT is used to either convey or point to information

conveyed in communications. In type 1 communications IPOINT contains the typo nunbor of the function to bo created, and no other data are required. IPOINT is set to zero in connunication types 2 through 7 which require no additional information. In event communications, type S, IPOINT contains the location of the fourth word, the event type identification, of the event notice last removed from the scheduled event chain. Data stored for reference at the time the ovent occurs ore, thoroforo, at location

-18-

TABLE Z 1 Connunleation types.

Conmun i cat j ons

IC TYPE OoscrI pt i o n

1 Croato function. Transmitted froi control program MAIN to tho function spoelfiod In a CREATE connand line 2 Destroy function. Transmitted fron control progran MAIN to tho function spoeifiod .n a DESTROY cjnnand line 3 Assign parameters. Transnltted fron control program MAIN to tho function specified in £J PARAMETERS connand line. 4 Assign variable initial condition values. Transnittcd by control program MAIN to the function specified in a VARIABLES connand lino. 5 Write report on output device. Transnltted by control program MAIN to the function specified ir> a REPORT connand line and from report generation functions to other functions whoso reports are requested. 6 Initialize. Transititted fron control progran MAIN to

each function of a nodel systen before each simulation run is started, 7 Dump. Transmitted to each function of a nodel systen by control prooran OMPS v <! to request a dunp of the function data structure. 8 Event. Transmitted from control progran CLOCK to the function identified in event notices renoved in chrono­logical order from the scheduled event chain. 9 Interaction. Transmitted fron nodel function to model function during the operation of the &inutated system.

IAUPOINT+1). In interaction communications, type 9, JPOINT contains tho location of a message block of ten contiguous words fn 1A/RA. The data structure of these message blocks is shown in Figure 2.10. The first word points to additional nessage blocks If required The second word contains the integer 8, the number of useable locations in the block allocated from

-19-

Connu 11 c a t ions.

f r c c i . l o r o The- t h l r d w o r d c o m a : ns a :>ns i t ; v c , n o n - z<-i o J n tc f lCr 1 l -*>d iCStX 1 ")Q

i h c t y o c o f i n t e r a c t i o n ncs*-«cjc d e f i PCCJ :>• T i 3 b l c £ 2 The <- o n t o n t i a o f t h e

l a s t c ; sjnt vo rds . o f an i n t c r a c l : on n c ^ s a a c e loc*. va ry - . o e o c ^ d i ng upon t h e

m u ' i c c t i o i , ncfci .•iftc t y p e , *-od &r«_- d e f : r c d i n ' t i D S f / i ;? 3 t o 2 12

F i C->UF?E 2 . 1 0 I n t c r a e t ! on - tosSi jgc ior.k, ;Jat5 s f u c t J ^ c

2 0 -

I Connun i cnX, i ons

TABLE 2-2 I nterac* i on nc-ib^go types

Typo Definition

1 Transfer natorial. 2 Material has been xnansforrcd 3 Whax natorial is availablo1* 4 What notorial is held up* 5 What nateria1 is suscoptIb1c to diversion? 6 Kator i al ncasurcncr.t data 7 Stimulus 8 Perfor-n c o n t r o l acre » on . 9 Condition notice.

10 Control s i g n a l s . 11 Start control actIon sequence.

Comnun i cat i ons

TABLE 2.3 Interaction nossaoo: Transfer notorial

Word of [ntoraction Mossaoc Block Contents

3 I 4 Location of natorlal to be transferred. 5 Source function. 6 Destination function. 7 0 8 0 S 0 10 0

-2a-

Conn un (cat I ons

TABLE 2,A Interaction mossaao: Matorial has boon transferred.

Word of Interaction Mossaao Block. Contonts

3 2 A Location of material transferred. 5 0 6 0 7 0 8 0 9 O 10 0

Connunlc€-t i ons

7ABLE 2.5 t ntoractI on nessaoo; What natcrial is available?

Word of Interact I on Hosts ago Block Contents

3 a 4 Location, of available natorisl. 5 0 6 0 7 0 8 0 9 0 10 0

Conmun icax I oris

TABLE 2.6 Interaction nossagc^ What natorlal Is held up?

Word of IntorectI on liossago Block Contents

3 4 4 Location of hclc up notorial. 5 0 6 0 7 0 8 0 9 0 10 0

Connun i cat Ions

TABLE 2.7 Interaction nossago: What natorial Is susceptible to diversion? Word of Interaction Mossaoo Block Contents

3 5 4 Location of material susceptible to diversion. 5 Location of the ncssage block last g loced on the chain of tiessaoe locks pointing to- naterial susceptible to diversion. 6 Number of message blocks that point to material susceptible to diversion. 7 0 a o 9 0 10 0

-26

Communications

TABLE Z 8 Interaction mossaeo: Material ncasurontent data. Word of Interact Ion MCSS90O BIock Contents

3 6 a Material typo. 5 Observed count. 6 Observed ITIDSS.

7 True count, 9 True ross. 9 O

la o

Connun i cat i onss

TABLE 2 9 Interaction noss&ao: St inulus.

Word of Interact ton Icsssgo Block. Contents

3 7 4 Location of the roal paranotcr list in which tho stimulus characteristics are specified. 5 Index of the first elcnent of xhe stimulus characteristics In the real list paranot&r. 6 0 7 0 a o 9 0 10 0

-28-

Corinun i cat i ons

TABLE 2.10 interaction nessagc: Car torn control action. Wnrd Of IntoractI on Mossage Slock Contents

3 8 a Nynber of control actions, 5 Contro1 code. 6 Control data. 7 Control code a Contro1 data. 9 Location of inteoer list o* control codes and -data

-29

Connunlcat i ons

TABLE 2 11 Intursetlon nossago: Condition not Jco

Word of Interact ion Message Block Contents

3 S A Location of notorial

susceptible to diversion. B Location of the nossaac block, last placed on the chain of message blocks pointing to» material susceptible to diversion 6 Number of message blocks that point

to natcrlal susceptible to diversion. 7 0

8 0

9 0

10 0

Connuri i cat i ons

TABLE 2 12 Interaction ncssagc' Control signals.

Word of Entoraction Message Sleek. Contents

3 10 4 Nunber of control signals t'-a'-sr-i ttcd 5 Control signal ir>dte* 6 Control signal valuo. 7 Control signal incfex. 8 Control signal value. 9 Location of integer list of control signal indexes. 10 Locat ion of real 1i st of control 3[gnai values.

-31 -

Conmun icat ions

TABLE 2.13 Interact I en nevsaao' Start control action sequence.

Word of Intoract ion Message Block Contents

3 11 A a 5 0 6 0 7 0 8 O 9 O 10 0

-32-

Mater:al

MATERIAL

Typo Materia) types ore lelont t f Joel by positive, non-zero iPtcac nar*cs An>

r.urtfrcr of different natcrial types Pi»y c*ist slnoltancously j •% a nodcl system end nay be assigned arbitrary integer nanes

Ouant jly D 1 st i net ouant i t ies of each mater I al type arc •"cprc^cntcd by an- I'Hogcr

count of discrete iters and/or the real value of >-ator;al nass.

Conta i nment The type, count, and nass of distinauishable natcrtei quantities arc

stored in a recursive data structure that represents tnc transitive enclosure of materials in various types of -containnent cenfiq^rstions 1 he structure of naterial data clocks is shown m Figure 2 11. a cl linkaoe of adjacent blocks in the data structure is shown In Figure 2 \2 The first word of each material date, block, points to additional data tnat nay describe physical, chenical, or other properties of the naterial represented by the data block. The second word contains the integer 6, the nunber of useable locations in the btnek allocated fron free store The thi^a, fourth, fifth, ana sixth words coutsi. po i nters to the adjacent blocks i^ the nateria I data structure as shown In Figure £.12 The scvnmh wore ccctairs an Intesor 0. 1, or a indicating the ccntainnont level o* t"e ratclal cuant.ty. The last th'co words of ratcrie! data blocks conta:"^ '•espec; : vc iy -r>o i niccor

-33-

nator i a 1 typo, the count of discrete i tens.. and the nass of natcr ial reprosontod.

FIGURE 2 11 Material data block.

1 •-

1

LN

FIGURE 2.12 Linkage of adjacent natcnal data blocks.

-34-

Materlal

A recurs l vc definition of natcr i a 1 conta inncnt is sho.vn in F1 i0.jrc 2 13. In any container A there nay be any nunbcr of bulk, materials 1, 2, - . and any nunber of c o m a I ners B, C, The bulk natcnalt in any conta i nor are assuncd to be honoacneous 1 y m x o d , so thoi can bo r e n c o d only in combination with other bulk notcrlals in the c -ntaincr at the xino of rcnovel. The block, chain data structure represent inp the recursive def i nix i on of natcr I a 1 contai nrcnt i s shown in figure 2 . 1 »5 ~o s:no' ify the figure, on ly the 7xh and 6xh words of natcr la'. data b i oc\s arc shown; Ii nkagos def ined by pointers LH, LP, LN, and LL arc indicated by tho \ incs connecting the s i no 1i'Icd material data blocks, an<i locations LA, L3ULKA, exc are the locations of the first word of oac!- block

FIGURE 2.13 Recurs i ve def inixion of naxer ja 1 conxa i nnenx.

-35-

-m

. :/. f>

» 1 1 /A U

V

FIGURE 2,14 Data structure representing the recursive definition of material containment In Figure 2,13.

The block, at LA represents all of the naterial in container ^ The containment level is 2 because conta: A "contains" other containers The material type is null (indicated by rv. .-rial type zero, which is otherwise an illegal material type code) because container A may contain more than one typo of material . The last xv/o words of the material data block at LA contain rospontively the count of all discrote material items of all types in container A and thy total rig-ss of all materials of all types In container A.

The material data block, at LBULKA represents all of the bulk materials

-36-

Mater ial

in container A, Its containment level of 1 distinguishes tho collection of bulk materials in container A fron containers B, C, ... and indicates that tno block ts one level above blocks thai represent specific rater Jal quantities. Tho last two words of the blodk at LBULKA contain respectively tho count of all discrete naterlal itena of all ^ypes in bulk forn v.ithn container A but outside containers B, C, ... and the total r»a«s of ail materials of all types in bulk forn within -container A but outside containers B, C, ... -

The blocks at LI.*, L2A, . . . represent the distinct types of b^ik material in container A but outsido containers B, C, . Tho containrcit level 0 of these blocks indicates that the ratorial they repi osent can nox be further subdivided into lower hierarchical levels of conto: nne<-'. Q*O b, definition represent a quantity of ^ specific natcrial type

Tho material data blocks at LB, LC, ... represent the containers within container A and are roots of subtrees whicn- have the recursive data structure shown in Figure 2.14 Thus, each* wf the containers B, C, ,., nay contain bulk naterials and/or other containers, etc. etc "to any depth of nested naterial containment and data structure.

Figure 2.13 and 14 represent the nost -general naterial containnent configuration which subsumes the special containnent configurations shown in Figures 2.15 through 2 19,

Figure 2.15 shows a schematic representation and the data structure for a container A of bulk natcrials 1, 2, . . In this case, the LN pointer in the fifth word of the naterial data block at LBULKA contains a zero indicating there are no containers within container A

-37-

1

', ! ' A U

1

I \vt- 0

7

FlGUf<E 2.15 Container of bulk, naicnals 1,2...

A containcr th&t contains only other containcrs is iI lustrated in figure 2.16. Hero the LL pointer of the natenal data block at LA ooints to the block at LB which represents the first of containers B, C, ...

r a 0 r;

c IB ?

0 1 L

* 1C 1

* a

FIGURE £.16 Containop of other containers,

-38

Material

Figure 2.17 shows tho rcprcscntetion of an empty container Tie conta innon*. level is 2 because the container could contain other containers. Tho Iirifcano pointers, notorial typo, count, and nass of the data block at LA ero sot to zero.

FIGURE 2. i7 Entsty container.

Figure 2.18 shows the represent ax i on of free bulk notonals l . 2, .. that are not in a container. Tho data structure representing ticse materials is at location LBULX. Free bulfc natcrjals are represented by the sane sub-tree data structure that represents bulk natcrials within containers.

-3a-

1 !

i iiui r I 1 I

FIGURE 2.18 Fraa bulk materials 1 . 2 , . . . .

The containncnt configuration and data structure represent :r.g Free containers B. 0, ... is shown in FiQuro 2.19. Free containers are represented by the sane sub-tree dstti structure that represents containers within other containers.

D c

D t ; . 7

0

1 i t ; 7

0

FIGURE 2.19 Free containers.

ExanpIc In a container A, as sho*'n in Figure 2.20, there arc -Four bulk.

-40-

Mater ial

materials 1, 2, 5, and G and four other containers B, C, C, and E Contafnors B and C hold the sane anounts of bulk natoriels 3 and 4, and D and E contain the sane anounts of bulk natcriats 7 and 6. Odd material types arc rountcd as discrete itcns, even natorial typos arc ncaburod in nsss units, and the amounts of all materials are indicated :n figure £.20

f ' _

1

1 " ' . ••

1

{ "

, FIGURE 2.20 Exanplc natcriol conxainnont configuration.

The data structure for this e*snr is shown in Figure 2 Si , n-ncrc the material data blocks now include the it two words that contain the count

-41-

I

Material

and mass of notorial represented. As before, tho pointers to adjacent blocks arc represented by tho linos that connect the blocks. And locations Indicated at tho top left of each block are locations of the first word of tho- ton-word material data blocks allocated* by control prooren ASTORE,

42-

Mater i a t

A / ! !i

JVt_

- -

.lv-

V " • T U

• /'*M

-T

* •

,'Uli

Jtlli

FIGURE 2.81 Data structure for tho cxenple material containnont configuration in Figure 2.20.

-43-

Materia I

Flgu <_• 2.22 shows* the natcnal data structure of the example contalnnc t conf igurat i on a<, it i E pr i ntcd out by control oro^F'an WRMD Fron loft to right, oach line or' Fiflure 2 22 c^tains the following

LH, LN,

LP, LL Level Typo Count

naaa

,_ocation of a notorial data block. Locations, of blocks adjacent to ihc block at L

Containment level of the block at L. Material type represented by the block ax L Itcn count tf the quantity of material representee* by the bIock ax L. Mass of the quant ity of naterla I represented by the bIock at L.

-44-

r

IL L.'v.'l Typ,- Cmnl Jfcrf* ••' l / : *4 f M ^ t" . . i . n u i - * . I I 1 H \d .' • * f H 4 i -*yn .1 ' ) r' 1 ! i ' .

V\WA H ^ K 4 l * J 4 .1 *' J i ' f . . i » t i i « * t * i i i ,'\WA | y / i / i ; i •-> W/J : •» t-1 j M l ' .', t K T A fl l « » . f i ,T ,1 n * • ) H *. . . ' . H i ( i F * : i | I •J./y'i 1 - ^ 4 tJ I-WA­ ('• * 1 1 V p . iHSrt i h" A rt ;« IT 1 nn l , i . ' O H u . . n . i i i . l K * . ' ! ] * ] A A J * .»PVj .* fl n *. ,! <t • . M i M { ) - " * t ' | i ?:• * 1 K?4 O 1 * 1 * t* i*i j I v V l l .

JK94 ] < S r V 4 rt i l 1 VH4 J 0 . i . \a i t , . S C ? i \ r * * M

rfBBfl £4 H 9 4 :: » k' « / rf. . p i i a . i e o j 1 W d | 4 4/« « «**»£« « V) ; vj'Si (1. | 9 R 4 ( 9 / 4 11 tf ] 194 1 i i ; » H K, ,!,w\\\M> * ; M

? ^ 4 f l Ci 20:14 •T * i f K ^ >• < t.wja*t.*v>t 2 5 ) 3 * ? a a * p £(*4A » I* 7 7 0.1 rt. 901V 4 ? H | A a tf <?«J4 J | i /*an H i , * U W 3 t F * M l

» « i -* I-* IV l* M <?*?4 <> j l /!«* k t . - * * H * E * f l l \sn& t i I K S U 2 f l l A 19K4 e ;' / ( • I t ) rt. , [ )H»MF*. 'U I h'^4 (' 1 R 4 * 19 7 A 1^94 d , • J I HI 4 . • a ^ a t ^ a i 1R44 p I >44 l * K 4 J h W tf. H i « a 4 , - » B r l « h " * f H 1 9 4 4 | 4 ^ 4 3 1*441 d t f f r l i 1' A . H I H, - 3 H P i ^ P * H l 1 4 ' : 4 p ( 1 0 I ? < 1 4 x *'. ^ *.<,-•*-•, •» , . ^ i > . M k * w f

FIGURE 2.22 Material data for the oxanpte material containnont configuration printed by control progran WRttO.

-45-

Macros

3 PROGRAM DESCRIPTION

MACROS

Declaration The statement LSE SPM defines the "fi1«" SPM that contains the nacro

(cliche) descriptiors and invokes tho "nacro" SPM that initializes paranctcrs used in conditional nacro processing. This dcclaratic* nust precede the first nc-ro statement in each progran.

Structured Programming Macros CASE, ELSF, ENDPROC, FIN, FOR. IFF, NESTLEVEL, ORIF, OTHERWISE,

PERFORM. PROCEDURE. REPEAT, UNTIL, and WHILE provide the control nechanisns of the following structured programming constructs.

IFF [logical express l:>n J code block FIN

IFF Clogical expression! code block. ELSE code block FIN

CASE [logical expression] code block ORIF [logical expression] code block ORIF [logical expression] code block

-46-

•I

Macros

ORIF [logical expression) codo block FIN

CASE [logical expression) codo block ORIF tIon leal oppression) codo block ORIF [logical oxprossion} codo clock

ORIF [logical expression] code block OTHERWISE code block FIN

WHILE [logical expression) code block FIN

REPEAT code block UNTIL [logical expression]

FOR [variable} = [expression] TO [expression) code block FIN

FOR [variablel » [expression] TO [expression] BY [expression] code block FIN

PERFORM proccdurename [integer!

PROCEDURE proceduronano [integer! code block ENDPROC (Integer)

I nput ''Output

Macros

Macros RD, RDE, ROENO, and WR provide tr.e following amplified inout/output statenonts.

RD tUidl 11) 125 Tne RD macro reads values into list [1] according to fornat

specification tS3 fron input device d Default for data directed argument U is input device Nil.

RDE EU:dJ E1J [25

RDEND The RDE nacro is sinllar to the RD nacro except that the flic on device

d is closed and control is transferred to the atatenent following the RDEND statement If sn "end of file" is encountered.

WR ElKdJ [11 [23 The WR nacro writes fron list CI] according to format specification £2]

on output device d. Default for data directed argument U is output device N01 .

Recurrent Code Macros BEGINBLOCK, BEG1NFUN. BEGINSUB, BLOCKS, CREATE, DESTROY,

PARAMETERS, VARIABLES, REPORT, INITIALIZE, DUMP, EVENT, INTERACT, EMOBLOCK, ERROR, RESPOND, SEND, STORE, SYSTEM, TIMER, TR, and WARN Simplify the programm 1 ng of recurrent segments of code.

-46-

Control Prograns

CONTROL PROGRAMS

ASTuf?£(LOC,N) This subroutine allocates space fron tho free store ar.-ay lA'RA. The

calling program places tho required nunber of useable location!, ;n argunont N If thoro are less than N useable locations loft in free stco, tha error message OUT OF FREE STORAGE SPACE Is vritten and the program is halted Otherwise ASTORE returns with the locatiorn of the al'ocsted t-oace m argument LOG and tho allocated number of useable locations m N The allocated nunber of useable locations nay exceed the -equircd nunber by up to nine locations because ASTORE docs not scan the free store chain beyond the first block that contains N or nore locations, ana frce store blocks arc not split if blocks of less than ten locations will be left in the free store chain. If there is no block in the free store chain containing N or nore usoable locations, a chain of blocks containing fron ft to at nost N+9 useab le 1 ocat i ons wi u be a I I ocaxed start ino with tho largest tilock. then i-> free store, Trace level 5 nessages are wr itten upon entry arc; just before returning to the calling progran.

CEC(MlN.MAJt.KODE) This subroutine checks tho event code -at 1A(IPCINT) If i* :s less

than M!N or greater Than MAX, the error message ILLEGAL EVENT CODE is written and the progran i s halted. OtherwIse, the event cede is returned i n argument KODE,

CLOCK

49-

Control Prograns

This subroutine rcnovos notices fron tho scheduled event chain in chronological order, advances TJME to tho tine of the schcdulod events, and sends event Messages to tho funci ions in whiich tho events occur. Once a run has &cen started by eat line CLOCK, TIME is advanced until it roaches a value equal to or greater than TSTOP or there ore no noro scheduled events to be procossod (when this condition exists, TIME is advanced to TSTOP).

CMBtLM.LH.LP.LN.LL.NL.NT.NC.A1 This subroutine creates a material data block with linkage pointers LH,

LP, LN, and LL; containnent level NL; material type NT; iton count NC; and nass A. The location of the naterlal data block is returned in argument LM.

C0PYSEL1,L2) This subroutine copies the storage block at location LI into a new

block at L2, If the now block happens to be larger than the original \sec the description of subroutine ASTORE for ar# explanat ion of why this is possible), the remainder of the block at L2 Is assigned integer value zero. If there are not enough contiguous locations in free storo to be allocated in a single new block, the error message NO CONTIGUOUS SPACE AVAILABLE is written and the program is halted.

CREATE*NT.NP.NV,1PVT1 This subroutine creates an instance of function type NT with NP

parameters and NV variables. Parameters, variables, and initial condition locations are zeroed using the parameter and variable types defined by the

-50-

Control Proarans

celling function progran. The- number aasio^cd by the u;.«"~ to the coated function is. in cornon location MTO.

CRND1(NO,LMO,LM) This subroutine creates tho natonal data structure sho»n jr. Figure 3 l

and ass tgns values to the d&ta b I ocks to r-np-^tent NO *"CO bulk hatsc I a Is defined by tho naterjal specifications at location LMS The location of the free bulk natcrisl data structure is returned in ersuncnt LM

LiVi I I 1

LO

LO

FIGURE 3 1 Material data structure created by CRMD1<NO,LMS,LM>

CRMD21N1 JNO JLMS iI_m This subroutine creates the natcn^l data structure shown in Figure 3.2

and assigns values to data blocks that represent a container that contains Nl other containers, each of which contain NO bulk materials defined by the natorial specifications at location LMS- The location of the container of coma i ners is returned i n argunont LM .

Centre I Proorans

FIGURE 3 2 Materia5, data structure create* by CKMOS < N" , NO , LMS , LP!) .

DESTRO(IPVT) This subroutine destroys the function at LB usinp the parancte" and

variable types in array srgunont IPVT

DNPSYS This subroutine writes thg symbolic nano and contents of each location

in connon tolock. SYSTEM, sends a dunp nosseco to each function of the nodel systen, end writes the stetus and contents of the scheduled event and free stc o chains.

-52

Control Prograns

DUMPSIPVTJ This subroutine writes, In clunp f ernal, the iys'.cn data, parsnotcrs,

variables, and initial conditions of tho function ct 'ocatio^ LB

ERROR Th I s subrout I no cal Is subrout i no DMPSY-S to display ihc currant status

of the nodel system .and then halts the program

EVDRSCN.M EDT) Th i s subrout i ne returns a sanple value- V fron a populari or "ith the

dIstr Jbut i on type i n i nteaer paraneter N and the sts:1stics in rod list parameter M of the calling progran. Trace level 5 ne.isages are ...rittcr cpon entry and just before returning TO the calling progrer

FPNTRStNFUN) Th i s subrout t ne sex po i nters LB, LP, l_-V, LI, and LE for f u"ct i Pi N~JN

FRMDtUM) This subroutine frees the storage spaoe in the material dsta structure

at location Ln\ Trace level 5 messages are- written upon entry end just before returning to the calling program.

FSTuRECLOC) This subroutine frees the storage space at location LOC T-i5cc level 5

messages are written upon entry and Just be-fore returning to the calling program.

-53-

Control Programs

1AC(L,11 This function returns the intcgor value of the 1th useable locatiun in

tho chain storago bcolnnlno at location L.

1CH<I CHAR) This function returns an integer value* corresponding to tho position of

fll format character I CHAR in the string: 0 I ... 9 blank A B . , 2 $ * - / = ) * ( ' ampersand. A -1 value is returned if I CHAR is not one of tho 49

characters above.

I CHECK This subroutine is called immediately after trace messages are written

on tho interactive output device. It responds, as described in the MCSS user's nanual, to the following interactive- inputs'

ABORT EVENTS(N) FREE 1A(N) IAIN,Ml IACCL.N) iAC(L.N.M) ICTYPE [DUMP lpeiNT ISECA I TRACE

-54-

Control Programs

LB LBCA LBLISr LBPT LBUF LCSS LE LEC LFFB LFFE LI LLE LLFB LLFE LMS LNE LP IM

HATL1L) WFRCM WINNFL MNSE MSO MTO NFE NFL

-55-

Control Proflrans

tin N12 NOl N02 NREP NRUN NSE RA<N) RA(N,M) RACCL.N) RAC(L,N,M> TIME TSTOP

1ICtI) This function returns the I th integer initial condition value of the

function st LB.

IL1CCI,J) This function returns the Jth clement of intcecr list initial condition

1 uf the function at LB.

ILPtI,J) This function returns the Jth element of integer list parameter 1 of

the function at LB,

-56-

Conti* o 1 Programs

ILV(I,J > This function roturns tho Jth olcnont of intcoor list variable I of the

function at LB.

INCREC(LI) This subroutine writes the warning nossaoc INCREMENTING EVENT CHAIN,

then allocates ISECA additional locations to the scheduled and free event chains.

IPC I ) This function returns tho 1th integer parameter of the function at LB

lUf 1FIM, ISP) This function returns an integer randon variable t'-a'. is uniformly

distributed with ncan M and naxinun deviation (spread) ISP

IVfl ) This function returns tho Ith intcoor vorieblc Df the 'unction at L & .

KEYWDIL) This function compares the Al fornat character string starting at

location L with the MC5S keywords CREATE, DESTROY, PARAMETER, VARIABLE, REPORT, RUN, and END and returns values 1 through 7 respectively if the character string matches one of the keywords. Value 0 is returned if there is no match.

-57-

Control Programs

LCSIUOC,iTM) This function returns the location of tho lth element in chain storage

start i no at I scat i on LOC.

LIINMIN.M.iJ This function returns the value of LCS ernunont ITH that locates the

Ith ixen in the Nth sot of M items.

MAIN This is tho main (FORTRAN) progren of MCSS Depending upon the

requirements of particular computing systems, it nay contain statements that define the input and output files MCSSIN and HCSSOUT and the numbers of the devices on which these files reside. For the COC 7600 computers at Lawrence Livernore Laboratory, the statement PROGRAM MAIN(MCSS1M,MCSSOUT,TAPE5-MCSS1N,TAPE6=MCSS0UT) defines these files on device nunbers 5 and! 6 respectively.

For this systen, the statement CALL CHANGE<5H+MCSS) is also used to execute the program under dt-op file name +MCSS. Those are the only machine dependent statements in program PAIN, however, other statenents nay vary in different installations as described below.

In the initialization of dynamic storage, locations IAILFFB+1) and NFL must be assigned values 2 leas than the dimension of array IA/RA.

In creating the block pointer table, the second argument of the statement CALL ASTOREfLBPT, ) must be I greater than the maximum number of functions to be allowed in a model system.

-38-

Control Programs

In creating the message stack, the second argument of the statement CALL ASTORE(LMS, > must be 2 greater than 4 ' tries the maximum number of messages allowed In the stack.

In creating the event chain, the second argument of the statement CALL ASTORECLEC, > must be 5 tines the maximum number of scheduled events, and ISECA must be assigned the increment size of the event chain allocation.

Appropriate values must also be assigned to symbolic device nunbers Nil, N12, NS1, and N0£.

Program MAIN writes the heading MATERIAL CONTROL SYSTEM SIMULATOR VERSION X.K date at the beginning of the program output Fil©, then executes each job step spec i f i ed by keywords (n the i nput file. Comment or annnat i on I i nes i n the input file are echoed into the output file. When an END keyword is encountered, the progran writes the nininunt number of free locations that existed during the execution of all preceding job steps and terminates execut i on of the program.

M2UR<LMJLMS,N.MTJNC,A,NCT/AT) This subroutine simulates the neasurenent of the material defined by

the data structure at LN according to the Nth neasurenent specification at location LMS. The notorial type to be neasured is in argument MT. The subroutine returns- the measured count and mess in arguments NC and A and the •true count and mass in ar3umenxs NCT and AT respectively. Trace \evel 5 messages ar-e written upon entry and Just before returning to the calling progran.

-59-

Corvtrol Prograns

NCBt1(LO=.NC,BM) This subroutine returns the nunbor of comsiners NC and total bulk nass

SM in tic irate1-ia I represented by the data structure at location LOC.

NSTATS(N) This f u n c t i o n r e t u r n s tho nurt icr of s t a t i s t i c s ""oquircd t o cJofino

d i s t r i b u t i o n typo N.

PCOMINTO.NCTYPE, Il,l2,l3,ld,i5.16.17,l8> This subroutine prepares a connunicatio.-i block for transmission fron

the calling function to function NTO. Tho connunica*. ion type is in argument NCTYPE and the integer data values are in arguments 11, 12, . . \&,

PHLB This subroutine prints the header of the function data structure at LB

In dunp fornat.

P1CLBI1PVT) This subroutine prints the initial condition values of the function

data structure at LB in dunp fornat. Array argunent IPVT contains the parameter snd variable type codes of the calling progran.

PIDFlL.r^N) This subroutine prints the function data structure tton at location L

in dump format. Argument K contains tii .• r»aranctcr or variable typo code.

-dO-

Control programs

Argument N contains the parameter or variable index of the item to be pr i ntcd.

POP(Li,M,M> This subroutine pops N Intoocrs off the stack, at location LI ancf places

the values In array M. The first value removed fron tho stack is placed in Location MiN), the second value is placed in location MfN-1), etc.

PPLBCIPVT) Th i s subrout J no pr ints tho parameter values of the function data

structure at LB in dump format. Array arounent 1PV7 contains tho paraneter and variable types of the cat lino program.

PUSH(L1.N.M) This subroutine pushes N integers in array M into the stack at location

LI. The value in M M ) is pushed onto the stack first, the value in M(2) is Pushed onto the stack next, etc.

PVLB<IPVT) This subroutine prints the variables of the function data structure at

LB in dump format. Array argunent IPVT contains the paraneter and variable types of the call!no program.

RAC(L.1) This function returns tho real value of the Ith useable location in

chain storage starting at location L.

•61 -

Control Progrens

RICf I ) This fjricll'jp returns tho !lh real Initial caiditiof cf the Function at

LB

RLI C ( J , J > This function returns tho Jth element of real list initial condition I

of the function at LB

RLPfI,J) This function returns the Jth olenont of real list paranotcr 1 of the

function at LB.

RLVtI.J) This function returns the Jth element of real list variable I of the

*uncti on at LB.

RNOKKIRMU,SIGMA) This function returns an appro* mat ion. of a r.ornally distributed randon

variable obtained by summation of 12 sample values from a uniforn randon number genepeto- Arguments Rrou and SIGMA arc respectively the nean and standard deviation of tho nornal distribution

RMORMT< RKU,S1GMA,RMAX,RH1N) This function returns a randon varieblo obtained by truncating the

values generated by function RNORM. Arguments RMU and SIGMA are respectively the nean and standard deviation of the untruncatcd nornal

-62

Control Prograns

d i str I but i on Arguments RMAX ancf RM I N aro respect, i vc 1 y the na« i nun and nininun values returned toy RNORMT.

RP< 1 > This funct ion returns the Ith real pflranctcr of the function at LB.

RUNJFIRM.SP) Th J s -Funct ion returns a un i f ornly di str ibutcd , real randon var lab tc .

Argunent RM j s the nean and SP is the na«inun dev i ation or spread of the uniforn distribution.

R V t: J This function returns the Ith real variable of tne function at LB.

SAMPLIl,J,V) This subroutine returns sarpio value V of a .-ano'ort variable with

distribution type in RAC(l,J+2) and statistics in RAC(l,„' + 3 ) , RACt l , J + 4) , ... etc. Trace leve I 5 ncssages are w~ itten upon entry and just before returning, to the calling proflran

SCHEDJT,Na.K.LD) Thi a subrout i ne schedules an event with code K for occ^rr-cncc at t i ne T

i n funct i en KB and w i th event data at I ocat i on LD Argument I_D nay conta i n val uo 2cro i f no data are included in the event r.oticc An error ncssago i s written and the eroQran is halted if there is an attenpt to schedule an event pr j cr to the present va1uo of TI ME

-63-

Control Prcgrans

SEND Th:s Subroutine transmits connunicaxions anong the MCSS control

programs and functions at the node I system. Messages aro transmittod fron function MFROM to function MTO if ICTYPE is- Booster than zero Response messages are returned fron function MTO to function MFROM If ICTYPE is loss than zero. The sending function MFROM, the receiving function MTO, and the communication typo ICTYPE are pushed onto the message stack each time a message Js transmitted and arc popped off the stack ?ach tine a response is returned. If the current addresses MFROM and MTO and the conmunI cation type do not agree with the values in the nessage- stack, when responses are transmitted, the error ncssage ILLEGAL RESPONSE is written and the program is halted. This verifies the consistency o*f connunicat ions among i nteract i ng o I orients of the node I system.

SETtKODE,IPVT) This subroutine sets parameter and variable initial condition values

for the function at LB. Parameter values are set if KODE contains a 1 and initial condition values are set if it contains a 2. The paranete- and var lab le I ndoxos and values to be ass igned are read fron input dov Ice NI I i r. the form (1 n m) values C i n m> values ... where i is the parameter or variable index -and n and « are the first and last list elorient indexes respectively. The n and n are onjxtod for scalar valued parameters or variables. Numerical values are converted to the type specified by array argument 1PVT. Elements of the input data are blank

-64-

Control Programs

del In i ted and nay be inter spar sod with any -character sirmgs ihat * i 11 not be Interpreted as a nunoric value.

TIMER This subrout 1 no suppli cs 11 n i na i nf omat i on bate a upon the interaction

response of o 601 TIMR function Arguucnt !K nust contain tining code 2 or 3 of tho ca I L i ng oroorar, ot herwi sc tho error nossapc ! LLEGAL " I ri! NG CODE i s written and the progran is h&ltcd. If the -current vs'. JC of T ; ME is #ithr" the opcrat ing t inc segncnts of the col I 1 no f ur-ct ion T! MEP returns a 1 i ~ argur»cnt J and tho current value of TIME m a^ourcnt - if ~;ME ;S rot v-ithin the operating tine segments of the calling function. ~:MER -a*»i.rnh the tining code in argument I and the tine at wricn tie rot oDcrat; j tmc segnani will begin in argument T. For lining code £ t -.s ;s the starting tine of the next shift, and for tinjng cede 3, it is the sta-ting tiro off

the next Interval . Subroutine TIMER is not callcs by f^ct^^s ™:t~ : ,rinG

code 1 si nee these f unct a ons arc spec i f iec' to oe : ~ CDI::"^I; WS scca*. : c~

TRNFRIKNC.FB.Ll.La) This subroutine perforns the transfer of nater-al frc- t~c data

structure at location LI to the data structure at L2 Arg^-c^t NC contains the number of containers to be transferrea *f NC exceeas tre '-unte-' of containers at LI, an error ncssagc :s written and the progrs1- :s halted t * NC is negative, all of the containers at Li ara transferred Argunent FS contains the fraction of the bulk, naterials at LI to be transferred Containers and bulk, materials nay be transferred sopsratcly or in conb i nat i on.

-65-

C o n t r o l P r o g r g n s

UPTD i LM)

This subroutine updates the material date structure at location LM. values of total count and total nass are sunned and assigned to tho appropr iato b locks in the natcr ial data structure as it is scanned f ran right to left and fron bottom to top

URN<IX,U) This subroutine returns a pseudo-random variable U that is unifornly

distributed on the real interval O. to 1.0", A corresponding pseudo-randon integer IX on the interval 0 to 10000 is returned in argunent 1X_ The pseudo-randon sequence is initialized by calling URN vith a negative integer in argunent JX,

A suitable version of subroutine URN nust be prepared for the particular computing systen on which MCSS is i nstalled The vers ion in Appendi* A of this nanual Is for the CDC 7600 computers at Lawrence LivcrnorG Laboratory. There the ORDERLIB subroutine IRNFL(X) is called to initialize the pseudo-randon sequence at seed valuo X, tho value used by pseudo-randon number generation function RNFL to generate the next menbor of the sequence Tho seed value is output In trace level 5 nossages when URN is initialized. ORDERLIB subroutine LRNFL Is called to reset RNFL to the value X returned by IRNFL.

WRMD(LM) This subroutine writes the material data structure at LM on output

device NQl, The complete contents of naterial data blocks are written as the data structure is scanned fr-ori right to- left and fror> botton to too.

-66-

Functi on Prograns

ZIAfL.N) This subroutine zeroes N olcncnts of array J A starting at L.

Z I AC (LOO Thi s subroutine ass igns Intogor zoro vatuos to all elomentt of the

black chain in array IA/RA starting at location LOC

ZRA(L.N) This subroutine zeroes N elements of array RA starting at L

2RAC(LOC> This subroutine assigns real zero values to all clcnents of the block

chain in array TA/RA starting at location LOC.

ZTABLE<LOCJ This subroutine assigns integer zero values to the useable loctions of

the table data structure at location LOC-

FUNCTJON PROGRAMS

B101 This subroutine inplencnts 101 RCHB functions that sinulatc the receipt

of material batches entering the nodel systerv Parameters 1 through 14 are assigned by the user. The initial value of variable 1, the nunber of batches received at a simulated roceiving station, is autonatically zeroed.

-67-

Function Programs

8102 This subroutine implements 102 IDAS functions that simulate the

initiation of divorslon action soquoncos. List valued parameter l is assigned by the usor. Thoro are no node! stato variables

B3C1 This subroutine implements 301 TRMB functions that simulate the

transport of material batches within the node! system. Parameters 1 to 3 are assigned by the user, Parameter 4 is & dunny used to save the nessafie clock returned to functions that place rateriaI batches in transport. Initial values of variables 1 to 3 which arc respectively the number of batches in transport, the naxinun nunber of batches in transport, and the t m e the naxinun number first occurred are automatically zeroed by the subroutine. Dunny variable 4, which contains the location of the message block pointing to the material batch noat recently placed in transport, is also autonatically assigned value zero.

Communication blocks that point, no material in Transport are linked on a two-way chain as shown in Figure 3.3- 1V<4) points to tho block, (material) most recently placed in transport. When a transport operation is completed, the blocks are removed from The *ehain by resettino the pointers of the adjacent blocks, !A(LN+6> of a blocEs at LN points to the block previously placed in transport and IA<LN+9) points to the block next placed in transport.

-68

1

L'.-H LK-V •

, v " "CZZI • --tP

Funct i on Programs

FISURE 3.3 LintcaQO of connunicatlon blocks that poirvl to natcnal in 30' TRMB functions.

B401 This subroutine inplenonts 401 STOM functions that stc-o bulk and/or

containerised materials in the nodal systen. Paranotcrs 1 to 6 arc assigned by the user. Ounny parancters 7 and 8 respectively point to the data structures that rcprosant neterials currently in storage and in holdup. Initial values of variables 1 to 15 used in data collection and confutation of storage statistics arc autonatleally initialized by tho subroutine.

Funct i on Piogfgns

Thj 5 subroutinc implement s 50 T I NOA f unci i or>s that p. tmu lato i nefeponctorvt fictions. Psrsnetors 1 to A arc assiancd oy tho user. There are no nodcl state variables.

B502 This subroutine implements 502 MAQA functions that simutatc actions by

which material is acquired from other functions in the model syston Parameters t to S are assigned by xhe user, Dumny parameter 6 points to the data structure representing divertod material There are no model state var!&bles

B503 This subroutine implements 503 DEPA functions that simutatc dependent

actions Parameters 1 to 6 arc assigned by the user Dummy parameter 7 po in'i,s to the report data shown in Figure 5. 3. Initial values of var lablcs i %o 7 arc assiiGncd automatically by tho subroutine as follows: Variable 1, the timq Tl that the action started, is initialized to value -2.0 to indicate that initially the action has not been started Variable 2, the duration cf the DEPA action, and variable 3, the tine delay of the next action of tho sequence, are initialized to value -1,0. Variable A4 the number of the next action function, and variable 5, the index that points to the tine delay statistics of the next action in the sequence, are initialized to integer zero. Variablo 6, which points to the parameter list that defines the action sequence, is also initialized to integer zero. Variable 7, the tine TO the last condition notice was received, is

-70-

Funct»on P^ograns

1 0 to indicate that initially no condition notices

FIGURE 3 3 Report data structure of 503 DEP* funct:o*-i&

B504 This subroutine inplcnems 504 MODA functions thai nor

parancters or the current values of variables in othc^ fu-v: node I syston. Paraneters. 1 to 6 are assigned by the user node I state variables.

B601 This subroutine inplonents 601 TIMR functions tha* supply tini-to,

Infornation used by other functions of a node1, systen to control their Operating schedules, Paranetcrs 1 to 7 ere assigned by the user. Variable 1j the tine the current period will end. 13 initialized to the value of the specified schedule period. Variable 2, the currom shift nunbor, and

initial 1zed to vaIuc have been received.

*y the \'a'. JCS of tt ons of the

Therc a~e no

71-

Function Programs

used to save pointers to data required for -continuation of the ©etion sequence.

B6D1 Thi s sub*4out I r>c I «P lenents 601 TIMR f unct i oris that supp ly t;m i ng

information used by other functions of a node I fiysten to control their operating schedules. Paraneters 1 to 7 are assiftned by the user. Variable 1» the tine the current period will end, is initialized to the value of the spec Ifled schedule per i od. \fartabic 2, the current sh i ft nunber, and var iable 3, the t imc the current sh ift will end, arc initial!zed to i nteger and real value 2oro respectively. Variable At the tine the next shift will bee in, is initialised to the first shift starting tine of list valued parameter 3, Variable 5, the current interval nunber, and variable 6, the time the current interval will endj are initialised to integer and real value zero respect i vcl y . Var 1 able 7, the t inc the net interval will beg in, is initialized to the first Interval starting tine of list valued parameter 6.

B602 This subroutine implements 602 SCAS functions that start control action

sequences upon command by other funct ions in a model system, List valued parameter l is assigned by the user. There- ere no model state variables-

B701 This subroutine implements 701 MZMB functions that simulate the

measurement of material batches and the transmission of measurement results

-72-

Funct i on Progrens

to other funct ions in a nodel system. Parameters 1 to 10 era ass igncd by tho user. Dummy parameter 11 is used to save tho location of message blocks returned to functions that olace material in the ncasui*encnt function. Variable 1, the number of batches currently in Measurement; variable 2, the nexinum number of batches concurrently measured; and variable 3. the time the maximum first occurred, are initialized to value zero. Dummy variable a, which points to tho nessage block that points to the materia", batch most recently placed in the measurement function., j p. eiso initialized to integer zero

6702 This subroutine implements 702 CMBA functions that record data an-3

compute material balance statistics using material measurement information received from other functions in a model system Parameters " to «5 a«-c assigned by the user. Dummy parameter 5 po-inxs to the report ciats structure shown in FSflure 3,4,

-73-

Function. Prograns

6702 This sul)routinc imolcr.onts. 70? CMBA functions, that record dsta and

conpute rkgtcrial balance statistics using natcrial ncssuroncnt info~nation received fron other functions in a nodel syatcn Paranctcrt. 1 to d arc sssiqnod C>y the user Dunny rjsranctor 5 points, to the report data structure L^o^n in Figure 3,4.

"•••>[:;] f . . j : .

4 - M-;,orMCM. -J.»IJ », -. • , , ,.

'J' - • M ' •.'-,,• ••• .

FIGURE 3.4 Report data structure of 70? CMBA functions

B703 This subroutine i rip tenants 703 MNTR functions that simulate material

-74-

Function Prograns

control components that nonitor typo 1 stinuli ocnc-atcd by othe- fjnctions in a nodcl syiiton Paranctcrs 1 to 8 arc BbSJtjncd by the user Va-iablc 1, the noiiitor detect i on signal 5tetc, is initialized to mtr.gor zero

B001 This subrou* i no inoloncnts 801 DTBL -function*!. t **_ or •> ,• i ac ace 11! on

n&k. i ng capability in nodcl systens based1 on the standard 'orn ai»<- notation of 1 in:tod entry decision tables. Paranotcrs 1 to i ' arc aEii^nod D> t hc user Dunny pBrgnotcr ^ 2 points to the repor* Oats structure shOv.n in Figure 3 5

FIGURF. 3 5 RcDo -t data structure of 601 D"3L functions

-75

SUBROUTINE ORGANIZATION The s u b r o u t i n e s t n a t inrj l e n o n t MCSS f j n c x i o ^ s arc s j n u l i f : C G and

= t a n d j i r o i ; c a u / use of n a c o s . BEG1NEL0CK. CREATE 3 E S T » 0 ' , mRAMFTERS

•VARIABLES SEFCST, I N I T I A L I Z E DUMP, EVENT. RFiPOhO I uTESiCT 1 C"\ , PROCEDURE

- 7 7 -

\rjw * *' *.\ . **••

.:. ai. f o I lo*i.

SUBROUTINE B / / / USE SPM BEGINBLOfcK t / x / 1 ; nurl-jor D a ^ a n t a o r a : : lonbc f /a*- : at, ! t - i ; : i p < / * .<a 1 tiC CREATE DESTROY PARAMETERS VARIABLES REPORT t/.X* nncntinic nanc3 INITIALIZE DUMP EVENT (event cod inn) RESPOND I-a: to INTERACTION (Interaction coding) RESPOND t-9] [return value of lCTyPE; PROCEDURE proccduronanc [i] (procedure coding) ENDPROC tl] (other procedure def ini 11 ons ) ENDBLOCK

The standard nacros arc replaced as required to ci ceitc ipocia; uata structures, return allocated storage space when function!, are dcitroyoo. produce error nessdges whcri lllogat attempts arc made to initialize variables, etc For oxejnplos, see the function programs r' ^spendu A

- ?8-

*EFE*ENCLS

p fc M u l ' i . " . n " , " o t o n a l C o - f ' / Sysir—j. 0 " La«rc""CO _ , i / c - c - c . a b f a ' . o 1 " / Jg^uar y ' y "*& N W;i t h Pr c,0*- . r- ^ c . ..< 1 U | , rwjrM by &l r?p- . •-•: : j

Conr_r l e a t s o n v o* t h e ACM, '< d No ' 1 . A f

Pro^t i c c ^ f i l l . E-g]c«oon C l i f * ^ . 1973 D i j K s t r a , and C

~r>; r-.g , Acadcn i c P E bourdon, Tcc^iaucs of Prog*-. Siruct.^o

SO'J-^-I: PronriS'" Macros

Appendi* C SC.Jn=E 'RCGRAM

CL:CHE SPM PARAMETER! _l - • ' , I 26= ay', =0. PARAMETER' L:-»lJ=0 I8=52]=0. 13=533=0, C-i = 545 =0. 10=553=01 PARAMETER!"16-^6 3=0, I[7= 57 3=0,_t8 = 5«J 3=0,_£=! = 593=0.Ill 0=603=0) PARAMETER! Clls6i:*0, £12-621=0. M3-631 = 0 [1<i = Sd3=0, [15=653=0; PARAMETER! L1S=66I=C, £17=671=0. [16=683=0, [19=693=0. [20 = 703=0) OARAMETEROai=71 j=0, C 22 = 72) = 0.": 23 = 73] s 0, [24=743=0, [25=753=0) PARAP'FTER(_P1 =0, P2 = 0, PJ = 0,_Pd = o, P5"0. •='6=0, P7 = 0 pg = 0, P9 = G l PARAMETER!_P10=C, Pli=0, PI2=0. P)3=0. P14=0, P15=0,_P16=0, P17=0; PARAMETER! °'8-C P19=0 "20-0 P2is£> P22=0, P23=0, P24=0 I P Z S ' O J tlOI'J [102*] cioa -3 CI 0 4 - 3 tl05'3 C1C6-3 £107-3 C10B 3 no9-: [ 11 rj • 3 C II 1 - 3 [112"3 C113"3 LI 14- ] [115-3 C116"3 [117-3 [118-3 [119-3 [120-1 [121-3 [122-3 CI 23-1 C124" 3 C125"3 MACRO CASE.ELSE,ENDPROC, cIN.fC9 IFP,NESTLEVEL,OKIF,OTHERWISE, 1 PERFORM, PROCEDURE, R!3 RUE, RDE'ffi. »E=>EAT, UNTIL WHILE, HR, 1 BES I MBL3CK, 8EGI NFUN, BES J NSUB, CUEA T, CREATE , DESTRCl' 1PARAMETERS,VARIABLES,REPORT,iMlTiAL!2E,DUMP 1 EVENT, !NTERACT,ENOBLOCK,ERROR.RESPOND 3SN0.

-80-

m:l.TZHE SYSTEM i'-'tH i '=?. WAtN •.irr-E',DCt.:CHE c:rcne CASE IFF i [ * i ] CNUCLrCrIF CLICHE ELSE OEFAJLT t i l t " : =-JRAMETER< Ei , • . ' • • ! • « * t*. - .AC isc TO i= F I N ;

l .&= ] CONTINUE --AKAMETESr.: • •- >_AG: -o: LNDCLlCHE : . ' C H E END'ROC '•afiAMETf R' P= f .c . ; : J : • flE*£vir"T^«? p - * C C * r I

iC TC L : = _ P ! ' r= PL 1 i • I S O C L I C I E " ^ !C *E F IN teiA'-IETEHt E.&F • . i - , : ' ? _ ' L A ; \ ; F : t - F L A S : ".» :: . •

EL bi : CONT ! "•. JE ' . ; - - : [ = FLAG] \'E " >'

F . \ ; ;ONT;NI.E : . ! r i [ : ' - ^ ^ s ; r^E £ *> i»C 70 £=_ri.RFJ

- * . *0-* • i t^t. D|F! [ = _F,_Ae; ME 3 . 2

.-• r... i - : CCMTINUE

. = =:••) C C M T I N J : ™ARAMETE=' .= •. 'iDC_ I CHE '.;.ICHE coa CEFAu'uT :i1 [ I * UEFAJ_T is: i£: -.ESTLEVEL -ARA.-:ETES( T-E,\ •;•= ^ -;•; £,_S£ i i : = [2i -c t i; ;

:5-- E L S E : I I : = t i:-i^: i F.• < (a: i : i : -< o : : i it 5 oc T O 'JO 7C ['= -IN]

.b: LONT:NUE F'ARAilETER ' [8= ' . AG! =0 : ENCCL.;CHE nL ! IHE 1FF J E F A U L T t - i : i c ; '>ARA»-ETER< l.= !.»1 : MES'l £ V E L f -ARA'X T ER'.7MEN, i ,=_L - : • ' , E;.=.r ' • " ' I I 1 GO TO ;s= - M E V ; »0 TO L3=_Sl.SE;

: * . CO-, "IMJE

Source P^w-en Macrot

PARAMETER C_M= FLAG}=0, [5= FtN3=0> ENDCLICHE CL1DHE NFSTLEVEL DIFC L.LT.13)3. NEST LEVEL EXCEEDS 12 PRECOWP TERMINATED BY INTENTIONAL USE OF ILLEGAL GLOBAL ARG. PARAMETERC_L=[=999).> ENDCLICHE CLICHE ORTF DEFAULT £45 [3] PARAMETERC.THEN(1)= L 4*\ . ELSE..FLAG, FIN) GO TO C=„FlN3

C - . E L S E ] I F ( [ I ] I 8 0 TO IZ- THEN: GO TO C3=.ELSEJ [23 CONTINUE PARAMETEHf.E1= FLAG3=OJ ENOCLICHE CLICHE OTHERWISE DEFAULT (T3 r 1 J PARAMETER! _ E L S E M ) = L <!»£. FLAG, FIN) GO TO [=_FIN3 [= ELSE3 CONTINUE PARAMETERC.t1= FLAG3=C) ENDCLICHE CLICHE PERFORM PARAnCTERC_P=SC*£!j) ASSIGN (23 TO LC= P3 GO TO [=_P3

C23 CONTINUE PARArTETERC.Pt 1 3 = _PC1 I-M ) PARAMETER (=PL= !00*I1U oiF(_ptii.eo. m . t_PLI=_PLJ.3 [_PLI= PL3t213 ENDCLICHE CLICHE PROCEDURE PARAPTETER(.P^50+t 1 3 >

C=_P3 CONTINUE ENOCLICHE CLICHE RD DEFAULT CU3 [NI13 READICU3, 131 Hi: C33 FORMATI[23) ENDCLI CHE CLICHE ROE DEFAULT CUi CNI13 READICU3, C33 HI) IF(EOF,tU3)GO TO [=493 (31 FORMAT!CS3) ENDCLICHE CLICHE RDENT GO TO (13 -ns-

Source Program Macros

1=491 I EOF*I CALL UNLOAD (Nl I > [1] CONTINUE ENDCLICHE CLICHE REPEAT PARAMETERt_L=_L«1) NESTLEVEL PARAMETER! THEM(I)= L 4*1 , .ELSE, _F|_A&, .Ft N 1 M* .THEN J CONTINUE ENDCLICHE CLICHE UNTIL PARAMETER* THEN(I)= L 4*1,.ELSE,„FLA&, FIN) I PC 11 3>GD TO [ZJ GO TO C=_THEN3 [23 CONTINUE PARAMETER<_L=_L-I) ENDCLICHE CLICHE WHILE DEFAULT 14} tZ3 PARAMETER(_L=_L*11 NESTLEVEL PARAMETERC.THENC1)=_L 4*1..ELSE,.FLAG,_FIN> [5=_ELSE1 IF<I1J)G0 TO [2=_THENJ GO TO I3=_F1NJ [23 CONTINUE PARAMETER(.t4-.FL*G:=0J ENOCLICHE CLICHE WR DEFAULT £UJ CN01] WR1TE<tU3, C31)[1 J C3I FORMATCt23) ENOCLICHE CLICHE BEGINBLOCK PARAMETER C.R=0) PARAMETER*.t1=863 =0) PARAMETER* IPVT=12=873*[3=883 ) DIMENSION TPVT( IPVT) STORE SYSTEM DATA IPVT/C4I/ 1A(LV)=IACLV)*1 1F(ICTYPE.GE.O>GO TO 99991 GO TO 15=893 99991 GO TO (99100,99200,99300,99400,99500,99600 39'00.99800.99900) X, ICTYPE 99992 RETURN ENDCLICHE CLICHE BEGINFUN STORE SYSTEM ENDCLICHE CLICHE BE13INSUB -83-

STORE 6VSTEM ENDCL:CHE CLICHE OREAT H9IOr> CALL CREATE! I -B6: . [ = 073 . t=-Sfl]

ENDCLICME CLICHE CREATE

•? '00 CALL CREATE! [ = 8 6 1 , [=873 , [=93:: . HC.SPONO [ - 1 ) [ 01 ITNDCLiCHE CLICHE OESTRoy . ..'00 CALL OESTROUPVT) RESPOND C-21 CC] I'NDCLICHE CLICHE PARAMETERS =,9TC0 CH.L SET( 1 , !PVT. IMTD.fEALDl RESPOND C-3] CO: ENDCL1 CHE CL[CHE VARIABLES '-iS-100 C\LL SET (2; IPVT. ] NTD.REALD) RESPOND C-4] [C; ENDCLICHE CLICHE REPORT 99b00 CONTINUE WR C I A ( L B * 2 H 8 i J.' g»-| | LJMf.T j ;"i!M ! : 1 ' X r • i 1 w - • -RESPOND C-S] [01 ENOCH CHE CLI CHE INITlALIZE 996C0 CONTINUE "OR II] = [II TO [IAfLB*i!J

I AC LV- '.*! ) = !Af LI - ' + ! > FIN RESPOND C-6] CO; ENDCLICHE CLICHE DUMP 99700 CALL DUMPC1PVT) RESPOND C-7J (01 ENDCLI CHE CLICHE EVENT 9SU00 CCNTINUE TR CM [EVENT] ENDCLICHE CLICHE ."NVERACT 99SO0 CONTINUE TR i3] [INTERACTION: 6MDCL i CHE CLICHE ENDBLOCK D I F ( R U T 0 ) 2 ,

1=893 CONTINUE ERROR [ ] LLEOAL RESPONSE CCMMjf-01 Ft R,LT, 1 >I ,

Source Progran

100000 I 00000

[ = 89.' !00000=IAILP1 CIF(_R.NE.Ill, GO TO £=763 DIF(_R.NE.ail, GO TO <[=763.[=773>, OlFt.R.NE 3)1 . GO TO ([=763,[=773.[=7833 DIF<_R.N=..431 . GO TO (." = 763, [ = 773, [=783 , 1=793 1 DIF1.R NE 5)1, GO TO (C=7S3.t=773,[=783,[=793,[=8011. 3IF(„R NE.631, GO TO <C=763,[=773,[=783.[=7SJ,1=80J,i DIF(.=?.NE.7)1, GO TO (C=763,[=77 DIF'_R.NE.**:. GO TO [[=763,[=773.[=783.[=793 t DIF(_R.NE.9>!, GO TO (t=763,(=773 1i COOOO DiFt R.NE.10)1, 6f, T5 f [ = 763, 1 = 773 1' -353), 100000

[=801 801

t=7B3,i=793.t=6C).[=6.3

1000OU i COOOO

[=81!). !00000 [=BI j [5823). :oor;oo [=B13.T = 823, 1=633 J, I 00000

[ = 8 2 3 . i = 6 3 3 , [ = 8 d j ) .

1 = 7 8 3 , t = ? 9 1 . [ = 8 0 3 . [ = 8 1 3 . [ = 8 2 3 [ = 8 3 3 , [ = B d 3 .

/1X, [*1 )H[ 1 ]]

END ;'.rL!CL. I CriE C L I C H E E R R O R WR [ 3 [/TX,15H ERROR CALL ERROR ENDCLICHE C L J C H E RESPOND !CTYPE=[13 iPOINT*T21 GC TO 99992 ENDCLICHE CLICHE SEND PARAMETER; R=_R->-I> DiF(_R.LT. I I 13, NUM8ER OF REENTRANT POINTS EXCEEDS 10 PRECOMP TERMINATED BY INTENTIONAL USE Cr ILLEGAL GLOBAL ARG PARAMETER(_R=£=9S93) IA(LP)=_R GO TO 99992 PARAMETERC Q- R+75J

[1= R3 CONTINUE E N O C H CHE CLICHE STORE DIMENSION IA(1 1 COMMON RA(11 EQUIVALENCE (!A<11,RA<11) ENOCLICHE CLICHE SYSTEM COMrtON /SYSTEM/MFROM,KTO.1CTYPE, I POI NT.

-as-

Source P-ogran Macros

1 I DUMP. ISECA, ITRACE.LB.LBCA.LBLIST.LBPT.LBUF_CS6 LE. 1LEC.LFFB,LFFE,LI,LLE.LLFB,LLFE.LMS,LNE.LP,L^,MINMFL, 1MNSE, NFE, NFL. Nl1,NI2,NOl N02, NREP.NKUM, NSE TIME. TSTOP ENDCLICHE CLICHE TIMER IFF [IP([!)I EQ 11 1=1 T = T M E

ELSE MFROM=IA(LB-2 l M T O = I P ( ' 2 1 ) ICTYPE=9 1P0INT=0 SEMD CALL TIMER( I P ( ( ! J I , I , T ) FIN EMDCLICHE CLICHE TR IFF [I TRACE.GE, [ 1 J J WR ETIME,IACLB*2>5 [IX.£10 d,!4,3X,I*2JH[2}1 DIFU-2] E0.2)l, WR CC33] [[4]} FIN PARAMETER{_T=t1]fl) IFF [1 TRACE.GE._T.AND. (I TRACE.EQ.I TRACE/2 2)1 WR C'J:NOa: £T!ME. ! M L S * 2 S 1 t i X . E i f t 1 . i l P./ i-ST*l21< D I K ( C - 2 J . E Q . 2 ) 1 , WR t (J :N021 CC31! I M J J CALL J CHECK F IN

ENDCLICHE CLICHE WARN WR t U ' S 9 3 [ ] 1 / I X , 1 7 H WARNING , ' I X , I » l l H t l ] ] ENDCLICHE

Sou'-ce Control P»"Ofl"yr:s

CONTROL PROGRAMS

C ASTORE(LQC.N) 'J SUBROUTINE ALLOCATES STORAGE SPACE IN ARRAY .A/RA

SUBROUTINE ASTOREILOC.NJ USE SPM BEGINSUB TR [5] :ASTORE( .N>) CN] M X . I 10] NUM=N IFF INUM.LT 8)

NUM=S FIN

IFF [NUM.GT.NFL] ERROR [ASTORE OUT OF FREE STORAGE SPACE] FIN

PERFORM SCAN I 1j CASE IL.LE.O]

ERROR [ASTORE NO STORASE BLOCK FOUND !N SCAM) CRIF 11 At L-H ) .QE. NUMfIOJ

PERFORM ALLOCATE-SEGMENT 12] ORIF CIAtL»l> GE.NUK]

PERFORM ALLOCATE-BLOCK 133 ORIF [ i A t L M ) LT NUM.]

PERFORM ALLCCAIE-CHAIN [43 FIN

IFF [NFL.LT.MINNFL] MINNFL=NFL FIN

TR [5] tASTOREI LOG,N>) [LOC,N3 MX,2110) RETURN

c PROCEDURE SCAM t1] L=LFFB M=IAIL*1) LM=L LPP=0 LPM=0 WHILE IIACL-H ).LT.NUM.AND.L.NE.0}

IFF CIA(L*1).GT.MJ M=IA<L+t) LM = L LPM=LPP FIN

IFF [LBCA*IA<LBCA*1 ) *2. EQ . L- OR. L»l-A< L*l )<2.EQ.LBCA] PERFORM COMBINE-BLOCKS CSJ FIN

LPP = L L=IA(L1 FIN

IFF CL.EG.OJ -87-

Source Control Prooran^

L=LM F I N

LEIOA-IACLBCA) IFF [LBCA.ECI.O]

LBCA=LFFB FIN ENDPROC [13 PROCEDURE ALLOCATE-SEGMENT 12] IFF [L.EO.LFFB1

LFFBTL*2«NUM ELSE

IA(LPP>=L<a*NUM FIN IFF CL.EO.LLFB: LLFB*L«2*NUM FIN IAfL*2*NUM)=IA<L) IA(L»3«NUIi)-l A<L+1 l-NUM-2 MFL=NFL-NUM-2 IFF tLBCA.EO.L3 LBCA=L+Z+NUM FIN IA(L)=0 IA(L*1)=NUM IA(L»Z>=NUM LOC*L ENDPftOC C2] PROCEOURE ALL0CATE-BL8CK [3] IFF IL.E0.LFFB3 LFFB=IA(L1 ELSE

I A < L P P ) M A ( L > FIN NFL=NFL-1ACL*1) IFF ILBCA.E0.L3 LBCA=!ACLI IFF [LBCA.EO.OI LBCA=LFFB FIN FIN IA(L)=0 IA (Lȣ>s ]ACL+1> LOC=L EMDPROC C33

PROCEDURE ALLOCATE-CHAIN M l I F F [LH.NE.LFFB3

1A<LPM>'0 IA ILLFBl=LFFe LLFB=LPM

Source Control ProflranS

LFFB=LH LPH=0 F I N

l.1=LCS<LM,MLfK> L2=LCSB»1« IA (LCSB» I ) Whi LE I L . N E . L B C A . A N D . L . N E . L C S B ]

L = I A ( L > F I N

IFF TL.EO LBCA J PERFORM REASSIGN-LBSA (6) F I N

IFF CLS-I I . G E . ICO IA<LM*2)=NUK LFFB=LT-1 IA<LFFB>=IA<LCSB) 1A<LFFB+11=L2-L1-2 NFL=NFL-NU1-2 ELSE IA<LM*2>=CiUn-»L2-Ll LFFB=IA<LCS8] NFL=NFL-NUM-LS*L; FIN IFF [LFFB.EO.OJ WARN CASTORE LAST AVAILABLE BLOCK ALLOCATED] LLFS=0 F I N

LOC=LM ENDPROC M 3 PROCEDURE COMBINE-BLOCKS [SI IFF [LBCA.LT.L] IA(LBCAJ=IA(L) !A(LBCA*1>=!A(LBCA+1)*1A(L*11+2 IACLPP)=LBCA ELSE IACL+l>=iA[L*l>*lACLBCA+l)+2 FIN LBCA=IA(LBCA) IFF ILBCA.EQ 0: LEJJA'LFFB FIN NFL=NFL+2 ENDPROC t5] PROCEDURE REASSIGN-LBCA [63 IFF lL2-Lr.6E.10J LBCA=L1*1 ELSE LBCA=!ACLCSBJ FIN EMEPROC tSJ END

Source Control Progrens

C CEC(M1N.MAX,K00E) C SUBROUTINE CHECKS EVENT CODE AT 1 Ad POINT) AND PRINTS ERROR MESSAGE C IF NOT IN THE INTERVAL CMIN.MAXl. SUBROUTINE CEC<MIN.ttAX,K^UE1 USE SPM BEGINSUB KODE=1At1 POINT) IFF CKOOE.LT.MIN.OR.KODE.OT.l1.iX] ERROR [CEC ILLEGAL EVENT CODE] FIN RETURN END C CLOCK C SUBROUTINE ADVANCES SIMULATION TIME. SUBROUTINE CLOCK USE SPM BE01NSUB WHILE IT1ME.LT.T3T0P] CASE [LNE.0T.O] TlHE=RAtLNE+1) MFRQMsO KT0=U(LNE+2> ICTYPL'iS lP0lNT=LNE+3 CALL SEND N=IA<LNE) IA<LNE>=LFF£ LFFE»LNE LNE«N NSE=NSE-1 NFE=NFE+1 ORIF iLNE.EO.O] T!ME=TSTOP OTHERWISE ERROR CCLOCK NEGATIVE LNE] FIN FIN RETURN END C CMB(LM,LH,LPB.LN.LL.NL,NT,NC,A) C SUBROUTINE CREATES MATERIAL BLOCK INITIALIZED TO LH,LPB,...,A C AND RETURNS BLOCK LOCATION LM. SUBROUTINE CMBtLM.LH,LPB,LN,LL,NL,NT,NC,A1 USE SPM BEGiNSUB CALL AST0RE(LM,8) IFF ttA(LM).NE.O) ERROR tCMB NO CONTIGUOUS SPACE FOR MATERIAL BLOCK] FIN IA<LM*2)=LH IA(LM*3)=LPB IA<LM»4)=LN

-90-

Sourco Control Programs

IA(LM*5)>LL IA(LM*6)*NL 1A(LM*7)*NT IA(LM*S)=NC RA(LM*9>«A RETURN END C C0PYB(L1,L2I C SUBROUTINE COPIES THE STORAGE BLOCK AT LI INTO A NEW C BLOCK AT L2 AT LEAST AS LARGE AS THE ORIGINAL AND SETS C THE REMAINDER OF THE BLOCK AT L8 TO INTEGER 0. SUBROUTINE C0PYB<L1,L2> USE SPM BEGINSU8 CALL AST0R£iL2,IA<LI+t)l IFF CIACL2).GT.O] ERROR [COPYB NO CONTIGUOUS SPACE AVAILABLE] FIN FOR (13 • CD TO EIA(L2-HJ] IFF CI.LE.IA(L1»1S1 IA<La+1+I)>IA(L1+1+l ) ELSE IA(L2+l+l1=0 FIN FIN RETURN END C CREATE <NI\NP,NV, IPVT] C SUBROUTINE CREATES INSTANCE MTO OF FUNCTION TYPE NT WITH NP PARAMETERS C AND NV VARIABLES. PARAMETER, VARIABLE AND IC LOCATIONS ARE ZEROED C USINS PARAMETER AND VARIABLE TYPE CODES IN IPVT. SUBROUTINE CREATE!NT,NP,NV,IPVT) USE SPM DIMENSION IPVTC1) BEGINSUB NSlZE»3+NP+2 NV CALL ASTORE(LB.NSIZE) IFF HA(LB) .GT.03 ERROR [CREATE NO CONTIGUOUS STORAGE FOR FUNCTION] FIN 1A(LCSCLBPT,MT0+1> >=LB IA(LB)-NT IA(LB*2)=MTO IA(LB*3)=NP IA(LB*4)'NV LP=LB*S LV=LP*NP LI=LV*NV LE=LI+NV-1 FOR [II = II] TO ENP) IFF IIPVTU >.EQ,3) RACLP-1+l)»0. -91-

Source Control Pros-

ELSE I A ( L P - I * I >=C F I N

F I N FOR til = E13 TO [NV1

I F F [ IPVT<NP«I I . E 0 . 3 3 R A I L V - 1 H 1 = 0 . RAILV-1+I»NV)=0. ELSE I/VCLV-1 »l >=o IA(LV I*1*NV>=0 FIN FIN RETURN ENO C CRM31(N0,LMZ,LM)

C SUBROUTINE CREATES NO MATERIALS AT CONTAINMENT LEVEL 1 ACCC'ftDlNG C TO MATERIAL SPECIFICATIONS AT LKZ AND RETURNS THE LOCATION IN LM. SUBROUTINE CRMDItNO,LM2,LM> USE SPM BEOINSUB TR [S3 CCRMD1 INO.LMZ, >1 CN0.LMZ3 MX,SI 10} CALL CMBILl,0,0,0,0, 1,0,0,0. FOR CNM3 = h i TO EMOJ CALL CMBILO,0,0,0,0,0.0,0,0.) IA<L0+7)=RAC<LMZ,LJINM(NM,7.1))

IA (L0+8 ) rRUNlF<RAC<LMZ,L I INM(NM,7 ,2 ) ) ,RAC(LMZ,L I lN ;» l<NM,7 , 3 ) ) ) RA<LC+9)*RNeRMT<RAC(LMZ,LHNM<NM,7-, at > ,RACtLMZ,LI I NMtNM, 7 , 5 ) ) ,

1 PACILMZ.Ll INM<NM,7 ,6 ) ) ,SAC<LMZ,LI I NMl Nil . 7 , 7) ) ) I F F [ N M , E O . I ]

! A < L 0 * 2 ) = L 1 I A ( L 1 + S ) = L 0

ELSE 1A(L0*3)=L0P IA<L0P+4I-L0 PIN LOP=LO FIN CALL JMDCLl) L«=LI TR tZl ECRMElK , , LKIJ CLMJ t IX, 1103 RETURN END C CRMDSCNI,NO,LMZ,LM>

C SUBROUTINE CREATES N1 CONTAINERS AT CONTAINMENT LEVEL 2 WITH C NO MATERIALS IN EACH ACCORDING TO MATERIAL SPECIFICATIONS AT C LMZ AND RETURNS THE LOCATION IN LM. SUBROUTINE CRMDEfNI,ND,LMZ,LM) USE SPM BEGINSUB CALL CMBfLM.0,0.0,0,2,0.0,0.) FOR INC] = [1! TO CN1J

-92-

Source Conxro] Prograns

CALL CKBILa,0,0,0,0,2,0,0,0.) IFF INC.E0.13 IA<L2*-2>=LM IA(LK*S)=L2 ELSE IA(L2P+<1)=L2 IA(L2+3)=L2P FIN L2P»L2 CALL CRMDKNO.LMZ.L l / IACL£*S)=L1 1ACL1«-2>=L2 F I N

CALL UMD(LM) RETURN END

DESTROCIPVT) SUBROUTINE DESTROYS THE FUNCTION AT LB USING PARAMETER AND VARIABLE TYPE CODES IN IPVT. SUBROUTINE OESTRO(IPVT) USE SPM DIMENSION !PVT<1) BEGINSUB FOR CIJ = CLP] TO CLI-1] K=I-LP+1 IFF C(IPVT(K).EQ.2.0R.IPVT(K). EO.a).AND.1A<I3.GT.03 CALL FSTORE(IA(rI) IFF [I .GE.LV.AMD. IA< I *IA(LB-MJ ) .GT.03 CALL FSTOREd A( I-HA(LB*4> ) ] FIN FIN FIN IA(LB)=0 CALL FST0REILB1 IA(LCS<LBPT,MT0+1)>=0 RETURN END DMPSYS SUBROUTINE DUMPS MODEL SYSTEM. SUBROUTINE DMPSYS USE SPM BEGINSUB WR t 3 nX,6HCOMMON3 WR CMT03 C10X.3HMT0,112] WR CMFR0M3 tSX,5HKFR0M,I 123 WR I ICTYPE3 C7X,6HICTY. 'E, I 123 WR t tPOlNTJ t 7 X , 6 H l P 0 1 N T , U 2 3 WK H0UJ1P3 £8X,5H1DUMP,t123 WR CISECAJ t 6 X . 5 H I S E C A . M 2 ] WR [ ITRACE] [7X,6H1TRACE,1123 WR ILB3 t t l X , 2 H L B . 1 3 2 ] WR CLBCA] C9X,0HLBCA, Ml

- 9 3 -

Sojrce Control Programs

WR CLBLIST) [7X,6HLBL!ST,I12) WR tLBPT) C9X.4HLBPT.I12) WR CLBUF3 C9X.4HLBUF,112) WR tLCSB) C9X,4HLCSB,I 12) WR [LE3 IMX.2HLE.II2) WR CLEC] C10X.3HLeC.ll2) WR CLFFB1 t9X,4HLF''e, 1 12) WR CLFFEJ t9X,4HLFFE.H2) WR CLI) CMX,2HLI, 112) WR CLLE] [10X.3HLLE,1123 WR CLLFB1 C9X,4HLLFB,!12) WR CLLFE] C9X.4HLLFE.112) WR CLMS) C10X.3HLMS,112) WR CLNE) C10X.3HLNE.112) WR CLP) CDX.ZHLP, 1 12) WR ILV3 mX.HHLV, M2J WR [MINNFL] C7X,6HMINNFL, I 12) WR [MNSE1 C9X.4HMNSE,I 12) WR CNFE1 C10X.3HNFE,112) WR [NFL1 [10X.3HNFL,[12] WR (Nil] C10X.3HNI1,C12) WR CNJ2] C10X.3HNC2,112) WR [NOl] M0X,3HN01, I 121 WR CN02] [10X.3HN02.[12) WR [NREP1 [9X.4HNREP,1121 WR CNRUN] C9X.4HNRUN,1121 WR CNSE) [10X.3HNSE,112) WR [TIME) C9X.4HTIME.E12.4J WR CTSTOP) [8X.5HTSTOP,E12.41 K=!AILBLlST+3> FOR CJ) = CI) TD CK) MFROH=0 MTO^IACLCSCLBLIST, 1+2)) !CTYPE=7 IPOINT=0 WR IMT03 I I X . 8 H F I I N C T J 0 N , 1 5 ) CALL SEND FIN WP. C ) C1X.11HEVENT CHAIN] WR ILEC) I10X.3HLEC,112) WR CLNE] C10X.3HLNE,112] WR CLLE) C10X.3HLLE.112] WR CLFFE] C9X.4HLFFE,[123 WR CLLFE) [9X.4HLLFE.H23 WR CNSEJ CI0X.3MNSE.I12) WR 1MNSE) C9X.4HHNSE.112) WR CNFE) C10X.3HNFE.112] WR [[SECA) C8X.5HISECA,112) L=LNE WHILE CL.0T.03 WR tL,tA<L>,RA<L*1),IACL*2).1A<L*4).IA<L+4>] S C1X.211Q. 5X.E10.4.3M0)

-94-

Source Control Programs

L-1A(L> FIN MR t 3 I1X.10HFREE STOREJ WR CLFFBJ t9X,4HLFFB,1123 WR ILLFB1 C9X,4HLLFB 1 12] WR INFLJ n0X.3HNFL. i l23 UR ILBCA3 [9X.4HLBCA.1123 WR CMINNFt-3 I7X,6KMI«NFL, 1123 i-=LFFB WHILE tL.GT.OI WR CL,tA(L),IA(L*1U C1X,31101 L=1A(L) FIN RETURN END C DUMP(IPVT) C SUBROUTINE DUMPS THE MOCZl FUNCTION AT LB-SUBROUTINE DUHPCIP'.T) , USE SPM BEG1NSUB CALL PHLB CALL PPLBC1PVT3 CALL P«LB(1PWT) CALL PICLB(IPVT) RETURN END C ERROR C SUBROUTINE PRINTS OIAONOSTIC DATA AND STOPS PROGRAM. SUBROUTINE ERROR USE SPM BEG INSUB CALL DMPSYS CALL EXIT RETURN END C EVDRSCN.M.V) C SUBROUTINE RETURNS SAMPLE VALUE V FROM A POPULATION C WITH DISTRIBUTION TYPE IN INTEGER PARAMETER N AND STATISTICS IN C REAL LIST PARAMETER M OF THE CALLING PROGRAM. SUBROUTINE EVDRS(N,M,V) USE SPM BEGINSUB TR C51 (EVDRSIN.M, ) ] CN.M3 IIX,21101 CASE M P C N J . E Q . I I V=RUNIF<RLPfM,1),RLPCM,2)) ORIF CIP(N).EO.S) V=RN0RM<RLP<M,1),RLPtM,2)> ORIF CIPINJ.E0.33

V=RNORMT< RLP<M, 1 ) , RLPCM., 2) ,RLP(M, 3 ) , RLP(M, 4)J ORIF t iP«NKE0.41

CALL URNtlX.U) V*-RLP<M, 11 ALOG(U)

-»5-

Source Com.ru! Prcc^rans

OTHERWISE ERROR IEVORS ILLEGAL DTSTRIBUTICH TYPE] FIN TR 151 CE'/HPSr , , V > ] [ V I C I X , E 1 2 . 4 1 RETURN END C FPNTRS(NFUN) C SUBROUTINE SETS POINTERS LB, LP, L,, LI, AND LE FOR FUNCTION WON, SUBROUTI JE FPNItfS(NFUN) USE SPM BEG1NSUB LB*!A(LC5(L»I'T,NFUN*1 )) NPMACLB + 3) NV=iA<LS*<1) LP=LE»S LVsLP*NP LI=LV4NV LE*LI*NV-1 RETURN END 0 FRMDILM)

£ SUBROUTINE FREES MATERIAL OAT/i AT LM. SUBROUTINE FRMD(LM) use SPM BEGiMSUB TR £53 EFRMD<LM)3 [LM] £ IX, I 103 IFF tLM.LE.03 WR ELMJ 11IX,14HN0 MATERIAL AT, 163 ELSE M0DE=1 L=LM WHILE [L.NE.LM.OR.MODE.NE.43 PERFORM STEP t13 FIN CALL FSTORE<LM) TR [S3 CFRMQ DONE3 FtN RETURN C PROCEDURE STEP 11 3 CASE IMODE.EQ.13 CASE [[AIL+51.3T.03 L=IA<L+5) ORIF [IA<L*-<l>.<3T.O] MODE=8 L=IA(L*4) OTHERWISE MODE=3 FIN ORIF [MODE.EQ.23 CASE [tA(L+5),l3T.01 M0DE=1

Source Control ="Og r-ans

L=IAIL«5) ORIF [|A(L*-a).GT.OJ

L=IA(L«1I OTHERWISE

MCOE-3 FIN

ORIF IKODE.EQ.33 IFF [L.NE.LM3

LF=L ELSE

LF=C FIN

CASE CrA!L>a).GT03 M0DE=4 L = I M L + 2 I

ORIF t l A < L * 3 ) . G T . o : L=IA<L+3)

OTHERWISE IFF CL.EQ.LM3 EtSs

PERFORK ERROR C23 FIN

FIN IFF ILFGT.03

CALL FSTOREILFI FIN

ORIF CMOOE.EO.d; CASE CIA<L-.4) .GT.03

LF = 0 MODE=2 L=I A(L*<!)

ORIF H A I L O ) . S T . 0 3 LF = L M0DE=3 L»lACL+3)

ORIF CrA(L*2>.0T.03 LF = L L=IA(L»2)

OTHERWISE PERFORM ERROR 123 FIN

IFF tLF.0T.03 CALL FSTOKE(LF) FIN

OTHERWISE PERFORM ERROR CS3 FIN

ENDPROC C M PROCEDURE ERROR (2 J ERROR [MATERIAL DATA STRUCTURE ERROR (FRKO

Source Control Programs

ENDPROC f2] END C FSTOhEILOO C SUBROUTINE FREES THE STORAGE SPACE AT LGC. SUBROUTINE FSTOREfLOC) USE SPM BEGINSUB TR C5) tFSTOREILOClJ CLOC] [IX,1103 L=LOC N»IAIL+I) WHILE tiACL7.GT.01 L=!AIL> N=N*IA(Lfl) FIN [A(L>=LFFB LFFB=L8C NFL = NFL*-N TR tB] CFSTORE DONE] RETLPRN END C IACIL,I) C FUNCTION RETURNS INTEGER VALUE OF ITEM I IN CHAIN STORAGE AT L. FUNCTION IAC(L, I) USE SPM BEGiNFUN IAC=IA(LCS<L, I )) RETURN END C I CHIICHAR)

C FUNCTION RETURNS AN INTEGER VALUE CORRESPONDING TO THE POSITION C OK THE AI FORMAT CHARACTER FCHAR IN THE 3-TRINGI 0 1 ... 9 [BLANK3 C A B . . , Z S * - / = . ) ,'"(APOSTROPHE) 8 C RETURNS -I IF ICHAR IS NOT 6..E OF THE 49 CHARACTERS IN THE LIST. FUNCTION ICH(ICHAR) USE SPM DIMENSION 1(49) BEGINFUN DATA I/1H0, H'l , 1H2, 1H3,1H4.1HS.1H6.1H7.1H8, 1H9, IIH , I HA, 1HB. 1HC, 1HD, lHE.IHF.IHG.IHH.IM, 11HJ,IHK,1HL.1HM,1HN,1H0,1HP.1H0,1HR.1HS, 11HT,IHU,1HV.1KW,1HX,1HY,1HZ.1HS,1H+,1H-, 1IH/,IH=,1H.,1H>,1H 1H,,1H(,IH',1HC/ K=l WHILE [K.LE.19.AND.I-IHAR.NE.](K)I K=K+1 FIN IFF tK.6T.-«9J ICH-.-1 ELSE ICH=K-1 FIN RETURN

Source Corvtrcl ?roar3ns

END C !CHECK C SUBROUTINE RESPONDS TO THE FOLLOWING INTERACTIVE INPUTS: C ABORT C EVENTS<N> C FREE C IACN> C lACN.MJ C IAC<L,N> C 1AC<L,N,M> C ICTYPE C I DUMP C I POINT C 1SECA C J TRACE C LB C LBCA C LBLIST C LBPT C LBUF C LCSB C LE C LEC C LFFB C LFFE C LI C LLE C LLFB C LLFE C LMS C LNE C LP C LV C MATLCLI C MFROM C MINNFL C MNSE C MSG C MTO C NFE C NFL C Nil C NI2 C NO! C N02 C NREP C NRUN C NSE C RAIN) C RAfN.M) O RAOtL.N) C RACCL,N,M)

-99-

C TIKE C TbiOP

SI/isROUTI'lf I CHECK U.SE SPM (JEGI NSUB DIMENSION i P v T d L1=LfJUF»? L<JC-=LBUF»ei M l 1 S = N I ! NCIS^NOl N J 1 - N i 2 NOI=NOJ> PFUFOnM ACTION t1] Nl I-HI IS NOI-NOIS K TURN

C PPOCFDURE ACTION t!J «c ti IAI 11,1 =LI,i_8o>: reoAia WHILE [lA'Lt1.N£.1H I

CASE t:A(L1) EO.1HA] NOI-NOIS ERROR I USER AEOPT;

ORIF tiAIL!) EO.1HE3 PERFORM EVENTS ti>31

ORIF tJA I i . 1 ) .EO 1HF1 PERFORM FREE [ 2 4 i

ORIF t l A C - l ) .EO 1H: J PERFORM I t2J

DRIF M A I L I ) ED. I HI.) PERFORM L 13]

OR!F CIA<LI).EO.1HM; PERFORfl M [41

ORIF t l A ( L l ( EO IHN] PERFORM W [5]

CRIF [IAILI).EO.>KR1 PERFORM R [6J

ORIF [IAIL1 ! EO.tHT) PERFORM T [ 7 ]

OTHERWISE PERFORM PROMPT [S3 FIN

RD f<IA<1).I=L1.L80I1 taOA-] FIN

ENDPROC [11 C

PROCEDURE I 121 CASE [ 1AIL1 «-1 ) .EO. IHA3

PERFORM IA [9] ORIF riAfLI*1>.EG.1HC1

WR [ICTYPE1 I1X,6HICTYPE, 13! ORIF [JA<L1+1I.EO.1HOJ

WR IID'JKPJ 11X,3fc!DUMP, 123 ORIF [ I A I L H 1 1 . E0 7HP3

WR [.'POINTS M X , 6HJP0.NT, J61 ORIF [ I A < L ! * 1 ) E0.14S3

WR fISECAJ [1X ,5H ICECA,163 OR IF [ 1 A I L 1 - 1 1 . T O 1HT3

WR [ITRACE3 [ \Y. 6HI TRACE, ! 2'-OTHERWISE

PERFCtW =RCMPT [83 F I N

ENDPROC 123

PROCEDURE I. (33 CASE CIAIL'•!>.EO.1HB1

PERFORM LB [103 ORIF [IAIL1M ) .EO 1HC3

WR [LCS33 tIX.dHLCSB,161 OftlF t!A(L1+1) EO 1HE3

PERFORM LE till ORIF £ IA(LI + 1 ).EO.1HF3

PERFORM Lr i12] OSIF tIA!L1*1).EO.1HI3

WR [1.13 t1X,2HL! , 163 0R1F CIAtLl+1).EO.1HL3

PERFORM LL [133 ORIF IlAfLH-1 ) .EO. 1KNJ

WR [LNE3 MX.3HLNE. 163 ORIF ttAfLI'1i.EO.1HM3

WR tLMSl [1X.3HLMS,161 ORIF [IAIL1+1).EO.IhPJ

WR ILP3 [ 1 X , 2 H L P , : 6 3 ORIF t I A I L 1 + 1 ) EO.1H1/3

WR tLV] [1X,2HLV,I63 OTHERWISE

PERFORM PROMPT [63 FIN

ENOPROC [33 PROCEDURE M [43 CASE CIAIL1+!).EQ.1HA1

CASE [ I A ( L 1 + 2 > . N E . 1 H T ] PERFORM PROMPT Ca3

ORIF [ I A < L I + 3 ) . N E . 1 H L 3 PERFORM PROMPT £63

ORIF [ I A ( L 1 + 4 1 . N E 1H<3 PERFORM PROMPT [83 F I N

LSCAN=L1*5 PERFORM SCANLNM [223 CALL WRKD(LNM)

ORIF [ I A < L l * - i l .E O . 1HF3 W'R [MFR0M3 C I X , 5W1FRCM, 133

- 1 0 1 -

OR.'F [ I A C L 1 * 1 I , E O . 1 H I 3 WR CPIINNFL3 [ 1X, 6HMIfJNFL, 16]

OR:F [ JAfLI • ! ) .EO. 1H*<3 WR IMNSEJ [ IX . i lHMNSE, I <J3

ORIF I I A I L l ' l ) - E D . I H S 3 PERFORM MESSAGE 180]

ORIF U A I L l ' l ) EO. IHT3 WR [MTOJ [1>«,3MMTO, J33

OTHERWISE PERFORM PROMPT 163 F I N

ENDPROC 143

PROCEDURE N [53 CASE tlA(L1*l!.EO.1HF3 PERFORM NF £143 ORIF tIA<l_l*lJ.E0.1HI3 CASE £IA<L1*2J.E0.1H13 WR ENI1S] M X . 3 H N I 1 , I S 3

ORIF I I A ( L 1 « 2 ) . E 0 . 1 H 2 1 WR [M123 £1X,3HNI2.153

OTHERWISE PERFORM PROMPT £83 FJN ORIF tlA(Ll+1).EO.1H03 CASE UACL1 *2> EQ. 1H1 3 WR CNOISJ E1X,3HNQ1,IS3 ORIF tIA1L1+23.£0.1HEJ WR CNOZ3 [IX,3HN02,]53 OTHERWISE PERFORM PROMPT [83 FIN ORIF [|AfLl*l).EO.1HR3 PERFORM NR C1S3 ORIF IIA(L1*1).EQ.1HS] WR CNSE3 MX.3HNSE, 141 OTHERWISE PERFORM PROMPT 183 FIN ENDPROC C53

PROCEDURE R C63 CASE IIACLl'l I.EO. 1 HA. AND. IA<Ll+2) . EO>. 1H(3 PERFORM RA( 1163 ORIF UA1'_1»I > .EO.J HA.AMD. 1 A<LJ*2) .EO. 1HC3 PERFORM RAC £173 OTHERWISE PERFORM PROMPT tS3 FIN ENDPROC [6] PROCEDURE T £73

CASE [ | A C 1 * 1 ) EG. 1 H I ] WR [TJMCJ n y . 4 H T l M E . E 1 2 . 4 ]

ORIF [ l A I L l - O I . E 6 . 1 H S J WR ITST0P3 U X , 5 H T S T O P , E 1 2 . 4 3 OTHERWISE PERFORM PROMPT C61 F(N EN3PRCC [7:

PROCEDURE PROMPT [63 WR t J I IX.SHWHAT'J

•ENQPROC (61 PROCEDURE IA [93 CASE t l A , L I » 2 ) . E f > 1HI3 PERFOR1 IA( tlBJ ORIF tlA(l..l-»2> .£0. 1HC3 PERFORM !AC C19] OTHERWISE PERFORM PROMPT £8] FIN ENDPROC 19] PROCEDURE LB tlO] CASE [1A(L1»2J.CO.1H 3 WR (LB! IIX.2HLB,16] ORTF tIA(U«2) .EQ. 1 HC3

WR ILBCA] t 1 X , 4 H L B C A . I 6 ] ORIF t l A < U « 2 > . E Q . 1 H L ]

WR I L B U S T 3 tIX.6HLBLIST,16] ORIF C1A<L1+2>.E0.1HP]

WR tLBPTI K K . 4 H L B P T , 161 ORIF I I A f L 1 « - 2 ) . E & . l r u n

WR CLBUF3 t l X , 4 H L B U F . 1 6 1 OTHERWISE

PERFORM PROMPT tC3 F I N

ENOPROC t » 0 ] PROCEDURE LE til] CASE [IA1L1+2).EO.1H 3 WR CLE] t1X,2Hl.E,I6] ORIF (tA(Ll+2).£0.1HC] Wfl CLEC1 tIX,3HLEC,16] OTHERWISE PERFORM PROMPT C83 FIN ENDPROC [111 PROCEDURE LF MS] CASE tlA(Ll+2).EQ.1HF.AND.IACL1*3>.EO. 1HB] WR CLFFB1 I1X.4HLFFB,163

-103-

Sourco Cor^ro l PrDRr-ans

ORIF CIA(L1 *2) . EQ. 1HF.AND. I A (1.1 ' J) . E01. 1HE] WR CLFFE3 C1X.4HLFFE,18] OTHERWISE PERFORM PROMPT 16! FIH E*.DPROC 1123 PROCEDURE LL 1133 CASE t IA(I_1«2) ,EQ. 1HF3 WN [LLP] (1X,3HLLE,163 'JRIF CI A'-1*2) ,E0. IMF. AMD. I A'1.1*3J. EO. lnej WR [LuFBl Ml' 4HLLFB, 161 ORIF tIA(L1*2),E0 1HF.AND. IA(L1*3) EO. 1HE] WR ILLFE] C1K.4HLLFE,161 OTHERWISE PERFORM PROMPT C6J FIN ENDPROC C133 PROCEDURE NF [14i CASE CIAtLl*2>.EQ.1HE3 WR INFE3 C1X.3HNFE,143 ORIF C!A(LI*2).E0.1HL3 WR CNFL1 (IX.,3HNFL,, [63 OTHERWISE PERFORM PROMPT C81 FIN ENOPROC 114] PROCEOURE MR [153 CASE CIA<Lt+2).60.1HE3 WR INREP] C1X.4HNREP. 143 OR1F CIA<L1*2>.EQ.1HU3 WR [NRUN1 [1X.4HNRUN,|d] OTHERWISE PERFORM PROMPT E-B3 FIN ENDPRCC [15 J PROCEDURE RA( [163 KIR-S PERFORM I/RAf [SO] ENDPROC CI61 PROCEDURE RAO [171 KIR=2 PERFORM l/RAC C213 ENDPROC CJ73 PROCEDURE IA< [183 KIR* I PERFORM l/RA( C203

-104-

Source Conxrol Pri'Cjrarii

ENDHWOC [13] PROCEDURE I AC [19] f!R=! PERFORM l/RAC '213 ENOFPOC [19i PROCEDURE l/RAI [2G] LSCANSL1*3 PERFORM SCAKLNM 122] LSC/>N = L5CAfJ» 1 CASE UAILSCAN) EO.1H1)

CASE I K I R . E O 1] UR [ N , I A ( N ) ] £ 1 X , 3 H I A f , I d , 1 H ) . I 10]

ORIF t K I R . E O . Z J WR £N,RA(N)1 I1X, 3HSAC , 1 <J, 1H) ,ET2.d] FIN ORIF t)A(LSCAN) EQ.1H.J LSCAN-LSCAN*t PERFORM SCANLNM £22] M=LNM CASE [KIR.E0.1] WR EN,M,(IA(I),]=N,M)] 6 [1X.3HIA',J4,1H,,|4 1H!,5110/114X,5110)] ORIF tKIR.EO.2] WR CN,M,<RA(I>,!=N,M)3 & £1X,3HRA(, Id, 1H. , Id, lH),5E1Z.4/C1dX,5E12. d) J FIN OTHERWISE PERFORM PROMPT [8] FIN ENDPROC 120] PROCEDURE I/RAC [21] IFF [1A(LI*3I.NE.1H(] PERFORM PROMPT £6] ELSE LSCAN=L1-»4 PERFORM SCANLNM £22] L=LNM

LSCAN=LSCANH IFF tlA(LSCAN).NE 1H.] PERFORM PROMPT [8] ELSE LSCAN=LSCAN*1 PERFORM SCAHLNM tSSrl N=LHM LSCAN=LSCAN+1 CASE CIA(LSCAN).EO.1H)3 CASE CKIR.EQ.1J WR tL,N. IAC(L,N) 3 t IX, dHLACf, \A. 1H, , !d, IH) , I 103

-105-

Sourco Com.ro! ProScans

ORIF [ K I R . E Q . 2 J WR tL ,N ,RAC<L,N>3 C I X . 4 H R A L < . I 4 , : H , . I 4 . 1 H ) , E 1 2 . 4 ] F I N

ORIF t l A ( L S C A N ) . E O . I H , 1 LSCAM=LSCAN*I PERFORM SCANLNM C223 M=LW1 CASE [ K I R , E D . 1 3

WR [ L , N . M , < I A C < L , I > , 1 = N , M ) 3 6 t l X . 4 H J A C ( , { 4 , 1 H , , 1 4 , I H . , 1 4 , I H ) , 5 1 1 0 / < I 4 X , 5 1 1 0 ) 3

ORIF C K I R . E 0 . 2 ) WR tL.N.M,(RAC(L,1),1=N,M)3 & [|X,4HRAC(, I4,IH,,I4,IH,, i4,iH>,5Ei2.4/fi4x,5Ei2.4)3 FIN OTHERWISE PERFORM PROMPT [33 FIN FIN FIN ENOPROC £213

PROCEDURE SCANLNM 1223 LNI1=0 NCH=ICHCIACLSCAN>) WHILE CNCH.BE.O.ANO.NCH.LE.9.AND.LSCAM.LE.LB03 LNM=10 LNM'NCH LSCAN=LSCAN+1 NCH=tCHC IACLSCANM FIN LSCAN=LSCAN-1 ENDPROC 122]

PROCEDURE EVENTS (231 IFF tIA(L1+1).NE.1HV.0R.1A(M*2>. NE.1HE.0R.I A(L)+3) . NE.1HNS OR.I AC LI*41.NE. 1HT.0R. IAIL1+S).NE.1HS.OR.lA(LH-S) .NE.1H(3 PERFORM PROMPT [S3 FIN LSCANsLI*7 PERFORM SCANLNM £223 WR CLNM3 [1X.4HNEXT,15.7H EVENTS] N=0 L=UME WHILE [N.LE.LWI.AN0.L.GT.03 UR IL.IA(L>,RA<L*11,IA(L*2),1A(L*3),IACL«4)3C 11X,21 10,5X,El0.4,3[103 N=N*1 L=IA£L> FIN ENOPROC [233

PROCEDURE FREE £243 WR C 3 E1X.I0HFREE STORE1

-106-

Source Corv.rol Proarams

L=LFFB WHILE [L.6T.01 WR [L, IA(L),IA(L*m [IX,31103 L=IA(L> FIN ENDPROC 1241 C PROCEDURE MESSAGE t2SJ IFF C1CTYPE.EG.8J WR IlAfIP0INTI.1A11P0INT+1II* [IX.10HEVENT C6DE,13.2X.7HDATA AT,163 ELSE WR rMFROM.MTO,ICTYPE,I POINT]* [IX.SHMFROM,I6,ZX,3HMT0. I 6,2X.6H1CTYPE,I 3,ZX,6HIPOINT,16] IFF [ICTYPE.EQ.9 AND IPOINT.OT.O] MR [(1A(1P0INT*!),1=2,9)] tIX,7HME3SAGE,8161 FIN FIN ENDPROC t25] END C 1IC(I) C FUNCTION RETURNS THE ITH INTEGER INITIAL CONDITION OF THE FUNCTION AT LB. FUNCTION IIC(I) USE SPM BEGINFUN I1C=IACL1*Ii RETURN ENO C ILIC(I.J) C FUNCTION RETURNS THE JTH ELEMENT OF THE INTEGER LIST INITIAL C CONDITION I OF THE FUNCTION AT LB FUNCTION tLICd.J) USE SPM BEGINFUN IL1C=]A(LCS(1ACLI*I»,J*2)) RETURN ENO C 1LP<I,J) C FUNCTION RETURNS THE JTH ELEMENT OF THE INTEGER LIST PARAMETER I OF C THE FUNCTION AT LB. FUNCTION ILPd.J) USE SPH BEOINFUN ILP=IA(LCS<IAILP+I),J+2)) RETURN END C ILVd.JJ C FUNCTION RETURNS THE JTH ELEMENT OF THE INTEGER LIST VARIABLE f OF C THE FUNCTION AT LB. FUNCTION ILV(I,J> USE SPM BEOINFUN -107-

Source Control Proflrans

ILV=IA(LCS(IA(LV+I),J+21> RETURN END C INCREC(LI) C SUBROUTINE INCREMENTS EVENT CHAIN. SUBRCUTINE INCREC(L') USE SPM BEGINSUB WARN CINCREC INCREMENTINQ EVENT CHAIMJ LAST=L1 WHILE tlA(LAST) NE.O) LAST=IA(LASTI FIN CALL ASTORE(LS,tSECA) IACLAST>=L2 K=IAIL2+2)/5 NFE=NFE*K LFFE=L2*2 LLFE=LCS(L2,<K-1> 5*1) FOR IN = [t] TO IK J L=LCS(L2,(1-11 5*1) JAIL)=LCS(LZ.I 5*1) JFfJ.EQ.K)!A(L)=0 FIN RETURN END C : D(I) C FUNCTION RETURNS THE ITH INTEGER PARAMETER OF THE FUNCTION AT LB. FUNCTION IPU ) USE SPM BEG1NFUN IP=]ACLP+l> RETURN ENO C lUNIFtM,tSP) C FUNCTION RETURNS INTEGER I'ANDOH VARIABLE VITH UNIFORM J 3 .'3UT10N. FUNCTION IUNIFIM,\Sf) USE SPM DATA IX.U/1,0./ CALL URN(£X,U) 1UN1F=M-ISP+IF1X<U FL0AT(2 ISP+1!) RETURN ENO C 1V(I) C FUNCTION RETURNS THE ITH INTEGER VARIABLE OF THE FUNCTION AT LB. FUNCTICN IV(I) USE SPM BEBINFUN 1V=IA(LV*I) RETURN ENO C KEWDCL) -108-

Source Control Pr-ojjrans

C FUNCTION COMPARES THE A1 FORMAT CHARACTERS 1ACL), lAfL+l), C FOR A MATCH WITH KEYWORDS AND RETURNS THE VALUES BELOW: C NO MATCH 0 C CREATE I C DESTROY 2 C PARAMETER 3 C VARIABLE 1 C REPORT 5 C RUN 6 C END 7

FUNCTION K£YWO<d USE SPM BEGINFUN DIMENSION KWDS<10,7> DATA KWDS/1HC,1HR,IHE,1HA,1HT,1HE.3 1H ,6,

11HD,IHE.1HS,1HT,1HR,1HO,1HY,2 1H ,7. 1IHP,I HA,IHR,1HA,1HM,1HE,1HT,IHE,1HR,». IIKV.;HA.IHR,IHI.IHA,IHB,IHL.IHE,IH .a, 11HR,:HE.1KP,1H0,1HR,1HT,3 IH ,6, 1 IHR, IHU, lhN.6 1H ,3, tIHE,:HN,1HD.S IH ,3/ K=0 J=l WHILE tJ.LE.7.AND.K.EO.01

K = J 1=1 WHILE I! .LE.KWDSMO, JJ3

IFF [ I A ( L - 1 + I >.NE.KWD5<1 , J O K = 0 F I N

1 = 1*1 F I N

J=J+1 FIN

KEYWD=K RETURN END

C LCStLOC.ITH) C FUNCTION LOCATES ITH ELEMENT IN CHAIN-BLOCK STORAGE AT LOC.

FUNCTION LCSILOC,ITH) USE SPM BEGINFUN LCSB=LOC N=0 WHILE tN»IA<LCSB+I>.LT.ITH.ANO.LCSB. HE.O]

N=N*1ACLCSB+1 i LCSB==1A(LCSB) FIN

IFF tLCSB.LE.O] LCS=0

ELSE Lt;S=LCEB-H+!TH-N

-109-

Sourco Control Prograns

FIN RETURN END C LIINMIN.M.I) C FUNCTION RETURNS T'<- .tS LIST INDEX OF THE I TH ITEM IN THE C NTH SET OF M ITEMS FUNCTION LIINMIN.M,t) USE SPM BEGINFUN LIINM=(N-1) M»l*2 RETURN END C MAIN 4/A/7B C PROGRAM CONTROLS MCSS EXECUTION. PROGRAM MAIN(MCSSIN,MCSS0UT,TAPE5=MCSSIN,TAPE6=MCSS0UT) USE SPM DIMENSION !A(20000) COMMGN RACSOOOO) EQUIVALENCE <IA<1).RAI1)I SYSTEM CALL CHANGE <SH<-MCSS) C C ASSIGN I/O DEVICE NUMBERS, TIME, AND (TRACE. NI1=5 NI2=59 N01=6 N02=S9 TIME=0. ITRACE=0 C C INITIALIZE DYNAMIC ST0RA6E LFFB= 1 (A(LFFB)-O IAILFFB+1>=19998 LLFB=1 NFL=1999S MINNFL=NFL LBCA=1 C C CREATE BLOCK POINTER TABLE CALL ASTORECLBPT.IQI) IA(LBPT*2»=IAtLBPT+2)-1 CALL ZTABLE(LBPT) C C CREATE MESSAGE STACK CALL ASTORE(LMS.421 IA(LMS+2)=lAILMS+2)-Z ]A(LMS+3>=0 C C CREATE EVENT CHAIN CALL ASTORE(LEC,500) I SECA= 1 00 -no-

Sourco Control Procrams

C C CREATE BUFFER CALL ASTORE(LBUF,80> C C ASSIGN RANDOM NUMBER SEED. U=0. CALL URNI-1,U) C C REQUEST USER INPUT LINE DISPLAY OPTION IDSPL=-I WHILE [IDSPL.LT.O.OR,IDSPL.GT.33 WR IU:N023 I 3 [1X,13H!NPUT DISPLAY] WR tU:N021 [ 3 C [IX.12H0 - NO LINES * /IX.13HI = RUN LINES & /IX 17H2 = COMMAND LINES « /JX.1EH3 = ALL INPUT LINES3 RD CU:NI21 [1DSPL1 III] FIN C C PRINT HEADINS AND USER COMMENTS DOUN TO FIRST KEVWORD. WR t ) « MH1.56HMATER1AL CONTROL SYSTEM SIMULATOR VERSION 1.0 1/1 /?83 PERFORM PRINT-COMMENTS til C C EXECUTE JOB STEPS WHILE CKEYWD(LBUF*2).NE.73 WR [ < 1 A < L 8 U F * 1 * I J , 1 = 1 , 9 0 ) J [ I X , 8 0 A l l IFF [ I D S P L . Q T . 0 3 IFF IIDSPL.EQ.13 IFF [KEYWDCLBUF+2).EQ.63 WR CU:M323 [ (1A <LBUF» I-H !, 1 = 1 , 60) 3 IIX.SOAU FIN ELSE WR [U:N023 t( IAtLBUF-U+I >. I = 1,80>1 [IX,S0A1] FIN FIN PERFORM STEP t23 PERFORM PRINT-COMMENTS [13 FIN C C PRINT MINIMUM NUMBER OF FREE LOCATIONS WR CMINNFL3 & :IK,3HEND/1X,35HM!N1MUM NUMBER OP FREE LOCATIONS = ,153

CALL EXIT PROCEDURE PRINT-COMMENTS [13 RDE [CIACLBUF*1-fI I , 1 = 1 , 8 0 ) 3 ISOAt l WHILE tKEYW0<LBUF+2).E6.O3

WR t<IA<L6UF<-1 + l >, 1 = 1 , 8 0 ) 3 C1X,80A13 IFF ttDSPL.EQ.31 -111-

Source Control Proarans

VIR M|:N023 [ < I A( i.80F*l *l ,! = 1,8C1] t",K »CAlj FIN SDE [<1A(LBUF+1•!),1=1,80)) C80A1 ) FIN ENOPROC [1] RDEND ERROR tMAIN NO END COMMAND IN IfMUT FILE] PROCEDURE STEP C2J K=KEYWD(LBUF+2> CASE CK.EO.l) CALL FBLANKIO.IA.INTB.REALD) CALL GETV(0,lA.Mto.REAL) CALL GETVIO,IA.IPOINT,REAL) IFF INTO.LE.O.BR.MTO.GT. 100.1

EnROR [MAIN ILLEGAL FUNCTION NUMBER] FIN IFF CJAILCSILBPT.MTO-Mn.NE.Oi ERROR & tMAIN ATTEMPT TO CREATE A FUNCTION THAT ALREADY EXISTS] FIN MFROM=0 ICTYPE=1 CALL SEND QRIF tK.EQ.21 CALL FBLANKIO.IA,INTD.REALO) CALL GETVIO,lA.INT.REALJ IFF tIA<LCS<LBPT,INT+1)) EO.O] ERROR S [MAIN ATTEMPT TO DESTROY A FUNCTION THAT DOES NOT EXIST] ELSE MFROM=0 MTO=INT ICTYPE=2 IP0INT=0 CALL SEND FIN ORJF [K.GE.3.AND.K.LE.4] CALL FBLANK(0,IA.INTD,REALD) CALL GETVIO,IA,I NT,REAL) l>IFROM=0 MT0=1NT ICTYPE=K 1POINTMDSPL CALL SEND ORIF CK.EQ.5) CALL FBLANKIO,IA,INTD.REALD) HFROH=0 CALL GETVIO,IA,MTO,REAL) ICTYPE=5 CALL SEND ORIF CK.EQ.S]

-112-

Source Control Pragrana

CALL FeLANKfO.IA.lNTD.REALDJ CALL GETV(0, IA,NREP,REAL) CALL GETVCO, I A,1N7.TSTOPI CALL GETV'O, I A,I DUMP,REAL) CALL GETV(O,IA,1 TRACE.REALI CALL GETV(0,IA,1OUT,REAL) PERFORM MAKE-BLOCK-LI ST 133 NRUN=1 WHILE t^RUN.LE.NREPJ

T1ME=0. PERFORM IN1TSALIZE-EVENT-CKAIN

••-•• r><-- I N ; - ! - * ' C O I ! 0 | T ! - > - ^ IFF INRUN.EO, LAND. 1DUMP.EQ. 1 ] CALL DMPSYS FIN CASE [NREP.GT,1.AND,NRUN.EO.13 PERFORM SAVE-FREE-STORE [73 ORIF CNRUN.GT.13 PERFORM RESTORE-FREE-STORE [ FIN CALL CLOCK NRUM=NRUN+) FiN IFF [10UT.E0.13 PERFORM STANDARD-OUTPUT t53 FIN CA.L FSTORE(LSLIST) LBLIST=0 OTHERWISE ERROR CMAIN ILLEGAL KEYWORD: FIN ENDPRQC [23

PROCEDURE MAKE-BI.OCK-LIST E33 N=0 K=IAILBPT+2) FOR 111 = CI 3 TO IK] IF(IA(LCS(LBPT,I+1)).GT.0)N=N*1 FIN CALL AST0RE<LBL]ST,N*2) IA(LBLIST-»2) = IA(LBLIST+2)-2 M=0 FOR 113 = r13 TO [K] iFF CIA(LCS(LBPT,1*1)).GT.OJ M=M»1 IA(LCS(LBLIST,K*2))=! FIN

FIN IA(LBL5ST*3>=M ENBPROC E33 PROCEDURE SET-INITIAL-CONDITIONS [43

-113-

Source Control Programs

K = I A I L B L 1 S T * 3 ) MFROCUO 1POINT-0 FOR I I I ' M l TO CKJ MTO'IACLCSILBLIST,1*2)) ICTVPE=6 CALL SEND FIN ENDPROC (41

PROCEDURE STANDARD-OUTPUT 15] MFROM'C 1P01NT>0 K=IA<L8L1ST*3> WR C 3 C//30H FUNCTION TVPE ENTRIES FRACTION! N=0 FOR 111 = 111 TO IK) M*lAILCSCLBLIST,1*2)) CALL FPNTRSCM) N=N*IACLV) FIN FOR IIJ = IT! TO IK J M=IA(LCS(LBLIST,1+2)} CALL FPNTRS(M) 8=FLOATtIA(LV))/FLOATCNJ WR £M,IA:LB>,IA(LV),B1 I1X,18,16.19,F10.4J FIN FOR 111 = 111 TO [K] "1T0»IACLCS(LBLIST,T+2)) ICTYPE=5 CALL SEND FIN ENDPROC C5J PROCEDURE TNITIALIZE-EVENT-CHAIN [63 NFE»IA(LEC+1)/5 LFFE«LEC*2 LLFE= LCS J LEC,(NFE-i) 5+1> NSE=0 MNSE=0 LNE=0 LLE=0 FOR til = Ell TO INFE1 L=LCS{LEC,Cl-11 5*U IA(L)=LCS(LEC,I 5*11 1F(I.EQ.NFE)IA(L)=0

F I N ENDPROC [61

PROCEDURE SAVE-FfiEE-STORE C7] I F F U A t L F F B + U . E u . N F L l

- 1 1 4 -

Source- Control Prcgrans

LFFBS*LFFB LLFBS*LLFB NFLS*NFL MINNFS'MINNFL • ELSE LFFBS'O LLFBS'O NFLS'O MINNFS'O FIN ENDPROC (71 C PROCEDURE RESTORE-FREE-STORE 18] IFF tLFFBS.0T.03 LFFB«LFFBS LLFBtLLFBS NFL'NFLS IFF LMtNNFL.OT.MlNNFS] MINNFL=MINNFS FIN IACLFFB)»0 IA(LFFB*1)=NFL FIN ENDPROC IB] END C MZURCLM,LMSP.N,MT,NC,A,NCT,AT> C SUBROUTINE MEASURES MATERIAL AT LMJ ACCORDING TO THE NTH C MEASUREMENT SPECIFICATION AT LMSP AND RETURNS THE MEASURED C MATERIAL rrPE MT, COUNT NC, MASS A, TRUE COUNT NCT, C AND TRUE MASS AT. SUBROUTINE M2UR<LM,LMSP,N,MT,NC,A,NCr,AT> USE SPM BE9INSUB TR C5J IMZURCLM.LMSP.N, , , , , Jl tU1.LM5P.N3 MX,31 103 MT=RAC(LMSP,LIINM(N,6,1)1 NC-0 NCT=0 A=0. AT=0. M0DE*1 L=LM WHILE tL.NE.LM.OR.MODE.NE.43 PERFORM STEP CI 3 FIN PERFORM MEASUREMENT [33 TR [S3 CMZUR< , , ,MT,NC,A,NCT.AT)3 tMT. NC, A, NCT, AT' S

[ix,zno,E)2.4, ito,Eia.4i c

PROCEDURE STEP C13 CASE tM0DE.EQ.13 CASE tIA<L+S».GT.01 -US-

L=IA(L»S> ORIF (1A<L»4),GT03 MODE'2 L-1AIL+4) OTHERWISE MODE=3 FIN ORIF 1M0DE.E0.2] CASE IIA<L*5).GT.O] MODE=l L=1A(L»5) ORIF t IA<I_*4> GT.01 LE)A(L*4) OTHERWISE MO0E=3 FIN ORIF CMODE.EQ.33 IFF flA(L*6),E0.0.AND.1A(L*7).EQ.NT1 PERFORM COLLECTMATER1ALMT E23 FIN CASE C1A<L+2).GT.0] MODE=A L=IA<L+Z> ORIF CtA<t-+3) .GT.01 L=IA(L*31 OTHERWISE IFF CL.EO.LM3 M0DE=4 ELSE PERFORM ERROR C33 FIN FIN ORIF [MODE.EQ.43 CASE ttA<L+4).GT.0J MO0E32 L=[A<L*4) ORIF [IAtL+3>.GT.01 MODE=3 L=IA(L*3) ORIF CIA<L+2>.GT.Ol L=1A(L*2) OTHERWISE PERFORM ERROR E43 FIN OTHERWISE PERFORM ERROR £43 FIN ENDPROC (13

PROCEDURE COLLECTMATERIALMT [23 NCT=NCT*IA<L+81 AT=AT+RA(L*9)

-116-

Source C&rvtrol F r o g r a n s

ENDPROC £2] C PROCEOURE MEASUREMENT C31 N C ^ N C T + t U N I F O F l X I R A C f L M S P . L l l M f H N . e . S ) ) ) ,

I I F I X ( R A C t L M S P , L I ! N M < N , 6 , 3 > ) > ) A=AT:-RACCLMSP.L! INM(N,6 ,< I ) )

1*RN0RM<WAC<LMSP,LIINMIN,6,5>>.RAC<LMSP,LI I N M t N , 6 , 6 ) ) ) ENDPROC C33

C PROCEDURE ERROR IA1 ERROR [MATERIAL DATA STRUCTURE ERROR (MZUR)J ENDPROC C4] END C NCDMILOC.NC.BM) C SUBROUTINE RETURNS THE NUMBER OF CONTAINERS NC AND THE TOTAL BULK C MASS BM AT LOCATION LOC. SUBROUTINE NCBWLOC,NC,BM) USE SPM BEGINSUB TR I5J CNCBMtLOC. , >J £LOC] E1X,1103 CASE tlA<L0C*6)-E0.II NC=0 BM=RA(L0C+9) ORIF tlA(LOC*«).EQ.21 L=IA(L0C*5> IFF CL.LE.OJ ERROR CNCBM NO SUBDIVISION OF LOC] FIN CASE tIA(L+6>•EO.I) BM=RA<L*9> NC=0 WHILE CIAtL*4).GT.01 NC=NC*1 L=IA1L*4> FIN CR1F £IA(L<6).E0.2J BM=0. HC=I WHILE IIAJL+4I.GT.0] NC=NC*1 L=IA<L+«I) FIN OTHERWISE ERROR CNCBM ILLEGAL SUBLOC LEVEL] FIN OTHERWISE ERROR [NCBM ILLEGAL LOC LEVEL] FIN TR [53 [NCBM(LOC,NC.BM>] [LOC.NC.BMJ C1X,2110,El 1.4] RETURN END C NSTATS<N) -117-

Source Honxrol Proarans

C FUNCTION RETURNS THE NUMBER OF STATISTICS REQUIRED TD DEFINE C DISTRIBUTION TYPE N FUNCTION NSTATS(N) USE SPM BEGINFUN DIMENSION NS(4) DATA NS/2,2,4,1/ NSTATS=NS(N) RETURN END C PCOM(NTO.NCTYPE.U,I 2,13,14.1 S.16, 17, 18) C SUBROUTINE PREPARES COMMUNICATION FOR TRANSMISSION. SUBROUTINE PCOMCNTO,NCTVPE,11, 12, 13, I 4, I 5, J 6, 17, 18) USE SPM BEGINSUB MFROM=IA(LB+2) MTOsNTO ICTYPE=NCTYPE CALL ASTORE(JPOINT.B) IA(IP0INT*2)=|1 IA«IP0INT*3)s|2 [AtIPOrNT<4)=I3 IA(IP0INT*S)=14 IA(IP01NT*6)=J5 IA(IP0lhT*7)=16 IA(IP01NT*0)=J7 IAC1P01NT*9)-1B RETURN END C PHUB C SUBROUTINE PRINTS THE HEADER OF THE FUNCTION AT LB IN DUMP FORMAT. SUBROUTINE PHLB USE SPM BEGINSUB WR ILB.IACLB)] MX, 5HLB+00.3X, IS, 112] FOR II5 = til TO C4] L=LB+r WR [],L,1ACL>J C3X.1H+,12,5X,15,1121 FIN RETURN END C PICLBtlPVT) C SUBROUTINE PRINTS THE INITIAL CONDITION VALUES CF THE FUNCTION AT LB IN C DUMP FORMAT. SUBROUTINE PICLBtlPVT) USE SPM DIMENSION IPVTCI> BEGINSUB FOR in = m TO CIAILB+4J3 CALL PIDF{LI-1*I.IPVTtIACLB*3)-tn,l-l) FIN RETURN -118-

Source Control ProScans

END 0 PIDF<L,K,N1 C SUBROUTINE PRINTS THE ITEM AT L OF TVPE K IN DUMP FORMAT. SUBROUTINE P1DF(L,K,N1 USE SPM BEGINSUB CASE tL.EO.LPJ M=3HLP* ORtF CL.EO.LV) M=3HLV* ORIF CU.tX.Ul M=3HL1« OTHERWISE M=3H « FIN CASE CK.EO.11 WR [M.N.K.L, I A ( D ] MX,A3, 12,215, 112]

ORIF [K.E0.3J WR IM,N,K,L,RA(L)] I1X.A3, 12,215,E12.<1J ORIF IK E0.2J CASE tIA(L).EQ.O: WR IM,N.K,L.IACL»J tlX,A3, 12,215, 1123 ORIF IIAtLl.ST.OJ J = IA( IAIL1+3) WR CM.N.K,L,IA(L),(IA«LCSCIACL),2*1)1.1=1.JJ1 $ (IX,A3,12,215,112/(28X,5112)1 OTHERWISE ERROR (NEGATIVE LIST LOCATION (PI OF)J FIN ORIF [K.E0.43 CASE IIACD.EQ.O] WR CM.N.K.L, IA(L)3 U X , A3, 12, 215,112] ORIF IlAILl.GT.Ol Js]A(lA(L)-3) WR tM,N,K,L.1ACL1,<RA(LCS(JA(L),2*11),1=1,J)J « £1X^3,12,215, I12/'<28X,5E12.4)1 OTHERWISE ERROR tNEGATIVE LIST LOCATION (PIOF11 FIN OTHERWISE ERROR tILLEGAL ARGUMENT K (PIDF)] FIN RETURN END C POP<Ll.N,M> C SUBROUTINE POPS N INTEGERS OFF THE STACK AT LI INTO THE C ARRAY M. SUBROUTINE POP<L1,N,M) USE SPM BEGINSU3 DIMENSION M(11 FOR IU =111 TO CN1 -119-

Source Control Prograns

MIN+I-I>=IA(LC5(L1,1A(L1*3)*3-1)) FIN IAfLI*3)=lA(Ll+3J-N RETURN END C PPLBI1PVT) C SUBROUTINE PRINTS PARAMETERS OF FUNCTION AT LB IN DUMP FORMAT, SUBROUTINE PPLB(IPVT) USE SPM DIMENSION 1PVTI1J BEG INSUB FOR [I] = 111 TO [IAILB+3)] CALL PlDFCLP-1+l, IPVTd ), 1-1 > FIN RETURN END C PUSH(L1,N,M> C SUBROUTINE PUSHES N INTEGERS IN ARRAY M INTO THE STACK AT LI. SUBROUTINE PUSH(L1,N,M) USE SPM BES1NSUB DIMENSION M(l> IFF [1A(L1*3)*M.6T.1ACL1+2!] ERROR CSTACK. FULL tPUSH) J FIN FOR 113 = [13 TO [NJ IACLCSCL1 J IA(L1+3>*2*n l=Mtl ) FIN IA(LI+3)=IA<L)+3)*N RETURN END C PVLBUPVT) C SUBROUTINE PRINTS VARIABLES OF THE FUNCTION AT LB IN DUMP FORMAT. SUBROUTINE PVLB(IPVT) USE SFM DIMENSION IPVTd) BEGIHSUB FOR m = [|] TO CIA(LB*4>] CALL P l D F I L V - 1 + f . ) P V T < I A ( L B + 3 ) + I ) , 1 - 1 > F I N

RETURN END C RACCL,I) C FUNCTION RETURNS REAL VALUE OF ITEM I IN CHAIN STORAGE AT L. FUNCTION RACCL,I) USE SPM BEOIUFUN RAC=RA(LCS(L,1)) RETURN END C RICE I} C FUNCTION RETURNS THE 1TH REAL INITIAL CONDITION OF THE FUNCTION AT LB, -120-

Source Control Programs

FUNCTION RICH ) USE SPM BEGIMFUN RIC=RAILI-M ) RETURN EMC C RLICII.J> C FUNCTION RETURNS THE JTH ELEMENT OF REAL LIST INITIAL CONDITION C I OF THE FUNCTION AT LB. FUNCTION RLIC(!,J) USE SPM BEGINFUN R L I C = R A ( L C S < 1 A I L I - 1 ) , J * 2 ) > RETURN END C RLPCI.J) C FUNCTION RETURNS THE JTH ELEMENT OF THE REAL LIST PARAMETER I OF C THE FUNCTION AT LB. FUNCTION RLPU, J) USE SPM BEGINFUN RLP=RA(LCSCIACLP*I),J+2)) RETURN END C RLVd, Jl C FUNCTION RETURNS THE JTH ELEMENT OF THE REAL LIST VARIABLE I OF THE C FUNCTION AT LB. FUNCTION RLVCI,J) USE SPM BEQINFUN RLVsRAILCSUAlLV*! 5, J + 2>> RETURN END C RNORMIRMU.SIGMA! C FUNCTION RETURNS REAL RANDOM VARIABLE WITH NORMAL DISTRIBUTION. FUNCTION RNORM<RMU,SIGMA) USE SPM DATA 1 X,U/1,0./ X=0. FOR (11 = [1] TO [12] CALL URNUX.UI X=X*U FIN X=-6.+X RNORH=RMU+SIGMA X RETURN END C RNaRMr<RMU,SlGMA,RMAX,RMIN> C FUNCTION RETURNS REAL RANDOM VARIABLE WITH TRUNCATED NORMAL C DISTRIBUTION. FUNCTION RNORMT(RMU,SIGMA,RMAX.RMIN) USE SPM

-121-

Source Control Prograns

DATA IX , 11/ 1 , 0 . / x=o. FOR [ I ] = £13 TO C121

CALL U R N d X . U I X=X*U F I N

X=-6. «-X R-RMU+SIOMA X 1F(R.LT .RMIN)R=RMIN 1F(R.GT.RMAXJR=RMAX RNORI1T=R RETURN END C RP<1) C FUNCTION RETURNS THE ITH REAL PARAMETER OF THE FUNCTION AT LB. FUNCTION RPU) USE SPM BEG1NFUN RP=RACLP+l> RETURN END C RUN1FCRM.SP) C FUNCTION RETURNS REAL RANDOM VARIABLE WITH UNIFORM DISTRIBUTION. FUNCTION RUNIFIRM.SP) USE SPM BE6INFUN DATA IX.U/l.O./ CALL URN(IX.U) RUNIF=RM-SP»2. U SP RETURN END C RV(I) C FUNCTION RETURNS THE ITH REAL VARIABLE OF" THE FUNCTION AT LB. FUNCTION R V U ) USE SPM BEGINFUN RV=RA(LV+tl RETURN END C SAMPL(I.J.V) C SUBROUTINE RETURNS SAMPLE VALUE V FROM A POPULATION WITH C DISTRIBUTION TYPE RAC«I,J+2> AND STATISTICS RAC<I,J*3}, RACU.J+4), C ETC. SUBROUTINE SAMPL(I,J,V) USE SPM BEQINSUB TR 133 t S A M P L d . J , ) 1 I I . J 1 [ I X , 2 1 1 0 3 CASE C I F 1 X ( R A C < i , J + 2 ) ) . E O . M V=RUNIF<RAC«I.J+3J,RAC<1.J+«I)) ORIF IIFIX<RACII,J*2)).EQ.2J V=RNORM(RAC(I,J*3),RAC<I.J*Aii ORIF UFIX(RAC( I , J*Z) ) .E0.3J

-122-

Source Control Programs

V>RNORHT(RAC< I, J<-31, RACC I, J+4>, RACC I, J+5), RAC< I, J*6J > ORIF £IF1XCRAC<1,J*211.E0.41 CALL URNdX.U) V*-RAC(I,J»4J ALoaeui

OTHERWISE ERROR I5AMPL ILLEQAL DISTRIBUTION TYPE! FIN TR CS] ISAMPLC , ,VI1 [V] [1X.E12.4J RETURN END C SCHEDKT.NB.K.LD) C SUBROUTINE SCHEDULES EVENT CODE K IN BLOCK NB FOR TIME T WITH EVENT C DATA AT LOCATION LD 1=0 IF NONE) SUBROUTINE SCHED(T,NB,K,LD) USE SPM BEG1NSUB IFF IT.LT.TIME3 ERROR ISCHED ATTEMPT TO SCHEDULE EVENT PRIOR TO PRESENT TIME] FIN IFF ENFE.E0.01 CALL INCREC(LEC) FIN

RA(LFFE*1)=T IA(LFFE*2>=NB 1ACLFFE*31=K IA(LFFE+<1I=L0 L=LNE LI=LFFE LFFE=1A<I.FFE> WHILE IRAtL+1).LE.T.AND.L.NE.OJ

L2»L L=1ACL> FIN

IFF [L.E0.LNE3 LNE'LI IA<L1)=L

ELSE IFF [L.NE.03

IA(L2)=L1 IA<L1)=L

ELSE 1A(L2)=LI l A I L D ' O LLE=LI FIN

FIN NFE«NFE-1 NSE»NSE*1 IFINSE.eT.nNSEIMNSE-NSE RETURN END C SEND

-123-

Source Corrtr-ol Proorsns

C SUBROUTINE TRANSMITS COMMUNICATIONS. SUBROUTINE SEND USE SPM BEGINSUB DIMENSION IC<d!,IK(d) EQUIVALENCE (MFROM,10(1)J IERR=0 WHILE tIERR.EO.OJ TR £51 [SEND MFROU MTO ICTYPE (POINT) S IMFnOM.MTO, ICTVPE, I POINTJ [IX,41 6] CASE UCTYPE.LT.OJ NADDR=MFROM CALL P0P(LMS,4.IK) IFF tlC(l).NE..iK<1) 0R-IC<2>.NE. IMS). OR. I C O ) . HE. -IK(31 J ERROR (SEND ILLEGAL RESPONSE! FIN IFF [IA(LMS+3),GT,01 MFROM»IAC<LMS,IA<LMS*33-1 ) MTOMACILMS, IACLMS+3)) FIN OR1F [ICTYPE.ST.OJ NADDR=HTO CALL PUSH<LMS,4,1C) OTHERWISE ERROR [SEND ILLEGAL ICTYPE) FIN IFF [NADDR.GT.O] PERFORM CALL-BLOCK tIJ ELSE RETURN FIN FIN ERROR [SEND ILLEGAL BLOCK TYPE] C PROCEDURE CALL-BLOCK [1) IFF UCTYPE.EO. 13 IslPOINT ELSE CALL FPNTRS(NAODR) l=IAtLB) FIN J=l/IO0 K=I-J 100 CASE [J.EO.U CASE [K.EQ.11 CALL BIO? ORIF tK.EO.23 CALL BIOS ORIF IK.EQ.33 CALL B103 ORIF IK.EQ.43 CALL B104 -124-

Source Control Proarans

ORIF CK.EQ.S3 CALL BIOS ORIF tK.E0.B3 CALL 8106 0K1F tK.EO.73 CALL B107 ORIF tK.EQ.B3 CALL B10« ORIF tK.ea.93 CALL BI09 ORIF CK.£0.103 CALL B110 OTHERWISE IERR=1 FIN ORIF tJ.EO.23 CASE CK.EO.13 CALL BZ01 ORIF tK.EQ.23 CALL B202 ORIF tK.EQ.33 CALL B203 ORIF tK.EO.43 CALL B204 ORIF IK.EQ.53 CALL B205 ORIF tK.EO.63 CALL B206 ORIF tK.E0.7J CALL B207 ORIF tK.EO.83 CALL B208 ORIF tK.EQ.93 CALL B209 ORIF tK.E0.10J CALL B210 OTHERWISE 1ERR=1 FIN ORIF tJ.EQ.33 CASE [K.E0.13 CALL B301 ORIF tK.EO.23 CALL B302 ORIF tK.EQ.33 CALL B303 OR1F tK.EQ.41 CALL B304 ORIF CK.E0.S3 CALL B305 ORIF IK.EQ.63 CALL B306 -12S-

Source Control Programs

ORIF tK.EQ.73 CAUL B307 ORIF CK.EO.B3 CALL B308 ORIF CK.EO.93 CALL. B309 ORIF IK.EQ.103 CALL B310 OTHERWISE IERR=1 FIN ORIF tJ.EQ.43 CASE CK.EQ.T3 CALL B401 ORIF rtC.EQ.23 CALL B402 ORIF tK.EQ.33 CALL B403 ORIF tK.EO.43 CALL B404 ORIF EK.EQ.5J CALL B40S ORIF tK.EO.63 CALL B406 ORIF IK. EC. 73 CALL B407 ORIF tK.EO.83 CALL B408 ORIF tK.EQ.93 CALL B409 ORIF IK.EQ.103 CALL B410 OTHERWISE IERR-1 Fiw ORIF [J.EQ.S3 CASE tK.EQ.13 CALL BS01 ORIF tK.EQ.23 CALL B502 ORIF tK.6Q.3J CALL B903 ORIF IK.£0.43 CALL B504 ORIF tK.E0.S3 CALL B505 ORIF [K.E0.63 CALL BS06 ORIF tK.EQ.73 CALL BS07 ORIF tK.EQ.63 CALL B508 -126-

Source Control Proorans

ORIF CK.EO.93 CALL B509 ORIF tK.EQ.10J CALL B510 OTHERWISE IERR*1 FIN ORIF CJ.EO.63 CASE tK.EO.U CALL B601 ORIF tK.EQ.23 CALL B602 ORIF tK.E0.33 CALL B603 ORIF tK.EQ.43 fALL B604 ORIF tK.EQ.53 CALL B605 ORJF tK.EQ.63 CALL B60S ORIF IK.EO.73 CALL B607 ORIF tK.EQ.83 CALL B608 ORIF IK.EQ.93 CALL B609 ORIF IK.EQ.10I CALL B610 OTHERWISE IERR=1 FIN ORIF tJ.EQ.73 CASE tK.EQ.n CALL B70J ORIF tK.EQ.23 CALL B702 ORIF tK.EQ.33 CALL B703 ORIF tK.EQ.43 CALL B704 ORIF tK.EQ.53 CALL B705 ORIF tK.EQ.61 CALL B7t)S ORIF tK.EQ.7] CALL B707 ORIF tK.EQ.B] CALL B708 ORIF tK.EQ.93 CALL B709 ORtF tK.EQ.103 CALL B710

Source Coniro! Proorans

OTHERWISE 1ERR=1 FJN ORIF CJ.EQ.ei CASE [K.EQ.13 CALL 6801 ORIF [K.EQ.23 CALL 6802 ORIF [K.EQ.3] CALL BS03 ORIF [K.EQ.4] CALL 6804 ORIF [K.EQ.53 CALL 8805 ORIF [K.EQ.63

CALL eeo6 ORIF [K.EQ.7] CALL 6807 ORIF [K.E0.83 CALL B808 ORiF [K.EQ.9] CALL BS09 ORIF [K.E0.101 CALL BB10 OTHERWISE 1ERR=I FIN ORIF [J.E0.9] CASE EK.EQ.13 CALL B901 ORIF [K.EQ.2] CALL 6902 ORIF [K.EQ.3] CALL 6903 ORIF [K.EQ.4] CALL B904 ORIF [K.EQ.53 CALL B905 ORIF [K.EQ.63 CALL B906 ORIF [K.EQ.73 CALL B907 ORIF [K.EQ.83 CALL 890S ORIF [K.EQ.93

CALL B909 ORIF [K.EQ.101 CALL B910 OTHERWISE 1ERR=1 FIN OTHERWISE -las-

Source Control Prograns

IERR=1 FIN ENDPROC CI J END C SETIKODE,IPVT,INTD.REALD) C SUBROUTINE SETS PARAMETERS CKODE =1) AMD VARIABLE INITIAL CONDITIONS C <KODE = 2) READ FROM DEVICE Nil IN THE FORM C <I N Ml VALUES II N M VALUES ... C WHERE I IS THE PARAMETER OR VARIABLE INDEX AND N AND M ARE THE FIRST C AND LAST ELEMENT LIST INDEXES RESPECTIVELY. VALUES ARE CONVERTED C TO THE TYPE SPECIFICATION OF PARAMETER/VARIABLE TYPE CODES IN ARRAY C IPVT: I = INTEGER 2 = INTEGER LIST 3 = REAL 4 = REAL LIST. C ITEMS ARE BLANK (DELIMITED AND MAY BE INTERSPERSED WITH COMMENTS. SUBROUTINE SETCKODE,IPVT,INTD,REALD) USE SPM BEG1NSUB DIMENSION I P V T M ) L1=LBUF«Z L80=L8UF+81 CASE IKODE.EQ.11

LPV=1 LIARA=LP I M A X = I « ( L B * 3 )

ORIF £KODE.£0.23 LPV=JA(LR»3) *1 L " « A = L I IMAX=!ACL.B*4)

OTHERWISE ERROR CSET ILLEGAL ARGUMENT (CODE] FIN LSCAM=L1 PERFORM GET-1NM £1] WHILE [ I . S T . 0 1

I F F CN.EQ.O: PERFORM GET-V £23 PERFORM SET-ITEM C33 ELSE FOR UJ = IN3 TO [M3 PERFORM SET-V t2] PERFORM SET-LIST 14] FIN FIN PERFORM GET-I Nil [13 FIN RETURN C PROCEDURE GET-INM [1J IFF [LSCAN.EO.L13 PERFORM READ-LINE C53 IFF IKEYWDCL1).GT.03 BACKSPACE Ml I 1=0

-129-

S o u r c e Corvtrol Programs

ELSE PERFORM SCAN-INM C61 FIN ELSE PERFORM SCAN-1NM (61 FIN ENDPROC (13 PROCEDURE OET-V 12] PERFORM SCAN-NUMBER 18] LPOINT»0 REAL*0. NCH=ICH(IA<LSCAN)) CASE CNCH.GE.0.AND.NCH.LE.9J SIGN=1. OR1F INCH.EQ.381 LSCAN*LSCAN+1 NCH=ICH(IA<LSCAN1) CASE [NCH.GE.O.AND.NCH.LE.93

S1GN=1. SRIF [NCH.EQ.d23 LSCAN=LSCAN*1 NCH=ICH<]A(LSCAN)) IFF INCH.LT.0.0R.NCH.GT.91 ERROR ISET ILLEGAL CHARACTER FOLLOWING FIN SIGN=1. OTHERWISE ERROR tSET ILLEGAL CHARACTER FOLLOWtNO +3 F I N

CRIF tNCH.EQ.39 : LSCAN=LSCAN*1 NCHMCHUA(LSCANJ) CASE CNCH.GE.O.AND.NCH.LE.S]

S 1 G N = - 1 . ORIF CNCH.E0.d2]

LSCAN=LSCAN+1 NCH=1CH(IACLSCANM I F F I N C H . L T . 0 . 0 R . N C H . 6 T . 9 ]

ERROR tSET ILLEGAL CHARACTER: FOLLOWING FIN SJGN=-1 OTHERWISE ERROR tSET ILLEGAL CHARACTER FOLLOWING -] FIN ORIF CNCH.EQ.d2] LPOINT=LSCAN LSCAN»LSCAN+1 NCH=ICH(1A(LSCAN)) IFF ENCH.LT.O.OR.NCH.GT.93 ERROR (SET ILLEGAL CHARACTER FOLLOWING .1 FIN

-130-

Source Control Programs

SI8N*1. OTHERWISE ERROR CSET DIGIT, +, -, OR EXPECTED BUT NOT FOUND} FIN WHILE tNCH.LE,9.0R.NCH.E0.421 CASE CNCH.LE.91 REAL'10, REAL*NCH OR1F CNCH.E0.42] LPOINT»LSCAN OTHERWISE ERROR CSET CANNOT INTERPRET VALUE] FIN LSCAN»LSCAN+I IFF tLSCAN.GT.L80] ERROR CSET END OF VALUE NOT FOUND ON LINE! FIN NCHs|CHUA<LSCAN)> FIN IFF [LPOINT.EQ.O] REALMSCSN REAL ELSE REAL=StGN REAL/CIO (LSCAN-LPOlNT-1)J FIN INT=REAL ENDPROC C2] PROCEDURE SET-ITEM £3] IFF It.LT.I.OR.I.flT.IHAX3 ERROR ISET ILLEGAL INDEX] FIN CASE £IPVT<LPV*I).£Q.1] IA<L1ARA*I) = INT ORIF tIPVTCLPV+1>.E0.3] RACLIARA+1)=REAL OTHERWISE ERROR [SET ILLEGAL TYPE] FIN ENDPROC C33 PROCEDURE SET-LIST [41 IFF CI.LT.l.OR.I.GT.IMAX] ERROR CSET ILLEGAL INDEX] FIN IFF IIACLIARA+IJ-EQ.O] IFF CN.NE.I]

ERROR CSET N MUST BE 1 UHEN LIST FIRST DEFINED] FIN IFF CM.GT.1003 WARN CSET PARAMETER LIST EXCEED6 100 ELEMENTS] FIN CALL ASTORECIAILIARA*! >,M-N+3> I AC 1A1LIARA+I >*3) «M-N«-1 -131-

Source Control

FIN IFF [J,ST.IA<!AILJARA*I1+3)] ERROR [SET INDEX EXCEEDS LENGTH OF LIST] FIN CASE IIPVTILPV-M>.EQ.23 rA<LCSCIA(LIARA+l>,2*J)>=INT ORIF CIPVTILPVI KE0.4J RA<LCSCIA<LIARA*I >,2+J)>=REAL OTHERWISE ERROR £SET ILLEGAL TYPE3 FIN ENDPROC [43 PROCEDURE READ-LINE 153 IEOF=0 RDE [C1ACK>,K=L1,L80>] CBOA13 IFF fKEYWD(L1>.EO.03 WR tC IA(K) ,K=L1 ,LS0)3 tlX.SOAli IFF tlPOINr.EO.3] WR CU:N023 ttIA(K),K=L1,L80)1 t1X,80All FIN FIN RDEND IFF tlEOF.EQ.n ERROR [SET END OF INPUT FILEJ FIN ENDPROC [53 PROCEDURE SCAN-tNM t6J WHILE UACLSCAN).NE.1H(3 LSCAN=LSCAN*1 IFF CLSCAN.GT.LB03 PERFORM READ-LINE (S3 IFF [KEYWDCL1).GT.03 BACKSPACE NII [=0

N = 0 n-o ENDPROC [6]

ELSE LSCAN=L1 FIN

FIN FIN

LSCAN«LSCAN+1 PERFORM GET-V t23 IFF IINT,8T.0.AND.INT.LE.!HAX3

I = INT PERFORM SKIP-BLANKS [71 CASE & tlA(LSCAN>.EQ. 1HKAND. nPVT(LPV-M).EO. 1 .OR. IPVTCLPV+1>.£Q.3)J

N=0 -13S-

Source Control Prograns

M=0 ORIF * [ICH(IA(LSCAN)).LE.9.ANO,<IPVT(LPV*I),E0.2.0R,1PVT(LPV+I).E0.8 411 PERFORM GET-V [21 N=INT PERFORM SKIP-BLANKS £73 NCH=ICH<IA<LSCANJ> IFF CNCH.GE.0.AND.NCH.LE.9] PERFORM GET-V [21 M=INT ELSE ERROR CSET ILLEGAL LIST INDEX M] FIN OTHERWISE ERROR CSET ILLEGAL LIST INDEX N] FIN ELSE ERROR [SET ILLEGAL LEST INDEX I] FIN IFF UA(LSCAN) .EG. 1H1] LSCAN=LSCAN+1

ELSE ERROR CSET RIGHT SRACKET EXPECTED BUT NOT FOUND1 FIN ENDPROC (6] PROCEDURE SKIP-BLANKS [7: WHILE CJACLSCANJ.EO.IH ] PERFORM INCSCAN [10]

F I N ENDPROC 173 PROCEDURE SCAN-NUMBER [85 PERFORM SKIP-BLANKS [71 NCH=ICH(lA(LSCAM)) WHILE [NCH.LT.O.OR.CNCH.GT.9.AND.NCH.NE,S 38.AND.NCH.NE.39.AND.NCH.NE.4a)} PERFORM SKIP-STRING [93 PERFORM SKIP-BLANKS [73 NCH*ICH(1ACLSCAN)1 FIN IFF [NCH.LT.03 ERROR [SET ILLEGAL CHARACTER] FIN ENDPROC [SI PROCEDURE SKIP-STRING [91 WHILE [IACLSCANI.NE.1H 3 PERFORM INCSCAN [10] FIN ENDPROC [93

-133-

Source Control Proararts

C PROCEDURE INCSCAN [10] LSCAN=LSCAN*1 IFF [LSCAN.GT.L80] PERFORM READ-LINE [S3 IFF [KEYWD(Lt).QT.O] BACKSPACE Nl1 ERROR [SET UNEXPECTED KEYWORD] ELSE LSCAN=L1 FIN FIN ENOPROC [10] C GETVCKCOE, IPVT, INTD,REALD) C ENTRY RETURNS INTEGER (REAL) VALUE OF THE NEXT NUMBER IN THE C INPUT DATA. ENTRY GETVIKODE,IPVT,INTO.REALD! L1=LBUF»2 L60=LBUF*81 PERFORM GET-V [23 1NTD=INT REALD=REAL RETURN C FBLANK(KODE,1PVT,INTO.REALD) C ENTRY INCREMENTS SCAN POINTER LSCAN TO FIRST BLANK. ENTRY FBLANKIKODE,IPVT,INTD,REALD) L1=LBUF*2 L80=LBUF*81 LSCAN=L1

WHILE tIACLSCAN).NE.1H ] LSCAN=LSCAN+1 IFF £LSCAN.eT.L80) ERROR ISET NO BLANK DELIMITER ON LINE] FIN FIN RETURN END C TIMERtK,I.T)

C SUBROUTINE SUPPLIES TIMING INFORMATION BASED UPON THE INTERACTION C RESPONSE OF A 601 TIMR FUNCTION. I IS SET TO 1 AND T TO TIME IF UP. C I IS SET TO 2 IF DOWN TILL THE NEXT SHIFT AT TIME T AND TO 3 C IF DOWN TILL THE NEXT INTERVAL AT TIME T. SUBROUTINE TIMER(K.I.T) USE SPM B.EQ1NSUB CASE tK.ED.z: IFF CIA<IPCINT+1).EQ.O] t=2 T=RA(IPOINT+3) ELSE 1=1 T=TIME

-134-

Source Control Prooraras

FIN OR1F CK.EQ.33 IFF CI ACIP0JNT+4>.£Q.0J 1-3 T=RA(!P0INT+6> ELSE 1 = 1 T=T1ME FIN OTHERWISE ERROR ITIMER ILLEGAL TIMING CODE] FIN ICTW£=IAC(LMS, 1A<LM5»3>*1 ) IPOINT=IAC(LMS,IA(LM5*3>*2) RETURN END 0 TRNFRM(NC,FB,L1,LS> C SUBROUTINE TRANSFERS ALL (IF NC < O) OR THE FIRST NC (IF MC > 0) C CONTAINERS AND FRACTION FB OF THE BULK MATERIALS AT LI TO L2. SUBROUTINE TRNFRM<NC,FB.L1.L2> USE SPM BEGINSUB TR [53 [TRNFRM(NC,FB. L1 ,L2)J tNC,FB,LI,L2J C 1X, I 6, El 2. <J, 21 6] CALL NCBM(L1,NCL1,BML1) CASE tNC.LT.03 IFF INCL1.GT.0] PERFORM TRANSFERC0NTA1NERS II] FIN ORIF INC.GT.03 IFF CNCL1.GE.NCJ PERFORM TRANSFERCONTAINERS Ell ELSE ERROR ETRNFRM NOT ENOUGH CONTAINERS AT LI] FIN FIN IFF fFB.GT.0,3 IFF CBMLI.GT.O.] PERFORM TRANSFERBULK 123 FIN FIN CALL UMDIL1J CALL UMD(L2> TR C53 tTSNFRM DONE] RETURN C PROCEDURE TRANSFERCONTAINERS til PERFORM DETACHCONTAINERS [33 PERFORM ATTACHCONTAINERS 14] ENDPROC Et]

PROCEDURE TRANSFERBULK [2) PERFORM LOCATEBULKL1 153 -135-

Source Contro-1 Prograns

PERFORM L0CATE6ULKL2 [63 PERFORM KOVEBULK C73 ENOPROC [23 PROCEOURE OETACHCONTA1NERS [3] L=1AIL1«5> CASE MAIL'S) .EQ. O M=l.*4 L=IA(L<4) ORIF IIA(L*6).EO.SJ M=L1+5 FIN L1FC=L IFF tNC.LT.OJ 1A(M>=0 ELSE N=l WHILE IN.LT.NC] L=IA(L+4) N=N»1 FIN IA(M>=lAfl_*4J IA(L*41=0 FJN ENDPROC 13] PROCEDURE ATTACHCONTAtNERS £43 IFF C1A(L2*5).EO.O] IA(L2+5)=L1FC !A(L1FC+2)=L2 ELSE L=IA(L2*S) WHILE tIA<L+4).GT.O] L=IA(L+4) FIN IA(L<-4>=L1FC 1A(L1FC*3)=L IA(L1FC*2)=0 FIN ENDPROC 141 PROCEDURE LOCATEBULKLI C5J IFF (IA(L1»6).EQ.13 LIB=L1 ELSE L=IA(Lt*5) IFF tlA<L*6).EQ.I] L1B=L ELSE ERROR ITRNFRM LOCATING BULK AT LI) FIN FIN

-136-

ENDPROC ESI PROCEDURE LOCATE BULKL2 [63 CASE CIACL2+6).E0. II L2B=L2 ORIF [IA(L2*5).GT.01 L=rA(L2*5) CASE riA<L*6>.E0.1]

L2B=L ORIF tIA(L*6).EQ.ai CALL CM6(IA(L2*S),L2,0,L,0,1,O,0,0.) IA(L*2)=0 1A(L*3)=IA(L2+S> L2B=lA(L2+5) OTHERWJSE ERROR tTRNFRM LOCATING BULK AT L21 FIN ORIF t!A<L2<-5) .EQ.03 CALL CMB<IA<L2*5),L2,0,0,0I 1,0,0,0.) L2B=IAfL2»5] OTHERWISE ERROR tTRNFRM LOCATING BULK AT L21 FIN ENDPROC C63

PROCEDURE MOVEBULK 173 L=!AIL1S*S! WHILE tL.GT.O] LH2=L2B LP2=0 LM=L2B*5 M=IACLM) WHILE EM.GT.O.AND.IA(M*7).NE.3ACL+7I3 LH2=0 LP2=M M=IA(M*4) FIN IFF CM.EO.03 IFF tLH2.GT.03 CALL cnB(M,LH2,0,0,0,0, IA<L+7>,010. ) tACLH2+5)=M ELSE CALL CMB(M,0,LPS,0,0,0,1A(L+7),0,0.) 1ACLP2+<))=M FIN FIN NT=TB FL0AT(IA(L+8)) !A«M+ei=lACM+8)*NT IA(L+6>=IA(L+8)-NT T=FB RA(L*9) RA<M+9>=RAIM+9)*T RA(L+9>=RA(L+9)-T -137-

L=IA(L«41 FIN ENDPROC £73 END C UMD(LM) C SUBROUTINE UPDATES MATERIAL DATA AT LM. SUBROUTINE UMD(LM) USE SPM BESINSUB TR £53 IUHO(LM)J [LM3 MX, [10] MODE=I L*LM WHILE [L.NE.LM.OR.MODE NE.4J PERFORM STEP tIJ FIN TR [53 tUMD DONE] RETURN C PROCEDURE STEP C11 CASE IMODE.EO 13 CASE IIAIL+5).GT.O] L=IA<L+5) ORIF EIAIL+4).GT.03 M0DE=2 L=IA<L+4I OTHERWISE MODE:3

PERFORM RESET £23 FIN ORIF EMODE.EQ.23 CASE IIA(L+5).GT.OJ MODE:1 L=lA<L+5> ORIF £IA<L*4>.GT.O] L=1A(L»4) OTHERWISE MODE=3

PERFORM RESET £23 FIN ORIF [MODE.EQ.33 PERFORM ADD £3] CASE ttA<L+2).GT.03 MODE=4 L=IA(L+2) PERFORM UPDATE ISI ORIF EIA(L*31,GT.O] L=[AIL+3> OTHERWISE IFF £L.E0.LM3 M0DE=4 PERFORM RESET £2] PERFORM UPDATE IS]

-136-

Sourco Control Programs

ELSE PERFORM ERROR C41 FIN

FIN ORIF IM0DE.EQ.4J

CASE tIA(L+d),OT03 MODE=2 L=!A<L«-4)

ORIF f r A < L + 3 l . G T . 0 3 MO0E*3 L=1A(L*3>

ORIF £ I A ( L * 2 ) . G T . C U L = I A ( L » 2 I PERFORM UPDATE [33

OTHERWISE PERFORM ERROR 14) FIN

OTHERWISE PERFORM ERROR t<n FIN

ENDPROC II] PROCEDURE RESET [23 N=0 A = 0, ENDPROC [23 PROCEDURE ADD C33 IFF tIA<L*S>.ST,0.0R.RA(L*9J.GT.O.3

N'N-HACL+8) A=A+RACL+9>

ELSE PERFORM REMOVEBLOCK [63 FIN

ENOPROC C31 PROCEDURE ERROR £41 ERROR (UMO MATERIAL DATA STRUCTURE] ENOPROC t4] PROCEDURE UPDATE [53 IA(L»B>-N RA(L»9)=A ENDPROC C5] PROCEDURE REMOVEBLOCK [63 IFF IL.NE.LM]

CASE CIA<L+5).ST.O] ERROR [UMD REMOVEBLOCK I]

ORIF ttA<L+3).GT.0.AN0.IA(L*2).E0.0] IA< IA<L+3)*4) = !A<L-t4) IFF [IA(L+4>.BT.01

-139-

Sourco C o n t r o l P r o o r a n s

I A < J A < L + 4 > » 3 U I A ( L t 3 > F I N

0R1F t l A < L * 2 ) . 0 T . 0 . A N D . I A C L + 3 ) . E L . 0 1 1 A < [ A < L * 2 > * S ) = I A C L * 4 ) I F F C I A ( L * 4 ) . G T . 0 1 IAUA(L*4)*2) = IA(L»2> FIN OTHERWISE ERROR [UMD REMOVEBLOCK 21 FIN CALL FSTORE(LI FIN ENDPROC 16] END C L:NUX,U> C 5JBR0UT1NE RETURNS UNIFORMLY OlSTRIBUTEO INTEGER IX ON THE INTERVAL C I',1O00D1 AND UNIFORMLV OlSTRIBUTEO REAL U ON THE INTERVAL CO. ,1.J. SUBROUTINE URNdX.U) USE SPM BE01NSUB DATA X/0./ IFF I1X.LT.01 CALL 1RNFLCX) TR tSl [URN] £X3 C1X.9HRNFL SEED, E12. <H CALL LRNFLfX) ELSE U=RNFLCO> IX=U 10000.*1 FIN RETURN END C WRMD(LM) C SJBROUTINE WRITES MATERIAL DATA AT LM ON OUTPUT DEVICE NOl. SUBROUTINE VRMO(LM) USE SPM BE81NSUB IFF fLM.LE.03 W.e ILM1 111X.14HM0 MATERIAL AT. 161 RETURN FIN MODE=1 L=LM WHILE (L.NE.LM.OR.MOOE.NE.43 PERFORM STEP £11 FIN PERFORM URITEBLOCK [21 RETURN C PROCEDURE STEP til CASE tMOOE.EO.II CASE CIA(L*5).GT.01 L=IACL+5>

-140-

Source Control Programs

ORJF CJAIL+4).QT.03 MQDE=2 L«IA(L+4) OTHERWISE MODE-3 FIN 0R1F CMbDE.EO.23 CASE trA(L*5).GT.03 MQOE=1 L=IAtL+5> 0R1F CrA(L«41.0T.03 U:1ACL+4) OTHEftWtSE M0DE=3 FIN ORIF [MODE.EQ.33 TFF CL.NE.LMJ PERFORM WRITEBLOCK [21 FIN

CASE [IAU+23.GT.O] M0DE=4 L=1A<L*2)

ORIF UACL+33.GT.01 L=IA(L+3) OTHERWISE IFF IL.EQ.LM3 M0DE=4 ELSE PERFORM ERROR (33 FIN FIN

ORIF tMODE.EQ.43 CASE t[fl(L*4>.GT.03 M0DE=2 L=IA(L*4) ORIF CIA(L*3).eT,01 PERFORM WRtTEBLOCK t2I MODE=3 L.= [A(L*3> ORIF UA(L*2) GT.03 PERFORM WRITEBLOCK 12) LMAIL+2) OTHERWISE PERFORM ERROR t33 FIN OTHERWISE PERFORM ERROR [3] FIN ENOPROC H I

PROCEDURE WRITEBLOCK C23 WR tL. ClAtL+l >,1=2,6),RA(L*9>3 C1 OX, 5-1 6,21 3, I 10, E12. 41

Source Control Programs

ENDPROC [2 3 C PROCEDURE ERROR [33 ERROR (MATERIAL DATA STRUCTURE ERROR <WRMD33 ENDPROC C31 END C ZIA(L,N3 C SUBROUTINE ZEROS N ELEMENTS OF IA STARTING AT L. SUBROUTINE ZIA(L.N) USE SPM BEOINSUB FOR IJ3 = .13 TO [N3 IA(L--'11=0 FIN RETURN ET;O C ZIAC(LOC) C SUBROUTINE SETS ALL LOCATIONS IN THE BLOCK CHAIN AT LOC TO C INTEGER ZERO CO). SUBROUTINE ZIAC(LOC) USE SPM BEOINSUB L=LOC N>1AEL+1> WHILE tN.ST.03 FOR [|] = [|] TO £N3 IA<L*I+I)=0 FIN IFF UA(L) .OT.03 L=IA(L)

N = ; A L + I ) ELSE

Ns>0 F I N

F I N RETURN END

C ZRA<L.N) C SUBROUTINE ZEROS N ELEMENTS OF RA STARTING AT L. SUBROUTINE ZRA(L.N) USE SPM BEG INSUB FOR (13 * EH TO CNJ RA<L-1*I)=0. FIN RETURN END C ZRACCLOO C SUBROUTINE SETS ALL LOCATIONS IN THE BLOCK CHAIN AT LOC TO C REAL ZERO 10.). SUBROUTINE ZRftC(LOC) USE SPM -142-

Source Control Programs

eesiNsuB L'LOC N'lAfLO> WHILE tN.OT.O] FOR 111 * CI] TO CN1 RA(L*1*IJ=0. FIN IFF ClAtU.OT.OJ LsJACLI N«IA(L*1) ELSE N«0 FIN FIN RETURN END C ZTABLE(LOC) C SUBROUTINE PUTS INTEGER 0 VALUES IN THE TABLE AT LOC. SUBROUTINE ZTABLECLOC) USE SPH BEQINSUB N«IA[LOC»Z> IFF UAtLOCJ EO.O] FOR III = tl} TO CN] IA<L0O2+I )=0 FIN ELSE FOR CI] = 113 TO CN1 IACLCSILOC,1+1))=0 FIN FIN RETURN END

-143-

Source Function Programs

FUNCTION PROGRAMS

C 101 RCMB 3/16/76 C RECEIVE MATERIAL BATCHES C LP*0 1 RESPONSE POINTER C 1 3 PERIOD OF ARRIVAL SCHEDULE C 2 1 NUMBER OF ARRIVALS PER PERIOD C 3 4 SCHEDULED ARRIVAL TIMES C 4 3 MAXIMUM DEVIATION FROM SCHEDULED ARRIVAL TIHES C 5 1 NUMBER OF BULK MATERIAL TYPES C 6 4 BULK MATERIAL SPECIFICATIONS (REPEAT FOR EACH TYPE) C INTEGER MATERIAL TYPE CODE C MEAN COUNT C MAXIMUM UNIFORM DEVIATION OF COUNT C MEAN MASS C STANDARD NORMAL DEVIATION OF MASS C MAXIMUM MASS C MINIMUM MASS C 7 I NUMBER OF MATERIAL TYPES RECEIVED IN CONTAINERS C 8 4 SPECIFICATIONS FOR MATERIAL RECEIVED !N CONTAINERS C (REPEAT THE DATA LISTED ABOVE FOR EACH TYPE) C S 3 MEAN NUMBER OF CONTAINERS PER ARRIVAL C 10 3 MAXIMUM UNIFORM DEVIATION OF NUMBER OF CONTAINERS C 11 I TIMING CODE C 12 1 TIMER FUNCTION C 13 1 DESTINATION FUNCTION C T4 I TRANSPORT FUNCTION C LV*0 1 ENTRY COUNT C 1 1 NUMBER OF BATCHES RECEIVED C Ll+O 0 C 1 0 SUBROUTINE B101 USE SPM BE01NBL0CK IIP13 1153 125 11,3,1,4,3,1,4,1,4.3,3,1.1,1,1.1,13 CREATE DESTROY PARAMETERS 99400 CONTINUE ERROR £101 RCMB ATTEMPT TO SET INITIAL CONDITIONS! 99500 CONTINUE WR IIA(LB«S),IA(LV«1}3 « I//,9H FUNCTION.14,1X.8H101 RCMB 6 /11X.26HNUMBER OF BATCHES RECEIVED,1101 RESPOND [-5) ID] 99600 CONTINUE IFF IRPIIOI.GT.RPOH ERROR C101 RCMB PARAMETER 10 LARGER THAN PARAMETER 91 FIN FOR til = [11 TO CIA<LB+4>1 lAtLV-l»l)=lACLI-1+l)

-144-

Source Function Prograns

FIN CALL SCHED(RUNIF<RLPO. 1 >,RPt4>>,!A<LB*2),l,0> RESPOND [-63 101 DUMP EVENT CALL CEC<I,IP<2!,NARVL) TIMER [111 1121 IFF t!.EO.11 PERFORM RECEIVEMATERIALBATCH £13 IFF ILM.GT.OI PERFORM TRANSPORT £2; FIN IFF (NARVL.EO.IPC2I] NARVL* 1 I»1 ELSE NARVL*NARVL+1 1=0 FIN T=RUNIF(FLOAT(IF]X(TIME/RPU))*i) RP( 1 )+RLP(3. NARVL) ,RP(4>) CALL SCHED(T,]A(LB*2),NARVI.,0) ELSE CALL SCHEDCT,lA(LB*2),NARVL,n) FIN RESPOND l-»l £03 INTERACT ERROR [101 RCMB ILLEGAL INTERACTION! RESPOND t-91 CO: PROCEDURE RECEIVEMATERIALBATCH [1] IFF IIP(5).GT.03 CALL CRMD1(IP(51.1P(6),LBLK) FIN IFF IIP<7>.0T.03 NC=IFIX(RUNIF(IPC9),IPt10))) IFF CNC.aT.03 CALL CRMDSCNC,IPI7),IP(8),LCON) FIN CASE £IP(5>.OT.0.AND.IP[7).QT.03 CALL TRNFRMfO,I.,LBLK.LCON) LM=LCON ORIF C1PC5).EO.O.AND.iP(7).QT.03 LM=LCON ORIF niP[5).ST.0.AND.IP(7).EQ.03 LM=LBLK OTHERWISE LM=0 FIN ENDPROC CI3 PROCEDURE TRANSPORT £23

-145-

Source Function Programs

CALL PCOMCIPCMi.S.I.LM.IACLB+aJ, IP< 13) , 0, O, 0, O) SEND IFF tIA(1P0INT*2>.NE.-1] ERROR C101 RCMB MATERIAL NOT REMOVED AT ARRIVAL TIME] FIN CALL FSTORE(IPOINT) TR [|] [101 RCMB MATERIAL BATCH RECEIVED} IA<LV+1 )*!A<LV+1)«1 ENDPROC IS] ENDBLOCK C 102 IDAS 3/16/78 C INITIATE DIVERSION ACTION SEQUENCE C LP«0 1 RESPONSE POINTER C 1 4 MATERIAL DIVERSION OBJECTIVE TYPE (1 = COUNTABLE ITEMS C OF BULK MATERIAL. 2 = MASS OF BUCK MATERIAL, 3 = COUNTABLE C ITEMS FROM CONTAINERS, a = MASS FROM CONTAINERS, 9 » C CONTAINERS) C MATERIAL TYPE CO FOR BLENDED MATERIALS) C MEAN NUMBER OF COUNTABLE ITEMS C MAX UNIFORM DEVIATION OF COUNTABLE ITEMS C MEAN MASS C STANDARD DEVIATION OF MASS C MEAN NUMBER OF CONTAINERS C MAXIMUM UNIFORM DEVIATION OF NUMBER OF CONTAINERS C EVENT SEQUENCE SPECIFICATION. REPEAT FOR EACH EVENT; C I) EVENT FUNCTION (NEGATIVE FOR FIRST EVENT OF SUBSEQUENCES), C 2) EVENT STARTING TIME DELAY DISTRIBUTION TYPE. 3) EVENT C STARTING TIME DELAY STATISTICS (0 OR MORE VALUES) C LV+O J ENTRY COUNT C L1+0 0 SUBROUTINE B102 USE SPM BEGINBLOCK [102] IS] [1] CI,4,11 CREATE DESTROY PARAMETERS 99400 CONTINUE ERROR [108 IDAS ATTEMPT TO SET INITIAL CONDITIONS] REPORT CI02 IDAS] 99600 CONTINUE FOR tl] = [1] TO CIA(LB*4)] IA(LV-1+I)=IA(Lt-l*I> FIN FOR [I] = III TO IIAC1PH)*3)J IFF CRLPC1.D.LT.0] CALL SAMPLdPtl ), 1+1,TO) CALL SCHEOtTO. -1FIX(RLP<1, 1 I), 1, IPCD) FIN FIN RESPOND £-6] 103 DUMP EVENT

-146-

Source Function Programs

ERReR CI 02 IDAS ILLEGAL EVENT MESSAGE] RESPOND C-8] CO] INTERACT ERROR C102 IDAS ILLEGAL INTERACTJOIM RESPOND [-93 [01 ENOBLOCK C 301 TRMB 3/16/70 C TRANSPORT MATERIAL BATCHES C LP*0 1 RESPONSE POINTER C 1 3 MEAN TRANSPORT TIME C S 3 MAXIMUM UNIFORM DEVIATION OF TRANSPORT TIME C 3 2 FUNCTIONS NOTIFIED AT CONDITION TIMES C 4 1 DUMMY PARAMETER USED AS SAVE LOCATION C LV+O 1 ENTRY COUNT C 1 1 NUMBER OF BATCHES IN TRANSPORT C 2 1 MAXIMUM NUMBER OF BATCHES IN TRANSPORT C 3 3 TIME MAX I HUM NUMBER OF BATCHES FIRST OCCURRED C 4 1 LN OF MOST RECENT BATCH IN TRANSPORT C LI+O O c i o C 2 O C 3 O. C 4 O SUBROUTINE B301 USE SPM BE61NBL0CK C301] (SI 153 f1„3,3,2.1,I.1,1,3,13 CREATE 99200 CONTINUE IFF I1VC1).6T.0J PERFORM FREEMATERIAL 13] FIN CALL DESTROIIPVT) RESPOND 1-23 [03 PARAMETERS 99400 CONTINUE ERROR C30I TRMB ATTEMPT TO SET 1NITUL CONDITIONS] 99500 CONTINUE WR I[A(LB«2), IA(LV*2>,RA(LV»3)3 * C//.9H FUNCTION,14,IX.8H301/TRMB * /11X.38HMAXIMUM NUMBER OF BATCHES IN TRANSPORT,110 « /I1X.27HTIME MAXIMUM FIRST OCCURRED,9K.EI2.4] RESPOND [-3] CO] 99600 CONTINUE

IFF £RP(2).8T.RP(1)3 ERROR [301 TRM6 PARAMETER 2 LARGER THAN PARAMETER 13 FIN IFF [IVCD.GT.O] PERFORM FREEMATERIAL [33 FIN

FOR [ 1 ] = H I TO [IA(LB*4>] 1 A < L V - 1 * 1 ) = I A < L 1 - 1 » 1 > F I N

-147-

Source Function Programs

RESPOND [-6] 101 DUMP EVENT CALL CECI1.1,KOBE) LNilAC1P0INT*1I PERFORM TRANSPORT £11 RESPOND [-») (01 INTERACT CASE [ I A U P 0 I N T + 8 > . E 0 . M

l A ( L P + 4 ) i | P 0 I N T CALL C0PYBUP0INT,LN> !A (LV*J ]»1A<LV+11 + 1 IFF I I V I I ).<3T. I V ( Z ) 1

I A ( L V + 2 ) : ] V C 1 ) RA<LV*3)=T1ME F I N

I F F [ R P M I . G T . O . J I F F [ I V I 4 1 . L E . 0 ]

IACLN+8>=0 I A ( L N + 9 ) » 0 IACLV+4)=LN

ELSE JACIVC4I*9)=LN IACLN*8)=1V(4) IACLN*9J=0 IAtLV»4)i=LN FIN CALL SCHED<TIME+RUNIF<RP<1). RP<2>), J A£LB<-2) ,l.LN] PERFORM CONDITION [2] TR [31 [301 TRMB TRANSPORT STARTED] ELSE PERFORM TRANSPORT [ 1 ] F I N

lPOINT=IP<4> I A C 1 P 0 I N T + 2 ) = - 1

ORIF ClAClP01NT+2>.EO.S1 1 A U P 0 1 N T * 2 ) = - S 1A(1POINT+3)»0 ] A C I P 0 1 N T * 4 ) = 1 V ( 4 ) ] A C I P O I N T + 5 > = I V < l > TR C3] [301 TRMB MATERIAL ACQUISITION ATTEMPT] OTHERWISE ERROR [301 TRMB ILLEGAL INTERACTION] FIN RESPOND C-9) 11 POINT]

PROCEDURE TRANSPORT rii IFF tivn >.EQ. n IA<LV+4]»0 ELSE IFF CIVt4).E0.LN] IA<LV*4)=!A(LN+e>

Source FunctI on Programs

IFF IIA(LN+8).GT.03 rACIA(LN+8>+9>*0 PIN ELSE IFF C!A(LN+8).E0.03

IAUA<LN+9>+6>»0 ELSE

1A(1A(LN+8)+9)X|A<LN+9) IA(IA(LN+9!+8)«IA(LN*«) FIN FIN FIN PERFORM CONDITION 12] IFF 11ACLN+S).GT.O) IA<LN+«)=0 IA(LN*9>>0 1A<LN*4)=1A(LB*2) MFi-.OM=IA(LB*2> MT0=1A(LN»S) ICTYPE=9 IPOINT'LN SEND IFF [1A[IP0INT*2).NE.-13 ERROR C301 TRMB MATERIAL NOT REMOVED AT TRANSPORT TIME] FIN CALL FSTOREI[POINT) ELSE CALL FRM0C!A{LN*3)> CALL FSTORE<LN) FIN IA(LV+l)=rA<LV+11-1 TR H I 1301 TRHB TRANSPORT C0WLET£D>1 ENDPROC [13

PROCEDURE CONDITION C23 IFF IIP(3).GT.O] CALL PC0MIILPI3,1 > , 9, 9, O. IVM) ,IV(1),0,0,0,O) FOR II) = [1] TO CIA(IP<3)+3)3 MT0=ILP(3, 1) ICT¥PE=9 IAUP0INT+2>=9 SEND IFF IlA<IP01NT*2).NE.-93 ERROR 1301 TRMB RESPONSE TO CONDITION NOTICE) FIN FIN CALL FSTOREU POINT) FIN ENDPROC C23 PROCEDURE FREEMATERIAL 133 LN=!VC4)

-149-

Source Function Programs

WHILE tLN.GT.03 CAL'. FRMDflA(LN*3J I CALL FST0RE<LN1 LM=IA<LN*B> FIN ENDPROC (31 ENDBLOCK C 401 STOM 3/16/78 C STORE MATERIAL C LP+O 1 RESPONSE POINTER C 1 1 HOLD UP MODEL C 1 = SINGLE DEPOSIT C 2 - RE-0EP0S1T ON ONLY SURFACE AREAS CONTACTED BY C STATIC MATERIAL C 3 = RE-DEPOSIT WITH WASHDOHN OF ALL INTERNAL SURFACES C OF THE BULK STORAGE VESSEL C S 3 END AREA OF BULK STORAGE VESSEL C 3 3 VERTICAL SURFACE AREA CONTACTED PER UNIT MASS BULK STORAGE IF C HOLD UP MODEL 1 OR 2, OR TOTAL AREA CONTACTED IF MODEL 3 C 4 3 SULK STORAGE SURFACE HOLDUP COEFFICIENT C 5 2 REPORT CONTROL C 1> BULK STORAGE DATA C 2) CONTAINER STORAGE DATA C 3) MATERIAL CURRENTLY IN STORAGE C 4) MATERIAL CURRENTLY IN HOLDUP C 6 2 FUNCTIONS NOTIFIED AT DIVERSION OPPORTUNITIES C 7 1 - MATERIAL IN STORAGE C 8 1 - MATERIAL IN HOLDUP C LV+O 1 ENTRY COUNT C 1 1 NUMBER CONTAINERS IN STORAGE C 2 1 MAX NUMBER CONTAINERS IN STORAGE C 3 3 TIME MAX NUMBER CONTAINERS FIRST STORED C 4 1 NUMBER CONTAINER COUNT OBSERVATIONS C S 3 LAST TIME NUMBER CONTAINERS CHANGED C 6 3 SUM OF N(T-TL) VALUES C 7 3 SUM OF N 2<T-TLI VALUES C S 3 BULK MASS IN STORAGE C 9 3 MAX SULK MASS IN STORAGE C 10 3 TIME MAX BULK MASS FIRST STORED C 111 NUMBER BULK MASS OBSERVATIONS C 12 3 LAST TIME BULK MASS CHANGED C 13 3 SUM OF M<T-TL> VALUES C 14 3 SUM OF M 2CT-TL) VALUES C 15 3 TIME DATA COLLECTION STARTED C LI+O 0 C 1 O c a o C 3 0, C 4 0 C 5 O. C 6 0. C 7 0. -ISO-

Source Funcxiori Proorans

c a 0. c 9 0. c 10 0. c 11 a c 12 0. c 13 0. c 14 0. c 15 0. SUBROUTINE B401 USE SPN BEGIWBLOCK C4011 (91 CI63 2*2, ,3,3,3,3,1,3,3,3,3]

11,1,3,3,3,2,2,1,1,1,1,1,3,1, 1,3, 1,3,'J, J,^J

99200 CONTINUE IFF [IPI7),ST.O] CALL FRMD(IPC7)) FEN IFF IIP(6).GT.OI CALL FRHDCIPCS)) FIN CALL DESTROUPVT) RESPOND C-23 CO] PARAMETERS 99400 CONTINUE ERROR 1401 STOM ATTEMPT TO SET INITIAL CONDITIONS) 99500 CONTINUE WR [IA(LB*21] [//,9H FUNCTION,14,1X.SM401 STOM3 IFF I1LPKS,11.EO.11 RA<LV-H2)=TIME-RVU5) RA(LV+13)=RVU3)/RV<12) RA<LV+14)=RVU4)/RV<12)-RV(13> 2 IFF CRVI14).GT.0.3 RA(LV+14)=SQRT(RV«14>) ELSE RAILV+141=0. FIN WR [nVte),RV(9),RU(10),IV(11),RV(13),RV<14)3 S C/1IX,12HBULK STORAGE S /11X,20HCURRENTLY IN STORAGE,El 1.4 « /MX, 19HMAXIMUM MASS STORED, E12. 4, 8H AT TIME,E12.4 S /tlX,19HNUMBER OBSERVATIONS^I 12 S /I1X,4HMEAN,E27.4 S /I IX,IflHSTANDARD DEVIATION,E13.45 FIN IFF CILPIB^I.EQ.l] RA<LV*5)=TIME-RV(15) RA<LV*61=RV16)/RVC51 RA(LV*7)=RV(7)/RVC5J-RV(6) 2 IFF £RV(7).GT.0.3 RA(LV+7)=SQRT<RV(7)J ELSE RACLV+7>=0. -1S1-

Source Function Programs

FIN WR UVC1).1V(2),RV(3>,IV<4),RV(6),RVC7)3 8 C/I1X.17HC0NTAINER STORAGE 8 /IIX.20HCURRENTLV IN STORAGE,I Ii * /MX,2iHMAXIMUM NUMBER STORED, 110,8H AT TIKE,El 1.4 8 /I1X.19HNUM6ER OBSERVATIONS,112 8 /MX,4HMEAN.E27.4 8 /IIX.1BHSTANDARD DEVIATION,E13.43 F I N

I F F 1 1 L P < 5 , 3 ) . E Q . 1 3 WR I : C / 1 I X , 19HI1ATERIAL IN STORAGE! CALL WRMD(IP(7J) F I N

I F F E 1 L P ( 5 , 4 ) . E 0 , 1 3 WR I I t /11X,18HMAT£RIAL IN H0LDUP3 CALL WHH0([P(8)i FIN IFF I1LP<5,1).E0.1.0R.!LP(5,2).E0.13 WR CRVt15),TIME3 8 C/11X.20HREP0RT TIME INTERVAL,El 1.4,3H TO,Ell.4J FIN RESPOND [-53 C03 S9600 CONTINUE IFF CIPUJ.LT. S.CR.IP(1).GT.33 ERROR [401 STOM ILLEGAL HOLDUP MODEL SPECIFICATION] FIN IFF £IP(7).6T.03 CALL FRMDMP(7>> F I N

CALL C M B t I A ( L P + 7 > , 0 , 0 , 0 , 0 , 2 , 0 . 0 . 3 . J I F F C I P ( 8 ) . G T . 0 3 CALL FRMD(IP(8>> FIN CALL CMBIIA(LP*ei,0,0,0,0,1,0,0.0.) FOR CI 3 = til TO tlA(t.B+4)3 IA<LV-1*I)»1A(LI-1+I) FIN RESPOND t-6J C03 DUMP EVENT ERROR [401 STOM ILLEGAL EVENT NOTICES INTERACT CASE tlA<IP0INT+2).E0.1 J PERFORM STORE [13 PERFORM CONDITION [IOJ 0R1F MA< !P0INT*2> .EQ.S3 PERFORM DIVERSIONATTEHPT 12] ORIF [1A(1P0INT*21.EQ.33

PERFORM INSTC1RE 13) 0R1F [ I A ( E P O t N T * 2 1 . E 0 . 4 3

PERFORM INHOLDUP [43 ORIF U A t £ P O I N T * 2 1 . E Q . 2 3

- 1 5 2 -

Source F-.-^xlon Proorans

PERFORM REMOVE [S3 PERFORM CONDITION CIO] OTHERWISE ERROR 1401 STOM ILLE8AL INTERACTION] FIN RESPOND [-91 CI POINT] PROCEDURE STORE [11 CALL NCBM(IA<IP0INT+3),NC.BM) !ACLV+1»tUM)+NC RA(LV*S>*RVC8)+BM IFF tRV(8).OT.ftV<9>] BMX*RVC8>-RVt9> RA(LV+9)>RV(8) RA<LV*10I»T1ME ELSE BMX=0. FIN IFF IBM.GT.O.AND. ILP(5, 1) .EO.1] PERFORM UPDTBULKDATA [6] FIN IFF INC.ST.O.AND.ILPC5.2).EQ.I] PERFORM UPDTCONTOATA [7J FIN CALL TRNFRMt-1.1., IAt IPOINT+3). IP(7)> CALL FRMDCIAUP01NT+3)) CASE CIPdl.EQ. 1 .AND.BMX.GT.O.] PERFORH STNOLEOEPOSITHOLDUP C81 ORIF tlP(I) .GE.2.AND.EJM.GT.0] PERFORM REDEPOSITHOLDUP [9] FIN IAUP01NT»2)=-1 TR [3] [401 STOM MATERIAL PLACED IN STORAGE] ENDPROC [1] PROCEDURE DIVERSIONATTEMPT [2] IA(IPOINT»2)=-S IA<1P0INT«»)«]P(7) Tfi £3] 1401 STOM DIVERSION ATTEMPT] ENDPROC [2] PROCEDURE INSTORE C3] IA(IP0INT*2M-3 IA(IPOINT*3)=IP<7) TR [31 [401 STOM REQUEST FOR AVAILABLE (STORED) MATERIAL] ENDPROC [33 PROCEDURE 1NH0LDUP [4] lA(IP01NT*2)=-4 IA<IP0JNT*3)=1P<8) TR C3] (401 STOM REQUEST FOR HELD UP MATERIAL] ENDPROC [41

-153-

Source Function Programs

PROCEDURE REMOVE CS] CALL NCBM(IA<IP0INT*3l,NC,eM> 1A(LV»1)='IV(1)-NC RAtLV+8)=RV<8)-BM IFF [BM.GT.O.AND,ILPtS,1).EO.11 PERFORM UPDTBULKDATA I6J FIN IFF [NC.GT.0.AND.ILP(5,2).EQ.1J PERFORM UPDTCONTDATA 17] FIN IAClP01NT-»2)=-2 IP01NT=0 TR 13] [401 STOM MATERIAL REMOVED FROM STORAGE] ENDPROC t»3 PROCEDURE UPDTBULKDATA [6] RACLV*13> = RVM3)*RVC8> <TIKE-RV(12)) RACLV+14>=RVC14)+RVC8> RV(8) (TIME-RVC 12)> IACLV*11>=IVC11>*1 RACLV*12>=TIME ENDPROC [61 PROCEDURE UPDTCONTDATA [73 RACLV*6)=RV(6)+IV<1) (TIME-RVC5)) RAtLV<-7)=RV(7) + IV< 1 > IVU) ( TIME-RV(S-) ) IACLV+4)=[V<4>+1 IFF MV<1).0T.1V(2I1 IA(LV + 2)MV(1> RACLV*3)=TIME FIN RACLV*S)=TIME ENDPROC C7] PROCEDURE S1NGLEDEPOSITH0L0UP re] IFF [BMX.GT.C]

F=(RP<2)+RP(3) RV(B)) RP<4)/RV<8> PERFORM TRANSFERTOHOLOUP £ 11] FIN ENDPROC [83 PROCEDURE REDEP0S3TH0LDUP 191 IFF IBMX.ST.0.3 CALL TRNFRM<0,1.,IP(8),IPC7)) ELSE CALL NCBMfIPC8).NC.BMH) CASE £tP<1).E0.2] IFF CBMH.GT.O.] F=((BMH-RP<2) RPC4I) <RV<8)/RV19))+RP(2> RP(4))/BMH CALL TRNFRMtO.F.IPCS),IP<7>) FIN F=<RP(2)+RPC3) RVC8)) RP<4)/RVt8J

-154-

Source Funet i on Prognar.s

PERFORM TRANSFERTQHOLDUP [113 ORIF CIP<!>.EQ.3J IFF [BMH.GT.O] CALL TRNFRH(0,1.,IP(6),IPI71) FIN F=RP(3) RP(4>/RV(8> PERFORM TRANSFERTQHOLDUP tin FIN FIN ENDPROC 191 C PROCEDURE CONDITION [tOl IFF [IPC6I.GT.01 CALL P C O M ( I L P I 6 . 1 ) , 9 , 9 , I P ( 7 I . O , 0 , O, 0 , 0 , 0 ) FOR C I ] = [ 1 1 TO t l A ( I P ( 6 ) * , ]

MT0=1LP<6, I 1 1CTYPE=9 SEND I F F U A ( 1 P 0 I N T ) . N E . - 9 3 ERROR [401 STOM RESPONSE TO CONDITION NOTICE] FIN FIN CALL FSTORE(IPOINT) FIN ENDPROC [103 C PROCEDURE TRANSFERTOHOLDUP £11] IFF tF.GT.1.1 CALL TRNFRMtO,1.,IP(7),IP(S)) ELSE CALL TRNFRMCO.F,IPC7I,IP(8)) FIN ENDPROC [11] ENDBLOCK C 501 INDA 3/16/76 C INDEPENDENT ACTION C LP+O 1 RESPONSE POINTER C 1 1 DURATION TIME DISTRIBUTION TYPE C 2 4 DURATION TIME STATISTICS C 3 4 STIMULUS SPECIFICATIONS (REPEAT FOR EACH TYPE) C MONITOR FUNCTION C STIMULUS TYPE C DELAY TIME DISTRIBUTION TYPE C DELAY TIME STATISTICS C DURATION TIME DISTRIBUTION TYPE C DURATION TIME STATISTICS C INTENSITY DISTRIBUTION TYPE C INTENSITY STATISTICS C 4 a FUNCTIONS NOTIFIED AT CONDITION TIMES C LV+O 1 ENTRY COUNT C LI+O 0 SUBROUTINE BSOI

-15S-

Source Function Proo^Ens

USE SPH BEG1NBL0CK [3013 153 P3 tI,1,1,4,2, I 3 CREATE DESTROY PARAMETERS 93400 CONTINUE ERROR 1501 INDA ATTEMPT TO SET INITIAL CONDITIONS: REPORT [501 INDA] INITIALIZE DUMP EVENT CASE £IA<[POINT).GT.03 CALL EVORSd .2.0) IFF I 1P(<J> .GT.OJ CALL SChED(TlME»D,IA(LB»2),0,0) FIN 1=IA<IPOINT) L=1A(IP01NT»1) IMXT = J42 + NSTATE( IF1XCRAC(L, 1*3))) IFF :iFIX(RAC(L,INXT*8>).GT.O.AND.INXT.LT.IA(L+3)3 CALL SAKPLtL,INXT+1,TD) CALL SCHED(TIME+D*TD,JFIX(RAC(L,1NXT*2)),1NXT.L) FiN IFF [|P(3).GT02 PERFORfl STIMULI £13 FIN ORIF £IA([POINT) EQ.03 IFF riP(4>.E0.01 ERROR ES01 INOA CONDITION LIST] FIN CALL PCOMt I LP(d, 1 ) ,9,9,0,0,0,0,0,0, 0) FOR CM = 113 TO CIAf IP(4)*3)J MFR0M=IA<LB+2) MT0=1LP<4, I) ICTYPE=S IA([P0INT*2)=9 SEND IFF IIACIP01NT*2>. NE.-93 ERROR 1501 INDA RESPONSE TO CONDITION N0TICE3 FIN FIN CALL FSTORE ( I POI NT I FIN RESPOND t-63 [03 INTERACT ERROR C501 INDA ILLEGAL INTERACTION! RESPOND 1-91 [03 C PROCEDURE STIMULI t!3 1 = 1 CALL PCOMUFIXCSLPO, I ) ) , 9, 7, IPI3) , I • . ,J, O. O, 0,0) WHILE [1 .LE. IA(lPC3i«-3)3 -156-

Source Func-tion Programs

MFR0M*IA(LB+2) MTO'RLPO. 1 ) ICTYPE=9 IA(IPOINT+2)=7 IAUP0INT+a) = l*1 SEND IFF [ |AUP0INT*2) ,NE. -71 ERROR [501 1NDA STIMULI DATA MOT ACCEPTEDJ FIN 1=1+2 1=!+NSTATS( IFIXCRLPO, l)l)*1 I = I+NSTATS(JFIX(RLP(3, J )) 1*1 l=l*NSTATSt!FIX(RLP<3,!)))•! FIN CALL FSTORE(IPOINT) EN0PR0C It] ENDSLOCK C 502 MAOA 3/16/78

C ADVERSARY MATERIAL ACQUISITION ACTION C LP*0 1 RESPONSE POINTER C 1 1 OURATION TIME DISTRIBUTION TYPE C 2 4 DURATION TIME STATISTICS C 3 4 STIMULUS SPECIFICATIONS (REPEAT FOR EACH TYPE) C STIMULUS MONITOR FUNCTION C STIMULUS TYPE C DELAY TIME DISTRIBUTION TYPE C DELAY TIME STATISTICS C DURATION TIME DISTRIBUTION TYPE C OURATION TIME STATISTICS C INTENSITY DISTRIBUTION TYPE C INTENSITY STATISTICS C 4 2 TARGET FUNCTIONS C S 2 FUNCTIONS NOTIFIED AT CONDITION TIMES C 6 1 -DIVERTED MATERIAL C LV+O 1 ENTRY COUNT C Ll+O O SUBROUTINE BS02 USE SPM BE81N3L0CK ES023 C7J 113 T1,1,4,4,2, 2,1,13 DATA IX.U/1,0./ CREATE 39200 CONTINUE IFF [1P(6>.QT.0] CALL FRMD(IP<6)) FIN CALL DESTROtlPVT) RESPOND 1-21 CO] PARAMETERS 99400 CONTINUE ERROR C502 MAOA ATTEMPT TO SET INITIAL CONDITIONS} 99S00 CONTINUE WR [IACLB*2)J * -1S7-

Source Function Proerens

E//.9H FUNCTION,14,1X.8H502 MAOA « /11X, I7HDIVERTED MATERIAL] CALL WRMD(1P(6>) RESPOND [-5] tOl 93600 CONTINUE IFF tIP<6>.GT.O] CALL FRMDCIPC6)) FIN CALL CMBf1A(LP*6I.0.0.0,0,2,0.0,0.) FOR 113 = (1) TO tlA(LB*d>] IAILV-1*!)=IA(LI-1*1) FIN RESPOND t-61 [0] DJMP EVENT CASE UAilPOINT! .GT.O] CALL EVDRSC1 ,2,D1 IFF [IP(5>.GT.03 CALL SCHED(TIME*D,IA<LB*2),0,0) FIN I=IA(IP01NT) J*IA<IP01Nf*1> INXT=I*2»NSTATS«IF1X<RAC«J.I+3)>> IFF CIFIXCRACtJ, INXT+2M .GT.O.AND. INXT.LT.]AU*3)] CALL SAMPLIJ,INXT+l.TD) CALL SCHEDtTlKE+D+T0,lFIX(RACCJ,lNXT+2)],INXT,J) FIN IFF £IP(3).GT.03 PERFORM STIMULI E13 FIN IFF [1P(4>.ST.03 PERFORM ATTEMPT [23 FIN ORIF t!A([POINT!.£0.03 IFF [IPCS).EO.03 ERROR 1502 MAOA OPPORTUNITY LI-ST1 FIN

CALL PC0MULPC5.1 1 , 9 , 9 , 0 , 0 , 0 , 0 , 0 , 0 , 0 1 FOR t U x I I ] TO I I A ( I P ( 5 ) * 3 ) ]

MTO=ILPl5,I) IA(IP0JMT+2)=9 SEND IFF [IA(IPOINT*2>.NE.-93 ERROR tS02 MAQA RESPONSE TO* OPPORTUNI TV NOTICEJ FIN FIN CALL FSTdRE(IPOINT) FIN RESPOND 1-61 CO] INTERACT

IFF IIAUPOINT+2I.EQ.31 IA( lP0INT*2)s-3

- I SB-

Source Function Programs

JAMP01NT+3) = IP(6) ELSE ERROR (SOS MAOA ILLEGAL INTERACTIONS FIN RESPOND [-9] IIPOINTJ PROCEDURE STIMULI [13 1=1 CALL PC0MUFIXIRLPI3, I > >, 9, 7, I P O ) , I+ 1 ,0 ,0 ,0 , 0,0) WHILE t l .LE.IA<IP<3>»3>3

r i r o s R L P O . n !CTYPf>9 IA(!P0INT«S)=7 IA<IPOtNT»43>l+1 SEND IFF nA(IPOINT*23.NE.-73 ERROR [502 MAOA STIMULI DATA NOT ACCEPTED) FIN 3=1+2 ! = I *NSTATS<IF!XrRLPO,m>*1 1=J*NSTATSCJFIXCRLPI3,I ))>*1 I = I+NSTATSClFIX(RLPO, I)>)*1 FIN CALL FSTOREUPOINT) ENDPROC £13

PROCEDURE ATTEMPT [21 FOR till = [1] TO ClAtIP<4>+3]J CALL PeOM(ILP<d,111,9,3,0,0,0,0,0,0,0) SEND IFF CIA<!P01NT*2>.NE.-53 ERROR [502 MAOA TARGET FUNCTION RESPONSE! FIN CASE t!A<lP01NT*3>.GT.03 LSM=IA(IP01NT+3) PERFORM REMOVEMATERIAL £3] ORIF CIAfIPOINT*4).GT.03 CALL URN(IX.U) N=U FLOAT(IACIP0INT*5)) .9999*1 L=IA<1P0INT*4) Ms) •Jl'ILE tM.LT.N3 L=IA(L+8) IFF [L.LE.01 ERROR CSOS MAQA MESSAGE BLOCK LINKAGE3 FIN M=M + 1 FJN LSM=)A(LO) PERFORM REMOVEMATERIAL [33 FIN CALL FSTORECiPOINT)

-1S9-

Source Function Progrsns

FIN ENOPROC [23 PROCEDURE REMOVEMATERJAL £33 CALL NcancLsn.NC.SMi |:)FIX(RACIJ,3>) CASE tl.EO.15 IFF [3M.GT.0.3 PERFORM REMOVEBULKITEMS C4J FIN ORIF CI.EQ.23 IFF t3M.OT.O.1 PERFORM REMOVEBULKMASS [55 FIN ORIF [I.E0.3I IFF [NC.GT.03 PERFORM SEHOVECONTAIIJER1TEMS [65 FIN ORIF tl.EO,43 IFF [NC.GT.03 PERFORM REMOVECONTAINERBULK 175 FIN ORIF CI.EO.S1 IFF CNC.GT.05 PERFORM REMOVECONTAINERS 185 FIN OTHERWISE ERROR 1502 MAOA ILLEGAL MATERIAL DIVERSION OBJECTIVE TYPE3 FIN ENDPROC [33 PROCEDURE REMOVEBULKITEMS [43 PERFORM LOCATEBULKLSM IS5 L=IAILSMB-»5> WHILE (L.NE.O.AND.1A(L+71.NE.IFIX(RACCJ,4))1

L=lAIL->4> . F I N

I F F I L . t O . O J LB 1=0

ELSE I F F [ I A ( L » 8 > , G T . 0 3

LB1=L*B ELSE

LB1=0 F I N

F I N IFF I L B 1 . G T . O ]

CALL CMBfLDM.OjO.O.O, L O . , 0 , 0 . ) CALL C M B ( I A ( L O M + S ) , L O M , 0 . 0 . 0 . 0 , I F I J « R A C £ J . 4 ) ) , 0 , 0 . ) N = I U N I F ( I F I X < R A C ( J , 5 ) 1 , I P I X ( f t A C < J , 6 1 I ) CASE C N . O T . I A ( L B I ) 5

N= IA (LB1)

- 1 6 0 -

Source Function Prograns

ORIF [N.LT.O] N=0 FIN IAIIA{LDM+5)+8)=N IA(LB1)=1A(LBI)-N CALL TRNFRMCO,1.,LDM,1P<6I! CALL FSTORE(LDM) FIN EMOPROC [4: PROCEDURE REM0VE6ULKMASS 15J PERFORM LOCATEBULKLSM 19] IFF [tFIX(RACCJ,4)l.EO.O] A=RN0RMnFIX(RAC(J,7>)JIFIX(RACrj,8))) IFF tA.LT.O.J A=0. rIN CALL TRNFRMtO.A/BM.LSM,IP(6)) ELSE

L=IA(LSMB»5) WHILE [L.NE.0.AND.IACL»7) ,NE. IF1X<RACCJ.A I )1 L=lAtL»4) FIN IFF [L.NE.O] A=RNORM(RAC<J.7)JRAC(J.8)) CASE [A.LT.O.J

A = 0 . ORIF CA.GT.RA<L+9>J

A=RA(L*9) F I N

CALL T R N F R M O , A / R A i L * 9 ) , L S M , I P ( 6 ! > F I N

F I M ENDPROC [ 5 1

PROCEDURE REMOVECONTAINERITEMS £6] PERFORM LOCATECONTAINER CIO] LSHSAV=LSM LSM=LSMC PERFORM REMOVEBULKITEMS C43 LSM=LSMSAV ENDPROC [63 PROCEDURE REMOVECONTAINERBULK [71 PERFORM LOCATECONTAINER [103 LSMSAV=LSM LSM'LSMC PERFORM REMOVEBULKMASS [SI LSM=LSMSAV ENDPROC t71 PROCEDURE REMOVECONTAINERS 18]

-161-

Source Function Prograns

N=IUNIFCIFIX(SAC<J,fll),lFlX<RAC<J,101)> CASE CN.LT.O] N»0 ORIF tN.OT.MC3 N>NC FIN CALL TRNFRM(N,0.,LSMJIP<6>) ENOPROC [SI C PROCEDURE LOCATEBULKLSM tfll IFF IIA«LSM*6),E0.11 LSMB=LSM ELSE L=IA(LSM+B) IFF CIA(L+6).EQ.13 LSMB=L ELSE ERROR [502 NAOA LOCATING SULK AT LSHl FIN FIN ENOPROC [91 C PROCEDURE L0CATECQNTA1NER [109 L=!AILSM»5) IFF IIA(L*6).E0.I1 L=]A(L*4) FIN IFF []ACL«6i.NE.2: ERROR [502 MAOA LOCATING CONTAINER MATERIAL OATA STRUCTURE! FIN N=0 K=L WHILE IK.NE.O] K=IACK«4) N=N*t FIN CALL URN(IX.U) I=U FLOATCIM) .9999+1 N«l K=L WHILE CN.LT.II K=IA(K«4) N = N+1 FIN LSMC=K ENDPROC tlO] ENDBLOCK C S03 DEPA 3/16/78 C DEPENDENT ACTION C LP+O 1 RESPONSE POINTER C 1 1 DURATION TINE DISTRIBUTION TYPE C 2 4 DURATION TINE STATISTICS

-162-

Source Function Proorans

STIMULUS SPECIFICATIONS (REPEAT FOR EACH TYPE) STIMULUS MONITOR FUNCTION STIMULUS TYPE DELAY TIME DISTRIBUTION TYPE DELAY TIME STATISTICS DURATION TIME DISTRIBUTION TYPE DURATION TIME STATISTICS INTENSITY DISTRIBUTION TYPE INTENSITY STATISTICS MODE: 1 = CONDITIONAL STARTINO OF ACTION 2 = CONDITIONAL COMPLETION OF ACTION REFERENCE TIME FUNCTIONS NOTIFIED AT COMPLETION) TIMES -REPORT DATA ENTRY COUNT TIME Tl ACTION STARTED DURATION OF ACTION TIME DELAY OF NEXT ACTION NEXT ACTION FUNCTION NEXT ACTION FUNCTION INPEX INXT - ACTION SEQUENCE LIST TIME TO THE LAST CONDITION NOTICE WAS RECEIVED O -2. -1 . -1 . 0 0 0 -1. SUBROUTINE BS03 USE SPM BEGINBLOCK [5033 [SI [M tl , I , 4,4,1. S, 2,1,1,3,3,3,1,I,I,3] CREAT RAILI+1)*-2. RA(LI*2>?-1. RA(LI*3)=-1. RA(LI*7)=-1. RESPOND C-13 [03 99200 CONTINUE IFF IJP(7>.GT.03 CALL FST0RE<IP(7)) FIN CALL DESTRO(IPVT) RESPOND [-23 [03 PARAMETERS 99400 CONTINUE ERROR [ 5 0 3 OEPA A T T E S T TO SET I N I T I A L CON0ITIONS3

99500 CONTINUE PERFORM REPORT 143 RESPOND [-53 [03 99600 CONTINUE -163-

C 3 4 C c C C c C C c C 4 1 c C 5 3 C 6 2 C 7 1 C LV+O 1 C 1 3 C 2 3 C 3 3 C 4 1 C 5 1 C G 1 C 7 3 C L l + O C 1 C 2 C 3 C 4 C 5 C 6 C 7

Sourer Function Progruns

IFF [IP(7).EQ.0J CALL ASTOREIIA(LP*7),8) FIN IFF INRUN tO,13 I A ( L C S C l P t 7 J , 1 ) ) = 0 RA(LCSUPf ? l , 2 i ) - 0 . R A I L C 3 C I P < 7 ) , 3 i ) = 0 . R A ( L C S ( I P C 7 ) , 4 I > = 0 . R A < L C S n P ( 7 ) , 5 l ) = l .OE+50 F I N

FOR I I ] - t i l TO t l A ( L B * 4 > 3 I A C L V - 1 + l > = I A < L I - 1 * 1 1 F I N

RESPONO 1-63 103 DUMP EVENT CASE [ I A ( 1 P 0 1 N T > . G T . 0 3

CALL EVDRSd , 2 , R A ( L V * 2 ) J J - I A ( I P O I N T ) L = I A l l P O I N T * ! ) I A ( L V « 6 ) = L I N X T = I + Z * N S T A T S ( ! F I X C R A C < L . ! * 3 > ) > IFF U F ! X t R A C ( L , 1NXT*2>>.GT.0 .ANO. INXT .LT . IA1LH3I3

CALL SAMPHL. INXT»1 ,TD) RA(LV»31=TD tAtLV»4)=IFlX(RACCL, INXT*2>> IAILV*5)=INXT FIN CASE IIPI4) .EC 13 IFF IRV<7).GT.T!ME-RP<5>J PERFORM START1 [13 ELSE RA(LV*1) = -1 . FIN ORIF IIPC43.EQ.23 PERFORM START2 T2J OTHERWISE ERROR T503 DEPA TLLEOAL MODE SPEC IFICATtCNI FIN ORIF EIA(IPOINT).EO.O] IFF [IP(6).E0.03 ERROR C503 DEPA CONDITION LIST] FIN CALL PCOMIILP<6.1>,9,9.0,O.O,0,0, O. O) FOR III = [II TO C1AIJP<6)+3)] MT0=ILP(6,I) 1A(lP01NT+2>=9 SEND IFF IIAUP0INT+2J.NE. -93 ERI.3R [503 DEPA RESPONSE TO CONDITION NOTICE3 FIN FIN

-164-

Source Funct i on Proorana

CALL FSTOREC]POINT) FIN RESPOND [-6) 103 INTERACT IFF I!A(IP0INT*2).NE.9J ERROR [503 DEPA ILLEGAL INTERACTION) FIN CASE CIPKD.EO. 1) CASE tRVtl I .LT. -1 .51 RA(LV*7)^TIME ORIF ir.VIt ) .LT. -,BJ PERFORM STARTt [13 OTHERWISE ERROR t503 DEPA CONDITIONAL START] FIM ORIF C1P(<1) .EO.21 CASE [RVdl.LT.-l.Sl RA(LV+7)=TIME

ORIF [ R V t l ) . G E . ( 0 L A N D . I V I 4 ) .ST. O] IFF CTIME.LE.RVt1>«RVCE)J

CALL SCHEDtRVn)+RV<S>tRV(3> . 1VC4) , I V ( 5 J , IV<6> ) ELSE

CALL SCHED(T1ME*RVI3) , ! t f ( 4 ) , I V ( 5 ) . 1 V ( 6 ) ) 1 A ( L V + O = 0 IA<LV*S>=0 IAILV*6)=0 FIN FIN FIN PERFORM UPDATEDATA [5 IAUP0INT«2J=-9 RESPOND t-SJ tlPOINT]

PROCEDURE START1 II] IFF £IV(d).GT.O] CALL SCHED(TlME*RUt2)»RWC3)rIVt4),IV<S),IV(6)) FIN IFF tIP(3».GT,03 PERFORM STIMULI 13] FIN IFF tIP(6).0T.0I CALL SCHEDCTIME<RV(2>, 1A<LB+2>,0,0>J FIN ENDPROC tt] PROCEDURE STARTZ £23 RA(LV*1)=T1ME IFF f1P(3) GT.01

"ERFORM STIMULI C33 • :N I s' i"IP(6>.GT.03

vALL SCHED<TIME+RVC2>,IA(LB*2>,0, 00 -165-

Source Function Progrsns

FIN IFF IIV(4).GT.O] IFF [RV<7).GT.TIME*RVI21 RP(5)J CALL SCHEDmKE+RV<2)*RV<3>,IVt4),IU<5>,lV'6)) IA(LV*4)=0 IMLV*5)=0 IA(LV*6)=0 FIN FIN ENDPROC (21

PROCEDURE STIMULI (31 1 = 1 CALL PC0MCIFIX<RLP<3,I>>.9,7,1P<3>,I•1,0,O.0,0.0) WHILE tl.LE.IA<IP(3>+3>] MT0=RLPC3,I) 1CTYPE=9 IA(IP0rNT+2)=7 IA(IP0INT*5)=I+1 SEND IFF [IAIIP01MT+2I.NE.-73 ERROR (903 DEPA STIMULI DATA NOT ACCEPTED! FIN 1=14-2 l=t*NSTATS( IFlX<RLPt3, t> J >•! l = I+NSTATSIIFIX(RLPt3; t)>>-»1 l=t+NSTATSCIF1XCRLPI3,I)>>+1 FIN CALL FSTORECJ POINT) ENDPROC C33 PROCEDURE REPORT Ml WR CIA(LB>2>] e. C//.9H FUNCTION.14.IX.8H503 DEPA] RA(LCS<IP(7>.2))=RA(LCS<1P<7>.2))/FLOAT<IA<LCS<IP<7).1>)) SD=RACLCSCIP<7),3))/FLOAT!IA(LCS(IPC 7) ,I)11-RACLCS<IP<7>,2>) IFF ISO.OT.O.J SD=SORT<SD) ELSE SD=0. FIN WR tRA<LCS<IP(7),2>),SDl « U1X,22HMEAN TIME OF CONOITION,E12.4 « /I IX,16HSTAN0ARD DEVIATION,E12.41 WR tiA<LCS<lPC7>, 1 )>,RA(LCSC1PC7I,4)),RMLCS< IP<7>,S))1 8 [1IX.22HNUMBER OF OBSERVATIONS,110 S /I IX.12HMAXIMUM TIME.EI2.4 « /I IX,I2HMIN1MUH TIME.E12.41 ENDPROC (4] PROCEDURE UPDATEOATA [51 IA<LCS(IP(7),l))=IA(LCS(IP<7).t))+l

Source Funct i nn Prorjrans

RA(LCS<IP<7>,2))=RAU.CS<1PC7),2)>*TIME RA(LCS( IP(7),3))=RA<LCS<]PC7>.3)>+TIMe TIME IFF IT1ME GT.RArLCS<lP<7),4)>S RAtLCSClP(7l.4>}sT!ME FIN IFF ITIME.LT.RAILCSIIP(7>,5))] RA(LCS(!P(7),51J=TIME FIN ENDPROC [5] ENOSLOCK C 504 MODA 3/16/76 C MODIFICATION ACTION C LP*0 1 RESPONSE POINTER C 1 I DURATION TIME DISTRIBUTION TYPE C 2 4 DURATION TIME STATISTICS C 3 4 STIMULUS SPECIFICATIONS CREPEAT FOR EACH TYPE) C STIMULUS MONITOR FUNCTION C STIMULUS TYPE C DELAY TIME DISTRIBUTION TYPE C DELAY TIME STATISTICS C DURATION TIME DISTRIBUTION TYPE C DURATION TIME STATISTICS C INTENSITY DISTRIBUTION TYPE C INTENSITY STATISTICS C 4 2 MODIFICATION SPECIFICATIONS (REPEAT FOR EACH MODIFICATION) C FUNCTION C PARAMETER/VARIABLE C FIRST LIST INDEX C LAST LIST INDEX C 9 4 NEW VALUES C 6 4 INITIAL VALUES C 7 2 CONDITION FUNCTIONS C LV*0 1 ENTRY COUNT C LI+0 0 SUBROUTINE BS04 USE SPM BEGIN3L0CK £504] [8] [I] [1,1,4,4.2,4.4,2,1] CREATE DESTROY PARAMETERS 99400 CONTINUE ERROR £504 MODA ATTEMPT TO SET INITIAL CONDITIONS] REPORT C504 MODA] 99600 CONTINUE FOR I I ] = t l ] TO CIA<LB+4>]

I A I L V - I + 1 ) = 1 A ( L I - 1 + 1 I F I N

NPVAI_=6 PERFORM MODIFY [2] RESPOND £-63 CO] DUMP EVENT -167-

Source Function Programs

CASE IIAt IPOtNT) GT.03 CALL. EYDRSd ,£,0> IFF [|P(7).GT.O]

CALL SCHEDCrlMEtD, I A( LB+2}, 0, O) FIN

I=1A<1P0INT) L=;A(IPOINT+IJ INXT=I«2'NSTATSCIFIXCRACCL,I+3>)) tFF Ur'IXCRACIL, 1NKT*2) ) .GT.O.AND. INXT.LT. rA(L+2M CALL SAMPLIL,INXT+l.TD) CALL SCHED(TII1E+D+TD, IF1XIRACIL, INXT+2) ! , 1NXT.L) FIN IFF CIP(3).GT.03 PERFORM STIMULI II] FIN IFF I I P M ) .GT.03 NPVAL=5 PERFORM MODIFY [23 FIN ORIF ClAtrPOINT).EQ.01 IFF [|P(7>.E0.01

ERROR £504 MODA CONDITION LIST] FIN CALL PCOMC 1 LP< 7. 1 ) , 9. 9.0,0, O, 0, O. O, 0) FOR 111 = [11 TO tIA<lP(7>+3>3 MT0=ILP<7,I) IAUP0INT*2)=9 SEND IFF [IA<1P01NT+2).NE.-93 ERROR [504 MODA RESPONSE TO CONDITION NOTICE! FIN FIN CALL FSTORE(IPOINT) FIN RESPOND C-83 [03 INTERACT

ERROR [504 MODA ILLEGAL INTERACTION] RESPOND [-9] CO] PROCEDURE STIMULI n j 1 = 1 CALL PCOMnFIX^LPC I ) ) , 9, 7, I P O ) . I + 1 , C 0 ,0 ,0 ,0 ) WHILE [ I .LE. IAUPC3W3I3

MFR0M=[A(LS*2) MT0=RLP(3,I) ICTYPE=9 IA(lP0INT+e>=7 IACIP0INT+4>=I+1 SEND IFF [EACIP0INT*2).NE,-73

ERROR C504 MODA STIMULI DATA NBT ACCEPTED] FIN

-168-

Source Funct i on Prc^roMS

I = I +E l - ! * N S T A T S ( I F I X ( R L P ( 3 , l ) ) ) * l 1 = I + N S T A T S U F I X ( R L P ( 3 , l ) ) ) * I I=I+NSTATSC1F1X(RLP(3, !)))•! FIN CALL FSTORE(IPOINT) ENDPROC [I]

PROCEDURE MODIFY £23 1=1 J«1 WHILE El,LE.IA(IP<4>+3>] NF=ILPC4,I) LBF»IACLCS(LBPT,NF+1)) IFF CLBF.GT.03 PERFORM MODI FYFUNCTION C33 ELSE ERROR C504 MQDA ATTEMPT TO MODIFY AK UNDEFINED FUNCTION} FIN 1 = 1 •«« F I N ENDPROC 123

PROCEDURE MODIFYFUNCTION t3] NPV=ILP(<», I+t ) N=ILP(d,1*21 H>ILP<4.1*3) CASE CNPV.ST.CJ LPVF=LBF*S PERFORM ASSIGNNEWPARAMETER/VAR/UBLE 143

ORIF CNPV.LT.O] NPV=-NPV -PVF = LBF*5+ IA(LBF * 3 ) PERFORM ASSIGNNEWPARAMETER/VARIABLE 142 OTHERWISE ERROR [504 MODA ILLEOAL PARAMETER/VARI ABLE NUMBER ZEROJ FIN ENDPROC E33

PROCEDURE ASSIGNNEWPARAMETER/VARIABLE 143 CASE CM.EO.03 CASE CM.EO.03 IA(LPVF+NPV)=1FIX<RLP<NPVAL.J)) ORIF CM.EQ I 3 RACLPVFtNPV>=RLPCNP\/AL, J )

OTHERWISE ERROR <S04 MODA LAST INDEX FOR SCALAR] FIN J=J*1 ORIF CN.GT.03 IFF [M.GT.0.AND.M.SE.M3 FOR CK3 = CN3 TO CMJ -169-

Source Function Projjrans

tA(LCSIIA<LPVF*NPV),K*2>)sIFIX(RLP(NPVAL , J)) J = J + l F I N ELSE

ERROR [504 MODA LAST INDEX FOR- INTEGER LI ST J FIN ORIF IN LT.Ol N=-N IFF tM.GT.O.AND.M.GE.NJ FOR [K3 = [NJ TO CM3 RA(LCS<IA< LPVF*NPV),K+2>)= RLP< NPVAL,J 1 JsJ41 FIN ELSE ERROR 1504 MODA LAST INDEX FOR REAL LI STJ FIN FIN ENDPROC [43 ENDBLOCK C S05 HDAS 3/16/78 c HALT D VERSION ACTION SEQUENCE c LP+O RESPONSE POINTER c LV«0 ENTRY COUNT c 1 HALT STATUS c 2 SAVE 1 = JAIIP01NT)

r 3 SAVE L = IAI!P0INT>1> C Ll*0 0 C 1 0 C 2 0 c 3 0 SUBROUTINE BSOS USE SPM BEGINBLOCK. (SOS] CI] [4] 11,1 ,1,1.1] CREATE DESTROY 99300 CONTINUE ERROR [505 HDAS ATTEMPT TO SET PARAMETERS] VARIABLES REPORT [505 HDAS3 INITIALIZE DUMP EVENT lAfLV*2)=IA(lP01NT] IA(LV*3)=IA(IP0INT*1) I F F I I V U J . E Q . O ] PERFORM CONTINUATION CI] FIN RESPOND [-81 C03 INTERACT IFF ClA(IPOINT+e>.EQ,83

I F F t i v t n . E Q . n 1A<LV+1>=0

-170-

Source Function Prograns

PERFORM CONTINUATION [1] FIN ELSE ERROR (505 HDAS ILLEGAL INTERACTION] FIN IA<IP0INT*2>=-« RESPOND t-9J CO] C PROCEDURE CONTINUATION tt] I-1VI2) L=1V13> lNXT=r+2*MSTATS<JFIX(RAC(L,l+3)!; IFF CIFJXCRAC<L,INXT«2>J-QT.O.AND.1NXT.LT.IA(L+3)] CALL SAMPLCL,TNXT*1.TO) CALL SCHEOCT1ME+TD,]FIX(«AC(L,INXT*25),INXT,LJ FIN ENDPROC CI] ENDBLOCK C 601 TIMR 3/16/78 C TIMER C LP*0 1 RESPONSE POINTER C 1 3 PERIOD C 2 1 NUMBER OF SHIFTS PER PERIOD C 3 4 SHIF1 STARTING TIMES C 4 4 SHIFT ENDING TIMES C 5 1 NUMBER OF INTERVALS PER PERIOD C 6 4 INTERVAL STARTING TIMES C 7 4 INTERVAL ENDING TIMES C LV+0 1 ENTRY COUNT C 1 3 TIME CURRENT PERIOD WILL END C 2 1 CURRENT SHIFT C 3 3 TIME CURftENT SHIFT WILL END C 4 3 TIME NEXT SHIFT WILL BEGIN C 5 1 CURRENT INTERVAL C 6 3 TIME CURRENT INTERVAL WILL END C 7 3 TIME NEXT INTERVAL WILL BEGIN C Ll+O O C 1 RPtll C 2 0 C 3 0. C 4 RLP<3,1> C 5 O C 6 O. C 7 RLP<6,1I SUBROUTINE B601 USE SPM BEOINBLOCK (6011 C8] (8] 11,3,1,4,4.1,4,4.1,3,1,3,3,1,3,31 CREATE DESTROY PARAMETERS 99400 CONTINUE ERROR 1601 TIMR ATTEMPT TO SET INITIAL CONDITIONS] -171-

Source Fur.ct i or Proyr ar.s

REPORT 1601 TIMR: 9960C CONTINUE RA(L I»1J= f tP (1 ) R A ( L I m j s R L P ' S , 1 ) R A ( L I • 7 ) = R L P I 6 . 1 i FOR I I ] = ( 1 1 TO £ IA<LB*« l ; j

I A ( L V - 1 * I > = I » ( L 1 - 1 * 1 ) F I N

CALL SCHcOfTIHE, IAILB->21 , I , 0 i IFF ( I P < 2 ) . G T OS

CALL SCHEttiRVtO),IA(LB«2>,2,0> FIN

IFF U P < 5 ) . Q T . O ] CALL SCKE0<RV<7), I A(LB*Si) , 3, 0> FIN RESPOND [-61 10] DUMP EVENT CALL CEC<t,5,K00E> CASE tKOOE.EO.1] RA<LV*I)=TIME«RP(1) CALL SCHEOIRVI1).MTO,1.0) TR tl] [601 TIMR BEGIN PERIOD] TPB=TIME I A I L V » 2 J = 0 I A ( L V * 5 J = 0

ORIF I K O 0 E . E Q . 2 ) I A ( L V » 2 ) = - I A ( L V * 2 ) * 1 RA(LV*3>=TPB+RLP<4,1V(2 I> CALL S C H E D ( R V ( 3 ) , M T O , 4 , 0 ) IFF U V I 2 ) . N E . IPC2) J

R A ( L V * 4 ) = T P B * R L P ( 3 , J V f 2 > » l > ELSE

RA(LV*4 )=TPB+RP<1>*RLPf3 .1> F I N Tft tl] 1601 TIMR BEGIN SHIFTJ ORIF IKODE.EG.3J IA(LV*5>=-IA(LV*5J+1 RAtLV*6)=TPB+RLP<7,IV(5)) CALL SCHED<RV(6!,MT0,5,0) IFF (IV<5).NE.1PC511 RA(LV*7)=TPB*RLPt6,IV(5>*1)

ELSE RA(LV*7)=TPB-<RP( 1 )*RLP<6, 1 ) FIN TR t l ] 1601 TIPIR BES1N INTERVALS

ORIF IKODE.EO.d] I A « L V * 2 ) = - I A ( L V + 2 ) CALL SCHED(RV(4) . H T O ^ . O ! -RA«LV+3)=0. TR t i l [ 6 0 1 TIMR END SHIFT]

Oft I F lKO0e .EO.5J - 1 7 E -

Source Function Prograns

IArLV*5l = -iA<L-/«Sl CALL SCHED(RVI7) ,MTO,t3,0! RA(LV*6J=0 TR C1: [601 TIMR END INTERVAL] FIN RESPOND I-BJ I0J INTERACT TR [33 IE01 TIMR RETURNING TIMING DATA] RESPOND 1-9] TLVOJ ENDBLOCK C 602 SCAS 3/'.6/78 C START CONTROL ACTION SEQUENCE C LP*0 1 RESPONSE POINTER

C 1 4 ACTION SEQUENCE SPECIFICATION. REPEAT FOR EACH ACTION: C t) FUNCTION (NEGATIVE FOR FIRST ACTION OF SUBSEOUENCES), C 21 ACTION STARTING TIME DELAY DISTRIBUTION TYPE, 3) ACTION C STARTING TIME DELAY STATISTICS (O OR MORE VALUES) C LV-G 1 ENTRY COUNT C LI+O 0 SUBROUTINE B602 USE SPM BEGINBLCCK [6021 [23 (II [1,4,1] CREATE DESTROY PARAMETERS 9940U CONTINUE ERROR 1602 SCAS ATTEMPT TO SET INITIAL CONDITIONSJ REPORT [S02 SCAS) INITIALIZE DUMP EVENT ERROR [602 SCAS ILLEGAL EVENT MESSAtE3 RESPOND [-83 [03 INTERACT IFF tlA(IPOlNT+2)-EQ 113 FOR [13 = [1) TO (lAIIPf13*33] IFF [RLP(1,I).LT.O] CALL SAMPL(IPC 1), 1*1.TD) CALL SCHED(TIME*TD,-IFIX(RLP-< 1 , I ) > , 1 , IP< 1 ) ) FIN FIN ELSE ERROR [602 SCAS ILLEGAL INTERACTICN3 FIN IA(IPOINT«ZI=-l 1 RESPOND t-93 tIPOINT] ENDBLOCK C 701 MZMB 3/16/78 C MEASURE MATERIAL BATCHES C LP+O 1 RESPONSE POINTER

C 1 1 NUMBER OF MATERIAL TYPES MEASURED C S 4 MEASUREMENT SPECIFICATIONS (REPEAT FOR EACH TYPE) -173-

Source f y f - c l l c

0 INTEGER MATERIAL TYPE CODE r. W A N r.nuu r ERROR C MAXIMUM UNIFORM DEVIATION OF COUWT ERROR C SYSTEMATIC MASS ERROR C MEAN OF HANOOM MASS ERROR C STANDARD DEVIATION OF RANDOM MASS ERROR C S 3 MEAN TIME TO COMPLETE ALL MEASUREMENTS C 4 3 MAXIMUM UNIFORM DEVIATION OF MEASUREMENT TIME C S 1 TIMING CODE C 6 1 TIMER FUNCTION C 7 2 MONITOR FUNCTI6M C 8 I DESTINATION FUNCTION C 9 1 TRANSPORT FUNCTION C 10 2 FUNCTIONS NOTIFIED AT CONDITION TIMES C 1 1 1 DUMMY PARAMETER USEO FOR SAVE LOCATI OH C LW»0 1 ENTRY COUNT C 1 1 NUMBER OF BATCHES IN FUNCTION C 2 1 MAXIMUM NUMBER OF BATCHES CONCURRENTLY KEASJREP C 3 3 TIME MAXIKUM FIRST OCCURRED C A 1 LN OF MOST RECENT BATCH IM MEASUREMENT C LI'O 0 C 1 0 C 2 O C 3 0 C 4 0 SUBROUTINE B7D1 USE SPM

BEGINBLOCK 1701 J M Z J 15} 11 . 1 , 4. 3. 3. 1 , 1 , 2. 1 . 1 , 2. 1 , 1 . 1 , CREATE

99200 CONTINUE IFF tIV(l>.GT.O:

PERFORM FREEMATERIAL Id} Fl N

CALL DESTROiIPVT1 RESPONO C-2] £0] PARAMETERS.

99400 CONTINUE ERROR [701 MZMB ATTEMPT TO SET INITIAL CONDITIONS)

99500 CONTINUE WR t IA(LB*2), IA(LV+2) ,RA{LV*3n S C//.9H FUNCTION,14,1X,8H701/MZMB S /!1X.40HMAX1MUM NUMBER OF BATCHES 1N MEASUREMENT.I 1O & n 1X.27HTIME MAXIMUM FIRST OCCURRED.UX,El2 4] RESPOND t-5} [03

9960O CONTINUE IFF tlV(l).GT.O)

PERFORM FREEMATERIAL £4] FIN

FOR 111 = [11 TO CiA(LB+4;j IA<LV-t*l)=!AIL!-1*I' FIN

RESPOND [-6] CO] -174-

DLi P EVENT CAL_ CECl1,1. KCDE; _r;=iAi :PC:NT-I . Ltf=IMl.'.'3> TIMER IS; [6: IFF (I PIT 13 CALL SCHEDl '.I/-' I B-2) , 1 ,LN) ELSE PERFORM MEASUREMENT !1] TR I 1] ;7C1 KZKB MEASUREMENT COMPLE1EU; "ERFCRM TRANSPORT C2J FIN RESPOND [-8] to.-

INTERACT CASE I ' A ! I P O I N T * Z l EO 1]

I A ( L P * I 1 ) = !PC I NT CALL COPYB:I POINT,LN) I A(LV« i ) = ! A f l . V ' 1 1*1 :FF [ I V i l ) GT 1V(Z>]

i A ( L V * 2 I = ! V < ! I R A I L V O l = T : M E F I N

IFF [ l Y M ) LE 03 I A ( L N * 8 ) = 0 IA<LN*3 )=C !AfLV<Si=LN

ELSE I A< IVf4i*9!-I.N !AILN-3;=IV!A) IAILN-31=0 IA(LV*4J=Lti FiM TIMER [5S 163

CALL SCHEDIT*RUNIF(RP<3>,HP(d) i. lA,fLB«2i .'.-») PERFORM CONDITION [33 TR 13] 1701 KZMB MEASUREMENT STARTED] IPOINT'lPtI 1) IA(IP0INT*2>=-1 ORIF UAf rP0TNT»2: E0.5J 1A' -=0[NT-»2) = -S IA- .=>0tNT-»3J=a IA< [P0rNT*1) = IU(O IA< [PCINT-«5) = IV<1 ) TR [3] [701 KZM8 MATERIAL ACQUISITIOIV ATTEMPT! OTHERWISE ERROR [701 MZMB ILLEGAL INTERACTION! FIN RESPOND [-9J [I POINT] C PROCEDURE MEASUREMENT [1] CALL PC0MCILPC7,1),0,6,O.O,0,0,0,0,01

175-

rvr< rNi = r i ] TO r iv< 1 * ] r,/-LL MZURf L.M, IP'S?; , : l , ! A ' C O ! N ' -S i , I A r I f-c: fiT • «/ wt ' :P<3i NT*5)

1 , IA( I POI NT-*6 I ,PA( IF 'O INT '7 ) / r'OH I I ] = 111 O 1 1 / - ' l l» l ? l ' " J l i

f1FRQM = I At LU-2J t - iT0=ILP<7, I / ICTYPE=9 1AI I P O I f l T < ? j =6 SEND I f F t I A( I POI ;,'T-»2) Nt - 6 ]

ERROR 17 ' i l MZK6 fiESFOIIS" *l> ME*j i .PE' /ENT DAT;.] F I N

F I N F I N

CALL FSTOREI I P O I f n l ENDPROC £1] PROCEDURE TRANSPORT [23 IFF I ] V ( I J.EO 1)

I A < L V * 4 ) = 0 ELSE

IFF I I V M ) . EO.L f l ] IA(LV+d)=IA'LM*8J IFF CIAILN-Sl 61 O] IAl!AfLN*8;»9l=0 FIN ELSE IFF [IAILN'3) EO O] I A( 7Af L'l->9)»6) =0 ELSE 1 AI JAI LM»8) » 9 J O AILH-9) I AT IA ILW9) *6) = I A(LN*6J Fl N FIN FIN PERFORM CONDITION L3] IA(LN*SI=0 IA(LM*9)=0 IA(LM»JI=IA<LB*2) I1FR0M=!A(LB*2) l1TO=IP(9> ICTYP"E = 9 [P0lriT = LN lA(LN+5)=IP(3l SEND IFF 1IAI I POINTS) . NE. -H

ERROR £701 flZMB MATERIAL NOT REMOVED AT COMPLETION TIME] FIN CALL FSTOREI IPOINT I 1 A(H/»1 ) = IA(LV*1 >-l ENDPROC C2]

SO..-CC r..^ctiOf °rKjfir:s

PRCCEDUPE SO'OIT'ON I3J IFF I IF" 10. fcT rjl

CALL PCCMIILPCIO 1 > , 9.9, O. I V'-ai , ! V M : ,C 3 C O . FOR I D - II] TO I IA< IPC 10)*3>;

MTO»lLl»< 10,1) ICT/PE=9 SE'.S IFF I1AC IP'J!NT»a) .NE -9J

ERROR 1701 MZMB RESPONSE 'O CCr-.DiT:CtJ N O T I C E ; FIN

CALi. FSTCRE< IPOIMT) FIN

FIN ENDPROC [33 PROCEDURE FREEMATERJAL '.ai LNilVMI WHJLE tLN <3T c:

CALL FPME' :^ ' l_"J«3 1 ! CALL F$TCRE!Lr;: LN=1*1LN»6) FIN

EMDPROC IdJ ESDBLOCK

702 CfBA 3/I6/7B COI'PUTE MATERIAL BALANCE

RESPONSE POINTER NUMBER OF REPORTS REPORT S DEC:FICATICNS (REPEAT FOR EACf P.EP3RT )

C INTEGER MATERIAL T/PE CODE C DATA I = OBSERVED 2 = TRUE 3 = B".RZR C VARIABLE 1 = COUNT 2 = T*ASS C SAMPLING 1 = EACH INPUT/OUTPUT 2 = REPLICATE C REPLICATE SAMPLING TIME C NUMBER HISTOGRAM CELLS C WIDTH OF HISTOGRAM CELLS C LOWER LIMIT OF FIRST HISTOGRAM CELL C 3 2 INPUT FUNCTIONS C 4 2 OUTPUT FUNCTIONS C 5 1 POINTERS TO REPORT DATA C LVi-0 I ENTRY COUNT C LltO 0

SUBROUTINE B702 USE 3PM BEGINBLOCK [702] t6) [ U [1,1,4,2^,1,13 CREATE

99200 CONTINUE IFF t!P(Si.GT.O]

FOR CN3 = f11 TO IIP<113 CALL FS1GRE<IACC!P(51.N>1 FIN

CALL FSTOftE<!P<S»]

c L P * 0 1 0 1 1 c 2 4

Sourco Function Programs

FIN CALL DESTROUPVT) RESPOND (-23 [03 PARAMETERS 99400 CONTINUE ERROR 1702 CMBA ATTEMPT TO SET INITIAL CONDITIONS] 99S00 CONTINUE PERFORM REPORT CI] RESPOND t-5J [01 99600 CONTINUE FOR [N3 - [11 TO tIP(l)3 IFF [RAC( IP(2) ,L1 INM(H,6,4) l.EO.i:. 3 CALL SCHEOIRACl IPC2J ,LMNM(N,8,5)),IA<LB*2>,N,0) FIN FIN IMLV)=0 IFF IIP(5>.E0.03 PERFORM CREATEREPORTDATA [2] FIN IFF [NRUN.EO.13 PERFORM RESETREPORTDATA t33 ELSE PERFORM ZEROCURRENTVALUES 143 FIN RESPOND C-63 [03 DUMP EVENT CALL CEC<1,IP(1> .N) PERFORM SAMPLECURRENTVALUE 15] TR [II [702 CMBA REPLICATE SAMPLE TAKEN3 RESPOND [-8] (0) INTERACT IFF [IACPOINT+81 .NE.6] ERROR £702 CMBA ILLEGAL INTERACTION] FIN FOR [N3 = III TO tIPI13 3 IFF t!FIX<RAC<lP<2).LI INM(N,8. 1 I >).E0. J A( !P0INT-»3) 3 PERFORM SCANINPUT/OUTPUTL1STS1 C63 CASE 11.Efl.13 SIQN=I. PERFORM UPDATEVALUE [73 ORIF [I.E0.23 SIGN--I. PERFORM UPDATEVALUE [7] OTHERWISE ERROR C702 CMBA DATA RECEIVED FROM ILLEGAL I/O FUNCTION] FIN ISAMP=IFIXIRACtIP(2>,LIINM(N,8.4)>) CASE tlSAMP.EO.U PERFORM SAMPLECURRENTVALUE [S3 ORIF [ISAMP.NE.2] ERROR C702 CMBA ILLEGAL SAMPLING PARAMETER] -178-

Source Function Procrans

F I N F I N

F I N l A f I P 0 I N T » 2 > = - 6 TR [ 3 1 (70S CUBA MEASUREMENT DATA RECEIVED] RESPOND I - 9 J CJPOINT3

PROCEDURE REPORT CT3 FOR I N ] = CI J TO t l P t U J

L = I A ( L C S ( 1 P ( 5 ) , N ) ) R A ( L 0 S < L I 3 n = R A C ( L , 3 ) / F l . O A T ( I A C ( L , I ) ) R A < L C S ( L , 4 ) ) : R A C < L l < : ) / F L O A T t l A C C L l U > - R A C < L , 3 ) 2 IFF CRAC<L ,4 } ,L T .O .J ERROR C702 CMBA NEGATIVE VARIANCE]

F I N RA<LCS(L,4 ) )=SORTCRAC<L,4 l ) WR U A C L B + 2 ) , N 1 S UH1,BHFUNCT!0N, 14, IX ,BH70S CMBA.19X 1OHREPORT N O . , ! 3 3 J = R A C ( l = < a i , U I l N M ( N . 8 , 1 ) ) WR I I I I11X,13HMATERIAL T / P E , 1 1 6 ] I = R A C 1 I P I 2 I , L I 1 N M ( N , 8 , 2 ) ) CASE t l . E Q . I ]

WR r ] I I I X , 4HDATA,2BX,6HriBSERVED] ORIF I I . E C 23

WR t ] r i1X,4HDATA.S6X,4HTRUE3 ORJF I I . E O . 3 ]

WR t ] [UX ,4HDATA,26X ,23H£RReR (OBSERVED - TRUE)] OTHERWISE

UR [ ] M 1 X . 2 6 H ILLEGAL DATA SPECIFICATION] F I N

I = R A C « I P I 2 J . L l I N M ( N , 8 . 3 ) 1 CASE 11 . EO. 1 J

WR t ] I I lX ,8HVARIABLE,22X.5HCOUNT3 ORIF [ I . E O . 2 3

WR [ ] M I X , 6HVARIABLE, 22X.4HMASS: OTHERWISE

WR C ] 11 IX ,30HILLESAL VARIABLE SPECIFICATION] F I N

l = R A C < I P I 2 9 . L I I N M ( N , 8 , 4 ) ) CASE 11 .EQ. 1]

WR C 3 [11X,SHSAMPI. IN0,22X,2aHEACH INPUT/OUTPUT TIME] ORIF t r . E O . 2 3

WR C ] CnX,eHSAMPLlN<3,22X,9HREFLICATE] OTHERWISE

WR t 3 t l 1 X , 3 0 H l L L E S A L SAMPLIN& SPECIFICATION] F I N

WR [ R A C d P t e j . L i r N M t N . e . s n . i A c c L . u j s IMX.23HREPL1CATE SAMPLING TIME, 5X,, E 1 2 . 4 «

,8X,22HNUMBER OF OBSERVATIONS,8X,1103 WR [ R A C U . , 3 ) , R A C ( L , 4 ) 3 S [ U X . 1 0 H K E A N VALUE, 1 9 X . E H . 4 « ,6X,16HSTANDARD D E V I A T i O N , 1 2 X , E 1 0 . 4 3

- 1 7 9 -

Source Function Proorai'.s

WR [RAC<L,5),RAC(L,61) 8 CI IX,13HMAX1MUM VALUE,16X.Ell.4 « .eK.aiHT'.ME OF MAXIMUM VALUE, UK,£10. 41 WR [RAC(L.71,RACtL.Bl) S CI iX,13HMINlt1UM VALUE. I6X, El 1.4 S ,8X,21HTIM£ OF MINIMUM VALUE.9X.E10.43 IFF [IFIX(RAC(1P(2>,LI!NM(N,e,6>>).GT.CO UR t 1 t C/1 IX, 1 1HLOWER LIMIT.26X,7HDISTRI-,4X,3H0.0,9X, DHO 2 3 & ,8X I3MO.S,9X,4HO.?S,8X,3HI.0 & /11X.7H0F CELL,6X,SHC0UNT.SX,7HDFMS1T/,SX,6HBUT10M,6X & , 4 9 H * • • * •>] X = R A C < I P C 2 ; . L I ! N M ( N , e , 8 > ) - R A C < 1 P < 2 > , L ! ! N M ( N , 6 , 7 I 1 D1S=0. IA<LBUF^30)=1HI FOR I M ] = 111 TO C I F f X ( R A C ( I P ( 2 ) , L I i N M l N , 6 , 6 ) 1 ) 3

OENsFLOATdACCL.B+MD/FLOATdACCL, I ) ) CIS=DIS+DEN X = X + R A C { I P < 2 ) . L M N H ( N , a , 7 1 > FOR t J l = I 3 i i TO C801

IA(LBUF+J)=1H FJN

K=49 . D E N * . 9 9 9 FOR £JJ = 111 TO CKJ

] A ( L B U F + 3 0 * J ) = 1 H F I N

K=49 . OIS I A ( L B U F * 3 l * K ) = l H + WR CX, I A C ( L , B * M ) . O E N , D I S , C I A ( L B U F * J ) , J = 3 0 , 8 0 J ] fi [ 1 0 X . E 1 1 . 4 , 1 1 0 , 5 X , F 6 4 , 6 X , F 6 . . 4 , 5 X , 5 1 Al ] F I N

F I N F I N

ENOPROC 115

PROCEDURE CREATEREPORTDATA £2J CALL ASTOREt1A(LP*5),IPt111 FOR IN] = [I] TO EIPC 1)) CALL ASTOREf !ACLCS( IP(5),N) ) . 8*IFI.X(RAC( fPt 2) , LI [NMfN. S , 6) ) ) ) FIN ENDPROC 123 PROCEDURE RESETREPORTOATA C3) IFF [IP(5),LE.O] ERROR [702 CMBA NO REPORT DATA TOi RESET] FIN FOR iNJ = til TO tlPdll CALL Z1AC(1AC<IP(51.N>> FOR til = C23 TO t»l RA(LCS(lAC(iP(S),N), M)=0. FIN RA(LCS(1AC(IP(S),N),7) ) = l .OE+SO

-180-

Source F**rwrt»on Prograns

FIN EMDPROC [31 PROCEDURE ZEROCURRENTVALUES [4J FOR INJ = [11 TO IIPIIIJ L=IAC(!PC5>.N)

RA(LCSCL.2)>=0. FIN ENDPROC 141

PROCEDURE SCAN1NPOT/OUTPWTLISTSI [61 K=1 WHILE tK.LE.1A(IP!3>+3).AND.IAC(IP(3),K*2>.NE.MFR0M1 K=K + 1 FIN IFF (K.LE.IAI1POI+31J 1=1 ELSE K=1 WHILE tK.LE. IA(IP<4)*3).AND. I AC( !P>(4) ,ic*2) . NE. MFR0M1 K=K*1 FIN IFF [K.L.E. IA( IP{£)*3)J 1=2 ELSE 1=0 FIN FIN ENOPROC CS1 PROCEDURE SAMPLECURRENTVALUE C51 IA(LCS(L,T)S=1AC(L,11+1 CV=;RAC<L,2> RACLCS(L,3))=RAC(L,3!+CV RA(LCS(L,M))=RAC(L,41tCV CV IFF [CV.G7 RAC<L,5>1 RA<LC5fL,5>)=CV RA(LCSCL,6))*TIME FIN IFF ICV.LT.RACIL.7)1 RA(LCSCL,7))=6v RA(LCS(L.8))=TIME

FIN IFF [ lF tXtRACHPta i .L I INNCNja .em.ST.O]

1CELL=IF!X((CV-RAC<IP<2),L1INMfN, a, 8 ) 3 1 / 1 RAC< IPC21.LI INMCN,e,7) ) ) * I

CASE tECELL.LT.11 ICELL=1

ORIF t[CELL.ST.IFlXCRAC<IP<2>,LIINMtN.8,6)))J ICELL=1FIX(RAC(IP(Z),LIINM(N,8,6>)1 FIN

- 1 6 1 -

Source function Programs

I CEI-L= LCS f L, 8* I CELL) IA(ICELL) = IA< ICELD + 1 FIN

EMDPROC [5] C

PROCEDURE UPCATEVALUE (71 IDATA=IFIX(RAC(IPt2),LlINM(N,8,2>>} IVAR^IFIXCRACI1PI2),LIINM(N,8,3))) L=IAC(IP«S),N) CASE CIVAR.EQ.I]

CASE rIDATA.EQ.1] RA(LCS<L,2))=RA(LCS<L,2>>*SIGN FLOAT*IAtIPOINT+4))

ORIF [IDATA.EQ.23 RA(LCS(L,2) )=:RA(LCS(L,21 >*SIGN FLOAT' IA( IPO!NT*6) )

ORfF CtDATA.EQ.33 RA(LCS!L,2))=RAtLCS<L,2))»S1GN FLOAT(1 At 1POINT*4)

1 -|ACIPOINT*6)1 OTHERWISE

ERROR 1702 CMBA ILLEGAL REPORT DATA PARAMETER] FIN

ORIF [IVAR.EQ.2] CASE [I DATA.EO.13

RACLCS(L.Z)>=RA(LCS(L,a)>*SIGN RA(IP0INT*5] ORIF tIDATA.EO.23

RA(LCS(L,2) > = RA(LCS{L.ai 1*S1SN RA! IPOtfiT'73 ORIF tIDATA.EQ.33

RA(LCS(L,2)>=RA(LCS<L,2>)*SIGN CRA(1PO!NT»51-RA(IPOINT*7)> OTHERWISE

ERROR [702 CMBA ILLEGAL REPORT DATA PARAMETER] FIN

OTHERWISE ERROR [702 CMBA ILLEGAL REPORT VARIABLE PARAMETER] FIN

ENDPROC C73 ENOBLOCK

C 703 MNTR 3/16/78 C KONITOR STIMULUS TYPE 1 C LP-i-0 1 RESPONSE POINTER

SENSITIVITY CHARACTERISTICS PAIRS TIME DELAY DISTRIBUTION TYPE AND< STATISTICS IODE: 1 = RANDOM INTERVAL 2 = STIMULUS TRACKING 3 = LATCHING iSTRIBUTION TYPE AND STATISTI CS- OF RANDOM COMPONENT OF

JETECTION SIGNAL INTERVAL SIGNAL INDEX DETECTION SIGNAL AMPLITUDE DECISION FUNCTIONS MEAN TIME BETWEEN SPURIOUS OUTPUTS ENTRY COUNT DETECTION SIGNAL STATE 0 0

SUBROUTINE B703

c 1 A c 2 A c 3 1 c A A c c 5 1 c 6 3 c 7 2 c 8 3 c LV+O 1 c 1 1 c LI+O c 1

Source Function Programs

USE SPM BEGINBLOCK C703] [93 12) 11,4,4,1,4,1,3,2,3,1 1] DATA IX,U/1,0./ CREATE DESTROY PARAMETERS 99400 CONTINUE ERROR £703 MNTR ATTEMPT TO SET INITIAL CONDITIONS] REPORT C703 MNTR] 99600 CONTINUE IFF IRP(8>.6T.0.3 CALL URNCIX.U) T=-RP(B) ALOG(U) CALL SCHEDIT,IA(LB*2>,3,O) FIN FOR 113 = CI J TO UA(LB*4>] 1A(LV-1+I}=1A(L1-1+I) FIN RESPOND [-6] CO] DUMP EVENT CALL CECM,2,K0DE) CASE CKODE.EO.13 0=RPC6) PERFORM SIGNAL [13 IA(LV+1)=1 0R1F [K0DE.EQ.23 0=0. PERFORM SIGNAL II] ' I A(LV+1) = 0 OR IF tKODE.EO.33 0=RP(6) PERFORM SIGNAL CI 3 IA(LV+1)=1 TR til C703 MNTR SPURIOUS OUTPUT] FIN RESPOND 1-83 [03 INTERACT CASE CIA<IP0!NT*2).EQ.73 L=!AUP01NT+3> l=!A(IP01NT+4) IFF riFIXCRACIL,I+2>).NE.13 ERROR [703 MNTR ILLEGAL STIMULUS TvPEJ FIN 1 = 1+1 CALL SAMPLCL.I,T1) l=I*NSTATS( IFIXCRAC<L.I*2))>+1 CALL S AMPL ( L .1 . T2) I = I * N S T A T S U F I X C R A C < L , 1 * 2 1 ) ) + 1 CALL S A M P L ( L . I , A ) N = I A ( 1 P ( 1 > + 3 ) - l WHILE t R L P l 1 , N > . G T . A . A N D , N . Q E . 1 3

- 1 8 3 -

Source Function Praorens

FIN IFF IN.GT.OI

PD=Rl.P( 1 , N M ) ELSE

po=a. FIN

CALL URN<IX.U) IFF [U.l.S.POJ

CALL SAMPLUPiZ),1,T3) T=TIME*T1»T3 CALL SCHEDIT,IA<LB*2),1,01 CASE ( I P O ) .EC. 11

COLL SAMFL<1PC4I,1,T41 T=T*T4 CALL S C H £ D ( T , I A ( L B * Z ) . 2 , 0 )

ORIF r i P O I . E O . Z I CALL SAHPL<1P(4),1,T41 T=T*T2'T4 IFF (T.LT.O.l

T»0. FIN

CALL SCHEDCT,IAfLS*2),a,0) ORIF CIP!3),NE,3J

ERROR C703 MNTR ILLEGAL MODE) FIN

FIN IACIPOlNT+E)=-7

ORIF riA(rPt>INT*Z).EO.a.AND. !ACPO!NT*3).E0.1 .AND. ( 1ACIP0INT*4).E0.0]

IFF £IV<1).EO.11 Q=0. PERFORM SIGNAL tl] IAILV*))=0

ELSE ERROR [703 MNTR RESET] FIN

)AUP0INT+2> = -8 OTHERWISE

ERROR [703 MNTR ILLE8AL INTERACTION] FIN

RESPOND [-93 [I POINT] PROCEDURE SIGNAL [1] CALL PCOMC I LP< 7, 1), 9,10,1,1 P<5>. 0,0, &, 0.0) RAC)POINT*S>:Q FOR IK) = £1] TO riASIPf7>»3>)

1CTYPE=9 MTO=ILF(7,K) SEND )FF IIA(rPOINT*2).NE--10]

ERROR [703 PINTR MONITOR SIGNAL NOT ACCEPTED] -184-

Source Function Programs

FIN FIN CALL FSTOKEI[POINT) ENOPROC [11 ENDBLOCK C 801 OTBL 3/16/76 C DECISION TABLE C LP+O 1 RESPONSE POINTER C 1 2 INPUT SIGNAL INDEXES C 2 1 NUMBER OF CONDITION ROWS C 3 4 CONDITION TRIPLETS C 4 2 OUTPUT SIGNAL INDEXES C 5 1 NUMBER OF ACTION ROWS C 6 4 ACTION PAIRS C 7 1 NUMBER OF DECISION RULES C 8 2 DECISION RULES C 9 2 FUNCTIONS TO RECEIVE OUTPUT SIGNALS C 10 1 NUMBER OF REPORTS C 1 1 4 REPORT SPECIFICATIONS (REPEAT FOR EACH REPORT) C SIGNAL INDEX C SAMPLING TIME C NUMBER OF CELLS C WIDTH OF CELLS C LOWER LIMIT OF FIRST CELL C 12 1 - POINTERS TO REPORT DATA C LV+O 1 ENTRY COUNT C 1 4 INPUT SIGNALS C Z A OUTPUT SIGNALS C 3 3 TIME Or SCHEDULED DECISION EVENT C LI'O 0 c i a C 2 0 C 3 -1 . SUBROUTINE B601 USE SPM BEGINBLOCK [8011 [13] C43 (1,2,1,4,2,1,4,1,2,2,1,4,1,1,4,4,3) CREATE 39200 CONTINUE IFF tIP(12).OT,0J FOR CN1 = CI] TO IIP(IO)] CALL FSTOREIIAC!IP<12),N>) FIN CALL FSTORE<IP(12)) FIN CALL DESTR0<1PVT> RESPOND 1-2) CO! PARAMETERS VARIABLES 93500 CONTINUE PERFORM REPORT [15 RESPOND C-S3 CO] 09600 CONTINUE

-165-

Source Funcx i on Prograns

IA<LV+0)30 IFF 11PMJ.LE.01 ERROR [801 DT8L UNDEFINED INPUT SIGNAL INDEXES AT IC TIME} ELSE

IFF [ IV(1I ,LE.OV CALL ASTORi:(IA(LV+l ), I A( I P( 1 I •*1«2) IA<tV<l >*2) = I A U V M J + I J - 2 l A I I V O )+3) = IA<IP<J)*3) FIN

FIN IFF I I I C < l l . L E . O ] ERROR C801 DTSL UNDEFINED INPUT IC VALUES AT IC TIME] ELSE FOR CI] = II] TO [|A<1P<11*3)1 RA<LCS< 1V( 1 J, I+2n=RA(LCS(l 1C<1 1, 1 *2) 1 FIN FIN IFF ItP(4).LE.03 ERROR C80I DTBL UNDEFINED OUTPUT SIGNAL INOEKES AT IC TIKE] ELSE IFF CIV(2).LE.O] CALL AST0RE(lA<LV+2»,IA([P<4)+3>+2> IA<tV<2)*2>=iA<lV<2>«I. 2 IA(rV<2)*3)=lA<IP(4)+3» FIN FIN IFF [] ICI2KLE.0] ERROR FS01 DTBL UNDEFINED OUTPUT IC VALUES AT IC TIME] ELSE FOR til = C13 TO [lAClP(d>+3n

RA(LC3(IV(2), I+2>)SRACLCS(]IC<2:>,1*2)) FIN FIN FOR IN] = 11) TO [IPC 1011 CALL SCHEDIRACtIP(11),LIINMCN.,SI2>>,1ACLB+2],N,0> FIN IFF [IP(12).EQ.O] PERFORM CREATEREPORTDATA C2] FIN IFF [NRUN.EQ.il PERFORM RESETREPORTDATA C31 ELSE PERFORM ZEROCURRENTVALUES 141 FIN RA(LV*3)=-1 , RESPOND [-6] [03 DUMP EVENT CALL CECC-1,IP<10),N) IFF IN.EO.-1] PERFORM DECISION [73 IFF [NEWSI6.EQ.1] -IBS-

Source F u n c t i o n Programs

PERFORM TRANSMITOUTPUTSIGNALS C8J F I N

ELSE PERFORM SAMPI.ECURRENTVALUES C53 F I N

RESPOND [ • S I [ 0 ) 1NTERACT IFF U A < 1 P 0 I N T + 2 ) . N E . 103 ERROR [801 DTBL ILLEGAL INTERACTION) FIN PERFORM UPDATEINPUTSIGNALS [61 IFF [RV(3>.LT.T1ME3 CALL SCHEOfTIME,1ACLB*2),-1,0) RA<LV*3)=T1ME F!N TR C33 £801 DTBL CONTROL SIGNAL RECEIVE03 lA(IP0lNT+2>=-10 RESPOND C-93 CI POINT] PROCEDURE REPORT CI] FOR IN3 = [13 TO C)PC 10)3 L=1A(LCS<1P(12),NI) RA(LCSCL,3))=RAC(L,3)/FL0ATCIACCL,1)) RA<LCSCL,4)>=RAC(L,4>/FL0ATCIACCL(t)>-RAC{L.3> 2 IFF [RACCL.43.LT.O.) ERROR [SOI DTBL NEGATIVE VARIANCE] FIN RACLCS<L,4I)=SQRT<RAC<L,4>) WR IIA<LB*2).N3 « MH1,8HFUNCTI0N, I4,1X.8HS01 DTBL,19X,1OHREPORT NO,133 I=RACUP(11),LI1NM(N,5,1)) UR CI] C1IX,14HCONTR0L SIGNAL,117] T=RAC(IP(1 I),LI1NM(N.5,2)) WR [T3 MIX, 13HSAMPLING TIME,1SX, El 2.43 WR [RACCL,3),RAC(L.4)] & CI1X.10HMEAN VALUE,19X,Et1.4 4 ,8X,18HSTANDARD DEVIATION,12X.E10.4J WR [RAC(L,5).RAC(L,6)J 8 (IIX,13HMAXIMUM VALUE,16X,El 1.4 a .6X.21HTIME OF MAXIMUM VALUE,9X.E10.4] WR CRACCL.7),RAC(L,83) S [MX, 13HMIN1MUM VALUE.16X.E11.4 « .ex.aiHTlME OF MINIMUM VALUE,9X.E10,43 UR [IACCL,11] 8 CI1X.22HN0MBER OF OBSERVATIONS,8X,1103 IFF tlFlX(RAC<lP<n),LIINMCN,5,3))).GT.03 WR C 3 « C/lIX,ItHLOWER LIMIT,26X,7HDISTRI-,4X,3H0.0,9X,4H0.25 & ,8X,3HO.5,9X,4h0.75,8X,3H1.0 « /11X.7HOF CELL,8X,5HC0UNT,5X,7HCENSITY,5X,6HBUTICN,6X &

. 49H + + + + +] X=RAC(IP<11),LIINM(N,5,5>)-RAC«IP<11),LIINM(N,5,4))

-187-

-Source Function Program*

OIS=0. !ACLBUF*30)=1H1 FOR CM] > C13 TO C1FIX(RACCP< 11 ) , L 1 I N M ( N , 5 , 3 ) > ) ]

O E N s F L O A T I I A C d ^ a t M n / F L O A f C l A C f U U J D1S*OIS*OEN X=X+RAC< 1P< 1 U , U I f M C N . S ^ I J FOR CJJ = [ 3 1 ] TO C«01

!A (LBUF*J I=1M F I N

K ' 4 9 . DEN+.999 FOR CJJ = f l ] TO £KI

1 A < L B U T > 3 0 * J ) » 1 H F I N

K=49 , 0 I S + . 9 9 9 IA<LSUF*30+K)=1H> WR tX, 1AC<L,8*M],0EN,0!S, tlA.<LBUF»J). J=30,80)] & C10X,E11.4, llO,5X,F6.4.6X,Fe.4,SX,S1A1] FIN FIN FIN ENDPROC C1J

PROCEOURE CREATEREPORTOATA [21 CALL ASTOREUA(LP+12>, 1PC10)) FOR IN] = [1] TO C]PUD>] CALL ASTOREC IA(LCS<IP(12>,N>),e*IFIX<RACCIPMl),LllNM<N,5,3]>>) FIN ENDPROC [2] PROCEDURE RESETREPORTDATA [3] IFF tlPtlEJ.'-E.O] ERROR IBOl OTSL NO REPORT DATA TO RESET] FIN FOR IN] = II] TO [1PC1P>] CALL ZIAC<JACUPUZ»,N)> FOR tl] = 12] TO [«] RAfLCS<lACC!P!12),N),l>>=0. FIN RACLCSCIACfIP(12>,N),7>>>1.OE+50 FIN ENOPROC [31 PROCEDURE ZEROCURRENTVALUES [43 FOR IN] =• [1] TO CIP(10)3 L=tAC(tP(1Z>,N> R*CLCSCL,2))=0. FIN ENDPROC [43 PROCEOURE SAMPLECURRENT VALUES CS1 L=IACC1PC12),N> PERFORM OETCURRENTVALUEV [151

Source Function Programs

IA(LCS<L,1))»1AC(1., 11 + 1 CV*RAC(L,2> RA(LCS(LJ3))*RAC(L<3)*CV RA(LCS(L,4)>SRAC(L!<I)«CV CV IFF ICV.GT.RAC<L,9)J RA4LCSCL,5))'CV RA<LCSCL,6>)«TIME FIN IFF [CVLT.RAC<L,7>J RA(LCSCL,7)J«CV RA(LCSCL,B)>«TIME FIN

IFF UFl>URAe<IP<m J i . ! lNMCN,5.3>)>.OT.O) !CELL=IFIX<ICV-RAC(IP<11>,L1INM(N,S,5)1)/

1 RACUPC1I1,LIINM<N.S.4)11*1 CASE I tCELL.LT.U

I CELL:1 ORIF CtCELL.0T.lFIX(RAC(lP(11k.L1INN(N.S,31))l ICELL=!FlX(RACC1Pt11),Lllf#!(N,5,3J>S FIN ICELL=LCS(L,«*rCELL) IA<ICELL)=IA<ICELL)+1 FIN ENDPROC C5J PROCEDURE UPDATEINPUTSIGNALS E6J L=0 H=0 IFF tIA<IP01NT+3).GT.OJ

M=IA(1P(T)+3) 1 = 1 IFF [ lAUP0INT+4).tvr.0J

WHILE tl.LE.M.AND. ILP( l J l ) .NE . lJU IP01NT+4n 1 = 1 + 1 FIN

IFF Cl.LE.Ml RA(LCS(IVU>.2+lll=RA<IP0INT+5) L=t N=N+1 FIN

FIN IFF C1AC1P0INT+6>.GT.0)

1 = 1 WHILE ( I .LE .M.AND. ILPt l , I ) .NE . IA<iP01NT+6)]

1 = 1+1 FIN

IFF CI.LE.M] RA(LCStIVtl!,a+tn»RA<IP01NT+7) L=1 N=N+1 FIN

FIN -189-

Sourc "unction Programs

I F F CN.LT. I AC I POINT+3)J FOR [K3 = t i l TO C I A < I A < [ P O ' N T + S ) + 3 ) 3

1 = 1 WHILE [ I I E . M , A N D . I L P t l , I ) . N E , I A C < 1 A ( I P O I N T + 8 ) , K + 2 ) ]

1 = 1+1 F IN

[FF I I . L E . M 1 f?A(LCS< I V < i 1 . 2 + 1 ) URAC1 IA I rPOINT+9) ,K+2> L=1 N=N + 1 F I N

F I N F I N

I F F t L . E Q . 0 3 ERROR (601 DTBL NO INPUT SIGNALS IN THOSE RECEIVED] FIN

IFF IN.HE.IA<IPOINT+3>3 ERROR 1801 DTBL NUMBER CONTROL SIGNALS TRANSMITTED! FIN

ELSE ERROR [601 DTBL ZERO CONTROL SIGNALS TRANSMITTED] FIN

LiM=IAClVCl>+3) TB til tINPUT] S IIRACUVI t), 1+2), 1*1,LI Mil C1X.5E12.*] EMDPROC 163 PROCEDURE DECISION C7J J = 0 JSAT=0 NEWSIG=0 WHILE CJ.LT.IP(7).AND.JSAT.EQ.O]

J = J + 1 PERFORM TESTCONOITIONSJ C93 FIN

IFF [JSAT.EQ.l] PERFORM ACT IONSJ [103

ELSE ERROR CSOI DTBL NO CONDITION SATISFIED] FIN

ENDPROC t7] PROCEDURE TRANSMITOUTPUTSIGNALS C8] LIM=IA(IVt2>+3> TR CI3 tOUTPUTJ 8 [<RAC<IV(2),1+2),I=1,L1M)3 [IX, 5E1 2. 43 IFF [IP<9>.BT.03

CALL PC0MtlLPC9,n.9, 10,IA(IP<4>**> ,O,0,O,0.IPC4).!V<2)> FOR El) = [13 TO tIAlIPC93+3J3

MFR0PI=>A(LB+2> MT0*ILP<9, IJ ICTYPE*9

-190-

Sourco Function Programs

IA(IP01NT+2>*10 SEND IFF tIA<IPOINT*2) NE.-I03 ERROR [801 OTBL RESPONSE TO OUTPUT SIGNALS! FIN FIN CALL FSTOREtIPOINT) FIN ENDPROC C8J PROCEDURE TESTCONDITIONSJ t9I IsO JSAT=I WHILE tl.LT.IPC2I.AN0.JSAT.EG.II 1«I + 1 PERFORM TESTCONDITIONIJ £111 FIN ENDPRO' CS1 PROCEDURE ACTIONSJ tlO) N=(J-1> <IP<2>+JP(S>)*1PC2) FOR in = Ml TO IIPC5)] IFF CILP(8,N+IJ.EQ.n PERFORM ACTION! C12] FIN FIN TR til IRULEJ tJl II101 ENDPROC M03 PROCEDURE TESTCONDlTtONIJ M13 K=(J-1) (IP(2)+IP(5))+l CASE £ ILPCe,K>.EO.-U PERFORM CONDITION! 1131 IFF nC0N.NE.-11 JSAT=0 FIN ORIF CILPta.K).EO.ll

PERFORM CONDITIONI [133 I F F MCON.NE. n

JSAT=0 F I N

ORIF M L P C 8 . K ) .NE.OJ ERROR C801 DTBL ILLEGAL CONDITION* ENTRVI FIN ENDPROC [113 PROCEDURE ACTION! [121 L=<I-1) 2*1 IN0Xs|FIX(RLP<6,Ll) CASE tlNDX.OT.OJ

WHILE CK.LE. lAf IPC410) .AND. INOX.NE. ILPtJ.K)] -191-

i

Source Function Programs

K=K«t FIN IFF [K.GT.!A(IP(4)*3)J ERROR CeOI OTDL ILLEGAL SIONAL !NDEX IN ASSIGNMENT ACTION] ELSE RA(LCS(IV<2>,K*2))=RLP(6,L+1> NEWSIG=1 FIN OR IF CINDX.LT.O] CALL PCOMC - I NDX.9, 11,0, 0,0,0,0,0,0) TR C11 (START] CMTO] C110) SEND IFF t!A<IP0INT*2).NE.-11J ERROR C801 OTBL RESPONSE TO CONTROL MESSAGE] FIN CALL FSTOREIt PO t NT > OTHERWISE ERROR C80I OTBL ILLEGAL ZERO VALUE IN ACTION PAIR] FIN ENDPROC C12) PR'CEDURE CONDITION! t13] L=(I-1) 3+1 lNDX=IFIXeRLP<3,L)> PERFORM SETINPUTS1GNALVALUEV [14 J SI=V L=L+I J0P=IFIX(RLPC3,LJ) L=L+I CASE IJOP.LE.63 INDX=IFIX(RLP(3,D) PERFORM QET1NPUTS1GNALVALUEV £14] SK=V ORTF CJOP.LE.12] SK=RLPC3,L> OTHERWISE ERROR [801-DTBL ILLEGAL RELATIONAL OPERATOR IN CONDITION] FIN IFF tJOP.QT.6] JOP»J0P-6 FIN CASE CJOP.LE.3] CASE CJOP.EQ.il IFF CSI.EQ.SK] tC0N=1 ELSE

rC0N=-1 FIN

••>RIF CJ0P.E0.2] IFF CSI.LT.SK]

IC0N=1 ELSE

-192-

Source Function Prograns

fCON'-l FIN ORIF EJOP.Ea.3} tFF CS1.OT.SK3 rcoN=i

ELSE ICON«-1 FIN FIN ORIF tJOP.LE.6] CASE [J0P.E0.4] IFF IS1.NE.SKJ ICON'1 ELSE ICON--1 F I N

ORIF C I 0 P . E 0 . 5 ] IFF [ S I . L E . S K ]

ICON=1 ELSE

ICON=-1 F I N ORIF [J0P.EQ.6] :FF CSI.GE.SK] ICON=1 ELSE ICON=-1 FIN FIN FIN ENDPROC LI3:

PROCEDURE GETINPUTSIGNALVALUEV [14] K=1 WHILE IK.LE.IA(IP(1>+3).AND.INDX.NE.ILP(1,K)1 K=K+1 FIN IFF [K.GT.IACIPC1)*3)1 ERROR tflOl DTBL SIGNAL OF CCNDITION ENTRY NOT AN INPUTl ELSE V=RLV(1,K) FIN ENDPROC [Id]

PROCEDURE GETCURRENTVALUEV t153 K=I WHILE CK.LE.TA<IPC4)*3).AND.ILPI4,K).NE. 4 IFIX1RAC< CP<T1),LIINM<N,5,T)))] K=K+1 FIN IFF tK.OT.IA(IP(4)+3>] -193-

Source Function Programs

ATTEMPT TO SET INITIAL CONDITIONS]

ERROR 1801 DTBL SIGNAL OF REPORT SPECIFICATION NJT AN OUTPUT] £LSE R.»<LCStL,2J (=RLV(2.K3 FIN ENDPROC t:S] t£NDBL0JK C 901 TRCN 3/16/78 C TRACE CONTROL C LP*0 1 RESPONSE POINTER C LV*0 1 ENTRY COUNT C Ll+O O SUBROUTINE B90I USE SPM BEGINBLOCK [9013 [1] Ii3 11,13 CREATE DESTPCY PARAMETERS 99400 CONTINUE ERROR C90I TRCN RtiPORT [301 TRCN]

99600 CONTINUE CALL SCHEOCO.,IAILB-2),1,03 RESPOND 1-61 £03 DUMP EVENT CALL Cncil,1,KODE> WR [U:tiS3 [TIME] [ IX, El 0. 4, 2X, I 1 HNEW ITRACE?] RD iU:593 £N3 III] WHILE [N.LT.0.OR.N.GT.6J WR I U : 5 9 ] £ 3 £20HILLEGAL ITRACE VALUE; RD [U:59] EN] £11] FIN ITRACE=N WR £U:59] [ITRACEJ [.3HITRACE IS NOW,133 WR CU:59] C ] [1X,2dHNEXT TRACE CONTROL TIME?] RD £U:593 [TNEXH [F80.0] WHILE CTNEXT.LE.T1HE] WR CU:593 CTIME3 [1X.11HT3ME I S N0W,E1?.4 ] RD £U:593 [TNEXT3 IF80.0] FIN CALL SCHEDITNEXT,IA(LB*2).1,0) WR £U:593 [TNEXT] [1X.23HNEXT TRACE CONTROL TIME,£12.43 RESPOND [-83 [03 INTERACT ERROR £9U</TRFN ILLEGAL INTERACTION] RESPOND U-93 tO] ENDBLOCK C 902 RMD5 3/16/78 C REPORT MATERIAL DIVERSION STATISTICS C LP+O 1 RESPONSE POINTER C t 2 MAOA FUNCTIONS TABULATED C 2 4 TIME REPORT SPECIFICATION

-194-

-.c Furclion Progrars

C NUMBER OF CELLS C WIDTH OF CELLS C LOWER LIMIT OF FIRST CELL C 3 4 DIVERTED MATERIAL REPORT SPEC IFI CAT 1 CM C NUMBER OF CELLS C WIDTH OF CELLS C LOWER LIMIT OF FIRST CELL C 4 1 - 71HE REPORT DATA C 5 1 - MATERIAL REPORT DAiA C I.V«0 1 ENTRY COUNT C Ll»0 0 SUBROUTINE 8902 USE SPM BESINBLOCK £902J [61 CI] [1,2,4,4,1,1,1] CREATE 99400 CONTINUE IFF UP(<a).eT.o:

CALL FST0RE<1P<4>) FIN IFF [1P(S).GT,03 CALL fSTORE!JPCS>) FIN CALL OESTROUPVT) RESPOND [-2] [0] PARAMETERS 99400 CONTINUE ERROR [501 INOA ATTEMPT TO SET INITIAL CONDITIONS] 99SO0 CONTINUE PERFORM PIPORT [I] RESPOND .-5] to: 99600 CONTINUE IA(U/>=O IFF [IPC4>.E0.0] CALL ASTORE(IA(LP*4),8*lFIXtRLPt2,1>;} FIN IFF [IP(5>.E0.0J CALL ASTORE< I A< LP*5), 8-HFIX(RLPO, 1 J)) FIN IFF [NRUN.EQ.1] PERFORM RESETREPORTDATA [33 ELSE PERFORM ZEROCURRENTVALUES 14] FIN RESPOND 1-6] [01 DUMP EVENT CASE CIA(IPOINT).ST.CH 1=IA(IP0INT)

L=IA< IP01NT-M ) INXT=1*2*NSTATS(IFIX(RAC(L,I*3>)) IFF C1FIXIRACIL,1NXT*2)>.QT.O.ANC.INXT.LT.IAIL'})] CALL SAMPLrL,lNXT*1,TD) -195-

Source Function Prolans

CALL SCHED(TIME«TD, IFlxrRAC'L, iNXT«2) 1, 1NXT.L) FIN PERFORM SAMPLE £53 OTHERWISE ERROR [90S RMOS ILLEGAL EVENT COOE1 FIN RESPOND I-»3 tO] INTERACT

ERROR t50> INDA ILLEGAL INTERACTION: RESPOND [-9] (03 C PROCEDURE REPORT t11 IFF [IACCIPf4>,1).OT.O.3 FOR INJ = riJ TO r2j

L=JP13»NJ RA<LJS<L, 3) ) =RACIL.3>/FL0ATI I A«L, ) ) ) RA(LCS(L,4)1=RAC(L.4)/FL0ATI !AC(L. 1 W-RAC(L,3) 2 IFF [RAC(L,4>.GT.0.3 RArLCStL.4>)-S0RT(RAC(L.4> ! ELSF RAtLCS(L,4')=0. FIN Uft £]A(LB»2)I 8 £1H«,8HFUNCTI0N.14,1X.8H902 RUDS) CASE CN.EQ 12 UR I 3 tl1X.24HSE0UENCE COMPLETION T1ME3 ORIF EN.EG.21 UR E 1 tlIX.17HDIVERTED MATERIAL] FIN WR tRAC<L,3) ,RACtt.,4> J « [IIX.IOHMEAN VALUE,19X,Ell.4 6, .eX.leHSTANDARD DEVIATION,12X,£10.43 CASE CN.E0.13 WR IRACIL.Sl.RACtL,?)] S tllX,13HMAXIMUM VALUE, 16X.El 1.4/ S 11X,13HHINIMUM VALUE,16X.Ell.41 ORIF EN.EO.23 WR [RAC(L,5>,RAC<L.6)3 S E11X.13HMAKIMUM VALUE,16X.Ell.4 S ,8X.21HT1ME OF MAXIMUM VALUE, 9K, E10. 4) WR [RAC<L.71,RAC<L,8)3 * £1IX,I3HMINIMUM VALUE,16X,El I.4 & ,8X,21HT1ME OF MINIMUM VALUE, 9 X . E l 0 . 4 1 FIN WR UAC<L, 1 )1 « tl 1X, 22HNUMBF.R OF OBSERVATIONS,8X,1103 CASE EN.EO.1 .AND.1F!X(RLP<2, lU.GT.Ol PERFORM PRINTHIST £2] ORIF CN.EQ.2.AN0. IFIX(RLP<3,1 D.GT.03 PERFORM PRINTHIST (21 FIN FIN

-196-

Source Function Proflrans

ELSE WR IIA(LB»2)J S I//9H FUNCTION.14,IX,8H902 RMDS S /I1X.1SHNO OBSERVATIONS! FIN

ENDPROC [13 PROCEDURE PRI NTHI ST [2] WR t J « I/11X,11HLOWER LIMIT,26X,7HDISTRI-,4X,3H0.0,9X,4H0.25 « , S X , 3 H 0 , S , 9 X , 4 H 0 . 7 S . 8 X , 3 H 1 . 0 II / 1 1 X . 7 H 0 F CSLL ,BX,5HC0UNT,5X,7HDENSITY,5X.6HBUTI0N,6X 6 .49H» * » » *3 CASE i N E Q . U

X * R L P < 2 , 3 > - R L P ( 2 . 2 ) 0S1F I M . E 0 . 2 J

X = R L P < 3 . 3 ) - R L P ( 3 . 2 ) F I N

D t S = 0 . I A ( L B U P * 3 0 ) = l H t FOR t r i l = M 3 TO t l F l X C R L P O + N , 1J )3 DEN=FL0AT(1AC(L,8'M) I/FLOAT! IAC(L, 1 ) J OIS=DIS*DEN X=X*RLP<1*N,23

FOR [ J I = C311 TC £803 I A ( L B U F » J ) = 1 H F31M

K=49 . DEN- 999 FOR [J3 = 113 TO [K3 ;A(LBUF»3O*J)=IH FIK K=49. OISt.999 IACLBUF«30«K3 = IH* WR rx, IAC(L,8»M),DEN,OiS, f I AC LBUFO > , J=30,80)J 8. ti OX, Ell .A. 1 I0,5X,F6 4,6X,F6.4.5X, 51A1 3 FIN ENDPROC C23

PROCEDURE RESETREPORTOATA C33 CALL ZIACCIPI43) CALL ZIACCPIS3I FOR [13 = C23 TO (S3 RACLCSCIPI4],1))=0. RAtLCS(]P(S),I))=0. FIN RA(LCS<IPC4I,7)>=1. 0E*50 RA(LCS(1PC5),7))=1.DE+50 ENDPROC [33 PROCEDURE ZEROCURRENTVALUES [43 RACLCS(IP(4),23>:0. RACLCS(IPC53,23)»0.

Sa-.'- lC 1 P - f> r . t ]on P r o a

ENQPROC [ 4 1

PROCfcDURF. SAMPLE !53 KDO-RAC'L, 31 FOR IN] = £13 TO [21 L=lPf3'NI CASE t N EO. 1 J RA'LCSIL,?) J=T.'ME BRIF IN E0.2) IFF [JP(1I.GT 01 PERFORM BETDIVERTtUMATERIAL (6) FIN FIN IACLCSIL,1))=IACIL.I J»l CV=RACIL,S) RMLCSIL.3)>=RACfL,3)«Cf RA(LCSIL,4))=RAC(L,iSJ»CV CV IFF CCV BT.RACIL.5)! RA<LCS(L.5>3=CV RA<LCS(L,6!)*TIME FIN IFF rCV.LT.RACIL,7)] rtA(LCSfL,7) )=CV RA<LCS(L.6>)»TIME FIN IFF [IFIXfRLPII*N. I I J.GT.O: ICEL'.= IFIX< ICV-RLPI 1»N,3) )/i?LP( 1 *N,ZJ )•! CASE [ICELL.LT.I]

ICELL=1 ORIF [ I C E L L . G T . I F I ;».(RLP ( 1 - N . 1)13

I C E L L = I F I X ( R L P ! I * N , I ! > F I N

I C E L L s L C S I L . B - H S E L L ) IA ( ICELL> = l A t I C E L L M I F IN

F I N ENOPROC I S3

PROCEDURE GETDIVERTEDMATERIAL t6] IFF 11A(IP(11*3).LE.01 ERROR £902 RKDS MO MAQA FUNCTIONS- TO TABULATE] FIN CALL PCOMCILP*I,11,9,3.0,0.0.0.0,0.0) FOR 111 = £1] TO £IA(IP(I)*31] MT0=ILP<1, 1 ) iA<[P01NT+2)=3 SEMD IFF tIA(IPaiNT«2) NE.-3] ERROR £902 RMOS RESPONSE OF TABULATED FUNCTION] FIN LM=IA<LPC:NT»3) CASE CMDO.EO.1.0R.MD0.EO.3] -198-

Sowcc (7j'-ction Prcorans

RAILOSl- SiisFLOATtlAlLK'B)) CRTF [fCO £<": £ C= MDO EQ 4! RAILC&IL. 2;>=RA(LM*9> G*!F .'MCC EO 53 CALI ri£P.r'(LM,SC.BM) RA(LC5!u.2; >==-LOATfKC) OT-ERWIDE ERROR t9C2 RMOS ILLEGAL MATERIAL DIVERSION OeJECTiVt' TVPE: FIN FIN CALL FSTOREl(POINT) ENOPROC t6) ENDBLOCf.

-i9a-

roRTRAN Comrol Prograns

Appondly B FORTRAN PROGRAM

CONTROL PROGRAMS

C ASTORE(LOC.N) C SUBROUTINE ALLOCATES STORAGE SPACE IN ARRAY IA/RA. SUBROUTINE ASTOREfLOC,N! DIMENSION IA<I) COMMON RA(1) EQUIVALENCE (IA(I J,RA(1)) COMMON /SYSTEM/MFROM.MTO, ICTYPE, 1 POINT, )IDUMP,ISECA,JTRACE,LB,LBCA,LBL!ST,LBPT,LBUF,LCSB,LE, ILEC,LFFB,LFFE,LI,LLE,LLFB,LLFE,LKS,LNE,LP,LV.MINNFL, 1MNSE,NFE,NFL,NI1,NJ2,N01,N02,NREP,NRUN,NSE,TlME,TST6P IFI IT-RACE. GE. 5) GO TO 00026 GO TO 00027 00026 CONTINUE WR1TEIN01 ,00029)TIME, JAtLB+2) 00029 F0RMATtlX,E10.4,I4.2X,11HAST0REC ,N1) WRITE!NO1,00030)N 00030 F0RMATC1X, I 10) 00027 CONTINUE IFUTRACE.GE.6.AND. UTRACE.EQ. I TRACE/2 2>)G0 TO 00031 GO TO 00032 00031 CONTINUE

W R I T E I N 0 2 , 0 0 0 3 4 ) T 1 M E . 1 A ( L B + 2 I 0 0 0 3 1 FORMAK 1 X . E 1 0 . 4 , 1 4 . 2 X , I1HASTOREC ,N>>

WR1TECN02,00035)N 00035 FORMAT! IX ,110 !

CALL [CHECK 00032 CONTINUE NUM=N IFINUM.LT.8>G0 TO 00036 GO TO 00037 00036 CONTINUE NUM=8

0 0 0 3 7 CONTINUE IF INUM.GT.NFDGO TO 00039 GO TO 00040 00039 CONTINUE WRITE<NOI,00042) 00042 FORMAT!/1X.1SH ERROR /1X. X 33HAST0RE OUT OF FREE STORAGE SPACE) CALL ERROR

FORTRAN Conxrol Prooran^

00040 CONTINUE ASSK.N 00043 TO 1.00001 GO TO 0UC01 00043 CONTINUE IFIL.LE.OlGO TO 00044 GO TO 00045 00044 CONTINUE WRITECN01.00047) 00047 F0RMATI/1X,1 5H ERROR /IX. X 38WASTOR". NO STORAGE BLOCK FOUND IN SCJ'M CALL ERRC? GO TO DD046 00045 1FI IA(L»1 > .BE.NUMM01GO TO 00046 GO TO 00049 00046 CONTINUE ASSIGN 00050 TO L00002 GO TO 00002 00050 CONTINUE GO TO 00046 O0049 IF(IA(L«1).GE.NUMI90 TO 00081 GO TO 00052 00051 CONTINUE ASSIGN 00053 TO L00003 GO TO 00003 00053 CONTINUE GO TO 00046 00052 IF< IA<L-»1 ) LT.NUMJGO TO 00054 GO TO 00055 00054 CONTINUE ASSIGN 00056 TO L00004 GO TO 00004 00056 CONTINUE 00055 CONTINUE 00046 CONTINUE 1FINFL.LT.MINNFDGO TO 00057 GO TO 00058 00057 CONTINUE IHNNFL=NFL

0005S CONTINUE IF(ITRACE.GE.51G0 TO 00060 GO TO 00061 00060 CONTINUE WRITECNO!,00063)TIME.IA!LB*2) 00063 FORMAT!IX,El0.4,I4.ZX,1SHASTOREtLOC.NO) WRITECNO),000645LOC,N 00064 FORMAT!IX,2110) 00061 CONTINUE IFUTRACE.GE.6.AND. 11 TRACE. EO. I TRACE/2 2)JG0 TO 00065 GO TO 00066 00065 CONTINUE WR!TE<N02.00068>TIME.1A[LB+S> 00068 FORMAT*IX.E10.4,I 4,2X,13HAST0RE(LOC, N) )

-201-

FORTRAN Corvtrol Proo<~ans

WHITE(N02,000691LOC,N 00069 FnftMATI1X.2f1n j CALL I CHECK 00066 CONTINUE RETURN C 00001 CONTINUE L=LFFB M=lA(L«1) LM = L LPP=0 LPM= 0 00070 IF< IA(L»1 I.LT.NUM. ANO.L.IIE.OIGO TO 00071 GO TO 00072 00071 CONTINUE IF(IA<L*1(.GT.M1G0 TO 00073 GO TO 00074 00073 CONTINUE M=!A(L+1) LM=L LFM=LPP 00074 CONTINUE 1F(LBCA*IA(LBCA*1 1*2.EO L.0R.L*tA<L»1 > «2 EO.LBCAJGO TO 00076 GO TO 00077 00076 CONTINUE ArSIGN 00079 TO L00005 GC TO 00005 00079 CONTINUE 00077 CONTINUE LPP=L L=JA<L> GO TO 00070 00072 CONTINUE IF(L.EO.O)GO TO 0OOS0 GO TO 00061 00080 CONTINUE L=LM 00081 CONTINUE LBCA=IACLBCA> IFILBCA.E0.01GO TO 00083 GO TO 00064 00063 CONTINUE LBCA=LFFB 00081 CONTINUE GO TO L00001, 100043) C 00002 CONTINUE IFIL.EO.LFFBJGO TO 0006S GO TO 00087 00066 CONTINUE LFFB=L«2+NUM

GO TO oooee -202-

C0087 CONTINUE IA(LPP»sL*2-NUM 00088 CONTINUE IFfL.EO LLFB1G0 TO 00089 GO TO 00090 00089 CONTINUE LLFB=L«2*NUM 00090 CONTINUE IA(L»Z»NUM)=IA<L> 1A(L»3«NU«>=1ACL+!(-NUM-2 NFL=MFL-NUM-2 IFILBCA.EO.DOO TO 00092 GO TO 00093 00092 CONTINUE L6CA=L«2*NUri 00093 CONTINUE 1A(L>=0 IA(L»11-NUM IA<L»2)=NUM LOC»L GO TO LOOOOS, (00050)

c 00003 CONTINUE 1F<L.EO.LFFB)SO TO 0O095 GO TO 00096 00095 CONTINUE LFFP=IACU) GO TO 00097 00098 CONTINUE IA<UPP>=IAfU) 00097 CONTINUE NFL=NFL-iA(L+l) IFtLBCA.EQ.DGO TO 00093 GO TO 00099 0009B CONTINUE LBCA-IACL) IF(LBCA.EO.0)GO TO 00101 GO TO 00102 00101 CONTINUE LBCA=LFFB 00102 CONTINUE 00099 CONTINUE 1AIL)=0 lA(L»a;=lACL«l) LOC=L GO TO L00003, (00053) C 00004 CONTINUE IFCLM.NE.LFFBIGO TO 00104 GO TO 00105 00104 CONTINUE !A(LPMJ=0

FORTRAN Control Programs

IA(LLFS)=LFFB LLFB'LPM LFFB=LM LPH=0 001 OS CONTINUE L1=LCS(LM,NUM) L2=LCSSM >JA(LCSB»1 I

00107 IF(L.NE.LBCA.AND.L.NE.LCSB)GO TO 00)00 60 TO 00109 00108 CONTINUE L=IA(L> GO TO 00107

0 0 1 0 9 CONTINUE I F < L . E O . L B C A ; S O TO O O H O GO TO 00111

00110 CONTINUE ASSIGN 00113 TO L00006 GO TO 00006 00113 CONTINUE 00111 CONTINUE IF<L2-L1.GE.101GO TO 0O114 GO TO 001T5

00114 CONTINUE IA(LM+2)=NUM LFFB=L1+I IA<LFFB>=IA(LCSBI :A<LFFB+1>=L2-L1-2 NFL=NFL-NUfl-2 GO TO 00136 001 IS CONTINUE 1A<LM+2>=NUM»L2-L1 LFFB=IACLCSB> NFL=NFL-NUtf-L2*L! 00115 CONTINUE IFILFFB.EQ.OJGO TO 00H7 GO TO 00118 00117 CONTINUE WR1TEC59,00120)

00120 FORMATS/IK.17H WARNING /1X, X 38MASTORE LAST AVAILABLE BLOCK ALLOCATED) LLFB=0 00118 CONTINUE LOC=LM GO TO L00004, (00056) C 00005 CONTINUE 1F(LBCA.LT.L)eO TO 00121 60 TO 00122 00121 CONTINUE

lA(LBCfl>=IA(L) IA<L8CA*!) = IAtLBCA»n + IA(L*1>*2 IA«LPP>=LBCA

-204-

FORTRAN Corvtrol Programs

SO TO 0 0 1 2 3 00122 CONTINUE IA(L*1)*1ACL*I)*IA(LBCA*1>*2 00123 CONTINUE LBCA^IACLBCA) IFCLBCA.EQ.OIJO TO 00124 60 TO 00125 00124 CONTINUE LBCA=LFFB 00125 CONTINUE NFL=NFL*2 60 TO L00005, 100079)

c 00006 CONTINUE IF(L2-L1.G£.10)00 TO 00127 GO TO G0128 00127 CONTINUE L6CA=L!+1 GO TO 00129 00128 CONTINUE

LBCA-IACLCSB) 00129 CONTINUE

GO TO L00006, (00113) END C CECIMIN.MAX.KODE) C SUBROUTINE CHECKS EVENT CODE AT IA(I POINT) AND PRINTS ERROR MESSAGE C IF NOT IN THE INTERVAL IMIN.MAX1. SUBROUTINE CECCMIN.MAX.KOOE) DIMENSION JA(1) COMMON RA C1) EOUIVALENCE (lA(l).RA(l)) COMMON /SYSTEM/MFRQM.MTO,ICTYPE,IPOINT, 1IDUMP,ISECA,1 TRACE.LB,LBCA,LBLIST.LBPT,LBUF,LCSB,LE, 1LEC,LFFB,LFFE.LI,LLE,LLFB.LLFE.LMS,LNE,LP.LV.MINNFL, 1MNSE,NFE,NFL,NI1, NI2,N01,N02,NREP,NRUN,NSE,TIME,TSTOP KODE-IA(IPOINT) IFCKODE.LT.MIN.OR.KODE.GT.MAXJGO TO 00026 GO TO 00027 00026 CONTINUE URITEC NO 1,00029) 00029 FORMAT!/IX,15H ERROR /1X,23HCEC ILLEGAL EVENT CODE) CALL ERROR 00027 CONTINUE RETURN END C CLOCK C SUBROUTINE AOVANCES SIMULATION TIME. SUBROUTINE CLOCK DIMENSION IA(1) COMMON RAO) EOUIVALENCE < I A<T),RAC1)> COMMON /SYSTEM/MFROM.MTO, ICTYPE,I POINT, -205-

FORTRAN Control Programs

11 DUMP,ISECA,I TRACE,LB,LBCA,LBLIST,LBPT,LBUF,LCSB,LE. 1LEC,LFFB,LFFE,LI,LLE,LLFB,LLFE,LMS,LNE, LP,LV.MINNFL, IMNSE.NFE.NFL.Nl1,Nl2.NOl.N02,NREP,NRUN,NSE,TfME,TSTOP 00026 IFITIME.LT.TSTOP)G0 TO 00027 GO TO 00028 00027 CONTINUE IFCLNE.GT.OIGO TO O0029 GO TO 00030 00025 CONTINUE

TWE=RACLNE*1> MFROM=0 MT0=IA(LNE+2> ICTyPE=S 1P0INT=LN£<3 CALL SEND N=IA<LNE> IA(LNE)=LFFE LFFEsLNE LNE=N NSE=NSE-1 NFE=NFE+1

GO TO 00031 0 0 0 3 0 1 F ( L N E . £ Q . 0 ) G 0 TO 0 0 0 3 2

GO TO 00033 00032 CONTINUE TIME=TSTOP 30 TO 00031 00033 CONTINUE WRJT£<N01,000341 00034 FORMAT!/I A,15H ERROR /1X,19HCL0CK NEGATIVE LNE) CALL ERROR 00031 CONTINUE GO TO 00026 00028 CONTINUE RETURN END C CMB<LM,LH,LPB,LN,LL,NL,NT,NC,A> C SUBROUTINE CREATES MATERIAL BLOCK INITIALIZED TO LH.LPB A C AND RETURNS BLOCK LOCATION LM. SUBROUTINE CMB< LM,LH,LPB,LN,LL,NL,NT,NC,A) 01 MENS I ON IAU) COMMON RA(l) EQUIVALENCE (IA<I),RA<1)] COMMON /SYSTEM/MFROM,MTO,3 CTVPE,1POIMT, 1IDUMP,ISECA,1 TRACE,L8,LBCA,LBLIST,LBPT,LBUF,LCSB,LE, 1LEC,LFFB,LFFE.LI,LLE,LLFB.LLFE,LMS,LNE,LP,LV,MINNFL, 1MNSE,NFS INFL,Nil,Nl2 NOl,N02,NREP,NRUN,NSE,TIME,TSTOP CALL ASTORE(LM.B) ]F(1A(LM).NE.O)GO TO 00025 GO TO 00027 00026 CONTINUE WRITECNOl.00029) -206-

FORTRAN C o n t r o l ProsrarfiS

00029 FORMAT!/1X.15H ERROR /1X, X 43HCMB NO CONTIGUOUS SPACE FOR MATERIAL BLOCK) CALL ERROR 00027 CONTINUE 1ACLM*21=LH IAfLM*3)=LPB IA(LK»4)=LN IAfLM*5)»LL IA(LH*6>=NL IA(LM*7)=NT IA(LM*fl>=NC RAtLM*9)»A RETURN END C CQPYB(LI,L2> C SUBROUTINE COPIES THE STORAGE BLOCK AT LI IMTO A NEW C fcLOCK AT L2 AT LEAST AS LARGE AS THE OR!©It.AL AND SETS C THE REMAINDER OF THE BLOCK AT L2 TO INTEGER 0. SUBROUTINE C0PYBCL1.L2) DIMENSION IA(1) COMMON RAM) E0U1VALENCE UA(1),RA(1)3 CCMMON /SYSTEM/MFROM,MTO.ICTYPE,1POIMT, I I DUMP,ISECA,I TRACE,LB.LB&A.LBL1ST.LBPT.LBUF,LCSB.LE, ILEC.LFFB.LFFE,LI,LLE,LLFB.LLFE,LMS,LNE.LP,LV,MINNFL, 1MNSE,NFE,NFL,Nl1.Nl2,NOT,N02,NREP,NRUN,NSE,TIME, TSTOP CALL AST0RECL2,IA(LI*I11 1F<1A<L2).GT.0)G0 TO 0OO26 GO TO 0O027 0002S CONTINUE WRIT£<N01.0002SI 00029 FORMAT!/1X,1SH ERROR /1X. X 36HC0PYB NO CONTIGUOUS SPACE AVAILABLE) CALL ERROR 00027 CONTINUE 1=1-11) 00030 1=1*1 IF(CI) (!-<IA(L2+11)).LE.016O TO 000*1 00 TO 00032 00031 CONTINUE IFU.LE. !A(L1-H))G0 TO 00033 GO TO 00034 00033 CONTINUE

I A C I 2 + 1 * 1 ) = I A ( L 1 + l t l > GO TO C003S 00034 CONTINUE tA(L2»1+I>=0 00035 CONTINUE GO TO 00030 00032 CONTINUE RETURN END

-207-

FORTRAN Control Programs

C CREATE<NT,NP.NV,IPVT) C SUBROUTINE CREATES INSTANCE MTO OF FUNCTION TYPE NT WITH NP PARAMETERS C AND NV VARIA&.ES. PARAMETER, VARIABLE AND C LOCATIONS ARE ZEROED C USING PA/IAME7ER AMD VARIABLE TYPE CODES IN .PV. SUBROUTINE CREATE(NT,NP,NV,IPVT) DIMENSION IPVTr1 I DIMENSION :A(0 COMMON R/ i) EQUIVALENCE C(At 11,RAf111 COMMON /SYSTEM/MFROM,MTO,ICTYPE,IPOIMT, 11 DUMP,ISECA,tTRACE.LB,LBCA,LBLIST,LBPT,LBUF,LCSO.LE, 1LEC,LFFB,LFFE,LI,LLE,LLFB,LLFE,LMS.LNE,LP,LV.KINNFL, 1MNSE,NFE,NFL,N1T,NI2,NOI,N02,NREP,N,-,UH,NSE,TI(*E,TSTOP NStZ£=3->NP+g NV CALL ASTORECLB.NSIZE) IF1IA<LB).OT.OJGO TO 00026 GO TO 00027 00026 CONTINUE

WR1TECNOKC0029; 00029 FORMATC/IX.15H ERROR / 1 X .

X 42HCREATF. NO CONTIGUOUS STORAGE FOR FUNCTION) CALL ERROR

00027 CONTINUE IA(LCSCLBPT.MT0+1)>=LB IACLB)=NT IA(LB+2)=MT0 !A(LB+3)=NP IA(LB+4>=NV LP=LB*5 LV=LP*NP LI=LV*NV LE=LI+NV-1 1 = 1 - 1 1 )

00030 1=1+1 IF((I) <1-<NP)>.LE.O)GO TO 00031 60 TO 00032 00031 CONTINUE IF(1PVT(I>,EQ.3)G0 TO 00033 GO TO 00034 0C033 CONTINUE RA«LP-1+!)=0 00 TO 00035 00034 CONTINUE IA(LP-1+I)=0 00035 CONTINUE eo TO 00030

00032 CONTINUE 1=1-11) 00036 1=1+1 IFCtl) (I-(NV)>.LE.0JG8 TO 00037 GO TO 0003B 00037 CONTINUE -208-

FORTRAN Corr t ro l P r o a - s n s

IFCJPVTINP+I).EQ.31G0 TO 00039 GO TO 00040 00039 CONTINUE RAILV-1*!1=0. RA(LV-1*I*NV)=0. GO TO 00041 00040 CONTINUE IAtLV-1+l)=0 IA(LV-1+I*NV)=0 00041 CONTINUE 00 TO O0O3E 00030 CONTINUE RETURN ENO C CRMD1I HO.LMZ,L" C SUBROUTINE CREA i tS NO MATERIALS AT CONTAINMENT LEVEL \ ~~J'JRDiNG C TO MATERIAL. SPECIFICATIONS AT LMZ AND RETURNS THE LOCATION IN LM. SUBROUTINE CRMDI(NO,LMZ,LM! DIMENSION IAC1) COMMON HA C 1 ) EQUIVALENCE (lACU.RAtm COMMON /SYSTEM/MFROM.MTO,ICTYPE,IPOIOT, 11DUMP, I SECA, I TRACE, LB, LBCA, LBL 1ST, LBPT, LBUF, LCSB !£.. 1 LEC. LFFb, LFFE, LI, LLE, LLFB, LLFE, LMS, LKE, LP, LV, MI NNrL. 1MNSE,NFE, NFL, Nl 1, NI2.N01 , N02, NREP, NRUN, NSE, Tl ME, 7STGP IFWTRACE.GE.SIGO TO OOOcS GO TO 00027 00026 CONTINUE WRITEtNOI,00029)T!ME,IA(LB+23 00029 F0RMATC1X,£!0.4,14,2X,15HCRMD1(NO,LMZ. )J WRITECNOI,00030>N0,LMZ 00030 FORMATC IX, » I 10) 00027 CONTINUE IFUTRACE.GE.6.AND. (ITRACE.EO. ITRACE/2 21)80 TO 0003! GO TO 00032 00031 CONTINUE WRITE(N02,00034>TIME,IA(LB*2) 00034 FORMAT11X,E10.4, I 4, 2X, 1 5HCRMD1 (NO, LMZ, )> WRITEIN02,00035J NO,LMZ 00035 F l W I A T d X . a i 10)

CALL I CHECK 00032 CONTINUE

CALL CMBCL1 ,0,0,0,0, I ,0,0.0, ) NM=1-(1 ) 00036 MM=NM*1 1 Ft C1) (NH-CNO)>.LE.O)G0 TO 00037 GO TO OO038 0CC37 CONTINUE CALL CMB1L0,0,0,0,0,0,0, 0, O.) iACL0*7)=RAC<LMZ,LI!NM<NM,7.1 J) IA(L0*S)=RUNIF(RAC(LMZ,LllNM<MM,7,2)),RAC<LMZ.LIINK!MM,7.3):! RAtL0*9)=RN0RMT<RACCLMZ,L!!NM<NM,7,4)1,RAC(LMZ,LI1NKINM.7 5)) -209-

FORTRAN Conxrol Programs

J RACCLMa.l.MNHtNH.y.SJJ.RACII.MZ.LI 1NM<NM,7,71>) IF<NM.EO.S1G0 TO 00039 GO TO 00000

00039 CONTINUE IA<LO+2)=Ll IA(Lt+5)=L0

GO TO 00041 00040 CONTINUE

IA(L0+3)=L0P IA(L0P*4)sL0

00041 CONTINUE LOP=LO

<30 TO OOG36 00036 CONTINUE

CALL UMO(L1) LM = L1 IF<1TRACE.GE.S)G0 TO 00042 GO TO 000^3

00042 CONTINUE WRtTE(NO-i ,00045)TIME J IA<LB+2> 00045 FCRMAT(1X,E10.4, I4.2X, 13HCRM0K , ,LI«) WR1TE<N01,00046)LM

00046 FORMAT(1X,I 10) 00043 CONTINUE

tF< ITRACE.GE.6. AND. U T R A C E EQ. 1 TRACE/2 2) ICO TO 00047 GO TO 00048

00047 CONTIN'JE WRITECNO2,00050ITIME,IA<LB+2)

00050 F0RMATC1X,E10,4, I4.2X. 13HCRKDK , , LMf) ) WRITE(NO2,000Sl)Lf

00051 F0RMATC1X,110) CALL I CHECK

00048 CONTINUE RETURN END

C CRMD2(N1,N0,LMZ.LM> C SUBROUTINE CREATES N! CONTAINERS AT CONTAINMENT LEVEL 2 WITH C NO MATERIALS IN EACH ACCORDING TO MATERIAL SPECIFICATIONS AT C LMZ AND RETURNS THE LOCATION JN LM.

SUBROUTINE CRMD2IN1,N0,LMZ,LM) DIMENSION IAC1) COMMON RAC1I EQUIVALENCE (lA(l).RA(l)) COMMON /SYSTEM/MFROM,MTO.1CTYPE.1 PCI NT,

1IDUMP,ISECA,[TRACE,LB,LBCA,LBLIST,LBPT,LBUF,LCSB,LE, 1LEC.LFFB,LFFE,LI,LLE,LLFB,LLFE,LMS,LNE,LP.LV,MINNFL, 1MNSE,NFE,NFL,Nl1.Nl2,NO!,M02,NREP,NRUN,NSE,TIME.TSTOP CALL CMB(LM,6,O,0.O,2,0.O,O I NC»1-C1)

00026 NC=NC+1 IF((I> <NC-(N1)).LE.0>60 TO 00027 (30 TO 00028

-210-

FORTRAN Control P r o l a n s

00027 CONTINUE CALL CMBIL2,0,0,0,0,2,0,0,0.) IFCNCE0. J1GO TO 00029 eo TO 00030 00029 CONTINUE IA(L2*2)=LM IA(LM+5)=L2 GO TO 00031 00030 CONTINUE IA<L2P*<J1-L2 IA<L2*3>=L2P 00031 CONTINUE LFP=L2 CALL CRMD1<N0,LM2,L1] 1A(L2*E!=L1 1ACL1+2)=L2 GO TO 00026 00028 CONTINUE CALL UKDtLM) RETURN END C OESTRO(IPVT) C SUBROUTINE DESTROYS THE FUNCTION AT LB USING PARAMETER AND VARIABLE C TYPE CODES IN 1PVT. SUBROUTJ NE 0ESTRO(IPVT) DIMENSION IPVT(l) DIMENSION !A<1) COMMON RA C1) EQUIVALENCE <IA(I),RA(15) COMMON /SYSTEM/KFROM.MTO, ICTYPE, IPOlrff, 1 I DUMP, I SECA, 1 TRACE, LB '. BCA, LBLI ST, LBPT, LBUF, LCSB, LE, 1LEC,LFFB,LFFE,L!,LLE,L .rB.LLFE.LMS.LNE,LP,LV.MINNFL. 1MNSE,NFE,NFL,NI1,N12,N01,N02,NREP,NRUN,NSE.TJME,TSTOF I=LP-(1) 00026 I=1+1 IFCIIl «I-«LI-1)1.LE.01GO TO 00027 GO TO 00028 00027 CONTINUE K=I-LP-»1 IFCdP •T{K).EQ.2.0R.lPVT<K).E0.4).ANDi.IA<n .GT.0)GO TO 00029 GO TO 00030 00029 CONTINUE CALL FSTOREdAtl )) IFCI.GE.LV.AND.1 At I•!A(LB+d>).GT.OJG& TO 00032 GO TO 00033 00032 CONTINUE CALL FSTOREt IAC 1 + 1AILB*«J) )) 00033 CONTINUE 00030 CONTINUE GO TO 00026 00028 CONTINUE IA(LB)=0

-211-

FORTRAN Contra! Progr-sns.

CALL FSTORE!LB> IA(LCS(LBPT,MTO*l))=0 RETURN END C DMPSYS C SUBROUTINE DUMPS MODEL SYSTEM. SUBROUTINE DI1PSYS DIMENSION 1A< 1 > COMMON RA(1 > EQUIVALENCE I IA!1) ,RACI)> COMMON /SYSTEH/I1FROM.MTO, ICTYPE, I POINT, 1 I DUMP,1SECA, I TRACE,LB,LBCA,LBL[ST,LBPT,LBUF,LCSB,LE, 1 LEC, LFFa, LFFE, LI , Ll-E , LLFB, LLFE , U'lS, LNE, LP, LV, MI NNFL, 1MNSE,NFE,NFL,NI1, N12.N01,N02,NREP,NRUN,NSE,TIME,TSTOP WRITEINOI,00026) 0002S FORMAT!IX,6HC0MM0N) WRITEtNOl,00O27JMTO 00027 FORMAT!1 OX,3HMT0,112) WRITECNOl,00028)MFR0M 0002a FORMAT!eX,5HMFP0M,112) WRITECNOI,00029)ICTYPE 00029 FORMAT(7X.6HICTYPE, I 12) WRITECNQI ,00030) I POINT 00030 FORMAT!7X.6HIPOINT,112) WRITECMJI,00031)IDUMP 00031 FORMAT!6X,5HIDUMP,I 12) WRITECN01,00032)!SECA 00032 FORMAT<8X,SHI SECA, 112) WR1TE C MO 1,00033)I TRACE 00033 FORMATI7X,3HITRACE,I 12) WRIIE(NO!,000341 LB 00034 FORMAT!1IX.2HLB,I 12) WfM TECN01,00035)LBCA 00035 FORMAT!9X,4HLBCA,112) UR1TECN01 ,00030)LBL1ST 00036 FORMAT!7X,6HL8LIST,!12) WRITEC NCI ,000371LBPT 00037 F0R;1AT!9X,4HLBPT, I 12) WRITE(N01,000381LBUF 00038 F0RMAT10X,4HLBUF, I 12) WRITE(N01,00039)LCSB 00039 FORMAT!9X,4HLCSB, I 121 WRITECNOl,000401LE 00040 FORMAT!1IX.2HLE4112) WRITECNOl,000411LEC 00041 FORMAT!10X.3HLEC, I 12) WRITECNOl,000421LFFB 00042 FORMAT(9X.4HLFFB,!12) WRITECNOl.000431LFFE 00043 FORtVT (9X, 4HLFFE ,112) WRITECNOl.000441LI 00044 FORMAT!1IX,2HLI, I 12)

-212-

FORTRAN Conxrol Prograns

WRITElNOt.00045>LLE 00045 FORMAT*1 OX.3HLLE.112) WR1TE(N01,00046)LLFB 0004 6 FORMAT(9X,4HLLFB,1)2) WRITE(NO1,00047)LLFE 00047 FORMAT(9X.4HLLFE,112) WRIT£(N01.00048)LMS 00046 FORMAT!10X,3MLMS,112) WRITE< N01,00049)LNE 00049 FORMATII OX,3HLNE,112) WRITE<N01,00050)LP 00050 F0RMAT(11X,2HLP,IJ2> WRJTE<N01,00051)LV 00051 FORMATS 1IX,2HLV,112) WR!TE<N01,00052JM1NNFL 00052 FORMAT C 7X,BKM J NNFL,112) WRITE(NO1'00053)MNSE 00053 F0RMATC9X.4HMNSE,112) WRITE(NO1,00054)NFE 00054 FORMAT( 10X..3HNFE, I 121 WRITE(N01,O0OB5)NFL 00055 FORHAT<10X,3MNFL,I 12) WR1TE(N01,0005S)N11 00056 FO(1MAT(10X,3HNI 1 , 1 12) WRITE(N01,00057)N12 00057 F0RMAT<10X,3HN12, 112) WRIT£(N01,00058)NO1 00056 FORMAT(10X,3HN01,112) WRITEC N01,00059!N02 00059 FORMAT!1 OX,3HN02,112) WRITEC N01,00060)NREP 00060 F0RMAT(9X,4HNREP,112) WRITECN01,00061)NRUN 00061 FORMfiT(9X,4HNRUN, 112)

WRITE(N01 ,00062)NSE 00062 FORMAT(10X.3HNSE.112) WR1TE(N01,00063)TIME 00063 F0RMATC9X,4HTIME.E12.4) WRITEtNOl,00064)TSTOP 00064 FORMAT!SX,5HTST0P,E12.4) K.MAILBLIST+3) 1=1-11) 00065 1=1*1 IF(tf) (I-<K)).UE.OJGO TC 00066 60 TO 00067 00066 CONTINUE «FROM=0 MrO=IA<LCS(LBI.IST, 1+2)) 1CTYPE=7 1P01NTSO WRITE(MO1,00066)MTO 00068 FORMAT <1X,6HFUNCT1ON,15) -213-

o o o o o o o o o o o o o o o o w o

G) -JCno o C S J O O

S>—Z H r 2 H H H

— I - Z o > — z c o o r x - o » * - * ID u> CJO ~

~ o - • o ou> —«

g o a a a 0> 0) 0) 0) a vi 01 w ik c;

— r i m - n t - n c t i ^ - n e -i n i O i O x o z o m i c —r»—a—a—s—a—s l—H3- I3 - I3 - I 3 - I 3H3 • -n>m>m3>in>m>m» GXPH-H I - H - H - -

- Z ~ Z ~ Z ~ Z ~ Z -vJO'.DO-'GOOlDO-X - X - O - X - X - v • • • • x OOlkO- OikO&O-IOIDUOIOIOC 2 o r o i o r o r o 3 —o>(Po>zo)ra»-na>i Z " j > — r - p ) - w - n -n3- r- z - r- r n r — ( P — T I — r — n • z—o—r-'Ti-'-nB —zr»J»M r»o)i\)0>-_ - n _ ~ ~ ~ c M I - ^

o o o o o o

O O O O O D O D C O o a o a a o o o c o a A vj \ i fti o (D a

o o o o v| v| v| v| ^J -g vi at ui ik u iu

o o o o o o o o o o o o v| vl 01 01 — O *2 vj

end D O D - z - i^ -+r H - Q i - Z -z c o > 3mo !"§•

-ns:oci«r-na;'!is; ,n£:*n«:_nc-n^Tic-«tiC*nc*T:4:oo o 3 ) O o t i n o x C 3 i 0 3 t o ^ 0 3 ) 0 3 i o a o 3 ) o a < o a Q o a—z ~rx—x—x~x- -x~x—a>—»- * ;o—x—z 3 - H - < H r 7 2 H 3 - l 3 - » 3 - < 3 - l 3 H 3 H 3 H 3 H 3 H H H O

* 2 * g * 7 . ^ 2 > v Z - 2 - 2 ^ n ^ Z * z c o r

o s o - o t D o — O I O O * D O - O - * O — o — Q m o X - O - X - O - X - X - O - O - O - X - OCft X * • x- * * X1- - - - - x- x- x- - - om o oto» o&o- oikOXwo- o- o* o-*o y>z o xouoiouoioxouoooao-o u "*oio30iororoioioioio

o nam>j»o»(ftoi"'»Xk'n<oi-roz—mo<«> o y*—• z - 2- z * r- r - r- r- [~2 2 " « - * 3 - K - * 0 » - r - - n - r - z - m = i o •**m-,m-iw—ni—-n—"n—m—m—o to —Ofo uniiu Mimomro » iv> o

w >

- - O O00 • M

W 3 J

FORTRAN Control Prograns

00091 CONTINUE RETURN END C DUMP!IPVT) C SUBROUTINE DUMPS THE MODEL FUNCTION AT LB, SUBROUTINE DUMPdPVT* DIMENSION IAC1> COMMON RAC1> EQUIVALENCE fIA(1),RA(I)) COMMON /SYSTEM/MFROM.MTD,ICTYPE.IPOIIW, 11 DUMP,ISECA,I TRACE,LB,LBCA,LBLIST.LBPT,LBUF,LCSB,LE, 1LEC,LFFB,LFF£,LI,LLE,LLFB,LLFE.LMS.LNE,LP.LV.NINNFL, 1MNSE, NFE.NFL,Nl1.Nl2,NOI,N02.NREP,NRUN,NSE,TIME,TSTOP CALL PHLB CALL PPLB(IPVT) CALL PVLB(IPVT) CALL PICLB(IPVT) RETURN END C ERROR C SUBROUTINE PRINTS DIAGNOSTIC DATA AND STOPS PROGRAM. SUBROUTINE ERROR DIMENSION IA(1> COMMON RA(1> EQUIVALENCE (IA(1),RAtm COMMON /SYSTEM/MFROM.MTO, ICTYPE, IPOIW, 11 DUMP. ISECA. I TRACE,LB,LBCA,LBLIST,LBPT,LBUF,LCSB,LE, 1LEC,LFFB,LFfE,LI,LLE,LLFB,LLFE,LMS,LIC,LP,LV,MIHNFL, 1MNSE,NFE,NFL,Nl1,NJ2,NOI,N02,NREP,NRUN,NSE,TIME,TSTOP CALL DMPSYS CALL EXIT RETURN END C EVDRS(N,M,V> C SUBROUTINE RETURNS SAMPLE VALUE V FROM A POPULATION C WITH DISTRIBUTION TYPE IN INTEGER PARAMETER N AND STATISTICS IN C REAL LIST PARAMETER M OF THE CALLING PROGRAM. SUBROUTINE EVDRSCN,M,V) DIMENSION 1AU) COMMON RA(1) EQUIVALENCE (IA(11,RAt15) COMMON /SYSTEM/MFROM,MTO,ICTYPE.IPOI NT, II DUMP,ISECA,1 TRACE,LB,LBCA,LBLIST,LBFT,LBUF,LCSB.LE. tLEC,LFFB,LFFE,LI,LLE,LLFB,LLFE,LMS.LNE,LP,LV.MINNFL, U'.NSE.NFE, NFL, Nl I , NI2, NOI , N02, NREP. NRUW, MSE, TIME, TSTOP IF(l7RACE.GE.5)GO TO 00026 GO TO 00027 00026 CONTINUE WRITE(N01.O0029>TIME,IACLB+2) 00029 F0RMAT<1X,E10.4 'd,2X,12HEVDRS<N,M, )) WRITE(N01.00030>N,M 00030 F0RMAT(IX,2I10) -21S-

FORTRAN Control Programs

00027 CONTINUE IFIITRACE.GE.6.AND. fITRACE.EO. I TRACE/2 2) )60 TO 00031 GO TO D0032 00031 CONTINUE WRIT£<N02,00034)TIME.IAILB+2) 00034 FORMAT DX.E10. 4,I 4,2X,12HEVDRSIN,M, )> WRITE<N03,00035)N,M 00033 FORMAT!1X.2110) CALL I CHECK 00032 CON1INUE IF(IP<N),E0.1)Q0 TO 00036 00 TO 00037 .00036 CONTINUE V=RUNIF(RLP<M,1>,RLP<M,2)> £0 TO 00038 00037 IF<IP(N>.EQ.21GO TO 00039 GO TO 000 40 00039 CONTINUE V=RNORM(RLP(M,1>,RLP<M,2>> GO TO 0003S 00040 1F(IP(N).EQ.3)G0 TO 00041 GO TO 00012 00041 CONTINUE V'RNORMTlRLPtM,1),RLP(M,2),RLP<M. S).RLPfM,4)) GO TO 00036 0OC42 !F<IPCN).EQ.41GO TO 00043 GO TO 00044 00043 CONTINUE CALL URNUX.U1 V=-RLPCM,11 ALOG(U) GO TO 00038 00044 CONTINUE WRITE!NO!,00045) 00045 FORMAT C /1 X, 1 5H ERROR ,'IX, X 31HEV6RS ILLEGAL DISTRIBUTION TYPE) CALL ERROR 00033 CONTINUE IF!1TRACE.GE.5JG0 TO 00046 GO TO 00047 00046 CONTINUE WRITE'NOl,O0049>TIME,1ACLB*2J 00049 FORMAT!IX,EIO.4,I4.2X,12HEV0RSI , ,V>) URITEIN01,00050)V 00050 F0RMATMX.EI2.4) 00047 CONTINUE 1FCITRACE.0E.6.AND.<1 TRACE.EQ.I TRACE/2 2) )G0 TO OO051 GO TO 0O0S2 00051 CONTINUE WRITEIN02,00054(TIME,IACLB+2) 00054 FORMAT!IX,EIO.4,I 4,2X,12HEV0RS( , ,V)I WRITE(NO2,O0055)V 00055 FORMAT!IX,El 2.4)

-2)6-

FORTRAN Corrtrol Programs

CALL I CHECK 00052 CONTINUE RETURN END C FPNTRSCNFUN) C SUBROUTINE SETS POINTERS LB, LP, LV, LI, AND LE FOR FUNCTION HFUH. SUBROUTINE FPNTRS(NFUN) DIMENSION IA(!) COMMON RAO ) EQUIVALENCE 11A(1),RAC1>) COMMON /SYSTEM/MFROM.MTO,ICTYPE, IPOI NT. 11 DUMP,1SECA,I TRACE.LB.LBCA,LBL1ST,LBPT,LBUF,LCSB,LE, 1LEC,LFFB,LFFE,LI,LLE,LLFB.LLFE,LMS.LNE,LP.LV.MINNFL, 1MNSE,NFE,NFL,NI1,NI2,N01,NOZ,NREP,NRUN,NSE,TIME,TSTOP LB-IA(LCS(LBPT,NFUN*11) NP=lA(LB+3> NV*IA(LB+4) LP=LB+5 LV=LP+NP LlsLV+NV LE=LI+NV-1 RETURN END C FRMD(LM) C SUBROUTINE FREES MATERIAL DATA AT LM. SUBROUTINE FRMD(LM) DIMENSION 1AC1) COMMON RAC11 EQUIVALENCE tIA(1),RA(1)J COMMON /SYSTEK/MFROM.MTO,ICTYPE,! POINT, I(DUMP.ISECA,I TRACE,LB.LBCA,LBLIST,LBPT,LBUF,LCSB.LE, 1LEC,LFFB,LFFE,LI,LLE,LLFB.LLFE,LMS,LNE.LP,LV.MINNFL, 1MNSE,NFE.NFL,N11,NI2,N01.N02,NREP,NRUN,NSE,TIME,TSTOP IFUTRACE.GE.5>GO TO 00O26 GO TO 00027 00026 CONTINUE WRITE(N01 ,00029)TIME, 1A<LB*2) 00029 FORMAT<1X,E10.4,14,2X,OHFRMD<LM)) WRITEtNOt.00030)LM 00030 FORMAT(1X,I 10) 00027 CONTINUE I F U T R A C E . G E . 6 . A N D . UTRACE.EQ. I TRACE/2 2 ) )G0 TO 00031 GO TO 00032 00031 CONTINUE WRITECN02,OD034)TIME, IA(LB+2> 00034 FORMAT(1X,El0.4.14,2X,SHFRMBCLM)> WRITECN02,00035)LM 00035 FORMATdX, 110} CALL I CHECK 00032 CONTINUE IFCLFi.LE.OIGO TO 00036 GO TO 00037

-217-

FORTRAN Control Ppograns

00036 CONTINUE WR1TE(M01,000391LM 00039 FORMATdIX, I4HN0 MATERIAL AT, 161 GO TO 00036 00037 CONTINUE MODEM L=LM 00040 IFCL.NE.LM.OR.MODE.NE.4)G0 TO 00041 SO TO 00042 00041 CONTINUE ASSIGN 00043 TO L00001 (30 TO 00001 00043 CONTINUE GO TO 00040 00042 CONTINUE CALL FSTORE(LM)

IFUTRACE.GE.5)G0 TO 00044 GO TO 00045 00044 CONTINUE WRITE* N01 ,00047)TiriE, JA(LB*2> 00047 FORMAT!IX,El0.4,I4,2X,9HFRMD DONE) 00045 CONTINUE IF(ITRACE.GE.6.AND.fITRACE-EQ.ITRACE/2 2>)G0 TO 00048 GO TO 00049 O0O4S CONTINUE WRITE<N02,00051IT1ME,JACLB+2)

00051 F0RMATUX.EI0.4, I4.2X.9HFRMD DONE) CALL I CHECK O00d9 CONTINUE 00038 CONTINUE RETURN C OOOOI CONTINUE IFCMODE.EO.DGO TO 00052 60 TO 00053 00052 CONTINUE IF(IA(L*5).GT.0)GO TO 00055 GO TO 00056 00055 CONTINUE L=IA(L+S> GO TO 00057 00056 IF(IA<L+4).GT.0)G0 TO 00058 GO TO 00059

00058 CONTINUE MODE:2 L*IA<L+4) GO TO 00057 00059 CONTINUE MODE=3 00057 CONTINUE GO TO 00054 00053 IF(M0DE.E0.2)G0 TO 00060 -216-

GO TO 00061 00060 CONTINUE IF<IA(L+5>.9T.O)G0 TO 00062 60 TO 00063 00062 CONTINUE MODE-1 L*IA(L*5) SO TO 00064 00063 IF(|A<L+4I.GT,0)G0 TO 00065 GO TO 00066 00065 CONTINUE L*IA(L+4> GO TO 00064 00066 CONTINUE M0DE=3 00064 CONTINUE GO TO 00054 00061 rF<MODE.EG.3)GO TO 00067 GO TO 00068 00067 CONTINUE IFCL.NE.LMIGO TO 00069 GO TO 00070 00069 CONTINUE LF=L 60 TO 00071 00070 CONTINUE LF=0 00071 CONTINUE IFUA<L+2»,GT,0)GO TO 00072 GO TO 00073 00072 CONTINUE M0DE=4 L°IA<L+2) GO TO 00074 00073 1F(1A(L+3>.GT.0)G0 TO 00075 GO TO 00076 00075 CONTINUE L=IA(L+3> GO TO 00074 00076 CONTINUE IF(L.EO.LM)GO TO 00077 GO TO 00078 00077 CONTINUE H0DE=4 GO TO 00079 00078 CONTINUE ASSIGN 00080 TO L00002 GO TO 00002 00060 CONTINUE 00079 CONTINUE 00074 CONTINUE IFCLF.GT.OJGO TO 000S1

FORTRAN Corvti-ol P r o g r s n s

GO TO 0 0 0 8 2 00081 CONTINUE CALL FSTORE(LF) 00082 CONTINUE GO TO 00094 00066 [F<M00E,E0.4JGO TO 00084 00 TO 00080 00081 CONTINUE IF( IA<L+4I.GT.0)GO TO 00086 00 TO 00087 00086 CONTINUE LF=0 M0DE=2 L=IA<L*4) GO TO 00068 00087 IF(IACL*3>.GT.01G0 TO 0008S GO TO 00090 00089 CONTINUE LF=L MOOE-3 L=IA(L+3) GO TO 00038 00090 IFUA(L+a>.GT.O)GO TO 00091 GO TO 00092 00091 CONTINUE LF=L L=IACL+2) GO TO 00088 00092 CONTINUE ASSIGN 00093 TO L00002 GO TO 00002 00093 CONTINUE 0006B CONTINUE IF(LF.GT.O)GO TO 00094 GO TO 00095 00094 CONTINUE CALL FSTORECLF) 00095 CONTINUE GO TO 00084 0008S CONTINUE ASSIGN 00097 TO L00002 GO TO 00002 00097 CONTINUE 00054 CONTINUE GO TO L00001, (00043) C 00002 CONTINUE WRITECN01,00098) 00098 FORMAT!/1X.15H ERROR /1X, X 36HMATERIAL DATA STRUCTURE ERROR <FRMD>) CALL ERROR GO TO L00002, (00080,00093,00097) -220-

FORTRAN Control Progrsns

END C FSTOREILOC) C SUBROUTINE FREES THE STORAGE SPACE AT LOU. SUBROUTINE FSTOREILOC) DIMENSION 1AC1) COMMON RAC1) EQUIVALENCE tlAf11,RA<I>) COMMON /SVSTEM/MFROM,MTO,1CTYPE,IPOINT, 11 DUMP, ISECA, I TRACE, LB, LBCA, LBLI ST. LBPT, LBUF, I.CSB, LE, ' 1LEC.LFFB,LFFE,L1,LL£,LLFB,LLFE.LM5,LNE,LP.LV,MINNFL, 1MNSE.NFE>FL, NI 1,N12 NOI,N02,NREP, NRUN, "ISE.TIME, TSTOP IF(ITRACE.GE.5)G0 TO 00026 GO TO 00027

00026 CONTINUE WRITE!NOI,00029)TIME,1A(LB»2) 00029 F0RMATUX,E)0,4,!4,2X, 11HFSTORE(LOC3> WR 1TE < N01, 00030) LOC 00030 FORMAT C1X,I IO) 00027 CONTINUE IFUTRACE.GE. 6. AND. U TRACE.£0.1 TRACE/2 2))G0 TO 00031 GO TO 00032 00031 CONTINUE WRITE(N02,00034)TtME,IAILB+2) 00034 F 0 R H A T ( 1 X , E 1 0 . 4 , I 4 , 2 X , H H F S T O R E ( L O O )

WRITE(N02 ,00035)LOC 00035 FORMAT! IX, H O ) CALL ICHECK 00032 CONTINUE L=LOC N=IAIL+1) 00036 IFIIAIL).GT.05G0 TO 00037 GO TO 00038 00037 CONTINUE L=JA<L> NsN-MACL+1)

GO TO 00036 0003B CONTINUE

I A I L ) = L F F B LFFB=LOC NFL=NFL»N IF !JTRACE.GE.5 )G0 TO 00039 GO TO 0 0 0 4 0 00039 CONTINUE WRITECNOI,00042)T1ME,!A(LB*2) 00042 FORMAT!1X,E10.4,t4,2X,11HFSTORE DONE)

00040 CONTINUE JFUTRACE.GE.S.AND. (ITRACE.EO. I TRACE/2 2)>G0 TO 00043 GO TO 00044 00043 CONTINUE WRITEIN02,00046)TIME,IAILB+2) 00046 FORMAT!IX.E10.4,1 4,2X,11HFSTORE DONE) CALL I CHECK -221-

FORTRAN C o n t r o l f V o o r a n s

00044 CONTINUE RETURN END C lAC(L.I) C FUNCTION RETURNS INTEGER VALUE OF ITEM I IN CHAIN STORAGE AT L. FUNCTION !AC<L,I) DIMENSION IAt I) COMMON RAO > EQUIVALENCE (IA(1),RA(1>) COMMON /SYSTEM/MFROM.MTO,ICTYPE.IPOIMT, II DUMP,ISECA,I TRACE,LB,LBCA.LBL1 ST,LBPT,LBUF,LCSB,LE, 1LEC,LFFB,LFFE.LI,LLE,LLFB,LLFE,LMS,LNE,LP,LV,MINNFL. 1MNSE. NFE JNFL, N11, N12 N01 , N02, NKEP, NRUN, NSE, TI r.£, TSTOP lAC=UtLCS<L, 1 >) RETURN END

rs * C H t 1 CHAR 1 C FUNCTION RETURNS AN INTEGER VALUE CORRESPONDING TO THE POSITION C OF THE Al FORMAT CHARACTER ICHAR IN THE STRING: O T ... 9 (BLANK) C A B . . . Z * + - / » . ) ,t'(APOSTROPHE) & C RETURNS -1 IF ICHAR IS NOT ONE OF THE A3 CHARACTERS IN THE LIST. FUNCTION 1CH<ICHAR) DIMENSION I(49> DIMENSION IA<1) COMMON RAO ) EQUIVALENCE <1A(1),RAC1 J) COMMON /SYSTEM/MFROM,MTO,ICTYPE,IPOINT, 1 I DUMP,ISECA,I TRACE,LB,LBCA,LBLI ST,LBPT,LBUF,LCSB, LE, 1LEC.LFFB,LFFE,LI,LLE,LLFB,LLFE,LMS,LNE,LP,LV,MINNFL, 1MNSE,NFE!NFL,NI1.NI2 N01,N02,NREP,NRUN,NSE,TiME,TST0P DATA I/1HO,IHI,1H2,1H3,1H4.1H5,IH6,1W7.!HB,1H9, 11H ,IHA,1HB,IHC,1HD,1HE,1HF,1HG,1HH,IHI, 11HJ.IHK,1HL.1HM,1HN,I HO,1HP,IHQ,1HR,1HS, 11HT,IHU,1HV.1HW,1HX,1HY,IH2,1HS,1H*.1H-, 1IH/,IH=,1H.,1H),1H ,IH,,1H«,lH'.IHS/ K=1 00026 !F<K.LE.43.«r;f? ICHAR.NE.!CK>1GO TO 00027 GO TO 00028 00027 CONTINUE K=K*1 OC TO 00026 00024 CONTINUE IF(K.GT.49)Q0 TO 00029 GO TO 00030 00029 CONTINUE ICH=-1 60 TO 00031 00030 CONTINUE ICH=K-1 00031 CONTINUE RETURN END

FORTRAN Control Prograns

C I CHECK C SUBROUTINE RESPONDS TO THE FOLLOWING INTERACTIVE INPUTS: C ABORT C EVENTS!N> C FREE C IACN) C 1ACN.M) C IAC(L,N) C lACtL.N.M) C ICTYPE C 1DUMP C I POINT C JSECA C 1 TRACE C LB C LBCA C LBLIST C LBPT C LBUF c LCSB C LE C LEC C LFFB C L^FE C cl C LLE C LLF6 C LLFE C LMS C LNE C LP 0 LV C MATLCL) C MFROM C M1NNFL C MNSE C MSG C MTO C NFE C NFL C NI1 C NI2 C N01 C N02 C NREP C NRUN C NSE C RAfN) C RA<N,MJ C RACCL.N) C RAC(L,N,M) C TIME

-223-

FORTRAN Control Progrens

C TSTOP SUBROUTINE I CHECK DtMENSI ON I AC I) COMMON RAC1 ) EQUIVALENCE ( I Af 1 ),RA<I)> COMMON /SYSTEM/MFROM,MTO,ICT/PE,IPOI NT, II DUMP. I SEC A, I TRACE. LB, LBCA, LBL1 ST, LBPT, LBUF, 1.CSB, LE. 1LEC.LFFB,LFFE,LI,LLE,LLFB,LLFE.LMS.LNE,LP,LV.MINNFL, 1MNSE,NFE,NFL,NI1.NI2,NOI,N02.NREP,NRUN,NSE,TIME,TSTOP DIMENSION IPVT(l) L1=LBUF*2 LB0«LBUF+81 N l 1 S = N I 1 NO!S=NO) N M « N 1 2 N01-H02 ASSIGN 0 0 0 2 6 TO L00001 0 0 TO 00001

0 0 0 2 6 CONTINUE N M ' N I I S N01=N01S RETURN

0 00001 CONTINUE READ(NI1,00027)(!A(I), I=L1,LB0) 00027 FORMAT<80*t) 00028 1F(IA(L1).NE.1H (GO TO 00029 60 TO 00030 00029 CONTINUE IFdA(Ll) .EO, 1HA100 TO 00031 00 TO 00032 00031 CONTINUE N01=N01S WRITE<NO1.00034) 00034 FORMATt/lX, 1SH ERROR /1X,1OHUSER ABORT) CALL ERROR 60 TO 00033 00032 1F(IA(L1).EQ.1HE>G0 TO 00035 GO TO 00036 00035 CONTINUE ASSIGN 00037 TO L00023 60 TO 00023 00037 CONTINUE 60 TO 00033 0003S IF(IA<L1).E0.1HF>S0 TO 00038 00 TO 00039 00038 CONTINUE ASSIGN 00040 TO L00024 00 TO 00024 00040 CONTINUE GO TO 00U33 00039 IF«IA(L1 J.EO. 1HDGO TO 00041

FORTRAN Control PPOQP .

GO TO 00042 00041 CONTINUE ASSIGN 00043 TO LO0OO2 GO TO 00002 00043 CONTINUE GO TO 00033 00042 IFCIACL1 J . E Q . I H D G O TO 00044

GO TO 00045 00044 CONTINUE ASSIGN 00046 TO LO00O3 GO TO 00003 00046 CONTINUE GO TO 00033 00045 IFI1ML1 >.EO. 1HM)G0 TO 00047 GO TO 00048 00047 CONTINUE ASSIGN 00049 TO L00004 GO TO 00004 00049 CONTINUE GO TO 00033 00043 IFCIA(Ll) .EO. 1HN>G0 TO 00050 GO TO 00051 00050 CONTINUE ASSIGN 00052 TO LOCOOS GO TO 00005 0005? CONTINUE GO TO 00033 00051 IFMA(LI) .EQ.1HR)00 TO 00053 GO TO 00054 00053 CONTINUE ASSIGN 00055 TO L00C06 GO TO 00006 00055 CONTINUE GO TO 00033 00054 IF<IACL1).EQ.1HT1G0 TO 00056 GO TO 00057 00056 CONTINUE ASSISN 00058 TO L00007 GO TO 00007 00058 CONTINUE GO TO 00033 00057 CONTINUE ASSIGN '.1059 TO L00008 GO TO COOCS 00059 CONTINUE 00033 CONTINUE READINt1,00060)1 IA<I),l=L1,LaO> 00060 F0RMATC8&A1) GO TO 0002S 00030 CONTINUE GO TO L00001, (00026) C -225-

FORTRAN Control Programs

00002 CONTINUE !FC1ACL1*1) EO.1HA)G0 TO 00061 GO TO 00062 00061 CONTINUE ASSIGN 00064 TO 1.00009 GO TO 0 0 0 0 9 00064 CONTINUE GO TO 00063

00062 1 F U A C L 1 + D . E 0 . 1 H O G 0 TO 00065 GO TO 0 0 0 6 6

00065 CONTINUE WR1TECN01,00067MCTYPE 00067 F0RMAT<1X,6HICTYPE, 12) GO TO 00063 00066 JF(1A(L1+1).EQ.1HD)G0 TO 00068 GO TO 00069 00069 CONTINUE WRITECNOl,00070)I DUMP 00070 F0RMATC1X.SHIDUMP,12) GO TO 00063 00069 IF(IA(L1+I).EQ.1HPJG0 TO 00071 GO TO 00072 00071 CONTINUE WR1TE<N01,0007311 POINT 00073 FORMAT(1X.6HIPOINT,16> GO TO 00063 00072 IF(IA<L1+?).EQ.1HS)G0 TO 00074 GO TO 0007S 00074 CONTINUE WRITECNOl,00076)1SECA 00076 FORMAT!IX,5HISECA,!6) GO TO 00063 00075 1FUA4L1+1) .EO, 1HT1G0 TO 00077 GO TO 00076 00077 CONTINUE WRITE< N01.00079)I TRACE 00079 FORMATC1X.6HITRACE,12) GO TO 00063 00078 CONTINUE ASSIGN 00060 TO L00008 GO TO 00006 OOOSO CONTINUE 00063 CONTINUE GO TO L00002, <00043) C 00003 CONTINUE IF(!A<L1+1) EO.1HBJG0 TO 00081 GO TO 00062 00081 CONTINUE ASSIGN 00084 TO L00010 GO TO 0OO1O 00064 CONTINUE

-226-

FORTRAN Control Proarans

GO TO 00083 00082 !F(|A<L141>.E0.1HC)GO TO 00089 GO TO OQ066 00085 CONTINUE WRITE(N01,00087)LCSB 00087 FORMAT*1X.4HLCS8,16) GO TO 00083 00066 lF(IA<L1»l).EO.tHE)G0 TO 00086 GO TO 00089 00066 CONTINUE ASSIGN 00090 TO LOO011 GO TO 00011 00090 CONTINUE GO TO 00063 00089 IF<[A<L1«t).EQ.1HF1GO TO 00091 GO TO 00092 00091 CONTINUE ASSIGN 00093 TS L00012 GO TO 00012 00093 CONTINUE GO TO 00083 00092 lF<IA(L1+t).EQ.1H1JGO TO 00094 GO TO 00095 00094 CONTINUE WRITE(N01,00096)L1 00096 FORMATC1X.2HLI,16} GO TO 00083 00095 IF(1A«L1+1).EQ.1HL)GO TO 00097 GO TO 00098 00097 CONTINUE ASSIGN 00099 TO L00013 GO TO 00013 00099 CONTINUE GO TO 00083 00098 IF(1A(L1*1).EQ.1HN1GO TO 00100 GO TO 00101 00100 CONTINUE WRITEtNOI,00102)LNE 00102 FORMAT!IX,3HLNE,16) GO TO 00083 00101 IFUACLl+lJ.EG.. 1HMJG0 TO 00103 GO TO 00104 00103 CONTINUE WRlTE(N0t,00105)l.MS 00105 FORMAT!IX,3HLMS.16) GO TO 00083 00104 1F(1A(L1+1).EQ.1HP>G0 TO 00106 GO TO 00107 00106 CONTINUE WRITE(N01,001081LP 00108 FORMATC1X.2HLP,16) GO TO 00083

FOftTRAN Control Programs

00107 I F U A C L 1 * I ) . £ 0 . 1 H V > G 0 TO 0 0 1 0 9 GO tO 00110

00109 CONTINUE WR1TE(N01,D0111)LV

00111 FORMAT(1X.2HLV,16) GO TO 0 0 0 8 3

0 0 1 1 0 CONTINUE ASSIGN 00112 TO LOOOOe GG TO 00008 00112 CONTINUE 00003 CONTINUE GO TO L00003, (00046) C 00000 CONTINUE lF(IAfLl»1).E0.1HA)G0 TO 00113 GO TO 00114 00113 CONTINUE IF(IA(L1*2).NE.1HT)G0 TO 00116 GO TO 00117 00116 CONTINUE ASSIGN 00119 TO L00008 GO TO OO0O8 00119 CONTINUE GO TO 001T8 00117 1FC1ACL1+31.NE. 1HDG0 TO 00120 GO TO 00121 00120 CONTINUE ASSIGN 00122 TO L00008 GO TO 00C08 00122 CONTINUE GO TO 001 18 00121 IF(IA<L1*4).NE.1HC1G0 TO 00123 GO TO 00124 00123 CONTINUE ASSIGN 00V25 TO L00008 GO TO 00008 00125 CONTINUE 00124 CONTINUE 001 IB CONTINUE LSCAN-L1»5 ASSIGN 00126 TO L00022 GO TO 00022 00126 CONTINUE CALL WRMD(LNM) GO TO 00115 O0T14 IFtlAfLl-M) .EO, 1HF1G0 TO 00127 GO TO 00128 00127 CONTINUE WRIT£tNOt,00129)MFR0H O0129 FORMAT*IX,3MMFROM,13) GO TO 00115 00128 1FCIACL1+1) .EQ.1HI>Q0 TO 0 0 1 3 0

- 2 2 8 -

I

FORTRAN Corvtrol P r o o r a n s

60 TO 00131 00130 CONTINUE WRITE< N01,00132 JMINMFL 00132 FORMAT!IX,6HM1NNFL,16) GO TO 00115 00131 IFUA(L1<M).EQ. THN>GO TO 00133 00 TO 0O134 00133 CONTINUE WRITE<N01,00135)MNSE 00135 FORMAT UX.4HMNSE,14) GO TO 0U1 .5 00134 IF(IA<LI->l).SO. 1HSJGD TO 00136 GO TO 00137 00136 CONTINUE ASSIGN 00t38 TO L00025 GO TO 0002S 00136 CONTINUE GO TO 00115 00137 IF(lACU-rt) .EQ. 1HDG0 TO 00139 GO TO 00140 00133 CONTINUE WRITECN01,00141)WTO 00141 FORMATCIX,3HMT0,13) GO TO 00115 00140 CONTINUE ASSIGN 00142 TO L00008 GO TO 00008 00142 CONTSNUE 00115 CONTINUE GO TO L00004, (00049) C 00005 CONTINUE iF(JACL1*1>.EQ,1HF)G0 TO 00143 GO TO 00144 00143 CONTINUE ASSIGN 00146 TO L00014 GO TO 00014 00146 CONTINUE GO TO 00145 00144 1FCIACL1+I).EQ.1HI)G0 TO 00147 GO TO 00148 00147 CONTINUE

I F ( I A ( L 1 * 2 ) . E Q . 1 H D G 0 TO 0 0 ) 4 9 0 0 TO 0 0 1 5 0 00149 CONTINUE WRITEtNOl.OOlSSlNHS 00152 FORMAT*IX.3HNI1.15) GO TO 001 SI 00150 IF(]A{L1+2).EQ.1H2JG0 TO 00153 SO TO 00154 001 S3 CONTINUE WRITEfNO!,00155>N12

FORTRAN Control Proorans

00155 F0RMAT(1X,3HN12,15) GO TO 00151 00191 CONTINUE ASSIGN 00156 TO LOOO08 60 TO 00006 00156 CONTINUE 00151 CONTINUE GO TO 00 M S 00148 IFdACLIfl J ,E0. "IOIGO TO CQ157 60 TO 00158 00157 CONTINUE IF<1A(L1»2).EG.1H1>GO TO 00159 GO TO 00160 00159 CONTINUE WRITECN01.O0163JNO1S 00162 FORMAT! 1X,3MN!51, 15) GO TO 00161 00160 1F(IAIL1+2).EQ.1H2)G0 TO 00163 GO TO 00164 00163 CONTINUE WR1TECN01.001S51N02 00165 F0RMAT(1X,3HN02,I5J GO TO 00161 00164 CONTINUE ASSIGN 00166 TO L00008 GO TO 00OO8 00166 CONTINUE 00161 CONTINUE GO TO 00145 00158 IFCIA(L1+I).E0.1HR1G0 TO 00167 GO TO 00168 00167 CONTINUE ASSIGN 00169 TO L00015 60 TO 00015 00169 CONTINUE GO TO 00145 00168 IFtIA(L1+!).EQ.1HS1G0 TO 00170 GO TO 00171 00170 CONTINUE WRITEIN01,00172)MSE 00172 FORMAT! IX, 3HNSE, M ) GO TO 00145 00171 CONTINUE ASSIGN 00173 TO L00008 GO TO 00008 00173 CONTINUE 00145 CONTINUE GO TO L00005, (00052) C 00006 CONTINUE 1F(IA<LH-1).E0.1HA.AND.IACL1+2>.ED.1HOGO TO 00174 GO TO 00175 -230-

FORTRAN Control Programs

00174 CONTINUE ASSIGN 00177 TO L00016 GO TO 00016 00177 CONTINUE GO TO 00176 00175 IF(JA(L1 + 1) .EO. 1HA.AND.1A(LW2).E0. ItOGO TO 00176 00 TO 00179 00176 CONTINUE ASSIGN 00180 TO L00017 90 TO 00017 001 BO CONTINUE GO TO 00176 00179 CONTINUE ASSIGN 0018. TO L00008 GO TO 00003 00181 CONTINUE 00176 CONTINUE GO TO L00006, (00055) C 00007 CONTINUE IF(IA(L1+1).EQ.1HI1Q0 TO 00182 GO TO 00183 00182 CONTINUE WRITECNO1,O0185)T1ME 00185 F0RMATC1X,4HT1ME,E12.4) GO TO 00184 00183 1F(IA(L1+1).EQ.1HSIG0 TO 001B6 GO TO 00187 00186 CONTINUE WRITE<N01,00188)TST0P 00188 FORMATC1X.5HTST0P,El 2.4) GO TO 00184 00187 CONTINUE ASSIGN 00189 TO L00008 GO TO 00008 00189 CONTINUE 00184 CONTINUE SO TO L00007, (00098) C 0 0 0 0 8 CONTINUE

W R I T E ( N 0 1 , 0 0 1 9 0 ) 0 0 1 9 0 FORMAT(1X.5HWHAT?)

GO TO L 0 0 0 0 8 , ( 0 0 0 5 9 , 0 0 O 8 1 . 0 0 1 1 2 . 0 0 1 1 9 . 0 0 1 2 2 . 0 0 1 2 5 , X 0 0 1 4 2 , 0 0 1 5 6 , 0 0 1 6 8 , O O I 7 3 . 0 O 1 8 1 , 0 P 1 8 9 )

C 00009 CONTINUE

!F(1ACL1+21 .EQ. 1HOQ0 TO 00191 GO TO 0 0 1 9 2 00191 CONTINUE ASSIGN 00194 TO L00018 GO TO 00018 00194 CONTINUE

-231-

FORTRAN Control Proarans

60 TO 00193 00192 I F ! IA<L1+2) .EO. 1HOGO TO 0019*3

00 TO 00196 00195 CONTINUE ASSIGN 00)97 TO L00019 GO TO 000«9 00197 CONTINUE 00 TO 001 S3 00196 CONTINUE ASSIGN 00198 TO LOOOOS Gu TO ooooe •0198 CONTINUE 00193 CONTINUE SO TO L00009, (00064) C 00010 CONTINUE IF!!A<L1+2>.EO. 1H )G0 TO 00199 GO TO 00200 00199 CONTINUE Wft I TE< N01,00202) LB 00202 F0RMATC1X.2HLO, 16) 60 TO 00201 00200 tFUA<L1+2) .EQ.lHOeO TO 002O3 60 TO 00204 00203 CONTINUE U«1TE < N01,002O5)LBCA 00205 FORMAT(IK,4HLBCA,16) GO TO ooaoi 00204 ! F < I A ( L 1 + 2 ) . E Q . 1 H D G 0 TO 00206

SO TO 00207 00206 CONTINUE WRITE(N01.0020e>LBLIST 00208 F0RHAT(1X,6HL6LIST,16) 60 TO 00201 00207 1FCIACL1+2).EO.1HP160 TO 00209 SO TO 00210 00209 CONTINUE URITGfNOl.002111L8PT 00211 F0RMATC1X.4HLBPT,16) 60 TO 00201 00210 IF(IACL1+2).EO.1HU1G0 TO 00212 60 TO 00213 00212 CONTINUE WR!TE<N01,00214)LBUF 00214 FORMAT(IX,4HLBUF,16) 60 TO 00201 00213 CONTINUE ASSIGN 00815 TO L00006 GO TO 00006 002)5 CONTINUE 00201 CONTINUE 60 TO LO0010, (00084)

-232-

FORTRAN Control Proaran

C 00011 CONTINUE !F<lA(Ll+2).EQ.IN )GO TO 00216 GO TO 002T7 00216 CONTINUE

W R 1 T E ( N O I , 0 0 2 I 9 ) L E 00219 F0RMAT(1X'2HLE,16)

GO TO 00218 0 0 2 1 7 IF( I A ( L I * 2 ) . E O . 1 H O S O TO 0 0 2 2 0

GO TO 0 0 2 2 1 0 0 2 2 0 CONTINUE WRITE(N01,00222)LEG 00222 FORMAT!IX,3HLEC.16) GO TO 00216 00221 CONTINUE ASSIGN 00223 TO L.O00OS GO TO 00008 00223 CONTINUE 002IS CONTINUE GO TO L00011, (00090) C 00012 CONTINUE IF(IA<L1+2).EQ.1HF.AND.1A(U+3>.EQ. )HB)GO TO 00224 GO TO 00225 00224 CONTINUE WR1TE(N01,00227JLFFB 00227 FORMAT(t X,4HLFFB,16) GO TO 00226 00225 !F(IA(LI-*2).EQ. 1HF.AND. lA<L1+3) . £0. 1HE)G0 TO 00283 GO TO 00229 00228 CONTINUE WR1TE< NO1,00230)LFFE 00230 FORMAT (1X,4HLFFE,I 6) GO TO 00226 00229 CONTINUE ASSIGN 00231 TO U00008 GO TO 00008 0023) CONTINUE 00226 CONTINUE GO TO LO0O12, (03093) C 00013 CONTINUE IF(1A(L1*2).EO.1HE)G0 TO 00232 GO TO 00233 00232 CONTINUE WR1TE(NOI,00235)LLE 00235 FORMAT(IX,3HLLE,16) GO TO 0O234 00233 lF(rA(Ll+25,E0.1HF.AHD-1A(L1+3).E0.1KS1G0 TO 00236 GO TO 00237 00236 CONTINUE WR1TE(N01,00238)LLFB

-233-

FORTRAN Control Progrsns

00238 FORMATfIX,4HLLFB,16) SO TO 00234

00237 IF( IAIL1+2) .E0. 1HF.ANO, IA(L1*3) .EQ. 1 I O G 0 TO 00239 GO TO 00240

00239 CONTINUE WRITEINOt,00241>LLFE

00241 FORMAT!IX.4HLLFE,16) GO TO 00234

00240 CONTINUE ASSIGN 00242 TO L00008 GO TO OOOO0

00242 CONTINUE 00234 CONTINUE

GO TO L00013, I00099J C 00DI4 CONTINUE

I F ( I A < U + 2 > .EO. 1HE)G0 TO 00243 GO TO 00244

00243 CONTINUE WR1TE< N01,00246)NFE

00246 FORMAT!IX,3HNFE,14) GO TO 00245

00244 IF( IA<L1*2) .EO. 1HDGCJ TO 00247 GO TO 00243

00247 CONTINUE WRITECN01.00249INFL

00249 FORMAT!1X,3HNFL,J6» GO TO 00245

00248 CONTINUE ASSIGN 00250 TO LOOOOS GO TO 00006

00250 CONTINUE 00245 CONTINUE

GO TO L00014, (00146) C 00015 CONTINUE

1F(1A(L1*2).EO.tHE)GO TO 00251 GO TO 00252

00251 CONTINUE WRITE(N01,00254)NREP

00254 F0RMAT(1X.4HNREP,14) GO TO 00253

00252 IF(1ACL1+21.EO.1HUIG0 TO 00255 GO TO 00256

00255 CONTINUE WR 1 TE ( N01, O0257 ) NRUN

00257 FORMAT!1X.4HNRUN,14) GO TO 00253

00256 CONTINUE ASSIGN 00258 TO L00008 GO TO 00006

0025S CONTINUE -234-

FORTRAN Control Prograns

00253 CONTINUE GO TO L00015, (00*691

00016 CONTINUE KIR*2 ASSIGN 00259 TO L00020 GO TO 00020 00259 CONTINUE GO TO L00016, (00177) C 00017 CONTINUE KI««2 ASSIGN 00260 TO L00021 GO TO 00021 00260 CONTINUE SO TO L00017, (001 BO) C

00018 CONTINUE K I R e l ASSIGN 00261 TO L00020 GO TO 00020 00261 CONTINUE 60 TO L00016, (00194) C 00019 CONTINUE KIR* I ASSIGN 00262 TO L00021 60 TO 00021 00262 CONTINUE GO TO L00019, (00197)

c 00020 CONTINUE LSCAN=L1»3 ASSIGN 00263 TO L00022 GO TO 00022 0 0 2 6 3 CONTINUE

NsLNIt LSCAN*LSCAN»1 IFCIA(LSCAN) EQ.1H))GO TO 00264 GO TO 00265 00260 CONTINUE IF1K1R.EQ.1)G0 TO 00267 GO TO 00268 00267 CONTINUE WR1TE(N01,00270)N,1ACN) 00270 FORMAT(1X.3H1At,\4,1H),110) GO TO 00269 00268 1F(KIR.EQ.2)G0 TO 00271 GO TO 00272

00271 CONTINUE WRITECNOI,00273>N<RA(N> 00273 FORMAT! 1X.3HRAI , U ; 1H),E12.<S> -235-

FORTRAN Control ProScans

00272 .ONTINUE 00269 CONTINUE 00 TO 00266 00265 [FtlAfLSCANl ,EO. 1H, 1G0 TO 0027-3 GO TO 0027B 00271 CONTINUE LSCAN=LSCAN*1 ASSIGN 00276 TO L.0Q022 ISO TO 00022 0027E CONTINUE M=LNM (F(K:«.EQ.1)G0 TO 00277 GO TO 00278 00277 CONTINUE WRITE!N01 , 00280>M,t1, tIA(J),1=N,M) 00280 F0RMAT(1X.3HIA(, 14, 1H, ,14, 1H),51lO/f14X,51 IO)) GO TO 00279 0027? JF(K1R.EQ.2)G0 TO 00281 GO TO 00282 00281 CONTINUE WRITE(NOI,00283)N,M,(RACI),l«N.M> 00283 FORMAT* IX, 3HRAI , 14, 1H, , 14, 1H) ,5E12. 4/M4X.5E1 2. 4 I ) 00282 CONTINUE 00279 CONTINUE GO TO 00266 0027: CONTINUE ASSIGN 00264 TO L00006 GO TO OOOOB 0029<: CONTINUE 0026C CONTINUE GO TO L00020, (00259,00261) C 0002' CONTINUE 1F(1A(L1+3>.NE.1H()G0 TO 00285 00 TO 00266 00285 CONTINUE ASSION 00286 TO L00006 GO TO 00008 0026E CONTINUE GO TO O0287 0026F CONTINUE LSCAN=Ll+4 ASSI6N 00289 TO L00022 GO TO 00022 00289 CONTINUE L=LNM LSCAN=LSCAN+1 1F(lA(LSCAN).NE.TH,ISO TO 00290 GO TO 00291 00. ' CONTINUE ASSISN 00293 TO U00008 GO TO 00008

-236-

FORTRAN Conxr-o! Prograns

00293 CONTINUE GO TO 00292 00291 CONTINUE LSCAN=LSCAN+1 ASSIGN 00294 TO L00022 GO TO 00022 00291 CONTINUE N=LNM LSCAN=LSCAN«1 IF(IA(LSCAN).EO.1H>)G0 TO 0029S GO TO 00B96 00295 CONTINUE IFIKIR.EQ.1>GO TO 00296 GO TO 00299 C0298 CONTINUE WRITE*NOl,003011L.N,IAC<L,N) 00301 F0RMAT(1X,4H!AC<,14,IH,, I 4,1H1, i10) GO TO 00300 00299 IF(KIR,£0.2)GO TO 00302 GO TO 00303 00302 CONTINUE WRITEIN01,00304)L,N,RAC(L,N) ' 00304 FORMAT!1X,4HRAC<,14,IH,,14,1H),£12.4) 00303 CONTINUE 00300 CONTINUE GO TO 00297 00296 !F(IA<LSCAN1.E0.1H,)GO TO 0030S GO TO 00306 00305 CONTINUE LSCAN=LSCAN*1 ASSIGN 00307 TO L00022 GO TO 00022 00307 CONTINUE W=LNM IFIKIR.EO.1)G0 TO 00308 GO TO 00309 00306 CONTINUE W R 1 T E ( N 0 1 , 0 0 3 1 1 ) L . N . M , { I A C ( L , I > . I = M . K> 00311 FORMAT(IX,4HIAC<,U,1H,,14,1H,,I 4,IH),5!10/(14X,51 10)) GO TO 003tO 00309 IF(KiR.EQ.2)G0 TO 00312 GO TO 00313 00312 CONTINUE WRITECN01 ,00314)L.N,M, (RAC(L, I ), 1=N,!"S) 00314 FORMAT!IX,4HRACI,I4,IH,,I 4,1H. .I4,IH),5E12.4/(14X 5E12.4)) 00313 CONTINUE 00310 CONTINUE GO TO 00297 003O6 CONTINUE ASSIGN 00315 TO L00008 GO TO 00008 00315 CONTINUE

-237-

FORTRAN Control Progrens

00297 CONTINUE 00292 CONTINUE 00287 CONTINUE GO TO L00021, 100260,00262) C 00022 CONTINUE LNM»0 NCH=ICH(1A<LSCAN)> 00316 IPCNCH.SE O. AND. NCH.LE. 9. AND. LSCAN. LE.L80IG0 TO 00317 GO TO 003 6 00317 CONTINUE LNM=10 LNM+NCH LSCANsLSCAN-M NCH- ICHOAILSCAN) )

GO TO 0 0 3 1 6 0 0 3 1 9 CONTINUE

LSCAN=LSCAN-1 GO TO L00C32, 1 0 0 1 2 6 , 0 0 2 6 3 , 0 0 2 7 6 , 0 0 2 6 9 , 0 0 2 9 4 , 0 0 3 0 7 )

C 0 0 0 2 3 CONTINUE

I F U A ( L 1 + 1 ) .NE. 1HV.0R. I A ( U * 2 ) .NE. 1HE. OR. I A < L 1 * 3 ) NE. 1HN , 0 R . IA( X L 1 * 4 ) . N E . 1 H T . 0 R . J A ( U * 5 ) . N E . 1 H S - 0 R . l A < L ) * & > . N E . 1 H t > G D TO X 0 0 3 1 9

BO TO 0 0 3 2 0 00319 CONTINUE ASSIGN 00322 TO LO0008 GO TO 0000€ 00322 CONTINUE 00320 CONTINUE LSCAN=U+7 ASSIGN 00323 TO L00022 GO TO 00022 00323 CONTINUE WRITE<N01,00324)LNM 00324 FORMAT!IX,4HNEXT,1S.7H EVENTS) N=0 L=LNE 00325 If(N.LE.LNM.dND.L GT.OIGO TO 00326 GO TO 00327 00326 CONTINUE WRIT£<N01 ,00S26)L.1A(L>,RACL+1 >,]A(|_*2). IA<L»3),IA<L*4) 00328 F0RMAT(1X,2I10.5X,E10.4,3!101 N=N*1 . L=1ACL) GO TO 0032S 00327 CONTINUE GO TO L00023, [00037) C 00024 CONTINUE WRITE*NO1,00329) 00329 FORMAT!IX,10HFSEE STORE) L=LFFB -239-

FORTRAN Control Prograns

00330 IFtL.GT.OIQO TO 00331 GO TO C0332 00331 CONTINUE WRITE*N01,00333IL, 1ACL),IAIL«I> 00333 FORMAT(1X,3M0> L=IA<L) GO TO 00330 , 00332 CONTINUE GO TO L00O24. (00040) C 00025 CONTINUE IF(ICTYPE.EO 8)GO TO 00334 GO TO 00339 00334 CONTINUE VIRITECN01 , 003375 IAUPOINT) . 1A< 1P01NT+1 ) 00337 FORMATMX, 1OHEVENT CODE,13,2X,7HDATA AT,16> GO TO 00336 00335 CONTINUE WR!TECN01,00333)MFR0M,MT0,ICTYPE,IPOINT 30338 FORMAT!IX,SHMFReH,16.2X,3HKT0.IS,2X,SHICTYPE,I 3,2X,6HIPOlNT,I 6) IFfICTYPE.EQ,9.AND.IPOINT.GT.01GO TO 00339 GO TO 00340 00339 CONTINUE WRITEtNOI, 00342) UAUPOtNT+I), 1=2,9) 00342 FORMAT11X,7HMESSAGE,016) 00340 CONTINUE 00336 CONTINUE GO TO L00025, (00138) END c item C FUNCTION RETURNS THE 1TH INTEGER INITIAL CONDITION OF THE FUNCTION AT LB. FUNCTION 11CC i) DIMENSION IA(1) COMMON RAC1> EQUIVALENCE (iACl).RA(l)) COMMON /SYSTEM/MFROM.MTO.ICTYPE.IPOlNT, 1 I DUMP,I SECA,ITRACE,LB.LBCA,LBLIST.LBPT,LBUF.LCSB,LE, 1LEC,LFFB,LFFE,LI,LLE,LLFB,LLFE,LMS,LNE,LP,LV.MINNFL, 1MNSE.NFE,NFL.NI1,NI2,N01,N02,NREP,NRUN,NSE,TIME,TSTOP

I I C = I A < L I « I ) RETURN END

C I L I C d , J ) C FUNCTION RETURNS THE JTH ELEMENT OF THE INTEGER LIST INITIAL C CONDITION 1 OF THE FUNCTION AT LB. FUNCTION ILICW.J) DIMENSION IA(1) COMMON RACI1 EQUIVALENCE MAM),RAID) COMMON /SYSTEM/MFROM, MTO. 1 CTYPE. I POI NT, 1 DUMP,ISECA,ITRACE,LB,LBCA,LBLIST.LBPT,LBUF,LCSB.L£, 1LEC.LFFB,LFFE,LI,LLE,LLFB.LLFE,LMS.LNE,LP,LV.MlNNFL, -239-

FORTRAN C o n t r o l Programs

1MNSE,NFE.NFL,NI1 . I l l 2 , N01,N02.NREP,NRUN,NSE,TIME,TSTOP IL IC= IA(LCS< 1 M L I <•] ) , J * 2 ) > RETURN END

C I L P ( I . J ) C FUNCTION RETURNS THE JTH ELEMENT OF THE INTEGER LIST PARAMETER I OF C THE FUNCTION AT LB.

FUNCTION ILP(I.J) DIMENSION IA(I) COMMON R A M ) EQUIVALENCE <IA<I 3.RA<1)J COMMON /SY3TEM/MFR0M,MTO,1CTYPE, 1FOI MT. 11 DUMP,I SECA,I TRACE,LB.LBCA,LBLIST,LBPT,LBUF,LCSB,LE, 1LEC,LFFB,LFFE,LI,LLE,LLFB,LLFE.LMS,LHE,LP,LV,MlNNFL, 1MNSE.NFE,NFL.N11.NI2,NOl.N02 aNftEP,NR0N,MSE,TIME,TSTOP ILP=IA<LCS«IACLP+I),J*Z>I RETURN END

C ! LV < J . J1 C FUNCTION RETURNS THE JTH ELEMENT OF THE INTEGER LIST VARIABLE 1 OF C THE FUNCTION AT LB.

FUNCTION ILV(l.J) DIMENSION 1A(1) COMMON RAC1) EQUIVALENCE (IAt 1>,RA(1)! COMMON /SYSTEM/KFROM.MTO.ICTYPE,IPOIWT, 11 DUMP,1 SECA,I TRACE,LB.LBCA,LeL1ST,LBFT,LBUF,LCSB,LE, 1LEC, LFFB, LFFE, LI,LLE,LLFB,LLFE.LWS,LNE,LP,LV,MINNFL. 1MNSE,NFE,NFL,NI1,NI2,NCI,N02,NREP,NRUN,NSE,TIME,TSTOP 1LV-IA<LCS(IA(LV+I),J+2)1 RETURN END

C INCREC(LI* C SUBROUTINE INCREMENTS EVENT CHAIN.

SUBROUTINE INCREC(LI) DIMENSION I A ( D COMMON RAC1) EQUIVALENCE <IA(1).RAM)> COMMON /SYSTEM/MFROM.MTO,ICTYPE,IPOIWT, 1 I DUMP,ISECA,I TRACE,LB,LBCA,LBLIST,LBPT,LBUF,LCSB,LE, 1LEC,LFFB,LFFE,LI,LLE,LLFB,LLFE,LMS,LNE,LP,LV.MlNNFL, I MNSE, NFE, NFL, NI 1, NI 2, N01, N02, NREP, NRL-TJ, NSE, Tl ME, TST6P WRITE(59,00026)

00026 FORMATI/IX,I7H WARNING /1X, X 31 HINCREC INCREMENTING EVENT CHAIN) LAST=L1 00027 1F(IA(LAST).N£.0)G0 TO 00028 GO TO 00029

0002S CONTINUE LAST>=IACLAST) GO TO 00027 00029 CONTINUE

-240-

FORTRAN Control Programs

CALL ASTORECL2,ISECA) 1A(LAST)»L2 K=IAIL2t2>/3 NFE=NFE*K LFFE=L2*2 LLFE=LCS(L2,CK-1> 5+1) l=l-(l) 00030 1=1+t IFUI) tl-CK>>.LE.01GO TO 00031 60 TO 00032 00031 CONTINUE

L = L C S < L 2 , t l - l > S + U 1 A C L M L C S I L 2 . I 5 + 1 ) 1 F ( I , E Q . K . I I A ( L > = 0

GO TO 0 0 0 3 0 00032 CONTINUE RETURN END C IPC 1 > C FUNCTION RETURNS THE ITH INTEGER PARAMETER OF THE FUNCTION AT LB. FUNCTION IP(I) DIMENSION 1 AC 19 COMMON SAC!> EQUIVALENCE CIAC 1),RA(1)) COMMON /SYSTEM/MFROM,MTO,1CTYPE,I POINT, tlDUMP,ISECA,ITRACE.LB.LBCA.LBLlST.LBPT.LeUF.LCSB.LE, 1LEC.LFFR,LFFE,LI,LLE,LLFB,LLFE.LMS,LNE,LP.LV,MINNFL , 1MNSE,NFE,NFL,N1 1 ,NI2.iN01 , N02, IMREP,NRUN, NSE, TIME, TSTOP

IP=IA<LP»t J RETURN END C IUNIFCM,ISP) C FUNCTION RETURNS INTEGER RANDOM VARIABLE VJTH UNIFORM DISTRIBUTION. FUNCTION 1UNIFCM,ISP) DATA lX.U/1,0./ CALL URN<IX,U) !UNIF=H-ISP«1FIX(U FL0ATC2 ISP*1>> RETURN END C 1VC1> C FUNCTION RETURNS THE ITH INTEGER VARIABLE OF THE FUNCTION AT LB. FUNCTION tVII) DIMENSION JAM > COMMON RAC1> EQUIVALENCE MAM),RAM)) COMMON /SYSTEM/MFROM.MTO. ICTYPE, IPOINtT. 1 I DUMP.ISECA.I TRACE.LB.LBCA,LBLIST.LBPT.LBUF.LCSB,LE. 1 LEC. LFFB. LFFE, LI , LLE, LLFB, LLFE.LMS, LNE. LP, LV. Ml NNFL. 1MNSE.NFE.NFL.NI1,Nl2,N01.N02,NREP.NRUN,NSE,TIME,TSTCP IV=IACLV*I) RETURN END -241-

FORTRAN Control Programs

C KEYWD(L) C FUNCTION COMPARES THE A1 FORMAT CHARACTERS IA<L), IA<L+1>, C FOR A MATCH WITH KEYWORDS ANO RETURNS THE: VALUES BELOW: C NO MATCH 0 C CREATE 1 C DESTROY 2 C PARAMETER 3 C VARIABLE 4 C REPORT 3 C RUN 6 C END 7 FUNCTION KEYWOIL) DIMENSION IA(l) COMMON RAC1) EQUIVALENCE 11A(1).RA(1)J COMMON /SYSTEM/MFROM,MTO.1CTYPE,1POINT. 1IOUMP, ISECA, ITRACE,LB.LBCA,LBL1ST,LBPT,LBUF.LCSB.LE, 1LEC,LFFB,LFFE.LI,LLE,LLFB,LLFE.LMS,LNE,LP,LV.MINNFL! 1MNSE,NFE,NFL.N11,Nl2.NOI.N02,NREP,NRUN.NSE,TIME, TSTOP DIMENSION KW0S<IO,7> DATA KWDS/1HC,1HR,IHE,1HA,IHT,«HE,3 1H ,6, 1IHD,IHE,1HS,1HT,1HR,1HO,1HY,2 1H ,7, 1 1HP, IH/l, 1HR, 1HA, IHM, IHE, 1HT, IHE, IHR,9, MHV,IKA,1HR,1HI, 1 HA,1HB,IHL,IHE, 1H .8.. 1IHR,IHE,1HP.1H0,1HR,1HT,3 1H ,6, 1 IHR, IrtU, 1HN,6 1H ,3, 1IHE,IHN,1H0.6 1H ,3/ K=D J=l 00026 IF(J.LE.7.AND.K.EO.OJGO TO 00027 (30 TO 00028 00027 CONTINUE If" 00029 1F(1.Lt.KWDStlO,J)>G0 TO 00030 60 TO OO0S1 00030 CONTINUE IF(1A(L-I*I >.NE.KWDSII,J))GO TO 00032: GO TO 00033

00032 CONTINUE K=0 00033 CONTINUE I*M1 60 TO 00029 00031 CONTINUE J=J*1 GC TO 00026 00028 CONTINUE KEYWD=K RETURN END C LCSCLOC.ITH1 -242-

FORTRAN Control Prograns

C FUNCTION LOCATES ITH ELEMENT IN CHAIN-BLOCK STORAGE AT LOC. FUNCTION LCS(LOC,ITH) DIMENSION 1A(1) COMMON RAC1) EQUIVALENCE (IA(1>,RA(1)) COMMON /SYSTEM/MFROM, MTO,ICTYPE,IPOIMT, 11 DUMP,ISECA,ITRACE,LB,LBCA,LBLIST,LBPT,LBUF,LCSB.LE, ILEC,LFFB,LFFE,L].LLE,LLFB,LLFE.LMS,LNE,LP,LV.MINNFL. 1MNSE,NFE,NFL,Nl1, Nl 2, NOI,N02,NREP,NRUN,NSE,TIME,TSTOP LCSB=LOC N=D OC02G IF(N*JA(LCS9+1>.LT.ITH.AND.LCSB.NE.Q1GO TO 00027 GO TO 0002S 00027 CONTINUE N=N+IA<LCSB+1> LCSB=IA(LCSB) GO TO 00026 00026 CONTINUE IFCLCSB.LE.05GO TO 00029 GO TO 00030 00029 CONTINUE LCS=0 GO TO 00031 00030 CONTINUE LCS=LCSB+1*ITH-N 00031 CONTINUE RETURN END C LI INM(N,M,I ) C FUNCTION RETURNS THE LCS LIST INDEX OF THE ITH ITEM IN THE C NTH SET OF M ITEMS. FUNCTION L11NM<N,M,1> DIMENSION tA(l) COMMON RACI1 EQUIVALENCE <IA<11,RAC1)> COMMON /SYSTEM/MFROM.MTO,ICTYPE,IPOIWT, 1IDUMP,1SECA,ITRACE.LB.LBCA.LBLIST.LBPT,LBUF,LCSB.LE, 1LEC,LFFB,LFFE.LI,LLE,LLFB,LLFE,LMS,LNE,LP.LV,M1NNFL, 1MNSE,NFENFL.Nl1, Nt 2 NOI,N02,NREP,NRUN,NSE.TIME,TSTOP LIINM=(N-1) H*l«2 RETURN END C MAIN 4/4/70 C PROGRAM CONTROLS MCSS EXECUTION. PROGRAM MAIN(INPT,OTPT,TTY,TAPE5=1NPT,TAPE6=OTPT,TAPE59=TTV> DIMENSION lA(ZOOOO) COMMON RAC20000) EQUIVALENCE <1AC 1),RA<I>) COMMON /SYSTEM/MFROM,MTO,ICTYPE,1POI MT, 11 DUMP,ISECA,I TRACE,LB,LBCA,LBLI ST,LBPT,LBUF,LCSB,LE, 1LEC.LFFB,LFFE,LI,LLE,LLFB,LLFE.LMS.LNE,LP.LV.MINNFL, 1MNSE,NFE,NFL,NlI.Nl2,NOI,N02,NREP,NRUN,NSE.TlME,TSTOP

-243-

FORTRAN Control Prograns

C C ASSIGN I/O DEVICE NUMBERS, T M E , AND ITRACE.

NIl'S Ml 2 = 39 1-101=6 N02=S9 TIME'O. ITRACE=0

C C INITIALIZE DYNAMIC STORAGE

LFFB=1 IA(LFFB)=0 IA(LFFB*1)=19998 l.l.FB=1 NFL=!999B MINNFL=NFL LSCA=1

C C CREATE BLOCK POINTER TABLE

CALL ASTORE<LBPT. 1 0 U !A<LBPT*2i^lA(LBPT*2)-1 CALL ZTABLE<LBPTI

C C CREATE MESSAGE STACK

CALL ASTORE<LMS,42» IA(LMS«-2) = IACLMS*2>-2 IA(LMS*3)=0

C C CREATE EVENT CHAIN

CALL ASTORE(LEC,500> ISECA=I00

C C CREATE BUFFER

CALL AST9RE(LBUF,80> C C ASSIGN RANDOM NUMBER SEED.

U=0. CALL URNI-1 , U>

C C REQUEST USER INPUT LINE DISPLAY OPTION

IDSPL*-1 00026 IFODSPL.LT.O.OR. 1DSPL.GT.31G0 TO 00027

60 TO 00028 00027 CONTINUE

WRITE<N02,000291 00023 P0RMAT<1X,13HINPUT DISPLAY)

WRITECNO2.OD03O) 00030 FORMATMX. 12H0 = NO LINES /IX,13H1 = RUN LINES /1X,

X i7H2 = COMMAND LINES /1X.19H3 = ALL INPUT LINES) READINI2,00031JIDSPL

00031 FORMATCMJ GO TO 00026

-ZAA-

FORTRAN Control Programs

00028 CONTINUE C C PRINT HEAOINO AND USER COMMENTS DOWN TO FIRST KEYWORD. WRITE(NO),000321 00032 FORMATMH1. X56HMATER1AL CONTROL SYSTEM SIMULATOR VERSION 1,0 4/4/78) ASSIGN 0OO33 TO LOOOOI GO TO 00001 00033 CONTINUE C C EXECUTE JOB STEPS 00034 IF(KEYMO<LSUF»23.NE.7JG0 TO 00035 00 TO 00036 00035 CONTINUE WRITEf N01, 00037) <1A(LBUFM+ ! ) , ! = 1,60J

00037 FORMATdX.SOAIl IF(IDSPL.GT.OJGO TO 00030 60 To 00039 00036 CONTINUE IF<JDSPL.EQ.1160 TO 00041 ea T O ooo<»2

00041 CONTINUE IFCK£YWD<LBUF+2).E0.6>G0 TO 00044 GO TO 00045 00044 CONTINUE

WRITE(Na2,00047XIA<LBUF*1*I I , 1 = 1,80) 00047 FORMATttX,80Al) 00045 CONTINUE GO TO 00043 00042 CONTINUE WRITE<W02,00048)(IA(LBUF+1*I),1=1,80) 00048 ;-"ORM«T( 1X, 80A1 ) 00043 CONTINUE 00039 CONTINUE ASSICN 00049 TO t00002 GO TO 00002 00049 CONTINUE ASSIGN 00050 TO LOOOOI 60 TO 0O001 00050 CONTINUE 60 TO 00034 00036 CONTINUE C C PRINT MINIMUM NUMBER OF FREE LOCATIONS WRITECN01,000511MINNFL 00051 F0RMAT(1X,3HEN0/1X,35HM1NIMUM NUMBER CF FREE LOCATIONS = ,15) CALL EXIT C 00001 CONTINUE READINI1.00052)tIAILBUF*1*1) , !*! .80) 1FUFIX<E0F(N11 )) .NE.OGO TO 99999

-345-

FORTRAN C o n t r o l Pi-ogrons

00052 FORMAT*80A1> 00053 IF(KEYWD(LBUF*2).EO.0)G0 TO 00054 00 TO 00055 00054 CONTINUE WRITECN01,00056)CIA<LBUF*l»i1.1=1,80) 00056 FORMAT*1X.80A1> IF(I0SPL.EQ.3)G0 TO 00097 SO TO 00058 00057 CONTINUE URITECN02,00060)(IACLBUF*1»t),1=1,30) 00060 FORMAT(IX,80A1) 00058 CONTINUE READ!NI 1,00061) (IACLBUF+1 <•! ), 1 = 1 ,80) IF(!FIX<£OF(N!l)).NE.01GC TO S9999 00081 FORMAT*80A1> GO TO 00053 00055 CONTINUE GO TO L00OO1, (00033,00050) 60 TO 00062 99999 IEOF=t 00062 CONTINUE WRITECN01,00063) 00063 FORMAT*/1X,15H ERROR /1X, X 34HMAIN NO END COMMAND IN INPUT FILE) CALL ERROR C OOOOS CONTINUE K=KEYWDCLBUF+2> IFtK.EO. 1)G0 TO 00061 GO TO 00065 00064 CONTINUE

CALL FBLANMO. !A , INTD,REALD) CALL GETVCO, 1 A,MTO. REAL) CALL GETVCO,JA.JP01NT,REAL) IFCMTO.LE.O.aR.MTC.OT.iOOlGO TO 00067 00 TO 00068 00067 CONTINUE WRITE<NO1,00070) 00070 FORMATC/1X.15H ERROR /1X. X 29HMAIN ILLEGAL FUNCTION NUMBER:) CALL ERROR 00068 CONTINUE ]F(IA(LCS(LEPT,MTO*l)).NE.O)Oa TO 00071 GO TO 00072 00071 CONTINUE WRIT6CN01,00074) 0GO74 FORMAT</lX,15H ERROR /1X, X 54HI1AIN ATTEMPT TO CREATE A FUNCTION THAT ALREADY EXISTS) CALL ERROR 00072 CONTINUE MFROM=0 ICTYPE=1

FORTRAN Control Prograns

CALL SENO so TO oooss

00065 IF(K.EQ.S)GO TO 00075 00 TO 00076 00075 CONTINUE CALL FBLANK(0,!A,INTD.REALC) CALL GETVIO.1A.INT.REAL) IFIIA«LCS(LBPT,1NT+1)5.EO,0)GO TO 00077 00 TO 00076 00077 CONTINUE WRITE(NO1,00080)

00080 FORMAT!/IX,15H ERROR /IX. J< 35HMAIN ATTEMPT TO OESTROV A FUNCTION THAT DOES NOT EXISTI CALL ERROR GO TO 00079 00078 CONTINUE MFROM=0 MTO=INT ICTYPE=2 IPOINT=0 CALL SEND 00079 CONTINUE 00 TO 00066

00076 !F(K.GE,3.AM0.K.LE.4JSO TO 0O081 00 TO O0O82 00081 CONTINUE

CALL FBLANK1O,IA,INTD,REALD) CALL GETVfO,IA,INT,REAL) MFROM=0 M70=1NT 1CTYPE=K IP0INT=1DSPL CALL SEND SO TO 00066 00082 IF(K.EQ.5)G0 TO 00083 GO TO 00064 00083 CONTINUE CALL FBLANK(0,I A,INTD,REALD) MFROMsO CALL GETVIO.IA.MTO.REAL) 1CTVPE=S CALL SEND GO TO 00066 00084 IF(K.EQ.6>G0 TO 00085 00 TO 00066 00085 CONTINUE CALL FBLANK < 0,t A,INTD,REALD) CALL GETV (0.1A. NREP.REAL> CALL OETVfO.IA.INT.tSTOP) CALL GETVIO,IA,lOUMP.REAL) CALL GETVIO,I A,tTRACE,REAL) CALL GETVIO,IA,I0UT.REAL)

-247-

FORTRAN Corvtrol P fo f l rans

ASSIGN 00087 TO L00003 GO TO 00003 oooa? CONTINUE

NRUN-1 00069 !F(NRUN.LE.Nftr.P>GO TO 00009 GO 10 00090 00089 CONTINUE TIME^O, ASSIGN 00091 TO L00006 GO TO 00006 00091 CONTINUE ASSIGN 00092 TO L00004 GO TO 00004 00092 CONTINUE IF(Nf?UN.ECJ. 1 .AND. IDUMP.EO. 1 )GO TO 00093 GO TO 00094 00093 CONTINUE CALL DMPSYS

00094 CONTINUE IFIKREP.GT.1.AND.NRUN.E0.1>GO TO 0009S GO TO 00097 00096 CONTINUE ASSIGN 00099 TO L00007 GO TO 00007 00099 CONTINUE GO TO 00098 00097 IF(NRUN.G~.1)GO TO 00100 GO TO 00101

00100 CONTINUE ASSIGN 00102 TO L00008 GO TO 00008 00102 CONTINUE 00101 CONTINUE 00090 CONTINUE CALL CLOCK NRUN=NRUN+1 GO TO 00088 00090 CONTINUE IF(IOUT.EQ.1)GO TO 00103 GO TO 00104

00103 CONTINUE ASSIGN 00tO6 TO L0OO0S GO TO 00005 00106 CONTINUE 00104 CONTINUE CALL FSTORECLBLIST) LBLIST=0 GO TO 00066 00066 CONTINUE WRITE(N01 ,00107>

0 0 1 0 7 FORMAT!/1X.15H ERROR / 1 X , 21HUAIN ILLEGAL KEYWORD) CALL ERfSOR

FORTRAN Control Programs

00066 CONTINUE 00 TO L00002, (00049) C 00003 CONTINUE N=0 K=IAtLBPT*2) 1=1-111 ooioe 1=1*1

I F ( ( J ) ( 1 - ( K > ) , LE.OXSO TO 0 0 1 0 9 00 TO 001VO O0103 CONTINUE IF<IA<LCS(LBPT,I»l)>.ST.0)N=N*l GO TO 00108 OO;10 CONTINUE CALL AST0RE(LBL1ST,N*2> I A < L B L I S T * 2 ) = 1 A « L B L I S T * 2 > - 2 M=0 1 * 1 - 1 1 )

00111 1=1+1 1 F ( < 1 ) < [ - ( K ) ) . L E . 0 ) G O TO 0 0 1 1 2 GO TO 0 0 1 ; 3

00112 CONTINUE 1F ( IA«LCSU SPT, 1*1 >> Q T . O G O TO 00114 GO TO 0 0 1 ; 5 00114 CONTINUE M=M»1 IA(LCS<LBLIST,M+2)>=1 001 IS CONTINUE GO TO 00111 00113 CONTINUE IA(LBLIST*3)=M GO TO L00003. (000871

c 00004 CONTINUE K=IAILBLIST*3) MFROM=0 !POINT=0 1=1-11) 00117 1=1*1

!F((I) (I-(K)),LE.0)G0 TO 00118 00 TO 00119 00115 CONTINUE MT0=IACLCS(LBL1ST.1*21) 1CTYPE=6 CALL SEND GO TO 00117 00119 CONTINUE GO TO L00004, (00092) C C 00005 CONTINUE HFROM'O -249-

FORTRAN Control Programs

IPOINT=0 K=IAILBLISTt3) WRITE<N01.00120)

00120 F0RMAT(//3<1H FUNCTION TYPE ENTRIES FRACTION) N=0 1=1-11)

00121 I = I + : lFCCI) (l-(K)).LE.0)GO TO 00122 00 TO 00123

00122 CONTINUE M=IA(LCS(LBLIST,J+2J) CALL FPHTRS(M) N=N+IA(LV)

GO TO 00121 00123 CONTINUE

1=1-11) 00124 1=1*!

IF(C13 C1-(K)>.LE.0)©0 TO 00125 GO TO 00126

00125 CONTINUE 11=1 A(LC5(LBL1ST, 3 *2) ) CALL FPNTRS(M) B=FLOAT( lAC'.V) )/FLOATCN>

URITECN01,00K.7)M, IACLB), IAtLV»,B 00127 FORMATdX, IS, 16, 19,F10.4>

GO TO 00124 00129 CONTINUE

1=1-11) 00126 l=I+:

IFMI9 <1-CK)>.LE.01G0 TO 00129 GO TO 00130

00129 CONTINUE t i reslACLCSCLBLlST, 1 * 2 ) 1 ICTYPE=5 CALL SEND

GO TO 0 0 1 2 3 00130 CONTINUE

GO TO LOOOCS, (00106) C 00006 CONTINUE

NFE=!A(LEC+1)/5 LFFE=LEC*2 LLFE=LCSCLEC,(NFE-1) 5*1> NSE=0 MNSE=0 LNE=0 LLE=0 1*1-11)

00131 l = l+! IF(ll) CI-(NFE)).LE.01G0 TO 00132 GO TO 00133

00132 CONTINUE -250-

FORTRAN Control Programs

L*LCS<LEC,(I-1J 5*1) IA(L)=LCS<LEC,I 5+1) tF<!.EO.NFE)!AtL)=0 SO TO 00131 00133 CONTINUE 6 0 TO LOOOOS, ( 0 0 0 9 1 )

C 00007 CONTINUE

IFCIACLFFB-HJ .EG.NFDGO TO 00134 GO TO 0 0 1 3 5 00134 CONTINUE LFFBS=LFFB LLFBS=LLFB NFLS=NFL MtNNFS=MlNNFL GO TO 00136

00135 CONTINUE LFFBS=0 LLFBS=0 NFLS'O MINNFS=0 00136 CONTINUE GQ TO L00007, (00099) C 00008 CONTINUE IF(LFFBS.GT.O)GO TO 00137 GO TO 00138 00137 CONTINUE LFFB=LFFBS LLFB=LLFBS NFL=NFLS !F(MINNFL.GT.MINNFS)GO T8 00140 GO TO 00141 00140 CONTINUE M1NNFL=M1NNFS 00141 CONTINUE IA<LFFB)=0 1A(LFFB*1)=NFL 00138 CONTINUE 60 TO LOOOOS, (00102) END C MZURCLM.LMSP.N.MT.NCA.NCT.AT) C SUBROUTINE MEASURES MATERIAL AT LM ACCORDING TO THE NTH C MEASUREMENT SPECIFICATION AT LMSP AND RETURNS THE MEASURED C MATERtAL TVPE MT, COUNT NC, MASS A. TRUE COUNT NCT, C AND TRUE MASS AT. SUBROUTINE MZURCLM.LMSP,NiMT,,NC,A,NCr,AT> DIMENSION IAU) COMMON RAC1) EQUIVALENCE CIA(1),RAU>) COMMON /5YSTEM/MFR0M.KT0.ICTYPE,IPOIMT, 1IOUMP, ISECA, ITRACE,LB,LBCA,LBL1ST.,LBPT,LBUF1LCSB,LEI

-251-

FORTRAN C o n t r o l P r o l a n s

I L'-:C, I.FFB, LFFE, L! , LLE , L L F B , I L F F , L M S , L N £ , LP. LV, TUNrlFL, i rWSE.MFE,NFL,MI 1. MI 2,N01.N02,NREP,NRUW,NSE.T1HF,TSTOP ! P I I TRACE . GE 5>G0 TO 00026 UO TO 0GC27

•Ju-.J<!6 CONTINUE '/;ftlTF<NO) ,00029 I TIME. IAfL&«2)

:~'.", FOtMATMX.ElO 4, M,aX,23HriZUR(LM,LKSP,fl i. MRITEtNOI .00030 IL.M.LMSP.M

"00"j iORMATt1X.311 0) ClOOHV CCMTINUE

J P ( I TRACE . GE 6 AND. ( 1 TRACE EO. ITRACE'2 811GC TO 00031 GO TO 00032

0003' CONTINJE WRITE»N02 0 0 0 3 4 ) 1 II1E, 1A(LB*2:>

:^.',;.'S4 rORH^T( 1 X . E 1 0 . 4 , T4 ,2X,25Hr iZURt i . f i , LMSP,M, , . , , ! ! VRIT£(NC2,00C3S1LM,LMSP.N

or.-.!i>! FORMAT ( IX, 31 10) CALL I CHECK

cat 3? corn INUE MT=RAC(LMSP,LI IWt<N,6, U ) NC = 0 NCT = 0 A = 0 AT = 0. MCDE=1 Lr!.M

00036 IFIL.NE.LM.OR.MODE ME.41GO TO O0O37 GO TO 00038

O0-I37' CONTINUE ASSIQN 00039 TO L00001 SO TO 0COO1

ooo:»9 CONTINUE (SO TO 0 0 0 3 6

UC' / i f i CONTINUE ASSIGN 00040 TO (.00003 30 TO 00003

OCOdC CONTINUE IF!ITRACE GE.5IGC TO 00041 (JO TO 00042

<,',04'. CONTINUE WRITEfNCl,00044)TIKE,lA(LB-E)

^••"J44 FC.RMAT(1>:.E1C4. I4,2X,26HMZUR< , , , K.T, NC, A, NOT , AT) ) WRITE!NO 1,00045)MT,NC,A.NCT,AT

00045 FORMAT! 1 X, 21 10, El 2. 4, 110, El 2. 4) 0D042 CONTINUE

IF(ITRACE.GE.E.AND <I TRACE.£Q.I TRACE/2 £..5C TO 00046 GO TO 00047

OOrMb CONTINUE WRITE«N02,00049!TIME, IA<LB<-2>

00048 FORMAT(1X,E10.4,I 4,2X,26HMZUR< , . ,MT, NC,A,NCT,AT!) WRITE(N0£,00050IMT,NC,A.NCT,AT

00050 FORMAT!1X,2110.El2.4,116,El 2.4) -252-

FORTRAN Cont ro l PI-DO^BIIS

CALL 1 CHECK OC047 CONTINUE RETUFtN C 00OO1 CONTINUE

RETUFtN C 00OO1 CONTINUE IFIMODE.EO.1>GO TO 00051 GO TO 00052 00051 CONTINUE IFC1ACL*5).GT.0)G0 TO 00054 GO TO 00055 00054 CONTINUE L=IA(L*5) GO TO 00056 00055 IF(IA(L*4).GT.OJGO TO 00057 GO TO 00059 00057 CONTINUE M00E=2 L=!A(L+4) GO TO 00056 OOOSS CONTINUE MODE=3 00056 CONTINUE GO TO 00053 00052 IF(MO0E.E0,2)G0 TO 00059 so TO oooeo 0005S CONTINUE IF(IA(L+5>.GT.0)G0 TO 00061 GO TO 00062 00061 CONTINUE M0DE=1 L=IA(L+5) GO TO 00063 00062 IF(IA<L+4).GT.0>G0 TO 0006J GO TO 00065 O0064 CONTINUE L=IA<L+4) GO TO 00063 00065 CONTINUE M0DE=3 00063 CONTINUE GO TO 0O053 00060 1F(MODE.E0.3)GO TO 00066 GO TO 00067 00066 CONTINUE IF<JA(L+6> EO.O.AND.IAtL+7) EO.MTJGD TO 00068 GO TO 00069 00068 CONTINUE ASSIGN 00071 TO L00002 GO TO 00002 00071 CONTINUE 00069 CONTINUE IF(IA<L*2).GT.0)GQ TO 00072

-253-

FORTRAN Control Froarams

50 TO 00073 00078 CONTINUE M0DE=4 L=IA(L*S) GO TO 00074 00073 1F(JA(L*3).OT.0)G0 TO 00075 00 TO 00076 00075 CONTINUE L=lACL+3> GO TO 00074 00076 CONTINUE IF(L.EQ.LH)GO TO 00077 GO TO 00078 00077 CONTINUE M0DE=4 80 TO 00079 00078 CONTINUE ASSIGN 00080 TO L00003 GO TO 00003 00080 CONTINUE 00079 CONTINUE 00074 CONTINUE GO TO 00053 00067 1F(n0DE.E0.4)G0 TO OOOBI GO TO 00002 OOOBI CONTINUE IFC!A(L*4).GT.O)GO TO 00083 GO TO O00B4 00083 CONTINUE M0DE=2 L=IA(L+4> GO TO O0OB5 00084 IF(IA(L+3>.GT.0)G0 TO OO086 GO TO O0OB7 00086 CONTINUE M0DE=3 L=!AIL+3) GO TO 00085 00087 IF(!A(L»Z).GT.O»GO TO OOOBB GO TO 00089 00088 CONTINUE L=IAIL+2> GO TO 000B5 00OB9 CONTINUE ASSIGN 00090 TO L00004 GO TO 00004 00090 CONTINUE 00085 CONTINUE GO TO 00053 00082 CONTINUE ASSIGN 00091 TO LO0004 GO TO 00004 -254-

FORTRAN Control Prograns

00091 CONTINUE 00053 CONTINUE 00 TO LQO0O1, (00039) c 00002 CONTINUE NCT=NCT*IA(L+81 AT=AT+RA(L+9) 00 TO L000O2, (00071) C 00003 CONTINUE NC=NCTt!UNIFfIFIX(RAC(LMSP,LtlNM(N,6,2))), 1!FIXIRAC(LMSP,LIINMIN.6,3)))> A=AT»RAC(LMSP,LI!NM(N,6,4>) 1*RNORM(RAC<LMSP,LI 1NM<N,6,5)),RACCLHSP,LI1NMCN,0,5))) GO TO LOO003, (00040,00080) C 00004 CONTINUE WR1TE(N01,00092) 00092 FORMATf/IX.15H ERROR /IX, X 36HMATERIAL DATA STRUCTURE ERROR: CMZUR) ) CALL ERROR GO TO L00004, (00090,00091) END C NCBM(L0C,NC,BM) C SUBROUTINE RETURNS THE NUMBER OF CONTAINERS NC AND THE TOTAL BULK C MASS BM AT LOCATION LOC. SUBROUTINE NCBM(LOC,NC,BM> DIMENSION 1A(1> COMMON RAM ) EQUIVALENCE tIAMl.RAM)) COMMON /SYSTEM/MFROM.MTO,JCTYPE.IPO) WT, 11 DUMP,1SECA,[TRACE,LB,LBCA.LBL1ST.LBPT,LBUF,LCSB,LE, !LEC,LFFB,LFFE.L1,LL£,LLFB,LLFE.LMS,Lit,LP.LV.M1NNFL, 1MNSE,NFE,NFL.Nl1,Nl2,N01,N02,NREP.NRUN.NSE,TIME.TSTOP IFCITRACE.GE.51GO TO 00026 GO TO 00027 00026 CONTINUE WRITE(NO1,0OO29)TIME,IA(LS*2) 00029 FOR.1AT(1X,EI0.4, 14.2X, 13HNCBWL0C, , )) WRITE "M01,00030)LOC 00030 F0RHAT<1X,110> 00027 CONTINUE IFC1TRACE.GE.6.AN0. (I TRACE.EO.ITHACE/2 2>)GO TO 00031 GO TO 00032 00031 CONTINUE WRITECN02.00034)TIME,IA(LB*S) 00034 F 0 R M A T M X . E 1 0 . 4 , I 4,2*,13HNCBM<LOC, , ) )

WRITE(N02,00035>LOC 00035 FORMAT(IX,110) CALL I CHECK 00032 CONTINUE !F(IA(L0C*6).EO.1>B0 TO 00036 -255-

FORTRAN Control Programs

60 TO 00037 00036 CONTINUE NC=0 BM=RAIL0C*9> GO TO 00038 0CU37 IF rIA(L0C<6>.£0,8)50 TO O0OS9 GO TO 00040 00039 CONTINUE L=IA<L0C+5) IF(L.LE.0)GO TO 00041 60 TO 00012 OCC-di CONTINUE WRITEIN01,00044) 0G0S4 F0RMAT(/1X,I5H ERROR /1X,27HNCBM CALL ERROR 00044! CONTINUE IFCIA(L»6>.EO l)GO TO 0004S GO TO 00046 O0O.25 CONTINUE BM=RACL+9) NC=0 00048 1F<lA(L+4).GT.01G0 TO 00049 GO TO 00050 00049 CONTINUE NC*NC*1 L=IA<L+4> GO TO 00048 00050 CONTINUE GO TO 00047 00046 !F(IAIL+6).EO.2)G0 TO 00051 GO TO 00052 00051 CONTINUE BM=0.

00053 1F( IA(L«4> .GT.OGC TO 00054 GO TO 00055 00054 CONTINUE NC=NC+1 L=IAIL+4) GO TO 00053 00055 CONTINUE GO TO 00047 00052 CONTINUE WRITE<NO1,00056) 00056 FORMAT!/I X, 15H ERROR CALL ERROR 00047 CONTINUE GO TO 00038 00040 CONTINUE WRITECNOl,00057) 00057 FORMAT(/1X,15H ERROR CALL ERROR

NO SUBDIVISION OF LOO

/1X.26HNCBM ILLEGAL SI/BLOC LEVEL)

/1X,23HNCBM ILLEGAL LOC LEVEL)

-£56-

FOKTRAN Control Prosrans

00038 CONTINUE !FHTRACE,GE,5)G0 TO 00O5B GO TO 00059 00033 CONTINUE WRITE<N01,00061>T!ME,IAILB+Z) 0006i FORMAT(1X,E10,<I, I4,3X. 1 5HNCBMC LOC , NC ,3M) ) WRITE<N01 , 0 0 0 6 2 I L O C N C B M

0006;? F O R M A T ( 1 X , 2 M O , £ 1 1 . 4 ) 00059 CONTINUE ]F(ITRACE.OE.6.ANB.IITRACE.EO.ITRACE/Z 2>)G0 TO 00063 GO TO 00064 00063 CONTINUE

WRJTE<N02 ,00066 )T IME, IA (LB*2> CCC6S FCRCMTC I X . E 1 C . 4 . 14, 2A. ISHNCBfKLOC, NC.3KI ;

WR1TE<N02,00C67)LGC,NC,BM 00067 F C R M A T M X . 2 1 1 0 , E l l . 4 )

CALL I CHECK 0C064 CONTINUE

RETURN END

C fiSTATSCN) C FUNCTION RETURNS THE NUMBER OF STATISTICS REQUIRED TC DEFINE C D1STRI9UTI0N TYPE M -UNCTION NSTATSCNl DIMENSION !Af11 COMMON 3A<1 > EQUIVALENCE (!A(1),RAC1)J COMMON /SYSTEtl/MFROM.MTO, I CTYPE, ] POI MT, i I DUMP. ISECA, I TRACE,LB,LBCA,LBLI ST,LBPT.LBUF,LCSB,L£ 1LEC, LFFB,LFFE,LI , LLE, LLFB, LLFE, LMS, LNE, LP. LV, Mi NNFL, 1WJSE,NFE,NFL, NI 1 , NI2, NOl , N02, NREP, NRUM, USE, TIME, TSTCP DIMENSION NS<4] DATA NS/2,2,4,1/ NSTA7S=NStN) RETURN END C PCePKNTO.NCTYPE,!1 ,12,I 3,14,I 5, I 6,I 7,183 C SUBROUTINE PREPARES COMMUNICATION FOR TRANSMISSION. SUBROUTINE PCCMCNTO,NCTYPE,11,1Z,13,14,15,16,17.18) DIMENSION !A(1) COMMON RAC1) EQUIVALENCE CIAt 1),RA(11) COMMON /SYSTEM/MFROM.MTO,ICTYPE,I POINT, II DUMP.ISECA,I TRACE,LB,LBCA,LBLIST,LBPT.LBUF,LCSB,LE, 1LEC,LFFB,LFFE.LI,LLE,LLFB,LLFE,LMS,LNE,LP,LV.MINNFL, 1MNSE.NFE,NFL.NlI,N]Z,NOt,NOZ.NREP.NRUM,NSE,TIME,TSTOP MFROM=IA(LS+Z) MTO=NTO ICTYPE=NCTYPE CALL ASTORE<IP0INT,8) I A U P O I N T « 2 ) > l 1 1 A ( 1 P 0 1 N T « 3 ) = I 2

- Z 5 7 -

FORTRAN Control Programs

IAUPOINT-«4) = 13 IA<[P01NT<5)=J4 1ACIP01NT«6>=15 iA(jpalNT«7>=ie lAf1PCINT*8(=I7 JA(IP0INT*9)=I9 RETURN END C PML8 C SUBROUTINE PRINTS THE HEADER OF THE FUNCTION AT LB IN DUMP FORMAT. SUBROUTINE PHLB 01MEMSION IA<1> COMMON RAM > EQUIVALENCE (IA<1),RA<I)) COMMON /SVSTEM/MFROH.MTO.ICTYPE.1 POINT, 11 DUMP.1SECA,I TRACE,IB,LBCA,LBLIST.LBPT,LBUF,LCSB.LE, ILEC,LFFB,LFFE,LI,LLE,LLFB.LLFE.LMS,LNE,LP.LV.MINNFL, 1MNSE, NFE.NFL, NI 1 , NI2, NOI , N02, NREP,NRUN, NSE, TIME, TSTOP WRITE(NOl,00026)LB,JACLB) 00026 FORMAT<IX,5HLB+00,5X,IS,I 12) 1=1-111 00027 1=1+1 1 F ( < 1 ) ( I - ( 4 ) 1 LE .0X30 TO 00029 SO TO 0 0 0 2 9 00028 CONTINUE L=LB*I WR1TE(N01,00030)I,L.IAtL) 00030 F0RMATI3X,1H+,I2,5*.I 5,112) 60 TO 00027 00029 CONTINUE RETURN END C PICLBUPVT) C SUBROUTINE PRINTS THE INITIAL CONDITION VALUES OF THE FUNCTION AT LB IN C DUMP FORMAT. SUBROUTINE PICLBCIPVT) DIMENSION tPVT(l) DIMENSION IAI1I COMMON RAC1) EQUIVALENCE (1A<1),RAC1>) COMMON /SYSTEM/MFROM,MTO, ICTYPE, IPOI NFT, 11 DUMP,ISECA,I TRACE.LB.LBCA,LBLIST.LBPT,LBUF,LCSB,LE, 1LEC,LFFB,LFFE,LI,LLE,LLFB.LLFE.LMS,LNE,LP.LV.MINNFL, lMNSE.NFE,NFL,foll,NI2,N01.N02.NREP.NRUN,NSE,TlME.TST6p 1=1-11) 00026 1=1*1 I F ( ( I ) ( I - C I A r L B * . ) ) > > .LE.OJGO TO 0 0 0 2 7 0 0 TO 0002B 00027 CONTINUE CALL PIDFCL1-1-H ,IPVT(1ACLB+3)*I1,1-1) 00 TO 00026 00028 CONTINUE

-256-

FORTRAN Control Programs

RETURN END C PIDFIL.K.N) C SUBROUTINE PRINTS THE ITEM AT L OF TYPE K IN DUMP FORMAT. SUBROUTINE PIDFfL,K,N> DIMENSION 1A(1) COMMON RA(1) EQUIVALENCE < I At I ) , R A ( I > ) COMMON /SYSTEM/MFROM.MTO,ICTYPE,1POlNT,

I (DUMP, ISECA. ITRACE.LB.LBCA,LBLIST,LBPT,LBUF.LCSB,LE, I L E C . L F F B , L F F E , L I , L L E . L L F B , L L F E , L M S , L N E , L P , L V , M l N M F L 1MN5E.NFE,NFL ,Nn . N I 2 . N 0 I ,NOZ,NREP,NRUN,NSE,T|ME\TSTOP

rF<L .EQ.LP>e6 TO 0OO26 QO TO 0 0 0 2 7

00026 CONTINUE M=3HLP« GO TO 00028 00027 IFCL.EO.LVIGO TO 00029 GO TO 00030 00029 CONTINUE K=3HLV* GO TO 00020 00030 IFCL.EQ.Lt)G0 TO 00031 GO TO 00032 00031 CONTINUE M=3HLl» GO TO 00028 00032 CONTINUE M=3H * 00028 CONTINUE 1FCK.EQ.1IG0 TO 00033 GO TO 00034 00033 CONTINUE WRITE(NOI,00036)M.N,K,L,IACL1 00036 FORMATflX.A3,12,215, 112) GO TO 0003S 00034 IF(K.EQ 3>G0 TO 00037 GO TO 00038 00037 CONTINUE W R I T E ( N 0 1 , 0 0 0 3 9 ) M . N , K , L , « A ( L ) 00039 F0RMAT<1X,A3,12,EI 5,El a!4) GO TO 00035 00038 1F(K.E0.2>G0 TO 00040 GO TO 00041 00040 CONTINUE IF(IAIL).EQ.OJQO TO 00042 GO TO 00043 00042 CONTINUE MR1TE(N01,00045)M,N,KJL,1A(L> 00045 FORMAT!1X,A3,12,215,1125 00 TO 00044 00043 IF(IA(L).GT.O)GO TO 00046

-259-

FORTRAN Control Prograns

GO TO 00O47 00046 CONTINUE

J=IACIAILJ*3) Wft J TEt KOI. 00048)11, M.K.L, 1A(L>,( I A(LCS( I A C ! . 2 • ! > ) . I = 1 , J >

0004S FORMAT< IX, A3, 12,215, ] 12/<28X.S1 12)) 60 TO 00O44

00047 CONTINUE WRITE(NO),00049)

000<I9 FORMAT!/1X.15H ERROR / 1 X , X 29HNEGAT1VE LIST LOCATION (PIDF)I CALL ERROR

00044 C3NT:NUE GO TC 00O35

00041 JFIK.EO.4)60 TO 00050 UO TO 0005?

00050 CONTINUE 1F<IA<L).£0.0)GO TO 00052 GO T3 00OS3

00052 CONTINUE WRITECN01, 00055)11, N.X.L,IA<L)

00055 FCRMATUX,A3, 12,215, 112) GO TO 00054

00053 IF(1A<L>-GT.OJGO TO 00056 fSO TO 00OS7

0C056 CONTINUE J=lAHA<L)+3)

WRlTEff.'Ol .6OO50!M.N.K,L, !A<L). (RA(LCS( I A< L) . 2+ I ) ) , 1 =• 1 . J ) 00058 F3RMAT<1X.A3,12,215,112/C28X,5E12.4))

GO TO 00054 00037 CONTINUE

WRITE<N01.00059) 00059 *-"0RMAT(/1X, 1 5H ERROR /IX,

X 29HNEGATIYE LIST LOCATION <P!0F1) CALL ERROR

00051 CONTINUE GO TO OOOCS

00051 CONTINUE WRITEtNOI,00060)

00060 FORMAT!/IX,15H ERROR /1X.25HILLEGAL ARGUMENT K (PiDF)) CALL ERROR

00035 CONTINUE RETURN END

C POPILl.N.M) C SUBROUTINE POPS N INTEGERS OFF THE STACK A T LI IMTO THE C ARRAY M.

SUBROUTINE P0P(L1,N,M> DIMENSION I A U ) COMMON RAC1 ) EQUIVALENCE (I At 1),RA(1)) COMMON /SVSTEM/MFROM.HTO. ICTVFE,1P01NX,

1ICIUMP, ISECA, ITRACE,LB,LBCA,LBLIST,LBPT,LeUF,LCSB,LE, - 2 6 0 -

FORTRAN C o n i r o l Pro&rsins

1LEC,LFFB, LFFE, I.I , LL E, I.LFE , LLFE, LHS, LNE, LP.LV,MlNNFL, 1MIJ5E, NFE, MFL, MI 1 , NI 2 , N O I , NOB, NREP, NRUN, NSE. TI ME. TST6P

DIMENSION M i l ) I s l - M )

00O26 1*1*1 !F((IJ il-(N)) LE OiGO TO 00027 00 TO 00028 00OS7 CONTINUE MIN*l-lI=IACLCS<L1,IA(LI*3)*3-II) 60 TO 00025 00023 CONTINUE IA(L1*3)=IA(L!*3)-N RETURN END C PPLBUPVT) C SUBROUTINE PRINTS PARAMETERS OF FUNCTION AT L.B IN DUMP FORMAT SUBROUTINE PPLB(IPVT) DIMENSION 1PVTI1) DIMENSION 1AC1) COMMON RAC1> EQUIVALENCE (IA(1),RA<t1> COMMON /SYSTEM/MFROM, MTO. 1 CTYPE, I POI NT, 1I DUMP,ISECA.1 TRACE,LB,LBCA.LBLIST.LEPT.LBLF.LCSB.LE, ILEC,LFFB,LFFE,L],LLE,LLFB,LLFE,LMS,LNE.LP.LV,MINNFL, II1NSE,NFE,NFL,NI 1 , Ml2, NOI ,N02, NREP, NRUN,NS£ , TIME. TSTOP 1=1-11) 00026 1=1+1 IF((1) (I-UA(LB*3))) .LE.01SO TO 00027 (50 TO 00028 00027 CONTINUE CALL PIDFCLP-1+1 , IPVTU ), I-1 > 00 TO 00026 00028 CONTINUE RETURN END C PUSHILI,N,M) C SUBROUTINE PUSHES M INTEGERS IN ARRAY M INTO THE STACK AT LI. SUBROUTINE PUSH(LI.N.M) DIMENSION IA(1) COMMOM RAO) EQUIVALENCE CI A M ) , RAM)) COMMON /SYSTEM/MFROM.MTO,ICTYPE.IPOIHT, IJDUMP.ISECA.I TRACE,LB,LBCA.LBLIST.LBPT.LBUF,LCSB,LE, 1LEC,LFFB, LFFE,LI,LLE,LLFB,LLFE,LMS,LME,LP,LV,MINNFL, IMNSE,NFE,NFL,NJ1,Ml 3,NOI,N02, NREP. NRUN,NSE.TlME,TSTOP DIMENSION M<1) IF< "<L1+3)*N.GT. IA(L1+2))G0 TO 00025 GO 00027 00r?6 CO. -AIE WFi ._(N01,00029) 00029 F0RMAT</1X,15H ERROR /1X.17HSTACK FULL <PUSH!) CALL ERROR -261-

FORTRAN Corixrol Programs

00087 CONTINUE 1=1-11 ) 00030 1=1*1 1F((!) (l-(N)l.LE OlGO TO 00031 GO TO 00032 00031 CONTINUE IACLCSCL1,!ArL!«3J«2*I))=M(1) GO TO 00030 00032 CONTINUE IA<LI*3J=CA<LI*3>*N RETURN END C PVLBdPVTl C SUBROUTINE PRINTS VARIABLES OF THE FUNCTION AT LB IM OUMP FORMAT. SUBROUTINE PVLBUPVT1 0! MEMS ION IPVTd ) DIMENSION IA(1) COMMON RA t 1 ) EQUIVALENCE (lACD.RACIl) COMMON /SYSTEM/MFRCM.MTO, ICTYPE, IPCJNT, 1IOUMP.ISECA,I TRACE,LB,LBCA,LBLIST,LBPT,LBUF,LOSS.LE, 1LEC, LFFB,LFFE,LI, LLE,LLFB,LLFE,LMS,LNE,LP,LV,MlNNF L, 1MNSE,NFE,NFL,NI1,NI2,N01,N02,NREP,NRUN1NSE,TIME,TSTOP 1=1-111 oooze 1=1*1 [F<CiJ (t'dA<L8*4>)).LE.0]G0 TO 00027 so TO 0002a 00027 CONTINUE CALL P[DFfLV-1*l,IPVTdA(LB»3>*ll.I-1) CO TO 00026 00028 CONTINUE RETURN END C RAC<L,I> C FUNCTION RETURNS REAL VALUE OF ITEM I IN CHAIN STORAGE AT L. FUNCTION SACIL.I! DIMENSION lAtl) COMMON RAC1> EQUIVALENCE (1 At 1),RA(11) COMMON /SYSTEPI/MFRCM. I1T0, ICTVPE, IPOIMT. 1 I DUMP.ISECA,I TRACE,LB,LSCA,LBLI ST,LBPT,LBUF,LCSB.LE, lLEC,LFFB1LFFE,,LI1,LLE,LLFB,LLF!:,LMS,LNejLP.LV,ri»NNFL, 1MNSE,NFE,NFL,NI1 ,N12,N01 ,fl02. NREP,NRUN, NSE, TIME, TSTOP RAC=RAtLCS(L,1I) RETURN END C R1C(I)

C FUNCTION RETURNS THE ITH REAL INITIAL CONDITION OF THE FUNCTION AT LB. FUNCTION RIC(I) DIMENSION IA(1> COMMON RAO) EOUIVALENCE (IA<1>,RAC1)> -262-

FORTRAN Coirtrol ProScans

COMMON /SYSTEM/MFROM.MTO,ICTYPE.1P01NT. 1!DUMP.1SECA,I TRACE,LS,LSCA,LBLI ST,LBPT,LBUF,LCSB,LE, ILEC, LFFB, LFFE , LI , LLE, LLFB, LLFE , LI1S, LNE.LP.LV,MI NNFL, 1MNSE.NFE.NFL.N1l.NI2.N0I,N02,NREP,NRUN,NSE,TIME.TSTOP RIC=RA(L[«I) RETURN END C RLICIl,J) C FUNCTION RETURNS THE JTH ELEMENT OF REAL LIST INITIAL CONDITION C I OF THE FUNCTION AT LB FUNCTION RLJCII,J> DIMENSION I All) COMMON RAO) EQUIVALENCE CIAt 1),RA(1)) COMMON /SYSTEM/MFROM.MTO,ICTVPE,IPOI MT, 1 1 DUMPMSECA, I TRACE, LB, LBCA, LBL I ST, LBPT, LBUF, LCSB, LE, 1LEC.LFFB,LFFE,LI,LLE,LLFB,LLFE,LMS,LNE,LP,LV,MINNFL, 1MNSE.NFE, NFL, N11, Nl 2, NO I ..N02, NREP. NRUN, NSE, TIME.TSTOP RL;C=RA(LCS(IA<LI*Ij.j+ei) RETURN END C RLPd . Jl C FUNCTION RETURNS THE JTH ELEMENT OF THE REAL LIST PARAMET I Or C THE FUNCTION AT LB. FUNCTION RLP(t.J) DIMENSION I A M ) COMMON RAH ) EQUIVALENCE <IA<1),RAC1!) COMMON /SYSTEM/MFROM.MTO.ICTYPE,IPOI NT, 1 I DUMP, ISECA,I TRACE,LB,LBCA,LBLIST,LBPT,LBUF,LCSB,LE 1LEC,LFFB,LFFE,LI,LLE,LLFB,LLFE.LMS,LNE,LP,LV,MINNFl 1MNSE,NFE,NFL,N[1,NI8.N01,N02,NREP.NRUN,NSE,TIME,TS 3P RLP=RA(LCS<IA<LF+I), J*2)S RETURN END C RLVtl,J) C FUNCTION RETURNS THE JTH ELEMENT OF THE REAL LIST V£ ; ABLE 1 OF THE C FUNCTION AT LB. FUNCTION RLVtl.J) DIMENSION 1AM > COMMON RAM ) EQUIVALENCE (IA(1),RA<1)) COMMON /SYSTEM/MFROM,MTO,ICTVPE,IPOIMT. 1IDUMP,ISECA,I TRACE,LB,LBCA,LBLIST,LBPT,LBUF,LCSB,LE, 1 LEC, LFFB, LFFE, LI , LLE, LLFB, LLFE, LMS, LNE.LP, LV. "IINNFL. 1MNSE.NFE.NFL,Nl1,NI2,NOt,N02,NREP,NRUW,USE,TIME,TSTOP RLV=RA(LCS(IA<LV+I),J*2)I RETURN END C RNORM<RMU,SIGMA) C FUNCTION RETURNS REAL RANDOM VARIABLE WITH NORf-L DISTRIBUTION. FUNCTION RNORMIRMU,SIGMA)

-263-

FORTRAN Control Prosrans

DATA |X,U/1,0./ X = 0. 1=1-11)

00020 l=!+: IF((i) (I-<12>>.LE.0)G0 TO 00027 GO TO 00028

00027 CONTINUE CALL URN(IX,U) X?X*U

GO TO 00026 00020 CONTINUE

X=-6.*X RNORH=RMU»SIGMA X RETURN END

C ftN0Ri>5T(RI1U, SI GMA.RMAX, RM1 N> C FUNCTION RETURNS REAL RANDOM VARIABLE WITH TRUNCATED NORMAL C DISTRIBUTION.

FUNCTION RNORMTCRMU,SIGMA,RMAX.RMI N) DATA IX,U/1,0./ X=0. 1=1-11)

00026 I=l+! I F C C ) (I-< 12) ) .LE.CJJGO TO 0OO2? 60 TO 00028 00027 CONTINUE CALL URN(IX,U) XsX+U GO tO 00026

00028 CONTINUE X — 6 . + X R=RHU«SIG«A X 1FCR.LT.RM1N)R=RMIN IFtR.eT.RMAX)R=RP!AX RNORMT=R RETURN END

C RPII> C FUNCTION RETURNS THE ITH REAL PARAMETER OF THE FUNCTION AT LB.

FUNCTION RP(1) D M E N S I ON IA(1) COMMON RAC1) EQUIVALENCE I I AC 1),RA{1)) COMMON /SrSTEn/tlFROM.MTO. ICTYPE, ! POINT,

1 IDUMP, ISECA, ITRACE • . B , L B 6 A , L B L I S T , L B P T , -QUF,LCSB,Lf, 1 LEC, I.FFS, LFFE, LI , LLE. LLFB, LLFE, LMS, LNE, LP, LV, Ml NMFL, 1MNSE,NFE,NFL,NI1,Nl2.N01,N02,NREP.KRUN,NSE,TIME,TST6P RP=RACLP+t1 RETURN END

C RUN!F(Rf1,SP) C FUNCTiON RETURNS REAL RANDOM VARIABLE WITH UNIFORM DISTRIBUTION,

-264-

FORTRAN Control Proarsns

FUNCTION 3UMIF(ftM,SP) DIMENSION IA(I) COMMON RAM ) EQUIVALENCE (I A I 11,RA<1)) COMMON /SYSTEK/MFROM.MTO,ICT'PE,1POINT, I I DUMP, ISECA, I 7RACE,LB,LBCA,LBLI ST,LBPT,LBUF,LCSB,LE, 1LEC , LFFB,LFFE,LI , Ll.E , LLFB,LLFE,LMS , LNE, LP, LV, MI NNFL , 1MNSE.NFE, NFL, I'll1,Ml 2,NO),N02,NREP,NRUN,USE,TIME,TSTOP DATA IX,U/1,0./ CALL URNIIX.U) RUNIF=RM-SP*S. U SP RETURN END C RV(1) C FUNCTION RETURNS THE 'TH REAL VARIABLE OF THE FUNCTION AT LB. FUNCTION RVt!) DIMENSION IA(11 COMMON RA C1) EQUIVALENCE (IAi1),RA(111 COMMON /SYSTEM/MFROM.MTC.ICTYPE,I POINT, 1 I DUMP, ISECA, I TRACE,L&, LBCA, LBLIST, LBPT, LBUF, LCSB, l.E, 1LEC, LFFB, LFFE, LI , LLE, LLFB, LLFE, LMS, LNE, LP, LV, Ml NN!-L, 1MNSE,NFE,NFL,N!1,NI2.N01,N02,NRED,NRUN,NSE,TIME,TSTOP RV=RA(LV+[) RETURN ENO C SAMPLCI,J,V) C SUBROUTINE RETURNS SAMPLE VALUE V FROM A POPULATION WITH C OISTRIBU'ION TYPE RAC<l,J+2) AND STATISTICS RACII.J*3), RAC(!, C ETC. SUBROUTINE SAMPLil,J,V) DIMENSION IA(I) COMMON RAO ) EQUIVALENCE UAM),RAC1i) COMMON /SYSTEfl/MFROM.MTO. ICTYPE, IPDIhET,

1 I^UMP, ISECA, I TRACE,LB,LBCA,LBLIST,LBPT,LBUF,LCSB,LE, 1 L c C , L F F B , L F F E , L I , L L E , L L F B , L L F E , L M S , L N E , L P , L V , M ! N N F L , 1MNSE.NF£,NFL,N1 1 , M 2 . NOI , N02 , NREP, NRUN, I>iSE. TIME, TSTOP IF( |?RACE.GE.5)(30 TO 00028 GO TO 00027 00026 CONTINUE WRITECNOl,00029)TIMt,IA(LB+2) 00029 F0RMATC1X.E10.4, Iit,2X, 12HSAMPLI I , J, 1) WR1TE<N01,00030)1,J 00030 FORMAT!IX,2110) 00027 CONTINUE IFdTRACE.OE 6.AND. (I TRACE.E0. I TRACE'2 2>>G0 10 0003! GO TO 00032 00031 CONTINUE WRITE(N02,00034>T!ME,IACLB+Z) 00034 F0RMATC1X,E10./|, M,2X, 12HSAMPLII, J, )) UR!TECN02,000351I,J

-265-

FORTRAN Control Programs

00035 FORMAT!IX,2110) CALL I CHECK 00032 CONTINUE IFfIFIX(RAC(I,J*2)).EU.1)G0 TO 00036 GO TO 00037 00036 CONTINUE V=RUNIF(RAC(I,J+3),RAC(I,J+4)I 60 TO 00036 00037 IFtlFIXIRACCl,J«2>).£0.2)00 TO 00039 60 TO 00040 00039 CONTINUE V = R N O R M ( R A C U , J + 3 > , R A C < I , J * 4 ) l

GO TO 0 0 0 3 8 00040 I F ( 1 F I X I R A C C I , J * 2 > ) . E O . 3 J G 0 TO 00041

GO TO 00042 00041 CONTINUE

V=RNORrlT(RAC< ! , J « 3 ) , R A C ( I , J * 4 ) , R A C < 1 , J + 5 ) , R A C ( I . J - 6 J ) GO TO 0 0 0 3 8

0 0 0 4 2 1 F < I F 1 X C R A C C I , J + 2 ) ) E 0 . 4 ) G 0 TO 0 0 0 4 3 GO TD 0 0 0 4 4 00043 CONTINUE CALL URN(IX,U) V=-RACC1,J*3> ALOG(U) GO TO 00038 00044 CONTINUE WRITE!NO1,000451 00045 F0RMATJ/1X, I5H ERROR /1X. X 31MSAMPL ILLEGAL DISTRIBUTION TYPE) CALL ERROR 00036 CONTINUE IF< J1'RACE.GE.5)G0 TO 00046 GO TO 00047 00046 CONTINUE URITE(N01,000491TIME,IA(LB*2) 00049 F0RMAT(1X,E10.4,14.2X,12HSAMPLI , ,V)) WRITE!N01,000501V 00050 F0RMAT(1X.E12.4> 00047 CCNTINUE lFCITRACE GE.6.AND.([TRACE.EO.I7RACE/2 2))G0 TO 00051 GO TO 00052 00051 CONTINUE WRITECN02,00054)TIME.IACLB+2) 00054 FORMAT!IX,EIO.4,14,2X,12HSAKKLC , ,V)J WRITEtN02.0005S>V 00055 FORMAT!IX.EI2.4) CALL [CHECK 00052 CONTINUE RETURN END C SCHED(T,MB,K.LD) C SUBROUTlhc SCHEDULES EVENT CODE K IN BLOCK NB FOR TIME T WITH EVENT C DATA AT L0CA11ON LD 1=0 IF NONE).

-266-

FORTRAN Control Proersns

SUBROUTINE SCHED(T,NB,K,LD> CI MENS I ON I A M ) COMMON RAtt) EQUIVALENCE <IA<1>.RA(1>> COMMON /SYSTEM/MFR6M.MTO,ICTVPE.IPOI NT, 11 DUMP,1SECA.lTRACE,LB,LBCA,LBUST. LBPT.LBUF.LCSB,LE. 1LEC, LFFfl,LFFE,LI, LLE, LLFB, LLFE,LMS, LNE, LP. LV, MINNFL, 1MNSE, NFE .',i L, N] I ' Nl 2, NO) , N02, NREP, NRUN, NSE, TIME, TSTOI1

1FCT.L1 tlMEJeO TO 00026 OO TO 00027 00026 CONTINUE WRITE!N01,00029) OD029 FORMAT!/1X.15H ERROR /IX, X S3MSCHED ATTEMPT TO SCHEDULE EVENT PRIOR TO PRESENT TIME) CALL ERROR 00027 CONTINUE JMNFE.EO.OJGO TO 00030 60 TO 00031 00030 CONTINUE CALL INCREC(LEC) 00031 CONTINUE RA(LFFE+1)=T IA<LFFE+2>=NB IA(LFFE+3>=K IA<LFFE+4>sLD L=LNE LlsLFFE LFFE=IA(LFFE) 00033 IF(RAJL+1>.LE.T.AND.L.NE.0)G0 TO 00034 GO TO 00035 00034 CONTINUE L2=L L=IACL> GO TO 00033 •0035 CONTINUE IF«L.EO.LNE)G0 TO 00036 GO TO 0O037 00036 CONTINUE LNE=L1 IA(L1)=L 60 TO 00036 00037 CONTINUE IF<L,NE.O)GO TO 00039 60 TO 00040 00039 CONTINUE IA(L2)-L1 IACL1>=L 00 TO 00041 00040 CONTINUE I A ( L 2 ) = L 1 IA<LU=0 LLEsL!

- 2 6 7 -

FORTRAN Corarol Pi"og"s --.

00041 CONTINUE 00036 CONTINUE MFE=NFE-1 NSE=NSE« I I F INSE GT.MNSEjMNSE = riSE RETURN END r; SEND C SUBROUTINE TRANSMITS COMMUNICATIONS. SUBK0UT1NE SEND DIMENSION IA(1) COMMON RA<I) EQUIVALENCE <IA(1).RA<13 J COMMON /SYSTEM/MFROM.MTO.ICTVPE.IPOINT, 1 I DUMP. ISECA.lTRACE.LB.LBCA.LBLIST.LBPT.LBuF.LCSe.LE. 1LEC,LFFB,LFFE,L[ ,LLE,LLFB,LLFE.LMS,LNE, LP. L<J, Ml NriF_. 1HK3E,NFE,NFL.NI1 ,MI 2.NO!,N02,MREP,HRUN,USE.TIME,TSTO? DIMENSION iciai .trt-ai EQUIVALENCE IMFRCM, ICC I ) 1 l£RR=0 00026 IFUERR EQOJGO TO 00027 GO TO oooaa

00OS7 CONTINUE IFIITRACE.GE.SJGO TC 00029 GO TO 00030 00029 CONTINUE WRITECNOl ,0003£ )T IME , IA (LB«Z>

00032 FORMAT! 1X.E10 4 , 14.Ztf.,29HSEND MFROK M70 ICTYPE l P i I N T ) WRITEIMOl , 00033ir'rFr<OM,MTO. ICTYPE. I PC I NT

00033 FORMAT! IX ,016) 00030 CONTINUE IFIITRACE.GE.6.AND IITRACE.EO.ITRACE/2 2))GC TC 00034 GO TO 00035 0003a CONTINUE WRITE<N02.00037)TJME, IAILB«2! 00037 FORMAT! 1X.E1 0.4, I 4,2X,23HSEND MFROM I1T0 ICTYPE IPOINT: WRITE(NO2.0O036>MFROM,M.TO, ICTYPE, IPOINT 00038 FORMAT!IX.4 I 6) CALL I CHECK 00035 CONTINUE IF!ICTYPE.LT.OIGO TO 00039 GO TO OOOflO 00039 CONTINUE NADCR=MFROM CALL P 0 P I L M S . 4 . I K )

I F U C I t > . N E . I K I 1 > OR. I C ( 2 ) . N E . IK ( 2 ) . OR. I C ( 3 ) . NE. - ] K ( 3 ) )G0 TO X 0C04Z

GO TO 00043 0 0 0 4 2 CONTINUE

W R I T £ ( N 0 1 , 0 0 0 4 5 ) 00045 F0RMATC/1X,15H ERROR /1X.22HSEND ILLEGAL RESPONSE) CALL ERROR -268-

FORTRAN Cct.Lrol Proarans

00003 CONTINUE !F( |AM.HS<3) .6T.0IQ0 TO 00006 GO TO 000.37 00006 CONTINUE MFROM=IAC<LMS,IA(LMS»3)-1) MTO=IACILMS.IACLMS<3>> 00007 CONTINUE GO TO 00011 00000 I F U C T Y P E G T OJGO TO 00009 GO TO 00050 00009 CONTINUE NAODR=MTO CALL PUSHtLMS^, Id GO TO OOOOt 00050 CONTINUE URITEIN01.00051) 00051 FORMA1I/1X,15H ERROR /IX.20HSEND ILLEGAL ICTYPE) CALL ERROR 00001 CONTINUE IF<NAD0R.GT.0)GO TO 00052 GO TO 00053 00052 CONTINUE

ASSIGN 00055 TO L00001 GO TO 00001 00055 CONTINUE GO TO 00054

00053 CONTINUE RETURN 00050 CONTINUE GO TO 00026 000S8 CONTINUE WR1TE(N01.000S6) 00056 FORMAT(/IX. 15H ERROR /1X.20HSEND ILLEGAL. SLOCK TYPE) CALL ERROR C 00001 CONTINUE

1FUCTYPE.EQ. 1)00 TO 00057 GO TO 0 O 0 5 8 00057 CONTINUE I=1 POINT GO TO 00059 00058 CONTINUE CALL FPNTRStNADDR) IcJAILB) 00059 CONTINUE J=I/iOO K=i-J 100 IFU.EQ. 1 )G0 TO 00060 GO TO 00061 00060 CONTINUE ."F(K.E0.1)GO TO 00063 GO TO 00060

-269-

rrj&TW-". '_<i".r o =•-.,«•«-•»

OfiOfc'i ' , ' ; N I iri-js r . / l | '. B l 0"

GO 10 ' ,0060 C/jr^/ l I I ' IK ["15 i i l f iO Tf! r;'j(366

f,f! TC VJ06 7 1 / J W I ' , Q C N I I M I I .

CALL P. 10? 00 TO Xit/iKi

00067 I F t K . c r j 3JR0 TO 00060 r,0 Tr; on'jb'l

00068 COM! I 'IUI CALL B l O t l

GO TO COWS 0006 rJ IF 'K.EO. 4 IG0 TO &'J070

00 "10 C0071 00070 CONTINUE

CALL. B104 GO TO C0065

00071 IF'K.EO 5IG0 TO UC072 GO TO 00073

00072 CONTINUE CALL BIO'S

CC TO 00065 00073 !F(K.EC 6)GO TO 00074

GG TC 00075 0 0 0 7 M CONTINUE

CALL El 06 DO TO 00065

00075 |F(K. .EQ 7) GO TO 00076 GO TO 00077

00076 CONTINUE CALL B107

GO TO C0065 00077 IFtK.E0.8IG0 TO 00076

00 TO 00079 00078 CONTINUE

CALL BIOS GO TO 00065

00079 IFrK.EO 9)GO TO 00080 GO TO 00061

00060 CONTINUE CALL B109

GO TO 00065 00081 IFfK.EO.tOIGO TO O0082

GO TO 00083 00082 CONTINUE

CALL B110 GO TO 00065

00083 CONTINUE IERR=1

000G5 CONTINUE GO TO 00062

-270-

r.',r.<:-\ • ; c ' i ' i •..; ••' M,

' . : • , ! ) ' . uo'.e.1 :- - Ft J-itiS 'c • • H ,

'.•/,iyt

r>5 *C Of-'.69 -.;',•*-. :» • . tr. 'j iic *r. .'*'!' cc.<r

oo -c osoas •.-.i.-id : r •• EG .;JGC TC

GC "C C0C9.S '. . 'if

'„OGS"i : * L . B?O<S

',C "C 0O0B6 O0C9-J :F 'r EC 5IGC i". GC TO C3096

"-095 1CC95 CONTINUE w L t eeos GO TC oooea CGC9f, iFlr.iO 6)GC TC

0C TO 10090 OS'^97 OJ097 CCNTIN„E

C A L L 8206 GO TO 00068

0009B IFff EC 7IG0 TO GO TC 00 IOC

CS099 10099 CCNTiUUE

CALL B207 GC TO 00C86

00100 IFCK.gO a)GO TO SO TO 00102

O01O1 0010! CDNTI-. =

ALL &208 GO TC 00068

00102 1 F!K SO 9 j GO TO SO TC 00104 O0103

C0i03 CONT1 tv'UE CAL» B209

GC TC C0088 OCI 04 1F < K.EC 1C:GO TO

GO TO CO 106 00105

CO 105 CONTINUE CALL B210

FORTRAN Con-.rol Pp nr-a.-IE

GO TO 00086 001 OS CONTINUE I£RR=1 oooae CONTINUE

GO TO 00062 00065 !F(J.EQ.3JG0 TO 00107 GO TO 00103 00107 CONTINUE IFIK.EO.1)G0 TO 00109 GO TO 00110 00109 CONTINUE CALL B301 GO TO 00111 00110 IF(K.E0.2)G0 TO 00112 60 TO 00113 00112 CONTINUE

CALL B302 GO TO 00111 00113 !F(K.EQ.3)G0 TO 00114 60 TO 00115 001 14 CONTINUE CALL B303 GO TO 00111 00115 1F(K.EO.J)GO TO 0011S GO TO 00117 00116 CONTINUE CALL B304 GO TO 00111 00117 IF(K.E0.5»G0 TO 00118 GO TO 001 19 0 0 1 1 8 CONTINUE CALL B305 GO TO 00111 00119 1FtK.E0.6)GO TO 00120 GO TO 00121 00120 CONTINUE CALL B306 GO TO 00111 00121 I F I K . E O . 7 X 3 0 TO 0 0 1 2 2

GO TO 0 0 1 2 3 00122 CONTINUE CALL B307 GO TO 00111 00123 lF(K.EO.a>G0 TO 00124 GO TO 00125 00124 CONTINUE CALL BO08 GO TO 001t1 00125 IFIK.E0.9>GO TO 00126 GO TO 00127 00126 CONTINUE CALL B309

GO TO 0 0 1 " 1 00127 tFCK.EO 10KS0 TO 00128

GO TO 00129 0012B CCIITINUE

CALL B310 6C TO 00111 00129 CONTINUE

IERR=1 001 11 CONTINUE GC TO 00062 00106 iFCJ.EQ 4 .'GO TO CO 130 GC TO 0013! 00130 CONTINUE

I F ( K . E 0 . 1 ) Q 0 TO 0 0 1 3 2 <3C TO C0133 00132 CONTINUE

C1LL BIO I GO TO 0 0 1 3 1

00133 IFCK.EO 2 l G 0 TO 00135 GO TO 00136

00136 CONTINUE CALL B402 GO TO 001 34 00136 IFCK.EC.31G0 TO 0 0 1 3 7

ISO TO 0 0 1 3 6 00137 CONTINUE CALL B403 GO TO 00134 00138 1FCK.E0 4)G0 TO 00139 GO TO 00140 00139 CONTINUE CALL B404 GO TO 0013d 00140 IFtK.EO 5>G0 TO 00141 GC TC 00142 00141 CONTINUE CALL B405 GO TO 00134 00142 IFtK.EO.6)60 TO 00143 GO TO 00144 00143 CONTINUE CALL B406 GO TO 00134 00144 IFCK.EO,7)G0 TO 00145 GO TO 00146 00145 CONTINUE CALL B407 GO TO 00134 00146 IF(K.EQ.8)G0 TO 00147 GO TO 00148 00147 CONTINUE CALi- B408

00 TO 00134 00148 !F<K.E0,9>G& TO 00149 GO TO 001 SO 00149 CONTINUE CALL B409 GO TO 00134 00150 IFIK.EQ.10)60 TO 00151 SO TO 00192 00151 CONTINUE CALL £410 GO TO 00134 00152 CONTINUE 1ERR=1 00134 CONTINUE 00 TO 00062 00131 IF<J.E0.5IG0 TO 00153 60 TO 00154 00153 CONTINUE IFfK.EQ.1)G0 TO 00155 GO TO 00156 00155 CONTINUE CALL B501 GO TO 00157 00156 IFrK.EO.ZJGO TO 0015B GO TO 00153 00158 CONTINUE CALL B502 GO TO 00157 00159 1FIK.EC.3JG0 TO 00160 GO TO 00161 00160 CONTINUE CALL B303 GO TO 00157 00161 I F f K . E Q . 4 > ( . n TO 00162

GO TO 00163 00162 CONTINUE CALL B504 GO TO 00157 00163 IFCK.EO 5>G0 TO O0164 GO TO 00165 00164 CONTINUE CALL B505 GO TO 00157 00165 IFIK.EO 6)60 TO O0166 GO TO 00167 00166 CONTINUE CALL B506 GO TO 00157 00167 IFCK.EQ.7JG0 TO 00168 GO TO CO169 00168 CONTINUE CALL B507

SO TO 00157 00169 ]F(K.EO.8)G0 TO 00170 SO TO 00171 001?'J CONTINUE CALL BS06 GO TO 00157 00171 IF(K.EO.9>G0 TO 00172 00 TO 00173 00172 CONTINUE CALL B509 GO TO 001S7 00173 [FCK.EQ.10)G0 TO 00174 80 TO 00175 00174 CONTINUE CALL B510 SO TO O0TS7 00175 CONTINUE 1ERR=1

00157 CONTINUE GO TO 00062 00154 JF(J.E0.6)G0 TO 00176 GO TO 00177 00176 CONTINUE IFIK.EQ.DGO TO 011176 GO TO 00179 00176 CONTINUE CALL B601 GO TO 00160 00179 IF(K.E0.2)G0 TO 00181 GO TO 001S2 00181 CONTINUE CALL B602 DO TO 00180 00162 1FCK.EQ.3)G0 TO 00183 GO TO 00184 00183 CONTINUE CALL B603 GO TO 00180 00184 IFIK.E0.4JG0 TO 00185 GO TO 00106 00185 CONTINUE CALL B604 GO TO 00160 00186 IFIK.EO.SJGO TO 00187 GO TO 00186 00187 CONTINUE CALL B60S 00 TO 00180 00168 IF(K.EQ.6)G0 TO 00189 GO TO 00190 00169 CONTINUE CALL B606

FORTRAN Control Proprans

GO TO 00180 00190 1F1K..EQ.7IG0 T3 00191 GO TO 00192 00191 CONTINUE CALL 6607 60 TO 00180 00192 IF(K.e0.8)G0 TO 00193 GO TO 00194 00193 CONTINUE CALL B606 GO TO 00180 00194 1FCK. E0.5DG0 TO 00195

GO TO 0 0 1 9 6 00195 CONTINUE CALL B6C9 GO TO 00160 00196 IFCK.EQ.101G0 TO 00197 GO TO 00198 00197 CONTINUE CALL 6610 60 TO 00180 00198 CONTINUE 1ERR=I 00180 CONTINUE GO TO 00062 00177 IFCJ.EQ,7>G0 TO 00199 GO TO 00200 00199 CONTINUE 1F(K.E0.1)G0 TO 00201 GO TO 00202 00201 CONT.NUE CALL B701 GO TO 00203 00202 1F<K.E0.2>G0 TO 00204 GO TO 0020S 00204 CONTINUE CALL B702 GO TO 00203 00205 IF(K.EQ.3)GQ TO 00206 GO TO 00207 00206 CONTINUE CALL B703 GO TO 00203 00207 IF(K.EG.4)GC TO 00208 GO TO 00209 00208 CONTINUE CALL B704 GO TO 00203 00209 IF(K.EQ 5)G0 TO 00210 GO TO 00211 00210 CONTINUE CALL B705 -276-

00 TO 00203 00211 |F<K.Ef> 6>00 TO 00212 GO TO COStO 00212 CONTINUE CALL S706 GO TO 00203 00213 1F(K.E0.7HM> TO 00214 GO TO 002IS 00214 CONTINUE CALL B707 GO TO 00203 00210 IF<K.EO,B>GO TO 00216 GO TO 00217 00216 CONTINUE CALL B708 GO TO 00203 00217 IFCK.E0.91G0 TO 00218 GO TO 00219 00216 CONTINUE CALL B709 GO TO 00203 00219 IFCK.EO.10)GO TO 00220 GO TO 00221 00220 CONTINUE CALL B7I0 GO TO 00203 00221 CONTINUE !ERR=1 00203 CONTINUE GO TO 00062

00200 I F U . E 0 . 8 J G 0 TO 00222 GO TO 00223 00222 CONTINUE 1FIK.EQ.1(GO TO 00224 GO TO C0225 00224 CONTINUE CALL B801 GO TO 00226 00225 IF(K.EQ.2>80 TO 00227 GO TO 0022B 00227 CONTINUE CALL B802 GO TO 00226 00228 IF(K.E0.3>G0 TO 00229 GO TO 00230 00229 CONTINUE CALL 3303 GO TO 00226 00230 tF<K.£0.4)G0 TO 00231 GO TO 00232 00231 CONTINUE CALL B804

FORTRAfi C o n t r o l P r o g r a n s

00 TO 00226 00232 1FCK.EQ.5JG0 TO 00233 GO TO 00234 00233 CONTINUE CALL B80S GO TO 00226 00234 1FCK.EG.6)G0 TO 00235 GO TO 00Z36 00235 CONTINUE CALL B806 GO TO 00226 00236 1FIK.E0.71G0 TO 00237 GO TO 00238 00237 CONTINUE CALL B0U7 60 TO 00226 00238 IFCK.EO.8>G0 TO 00239 GO TO 00240 00239 CONTINUE CALL B806 GO TO 00226 00240 IF(K.EO.9>G0 TO 00241 GO TO 00242 00241 CONTINUE CALL B809 GO TO 00826 00242 IFCK.EO.10IG0 TO 00243 GO TO 00244 00243 CONTINUE CALL BB10 GO TO 00226 00244 CONTINUE IERR=1 O0226 CONTINUE GO TO 00062 00223 IF(J.E0.9>GO TO 00245 GO TO 00246 00245 CONTINUE 1FCK.EQ.1>G0 TO 00247 GO TO 00248 00247 CONTINUE CALL B90t GO TO 00249 00248 I' CK.EQ.2)G0 TO 00250 C TO 00251 00250 CONTINUE CALL B902 GO TO 00249 f025l 1F(K.EQ.3)30 TO 00252 GO TO 00253 O0252 CONTINUE CALL B903

-278-

FORTRAN Control Programs

SO TO 00249 00253 IF(K.EO.1)00 TO 00254 GO TO 00255 00254 CONTINUE CALL B904 GO TO 002-39 00255 1F(K.E0.5>S0 TO 00356 GO TO 00257 00256 CONTINUE CALL B905 GO TO 00249 00257 IFIK.E0.6)G0 TO 00258 GO TO 00259 00253 CONTfNUE CALL B906 GO TO 00249 00259 IFCK.E0.7JGD TO 00260 GO TO 00261 00260 CONTINUE CALL B907 GO TO 00249 00261 1F(K.EQ.8)G0 TO 00262 GO TO 00263 00262 COMTINUE CALL B906 GO TO 00249 00263 IF(K.£O.9)G0 TO 00264 SO TO 00265 00264 CONTINUE CALL B909 GO TO 00249 00265 IFIK.EO.1O1G0 TO 00266 GO TO 00267 00266 CONTINUE CALL B910 GO TO 00249 00267 CONTINUE IERR=1 00249 CONTINUE GO TO 00062 00246 CONTINUE IERR=1 00062 CONTINUE GO TO LOOOOI, IG0055) END G SETtKODE.1PVT.INTO,REALD) C SUBROUTINE SETS PARAMETERS (KODE =1) AND VARIABLE INITIAL CONDITIONS 0 (KODE = 2) READ FROM DEVICE NI1 IN THE FORM C (I N Ml VALUES <l N M) VALUES ... C WHERE I IS THE PARAMETER OR VARIABLE INDEX AND N AND M ARE T..E FIRST C AND LAST ELEMENT LIST INDEXES RESPECTIVELY. VALUES ARE CONVERTED C TO THE TYPE SPECIFICATION OF PARAMETER/VARIABLE TYPE CODES IN ARRAY -279-

FORTRAN Control Programs

C IPVT: 1 = INTEGER 2 = INTEGER LIST 3 = REAL 4 = REAL LIST. C ITEMS ARE BLANK DELIMITED AND MAY BE INTERSPERSED WITH COMMENTS. SUBROUTINE SE1tKODE,IPVT,INTO.REALD) DIMENSION IA(I) COMMON RACI) EQUIVALENCE <1 A(1 ),RA(1 >> COMMON /SVSTEM/MFROM.MTO,ICTYPE,IPOINT, 1 IDUMP,ISECA,I TRACE,LB,LBCA,LDLI ST,LBPT,LBUF,LCSB,LE, 1LEC,LFFB.LFFE,LI,LLE,LLF6,LLFE,LMS,LNE,LP,LV,MINNFL, UIMSe.NFE.NFL.NI1,NIR.NOI,N02.NREP,NRW,NSE,TIME,TSTOP DIMENSION IPVTM) L1=LBUF*2 L80=LBUF+81 1FCKODE.EO.IIGO TO 00026 GO TO 00027 0OOS6 CONTINUE LPV=1 LIARA=LP !MAX=I»(LB*3) GO TO 00028 00027 IF(KODE.EC1.2)GO TO 00029 GO TO 00030 00025 CONTINUE LPV=]A(LB+3)+l LIARA=L1 iriAX=IA<LB-m> GO TO 00028 00030 CONTiNUE WRITE(NOI,00031) 00031 FOfUV\T(/lX, 15H ERROR /1X.25HSET ILLEGAL ARGJi'iENT KODE t CALL ERROR 00026 CONTINUE LSCAN=L1 ASSIGN 00032 TO L00001 GO TO 00001 00032 CONTINUE 00033 IF(I.GT.O>eO TO C0034 DO TO 00035 00034 CONTINUE IFtN.EQ.0>60 TO 00036 GO TO 00037 00036 CONTiNUE ASSIGN 00039 TO L00002 GO TO 00002 00039 CONTINUE ASSIGN 00040 TO L00003 GO TO 00003 00040 CONTINUE GO TO 00036 00037 CONTINUE J-U-I I) 00041 J=J + <

-280-

rORTRAN Cootroi ProQra.*i£

1F(C!) (J-(M)I.LE.0)00 TO 00042 GO TO 00043 00042 CONTINUE ASSIGN 00044 TO LO00O2 GO TO 00002 00041 CONTINUE ASSIGN 00045 TO L00004 GO TO 0O004 00045 CONTINUE GO TO 00041 00043 CONTINUE 00038 CONTINUE ASSIGN O00«l6 TO L0000I GO TO OO0O1 00046 CONTINUE GO TO 00033 0003S CONTINUE RETURN C 00001 CONTINUE IFCLSCAN.E0.L1)G0 TO 00047 60 TO 00046 00047 CONTINUE ASSIGN 00050 TO LOOOOS GO TO 00005 00050 CONTINUE IFJKEYWDCL1).GT.OIGO TO 00051 GO TO 00052 00051 CONTINUE BACKSPACE Nl1 1=0 GO TO 00053 00052 CONTINUE ASSIGN 00054 TO LOOOOS GO TO 00006 00054 CONTINUE OQ053 CONTINUE GO TO O0O49 C0046 CONTINUE ASSIGN 00055 TO L00006 GO TO 00006 00055 CONTINUE 00049 CONTINUE GO TO LOOOOI, (00032,00046) C 00002 CONTINUE ASSIGN 0005S TO L00008

GO TO OOOOB 0 0 0 5 6 CONTINUE

LPC1NT=0 REAL=0. NCHHCM(IACLSCAN)}

- 8 8 1 -

FORTRAN CorYtrol ProgrSHS

IFCNCH.GE.0 .AN0.NCH.LE.91G0 TO 0 0 0 5 7 GC TO 00054! 00057 CONTINUE SIGNS I. GO TO 00059 00058 1FCNCH.EQ.361G0 TO 00060 GO TO 00061 0OD6O CONTINUE

LSCAN'LSCANO NCM=ICH( IAILSCAN))

IFCNCH.GE.O.AND NCH LE.91G0 TO O0062 GO TO 0 0 0 6 3 00062 CONTINUE SIGN=1 GO TO 00064 00063 IF(NCH.EO.d2)G0 TO 0006S GO TO 00066 00065 CONTINUE LSCAN=LSCAN*1 NCHMCHI lA(LSCAN)) IF(NCH.LT.0.OR.NCH.6T.9)GO TO 00067 GO TO 00068 00067 CONTINUE WRITE(N01,00070) 00070 F0RMAT</1X.15H ERROR /1X, X 34HSET ILLEGAL CHARACTER FOLLOWING *.) CALL ERROR 00068 CONTINUE

S I G N = 1 . GO TO 0006<J 00066 CONTINUE WRITE(NOI,O0C71) 00071 FORMAT*/1X,1 Sri ERROR /1X, J< 33HSET [LLEGAL CHARACTER FOLLOWING •) CALL ERROR 00064 CONTINUE GO TO 00059 00061 ]F(NCH.EQ.39)GO TO 00072 GO TO 00073 00072 CONTINUE LSCAN=LSCAN*1 NCH=1CH(lA(LSCAN)) IF(NCH.GE.0.AND.NCH.LE,91G0 TO 00074 GO TO C0075 00074 CONTINUE SIGN=-l. GO TO 00076 00075 1FCNCH.E0.42>G0 TO 00077 GO TO 00076 00077 CONTINUE LSCAN=LSCAN*1 NCK=!CH(IAfLSCAN>>

-2ea-

FORTRAN Control Programs

IF(NCH.LT.0.OR.NCH.GT.9)GO TO 0C079 00 TO 00080 00079 CONTINUE WRITE(NO),00082) 00082 F0RMAT(/1X.15H ERROR /1X. X 34HSET ILLEGAL CHARACTER FOLLOW]N6 -.) CALL ERROR 00080 CONTINUE SIGN'-l. GO TO 00076 00078 CONTINUE WRITEtNOi,00083) 00083 F0RMATI/1X.15H ERROR /1X, X 33HSET ILLEGAL CHARACTER FOLLOW!N6 -) CALL ERROR 00076 CONTINUE GO TO 00059 00073 JF<NCH.E0.42)G0 TO 00084 GO TO 00085 00084 CONTINUE LPOINT=LSCAN LSCAN=LSCAN+1 NCH-ICHUA(LSCAN)) IF(NCH.LT.0.0R.NCH.GT.9)G0 TO 00086 GO TO 00067 00066 CONTINUE WRITECN01.00089) 00089 F0RMATC/1X.1SH ERROR /1X. X 33HSET ILLEGAL CHARACTER FOLLOW!NG .) CALL ERROR 00087 CONTINUE SIGN:]. GO TO 00059 00085 CONTINUE WRITECNOI,00090) 00090 FORMATr/1X,l5H ERROR /1X. / 44HSET DIGIT, + , -, OR . EXPECTED BUT NOT FOUND) CALL ERROR 00059 CONTINUE 0009T IF<NCH.L£.9.0R.NCH.EQ.42)G0 TO 00092 GO TO 00093 00092 CONTINUE IFtNCH.LE.9JS0 TO 00094 GO TO 00095 00094 CONTINUE REAL* >0. REAL+NCH GO TO O0096 00095 JFINCH.EQ.42JG0 TO 00097 60 TO 00098 00097 CONTINUE LPOINT=LSCAN GO TO 00096 -283-

FORTRAN Control Programs

00098 CONTINUE WRlTEtNOl.00099) 00099 FORMAT!/IX,ISH ERROR . iK,26HSET CANNOT INTERPRET VALUE! CALL ERROR 00096 CONTINUE L8CAN=LSCAM*1 IrCLSCAN.QT.LtOIGO TO 00100 60 TO 00101 00100 CONTINUE WRITEtNOI,001031 00103 F0RMATC/1X,15H ERROR /1X, X 34HSET END OF VALUE NOT FOUND OK LINE) CALL ERROR 00101 CONTINUE NCH=1CH(lA(LSCAN)) CO TO OO091 00093 CONTINUE ]F(LPOINT.EQ.O)GO TO 00104 GO TO 001OS 00104 CONTINUE REALMS 1GN REAL 00 TO 00106 00TO5 CONTINUE REAL=-SIGN REAL/CIO (LSOAN-LPO.' NT-1 ) ) 00106 CONTINUE 1 NT°REAL GO TO L00002, (00039,00044) C 00003 CONTINUE IFd.LT. I .OR. I .GT. IMAXJQO TO 00107 GO TO 00108 00107 CONTINUE WR[TE(NOt,0011O) 00110 F0RMAT(/IX,15H ERROR /1X,17HSET ILLEGAL INDEX) CALL ERROR 00108 CONTINUE JF(]PWT(LPV*M .EQ. I )GO TO 00111 GO TO 00112 00111 CONTINUE

1 A ( L I A R A * I > = I N T GO TO 001 S3

00112 I F < 1 P V T ( L P V + I ) . E 0 . 3 ) G O TO 00114 GO TO 001 I S 00114 CONTINUE RA(LIARA+11=REAL SO TO O0113 00115 CONTINUE WR!TE(N01,00116) 00116 FORMAT*/1X.1BH ERROR /1X,16HSET ILLEGAL TYPE) CALL ERROR 00113 CONTINUE GO TO L00003, (00040)

-264-

FORTRAN Control Prooraras

C 00004 CONTINUE IFII.LT.l.OR.I.6T.IMAXIO0 TO 00117 GO TO 00118 00117 CONTINUE UR1TECN01.00120) 00120 FORMAT!/IX,, 15H ERROR /1X,17HSET ILLEGAL INDEX) C.-LL ERROR 00116 CONTINUE IF(IA<LIARA*1).£Q.O)QO TO 00181 00 TO 00132 00121 CONTINUE IF<N,NE.1>S0 TO 00124 00 TO 00125 00124 CONTINUE WR[TE«N01,00127) 00127 FORMAT!/1X.15H ERROR /1X, X, 39HSE+ N MUST BE 1 WHEN LIST FIRST DEFINED) CALL ERROR 00125 CONTINUE IF(M.GT.100)00 TO 00128 00 TO 00129 00126 CONTINUE WRITEC59,00131) ' 00131 F0RMATI/IX.17H WARNING /1X. A 39HSET PARAMETER LIST EXCEEDS 100 ELEMENTS) 00129 CONTINUE CALL ASTOREIIAILIARA*t),M-N*3) JAUACLIARA*I)*3)=M-N*1 00122 CONTINUE

JFCJ.OT. I A U A < L I A R A * I > * 3 ) )G0 TO 0 0 1 3 ? GO TO 0 0 ) 3 3 00132 CONTINUE WRITE(N0l,O0135> 00135 F0RMAT(/1X.15H ERROR /1X, X 32HSET INDEX EXCEEDS LENGTH OF LIST) CALL ERROR 00133 CONTINUE JFUPVT!LPV*ll.EQ.2)eC TO 00136 GO TO 00137 00136 CONTINUE IA<LCSUA<LIARA+1 >,2*J))=INT GO TO 00136 00137 IFUPVTILPV+1).EQ.4)G0 TO 00139 GO TO 00140 00139 CONTINUE

R A ( L C S ( I A < L 1 A R A + ! ) , 2 * J ) ) = R E A L ISO TO 0 0 1 3 8

00140 CONTINUE WRIT£<N01,001411

00141 FORMAT!/1X,1SH ERROR /1X ,16HSET ILLEGAL TYPE) CALL ERROR

-265-

FORTRAN Control ProQram

00138 CONTINUE GO TO L00004, 100045) C 00005 CONTINUE IE0F=0 READ!Nl1,00142)<1A(K).K=L1. L80) IFUFIXIF.CFINI I 1 I .NE.0160 TO 99999 00142 FORMAT(80M1) lFtKEVUOfUl.EO.OIGO TO 00143 GO TO 00144 00143 CONTINUE WR1TECN01 .00146M I A(K) , K=L 1 , L60) 00143 FORMAT!1X,80A1> 1FC1PCINT.EQ.3>G0 TO 00147 GO TO 00148 00147 CONTINUE WR1TECN02.00150)(IA(K),K=L1,L80) 00150 FORMAT!IX,B0A1) 0014S CONTINUE 00144 CONTINUE GO TO 001 SI 99999 IE0F=1 00151 CONTINUE 1F11E0F.EQ.t)SO TO 00152 OO TO 00153 00152 CONTINUE WRITEtNOl,00155) 00155 FORMAT!/1X,I5H ERROR /IX.2IHSET END OF INPUT FILEJ CALL ERROR 00153 CONTINUE 60 TO L00005, 100050) C 00006 CONTINUE 00156 IF(1ACLSCAN>.NE, 1HD60 TO 00157 SO TO 00158 00157 CONTINUE LSCAN=LSCAN+1 IF(LSCAN.GT.l_60)<50 TO 00159 GO TO 001 SO 00159 CONTINUE ASSIGN 00168 TO L00005 60 TO OOOOS 00162 CONTINUE !F(KEYUD<L1).GT.0)GO TO 00163 GO TO 00164 00163 CONTINUE BACKSPACE NI 1 1=0 N=0 M=0 GO TO L.00006, {GC?S4, 00055) 60 TO 00165

-286-

FORTRAN C o n t r o l Progrrarts

00164 CONTINUE LSCAN=L1 00165 CONTINUE 00160 CONTINUE GO TO 001S6 00153 CONTINUE LSCAN»LSCAN+1 ASSIGN O0166 TO L00002 00 TO 00002 00166 CONTINUE 1FUNT.GT.0.AND.1NT.LE.1MAXJGO TO 00167 GO TO 00166 00167 CONTINUE I = INT ASSIGN 00170 TO L00007 GO TO OO0O7 00170 CONTINUE I FUA<LSCAN) .EO 1H1.AND. < IPVTCLPV* ! ) .EQ. 1 -OR. IPVT<LPV* I ) . E Q . 3 ) ) G S

X TO 00171 GO TO 0 0 1 7 2 00171 CONTINUE N=0 11=0 GO TO 00173 00172 1FC1CHIlA(LSCAN)).LE.9.AND.(IPVTILPV+1).EO.2.OR.)PVT1LPV+I)

X. .EO. D))GO TO 0C174 GO TO 00175 00174 CONTINUE ASSIGN 00176 TO L00002 GO TO 00002 00176 CONTINUE N=!NT ASSIGN 00177 TO L00007 GO TO 00007 00177 CONTINUE NCH=ICHC1ACLSCAN>) 1F(NCH,GE.0.AND.NCH,LE.9)G8 TO 00178 GO TO 00179 O0176 CONTINUE ASSIGN 001SI TO L00002 GO TO 00002 00161 CONTINUE

M=INT GO TO 0 0 1 8 0

00179 CONTINUE WRITE(N01 ,00182 ) 00182 F0RMATI/1X,15H ERROR /1X,24HSET ILLEGAL LIST INDEX Ml CALL ERROR 00180 CONTINUE GO TO 00173 00175 CONTINUE WR1TECN01,00183)

-267-

FORTRAN Control Programs

00183 F0RMAK/1X, I5H ERROR /1X.24HSET ILLEGAL LIST INDEX M CALL ERROR 00173 CONTINUE GO TO 00169 00168 CONTINUE WRITE(N0I,00184) 00184 FORMATS 1X.15H ERROR /IX,24HSET ILLEGAL LIST INDEX I) CALL ERROR 00169 CONTINUE 1F(IA(LSCAN>,E0.1H))G0 TO 00165

eo TO 001ee 001BS CONTINUE LSCAN=LSCAN+1 SO TO 00187 00186 CONTINUE WRITEIN01.00188) 001S8 FORMAT*/1X.15H ERROR /1X, X 40HSET RIGHT BRACKET EXPECTED BUT NOT FOUND) CALL ERROR 00187 CONTINUE SO TO LOOOOS, (00054,00055) C 00007 CONTINUE 0C169 1FUAILSCAN) , EQ. 1H >G0 TO 00190 GO TO 00191 00190 CONTINUE ASSIGN 00192 TO L00010 GO TO 00010 00192 CONTINUE

GO TO 00189 00191 CONTINUE

GO TO L00007, (00170,00177) C 00006 CONTINUE ASSIGN 00193 TO L00007 GO TO 00007 00193 CONTINUE NCH=ICHClA(LSCAN)) 00194 IFINCH.LT.O.OR.<NCH.ST.9.AND.NCH.NE.38.AND.NCH.NE.39.AND.NCH.NE. X 42>)G0 TO 00195 GO TO 00196

00195 CONTINUE ASSIGN 00197 TO L00009 GO TO 00009 00197 CONTINUE ASSIGN 00198 TO L00007 60 TO 00007 00198 CONTINUE NCH-ICHCIA(LSCANI) GO TO 00194 00196 CONTINUE 1FCNCH.LT.OJGO TO 00199

-288-

FORTRAN Control Programs

eo TO oosoo 00199 CONTINUE WRITGIN01.00202) 00202 F0RMAT( /1X,1SH ERROR /"IX,21HSET ILLEGAL CHARACTER)

CALL ERROR 0 0 2 0 0 CONTINUE 00 TO LOOOO0, (0OO58) 00009 CONTINUE 00203 IFIIA(LSCAN).NE,IH ISO TO 00204 GO TO OOZOS 00204 CONTINUE ASSIGN 00206 TO LOOOIO GO TO 00010 00206 CONTINUE GO TO 00203 00205 CONTINUE GO TO L00009, (0019?) C 00010 CONTINUE LSCAN=LSCAN*1 IF<LSCAN.GT.L80)G0 TO 00207 GO TO 00208 00207 CONTINUE ASSIGN 00210 TO L00005 GO TO OOOOS 00210 CONTINUE IF<KEYWO<L1).GT.OJGO TO 00211 GO TO 00212 00211 CONTINUE BACKSPACE NI1 WRiTE<N01,00214) 00214 FORMATI/IX.ISH ERROR /1X.22HSET UNEXPECTED KEYWORD) CALL ERROR GO TO 00213 00212 CONTINUE LSCAN=L1 00213 CONTINUE 00208 CONTINUE GO TO LOOOIO, (00192,002Q6J C OETVIKODE,IPVT,INTD.REALD) C ENTRY RETURNS JNTEGER fREALJ VALUE OF THE NEXT NUMBER IN THE 0 INPUT DATA. ENTRY SETV L1=LBUF+2 L80=LBUF+8I ASSIGN 00215 TO L0O002 GO TO 00002 002)5 CONTINUE INTO*INT REALO=REAL RETURN

-289-

FORTRAN Control Programs

C FBLANKIKODE,IPVT,INTD.REALD) C ENTRY INCREMENTS SCAN POINTER LSCAN TO FIRST BLANK. ENTRY FBLANK LIsLBUF'"? LS0'<LBUF'-91 LSCAN=L1 00216 tF(!A<Lf,CAN).NE. )H >GO 1C 00217 GO TO 002IS 00217 CONTINUE LSCAN=LSCAN*1

IFILSCAN.GT.L8OX50 TO O0219 SO TO 00220

00219 CONTINUE URITE(N01.00222) 00222 FORMAT!/IX.1SH ERROR /IX, X 30HSET NO BLANK DELIMITER ON Lift) CALL ERROR O0Z20 CONTINUE (30 TO 00216 00216 CONTINUE RETURN END C i:i1ER(K.I,T)

C SUBROUTINE SUPPLIES TIMING INFORMATION BASED UPON THE INTERACTION C RESPONSE OF A 601 TIMR FtlNi^lON. I !S SET TO t AND T TO TIME IF UP. C I IS SET TO 2 IF DOWN TILL THE NEXT SHIFT AT TIME 1 AND TO 3 C IF DOWN TILL THE NEXT INTERVAL AT TIME T. SUBROUTINE TIMER<K,!,T) DIMENSION I A d ) COMMON RACM EQUIVALENCE <IAM! RAM>> COMMON /SYSTEM/MFROM.MTD, ICTYPE, IPOINJT, 11 DUMP,ISECA,I TRACE,LB,LBCA,LBLIST.LBPT LBUF,LCSB,LE, 1LEC,LFFB,LFFE,LI,LLE,LLFB.LLFE,LMS,LNE,LP,LV.MINNFL 1MNS>E,NFE, NFL, Nl 1 ,N12, N01 , N02, NREP, NRUN NSE, TJHE TSTOP JFtK.EQ 2)G0 TO 00026 . . . . GO TO 00027 00C26 CONTINUE IF(IA<IP0tNT*l).EQ.O»GO TO 00029 GO TO 00030 00039 CONTINUE 1=2 T=RA<tP0INT«3) 00 TO 00031 00030 CONTINUE 1=1

T=TIME 000aI CONTINUE 60 TO 00028 00027 IF(K.EO.3»G0 TO 00032 GO TO 00033 0003S CONTINUE -290-

FORTRAN Conirol PrograftS

IF( IACIP0INT*4) .E0.01GO TO 0003d GO TO 00039 00034 CONTINUE 1=3 T.-RA( I^0INT<6) 00 TO 00036 00035 CONTINUE 1=1 T=TIME 00036 CONTINUE SB TO 00028 00033 CONTINUE

WRITE(N01 ,000371 00037 FORMAK/1X, 15H ERROR / 1 X , 26HTIMER ILLEGAL TIMING CODE)

CALL ERROR 0OD2B CONTINUE

ICTYPE=1AC<LMS,IA(LMS«3)«1) I P 0 1 N T = I A C ( L M S , i A C L M S * 3 ) * 2 ) RETURN END C TRNFRMCNC,FB,L1,L2) C SUBROUTINE TRANSFERS ALL (IF NC < 0) OR THE FIRST NC (IF NC > 0) C CONTAINERS AND FRACTION FB OF THE BULK MATERIALS AT LI TO L£. SUBROUTINE TRNFRMfNC,FS,LI,L2> DIMENSION IAI1) COMMON RAM ) EQUIVALENCE (IA(1),RA<1)) COMMON /SYSTEM/MFROM.MTO.ICTYPE,IPOIMT, 1 I DUMP, ISECA,JTRACE,LB,LBCA,LBL1ST,LBPT,LBUF,LCSB,LE; lLEC.LFFB^FFE.LI.LLE.LLFB.LLFE.LMS.LNE.LP.LV.MINNFL, 1MNSE,NFE,NFL,NI1,NI2,N01,N02,NREP.NRUN,NSE,TIME,TSTOP IF(ITRACE.GE.5)GQ TO 00026 GO TO 00027 00026 CONTINUE W R I T E ( N 0 1 , 0 0 0 2 9 ) T ! M E , I A < L B * 2 >

00029 FORMAT* I X , E I 0 . 4 , 14, 2X, 1 9HTRNFRM(NC, FB-, L I , L2 ) ) WRITE (NO I , 000301 NC, FB, L I , 1.2

00030 FORMATdX, 16 , El 2 . 4 , 2 1 6 ) 00027 CONTINUE IF(ITRACE.SE.6.AMD.(ITRACE.EO.1 TRACE/2 2) >G0 TO 00031 GO TO 00032 00031 CCNTSNUE W R I T E ( N 0 2 , 0 0 0 3 4 ) T I M E , I A ( L B * 2 )

00034 F 0 R M A T M X . E 1 0 . 4 , 1 4 , 2 X , 1 9 H T R N F R M I N C , F B , L I , L 2 ) > W n i T E < N 0 2 1 0 0 0 3 5 ) N C , F B , L l , L 2

00035 F O R M A T ! I X , 1 6 , E 1 2 . 4 , 2 1 6 ) CALL 1 CHECK 00032 CONTINUE CALL NCBI-KL1 . NCL1 , BML 1 ! IF(NC.LT.O)GO TO 00036 GO TO 00037 00036 CONTINUE

FORTRAN Conxrol Proflrans

IFtNCLl.GT.OIGO TO 00039 GO TO 00040 OGC4& COflTiNUE ASSIGN 00042 TO LOOOOI GO TO 00001 00042 CONTINUE 00040 CONTINUE GO TO 00038 00037 IF(KC.GT,0>GO TO OOQ43 GO TO 00044 00043 CONTINUE

JFIMCLI .GE.NOGO TO 0-0045 GO TO 00040 00045 CONTINUE ASSIGN O0O4S TO LOO0O1 GO TO 00001 00048 CONTINUE GO TO 00047 00046 CONTINUE WRITEtNOI,00049) 00049 FORMAT!/IX,1SH ERROR /1X, X 34HTRNFRM NOT ENOUGH CONTAINERS AT LI) CALL ERROR 00047 CONTINUE 00044 CONTINUE 00036 CONTINUE IFtFB.GT.O.IGO TO OOOSO GO TO 00051 00050 CONTINUE IFtBMLl.GT.O.)G0 TO 00053 GO TO 00054 O0G53 CONTINUE ASSIGN 00055 TO LO00O2 GO TO O0O02 00056 CONTINUE 00054 CONTINUE 00051 CONTINUE CALL UMOtLI> CALL UMDIL2) IF<ITRA0E.GE.5)GO TO 00057 GO TO 0005S 00057 CONTINUE WRITEtNOI.000601T1ME,IA<LB+2> 00060 FORMATt1X.EI0.4.I4.2K,11HTRNFRM OONEI 00058 CONTINUE IFUTRACE.GE.6.AN0. ( 1 TRACE. EO. I TRACE/2 2) IGO TO 0OC61 GO TO 00002 00061 CONTINUE W R I T E C N 0 2 , 0 0 O 6 4 J T I M E , I A ( L 8 * 2 >

00064 FOUMATt I X , E 1 0 . 4 , 1 4 , 2 X , MHTRNFRM DONE) CALL I CHECK 00062 CONTINUE

-292-

I

!

FORTRAN Corr t ro l Prvgrz.r

c 00001

RETURN CONTINUE ASS I ON 00065 TO L00003 60 TO 00009 00065 CONTINUE ASSIGN 00066 TO L00004 60 TO 00004 00060 CONTINUE GO TO L00001, (00042,00046)

c 00002 CONTINUE ASSIGN 00067 TO LOOOOS 60 TO 00005 00067 CONTINUE ASSIGN 0006S TO L00006 60 TO 00006 0006a CONTINUE ASSIGN 00069 TO L00007 GO TO 00007 00069 CONTt NUE C 00003

60 TO L00002. (00056) C 00003 CONTiNUE l_=!AIL1+S1 lFUA(L + 5) .EO. 1 >G0 TO 00070 GO TO 00071 00070 CONTINUE M=L*4 L=JA(L*4) GO TO 00072 00071 IF(IA(L+6).E0,2)0Q TO 00073 GO TO 00074 00073 CONTINUE M=Ll+5 00074 CONTINUE 00072 CONTINUE L1FC=L IFCNC.LT.OIGO TO 00075 60 TO 00076 00075 CONTINUE 1A(M)«0 GO TO 00077 00076 CONTINUE N=1 00078 IF(N.LT.NC)GO TO 00079 60 TO 00060 00079 CONTINUE L=1A(L-M) N=N«1 GO TO 00076 00060 CONTINUE

FORTRAN Corarol Prograns

I/-CM) = !AfL*<3) |A<L*4>=0 00077 CONTINUE GO TO L00003, f0006S] c 00004 CONTINUE lf<IA»La+S).E0.0)GO TO 00081 00 TO 00082 00081 CONTINUE IA<L2»5)-L1FC

IA(L1FC*2)=1 1 SO TO 00083 00082 CONTINUE L = I A < L 2 * 5 )

0OOU4 IF< I A f L * 4 ) GT.OXSU TO 0008S GO TO 00086 0C0S5 CONTINUE L=lACL+4) 60 TO 00034 00066 CONTINUE IA(L*4)=L1FC IA(L1FC+3)=L IA(L1FCi-2)=0 00OS3 CONTINUE GO TO L00004. (0006SJ C OOG05 CONTINUE IF(IA(L1+6).EC.1)G0 TO 00087 GO TO 00088 00067 CONTINUE LIB=L1 00 TO 00089 00088 CONTINUE L=!AtL1*5) IFCIACL*6).E0.1)GO TO OOO&O GO TO 0D091 OOOSO CONTINUE HB=L GO TO O0092 00091 CONTINUE WR!TE(N01,00093) 00093 FORMAT! / TX, 1SH ERROR /1X, 26HTKNFRI1 LOCATING BULK AT LI) CALL ERROR 00092 CONTINUE 00039 CONTINUE GO TO LOOOOS, (00067) C 00006 CONTINUE IF<!ACL2*S> . EQ.1)00 TO 00094 GO TO 00095 00094 CONTINUE L2B=L2

rCRTRAN Control Programs

GC TO 00036 00095 IF( 1A(L2-*S! .GT.OIGO TO 00097 GO TO 000S6 00097 CONTINUE L=!ACL2»5>

1 F ( I M L * 6 » E 0 . 1 ><J0 TO 0 0 0 9 9 0 0 TO 00100

00099 CONTINUE L2B=L GO TO 00101 001D0 ]F(1A(L*6).EQ P.) GO TO 00102 GO TO 00103 00102 CONTINUE CALL CMB(IA(L2+SI,L2,0,L.O,1,0,0,0.) IA(L+2)=0 IA(L+3)--lA<L2+5) L2B=IA(L2+5) GO TO 001O1 00103 CONTINUE WR1TE(N01,00104) 00104 FORMAT!/1X, 15H ERROR /1X. 26HTRNFRM LOCATING BULK AT 12) CALL ERROR 00101 CONTINUE GO TO 00096 00098 IF(rA(L2*5) EQ.0)G8 TO 00t05 GO TO 00106 00105 CONTINUE CALL Ct1BUA(L2*S> , L 2 , 0 , 0 , 0 , 1 , 0 , 0 . 0 . ) L2B=1A(L2*S)

GO TO 00096 001 OS CONTINUE WRITECN01,00107) 00107 FCRMAT(/1X.15H ERROR /)X.26HTRr!FRM LOCATING BULK AT L2) CALL ERROR 00096 CONTINUE GO TO L00O06, (00068) C 00007 CONTINUE L=IAIL1B«5) 00106 1FCL.GT.3)G0 TO 00109 GO TO 00110 00109 CONTINUE LH2=L2B LPZ=0 LM=L2B«5 M=IA(LM) 00111 IF(M.GT.0.AND.(A(H«7> . NE . ! A(L+7) )G<5 T<0 00112 GO TO 00113 00112 CONTINUE

LH2=0 LP£=M M= lA(M-d )

- 8 9 5 -

FORTRAN Control Prosrans

SO TO 00111 00113 CONTINUE

I F I M . E C O J G O TO 00114 GO TO 001 -.5 00114 CONTINUE IFILH2.GT.0IG0 TO 00117 GO TO 00118 00117 CONTINUE CALL CMSIM,LH2,0,0,0,0,I AIL-7),0,0.) IAILH2*S1=M GO TO 001:9 00»1G CONT'.-IUE CALL CMB(H,0,LP2,n,0,0,1A(L»7J,0,0.) IA'LP2*4J=M 00119 CONTINUE 001 15 CONTINUE NT-; 8 FLOAT<lA(L»»)) IA<M*0>=-1ACM*8!*NT IA<L*ei=lA(L*81-NT T=F6 RACL*9) RA<M+9>=RA{M+9HT RA<L*9J=RA(L*91-T L=lAtL*41 GO TO 00108 00110 CONTINUE GO TO L00007, (00069) END C UMD(LM) C SUBROUTINE UPDATES MATERIAL DATA AT LL*L. SUBROUTINE UKDILM) DIMENSION IA<1) COMMON RA<1 ) EQUJVALENCE (1 AT 1 ).RAII 1) COMMON /SYSTE;I/MFROM,MTO, ICTYPE, IPOIMT,

11DUR F. 15ECA.I TRACE,LB.LBCA,LBLIST,LBPT.LBUK,LCSB.LE, 1LEC.LFFB.LFFE,LI,LLE.LLFB,LLFE,LMS,LUE.LP,LV.M1NNFL. 1KNSS,NF£.NFL.NI1.NI2,N01.N02,NREP,NRUN.NS£,TIME.TSTOP IF(1 -RACE.GE.5)G0 TO 00026 SO TO 00027

00026 CONTINUE WRITEIN01,00029)T1ME,1AILB*21 0002S FORMrtTIIX.E10.4,la,2X,7HUMD(LM)J WRITE C NO1,00030)LM 00030 FORMAT!1X,I 101 00027 CONTINUE 1FII7RACE.GE.6.AND,(ITRACE.EO.ITRACE/2 2))G0 TO 00031 GO TO 00032 00031 CONTINUE WR[T.T<N02. 000341 TIME, IA(LB*2J 00034 FORMAT!IX,El 0.4,14.2X,7HUMDILM)) WR1TE< N02,0C0351LM 00035 FORfuTt1X,I 10)

-296-

FORTRAN Control Progrsns

CALL I CHECK 00032 CONTINUE M0DE=1 L = LM 00036 1F(L.NE.LM.0R.M0DE.NE.4)G0 TO 00O37 GO TO 00038 00037 CONTINUE ASSIGN 00039 TO LOOOOI GO TO 0000) 00039 CONTINUE 00 TO 00036 00036 CONTINUE 1F(17RACE.GE.5>G0 TO 00040 GO TO 00041 00040 CONTINUE WRITE!N01,00043)TIME, IAILB+2) 00043 FORMAT!1X,E10.4,14,2X,8HUMD DONE) 00041 CONTINUE IF<1TRA0E.GE.6.AND.<1TRACE.EQ.ITRACE/2 2))G0 TO 00044 GO TO 00045 0004/1 CONTINUE WRITE(NO2,00047)TIME,IA(LB*2> 00047 FORMATC1X,El 0.4,I1,2X,6HUMD DONE) CALL I CHECK 00045 CONTINUE RETURN C 00001 CONTINUE IFCMODE.EO.1)G0 TO 00048 GO TO 00049 00048 CONTINUE 1F(1ACL*5).GT.0J6O TO 00051 GO TO 00052 00051 CONTINUE L=lACL+5) GO TO 00053 00052 IF(IA(L»4>.GT.O)GO TO 00054 GO TO 00055 00054 CONTINUE MODE=2 L=IA(L+4) GO TO 00053 00055 CONTINUE M0DE=3

ASSIGN 0 0 0 5 6 TO 1.00002 GO TO 00002 00056 CONTINUE 00053 CONTIMUE GO TO 00050 00049 ]F(MODE.EQ.2)GO TO 00057 GO TO 00058 00057 CONTINUE

-297-

FORTRAN Control Proflrans

IF(!A(L*5).GT.O)GO TO 00059 GO TO 00060 00059 CONTINUE M0DE=1 L=IA(L+S) GO TO 00061 00060 IF(IA(L*4).GT.0i&0 TO 00062 GO TO 00063 00062 CONTINUE L=!A(L+4) GO TO 00061 00063 CONTINUE MODE'3 ASSIGN 0006-4 TO L00002 60 TO 00002 00064 CONTINUE 00061 CONTINUE GO TO O0O50 O0OS8 IF<M0OE.EO.3)GO TO 0006S GO TO 00066 00065 CONTINUE ASSIGN 00067 TO L00003 <SC TO 00003 00067 CONTINUE JF< 1A(L*2).GT.O)<30 TO 00066 GO TO O0069 J0068 CONTINUE M0DE=4 L=IA(L+2> ASS16N 00071 TO L00005 GO TO O0O05 00071 CONTINUE GO TO 00070 00069 IF(IA<L*3),GT.0)G0 TO 00072 GO TO 00073 00072 CONTINUE L=IA(L+3> GO TO 00070 00073 CONTINUE IF(L.EO.LM)G0 TO 00074 GO TO O0O75 00074 CONTINUE MODE=4 ASSIGN 00077 TO L00002 GO TO O0O02 00077 CONTINUE ASSIGN 00078 TO L00005 GO TO 00005 00078 CONTINUE GO TO 00076 00075 CONTINUE ASSIGN 00079 TO L00004

GO TO 00004 00079 CONTINUE 00076 CONTINUE 00070 CONTINUE

GO TO 00050 00066 IF(M0DE.EQ.4)S0 TO 00060

GO TO 00061 00060 CONTINUE

1FC1A(L+4).GT.0>G0 TO 00062 00 TO 00083

00082 CONTINUE M0OE»2 l_=IA(L»4)

GO TO 00064 00083 !F(1A(L*3).GT.0)G0 TO 0008S

GO TO 00066 00085 CONTINUE

M0DE=3 L=I*CL»3)

GO TO 00O64 00086 IFUA<L*Z».GT,0)GO TO 00067

GO TO 00066 00087 CONTINUE

L=IAfL*2> ASS16N 00089 TO L00005 GO TO 00005

00069 CONTINUE GO TO 00064

00086 CONTINUE ASSIGN 0O090 TO LOOO04 GO TO 00004

00090 CONTINUE 00084 CONTINUE

OO TO 00050 00061 CONTINUE

ASSIGN 00091 TO L00004 GO TO 00004

00091 CONTINUE 00050 CONTINUE

GO TO LOOOOI, (00039) C 00002 CONTINUE

N=0 A = 0. GO TO L00002, (00056,00064,00077)

C 00003 CONTINUE

IF(!A<L*8> ST.0.0R.RA<L+"O ,GT.O.)GO TO 00092 GO TO 00093

00092 CONTINUE N=N*1ACL*8) A=A*RACL*9)

-299-

FORTRAN Control Programs

GO TO 00094 00093 CONTINUE ASSIGN 00095 TO L00006 GO TO 00006 00099 CONTINUE 00094 CONTINUE GO TO L00003, (00067) C 00004 CONTINUE WRITE*NO1.00096) 00096 FORMAT! /1 ><, 15H ERROR /1X.27HUMD MATERIAL DATA STRUCTURE) CALL ERROR GO TO L00004, (00079,00090,00091) C 00005 CONTINUE iA(L*ai=n RA(L*9)=A GO TO L00005, (00071,00076,00089) c 00006 CONTINUE IF(L.NE.LM)GO TO 00097 GO TO 00098 00C97 CONTINUE 1 F U A ( L + 5 J . © T . 0 ) G 0 TO 0 0 1 0 0 GO TO 00101

00100 CONTINUE UFUTECN01.O0103) 00103 FORMAT!/1X,1SH ERROR /1X,17HUMD REMOVEBLOCK 1) CALL ERROR GO TO 00102

00101 I F ( I A < L * 3 ) . G T . 0 . A N D . ] A ( L + 2 ) . E O . O J G O TO 00104 GO TO 00105

00104 CONTINUE IA(IAIL+3'*4]=1A(L*4) IF(IAIL*4).GT,0)eO TO 00106 GO TO 00107 00106 CONTINUE IA(IA<L*4)*3)=IA<L+3> 00107 CONTINUE GO TO 00102 00105 1F<1A(L*2).GT.O.AND.IA(L*3).£Q.0)G0 TO 00109 GO TO 001IO

00109 CONTINUE !A(IA(L*2)*S)=|A(L*4) IF(1A(L+4).GT.0)G0 TO 00111 GO TO 00112 00111 CONTINUE IA(!A'-+4)+2)sIA(L+2) 00112 CONTINUE GO TO 00102 00110 CONTINUE WR1TE<N01,00114)

-300-

FORTRAN Control Programs

00110 F0RMAT(/1X,15H ERROR /1X,17HUMD REMOVEBLOCK 2) CALL ERROR 00102 CONTINUE CALL FSTORE(L) O0098 CONTINUE 00 TO L00006, <00095J END C URNCJX.U) C SUBROUTINE RETURNS UNIFORMLY DISTRIBUTED INTEGER IX ON THE INTERVAL C (1,100001 AND UNIFORMLY DISTRIBUTED REAL U ON THE INTERVAL {0.,I.1. SUBROUTINE URNHX,U) DIMENSION 1AC1) COMMON RAC1) EQUIVALENCE UA<1),RAM)) COMMON /SYSTEM/MFROM.MTO. ICTYPE.1POIMT, 11 DUMP,1SECA.1 TRACE,LB,LBCA,LBLIST.LBPT,LBUF,LCSB,LE. 1 LEC,LFFB, LFFE, LI , LLE, LLFB, LLFE, LMS, LNE, LP, L<l, MINNFL IMNSE.NFE.NFL^II.NIZ.NOl.NOS.NREP.NRUN.NSE^iriE.TSTeP DATA X/O./ IFtlX.LT.01GO TO 00026 60 TO 00027 OO026 CONTINUE CALL RANQET(X) IF<]TRACE.6E.9)60 TO 00029 60 TO 00030 00029 CONTINUE

Wf i ITE<N01 ,00032)T lME, IACLB*21 0 0 0 3 2 FORMAT(1X,E10.4 , ld ,2X,3HUR.MJ

WR1TI?<N01,000331X 0 0 0 3 3 FORMATt|X,SHRANF SEED,E12 .41 00030 CONTINUE 1FCITRACE.GE.6.AN0.tlTRACE.EO..1TRACE/2 2)!G0 TO 00034 00 TO 00035 00034 CONTINUE WRJTE<N02,00037)TIME,IAtLB+2) 00037 F0RMAT(1X,E10.4,I4,2X,3HURN) WRITECNO2,O0038)X 00033 FORMAT(IX,9HRANF SEED,E12.4I CALL I CHECK 0G035 CONTINUE CALL RANSET(X) GO TO OJ028 00037 CONTINUE UsRANFCO) IX=U 10000.+1 0002B CONTINUE RETURN END C WRMD(LM) C SUBROUTINE WRITES MATERIAL DATA AT LH ON OUTPUT DEVICE NOt. SUBROUTINE WHMO(LM) DIMENSION IAM)

-301-

FORTRAN Conirol Programs

COMMON RAM) EQUIVALENCE UA(1).SA(U) COMMON /SYSTEM/MFR6M,MTO,I CTYPE,IPOINT, 1IOUMF,I5ECA,lTRACE,LB,LBCA,LBLIST.LBPT,L.BUF,LeSBlLEI 1LEC,LFFB,LFFE,Lt,l '.* £LFB.LLFE.LMS.LNE,LP.LV.M1NNFL. IMNSE.NFE.NFL.NII, i.' 'Ol.N02,NREP,NRUH,NSE,TIME,TSTOP !F(LM.LE,0)S6 TO O0026 00 TO 00027 00026 CONTINUE WRITEIN01 ,00029)Lr, 00029 FORMAT!1IX,14HN0 MATERIAL AT,16) RETURN 00027 CONTINUE MOOE-1 L=LM 00030 IFfL.NE.LM.OR.MODE.NE.4(80 TO 00031 SO TO 00032 00031 CONTINUE ASSIGN 00033 TO LOOOOI GO TO 00001 00033 CONTINUE 00 TO 00030 00032 CONTINUE ASSIGN 00034 TO L00002 SO TO 00002 00034 CONTINUE RETURN C 00001 CONTINUE IFIMBDE.EO.1)S0 TO 00035 GO TO 00036 00035 CONTINUE 1F(1A«L.*5> ST.OJGO TO 00036 60 TO 00039 C0038 CONTINUE L=IAIL+5) GO TO 00040 00039 IF(IA<1*4).GT,0)GO TO 00041 GO TO 00042 00041 CONTINUE M00E=2 L=1ACL*4) GO TO 00040 00042 CONTINUE M00E=3 00040 CONTINUE GO TO 00037 00036 J FtMODE.EO-2)GO TO 00043 GO TO 00044 00043 CONTINUE IFCIA<L*S).GT.O)GO TO 00045 60 TO 00046 -302-

00049 CONTINUE I10DE=1 L = I A ( L * 5 )

SO TO 00047 0 0 0 4 6 1 F U A < L + 4 > . D T . 0 ) G 0 TO 0 0 0 4 8

0 0 TO 00049 00046 CONTINUE L=tA(L+4> GO TO 00047 00049 CONTINUE M0DE*3 00047 CONTINUE

GO TO 00037 00044 IF(MODE EQ.3X30 TO OOOSO

GO TO 00091 00050 CONTINUE |F<L.NE.LM1G0 TO 00052 GO TO 00053 00052 CONTINUE ASSIGN 00055 TO L00002 GO TO 00002 00055 CONTINUE 00053 CONTINUE IFUA<I-*2).GT 0)GO TO 00056 60 TO 00057 00056 CONTINUE M0DE=4 L-lA<L+2) GO TO 00058 00057 IF(IA<L+3).ST.0)G0 TO 00059 GO TO 00060 OC059 CONTINUE L=IA(L+3) GO TO 00058 00060 CONTINUE IFtL.EQ.LMJGO TO 00061 GO TO 00062 00061 CONTINUE M0DE=4 GO TO 00O63 00062 CONTINUE ASSIGN 00064 TO L00003 GO TO 00003 00064 CONTINUE 00063 CONTINUE 00058 CONTINUE GO TO 00037 O0051 IF«M0DEE0.4)G0 TO 00065 GO TO 00066 00065 CONTINUE

l F U A t V O J . G T . O J G O TO 0 0 0 6 7 30 TO 0OOS8

00067 CONTINUE MODE=2 L=IA(L*4> 60 TO 00099 00C68 IF(IA(L+3J.GT.0>G0 TO 001)70 00 TO 00071 00070 CONTINUE ASSIGN 00072 TO L00002 00 TO 00002 00072 CONTINUE MODE»3 L-IML<-3> GO TO 0OOS9 00071 IF(IACL+2).GT.0)G0 TO 00073 GO TO 00074 00073 CONTINUE ASSISN 0O07S TO LOOOOE GO TO 00002 00075 CONTINUE L3IA(L»2) GO TO 00069 00074 CONTINUE ASSIGN 00076 TO L00003 GO TO 00003 00076 CONTINUE 00069 CONTINUE GO TO 00037 00066 CONTINUE ASSIGN 00077 TO L00003 GO TO 00003 00077 CONTINUE 00037 CONTINUE

GO TO L00001, (00033) C 00003 CONTINUE WRITEINOI,00076>L,(IA(L*l),|s2,B).RA(L+9) 00076 FORMATC10X.5J6.2I3,1I0.E12 4) GO TO L00002, (00034,00055,00072,00075) C •0003 CONTINUE WRITECN01,00079) 00079 FORMAT!/IX.15H ERROR /IX, X 36HMATER1AL DATA STRUCTURE ERROR (WRMO) > CALL ERROR GO TO L00003, (00064,00076,00077) END C Z1A(L,N) C SUBROUTINE ZEROS N ELEMENTS OF IA STARTING AT L. SUBROUTINE ZIA(L,N) DIMENSION IA(I) COMMON RA(1) EQUIVALENCE <IA(1>,RA(1))

-304-

FORTRAN Control Prograns

COMMON /SYSTEW/MFROM.MTO,ICTVFE,I POINT, 1 I DUMP,1SECA,I TRACE,LB.LBCA,LBLIST,LBPT,LBUF,LCSB,LE, I LEC, LFFB, LFFE ,L i , I.LE, LLFB, LLFE,LMS, LNE, LP, LV, Ml NNFL, 1MUSE.NFE N F L . N U NI 2,NOt ,N02,NREP, NRUN.NSE, Tlr ie .TSTOP

1 = 1 - 1 1 ) 00026 1=1*1 1FC(I> U-CN>),LE.0>G0 TO 00027 GO TO 00026 00027 CONTINUE 1A<L-1*1 )=0 <*n ret oin?(>

00028 .-..JINot RETURN END C ZIAC<LOC) C SUBROUTINE SETS ALL LOCATIONS IN THE BLOCK CHAIN AT LOC TO C INTEGER ZERO CO). SUBROUTINE ZIAC(LOCI DIMENSION IA<1) COMMON RAC1 ) EQUIVALENCE (1 A<1), RAM)) COMMON /SySTFM/MFROM.MTO,ICTYPE,[POINT, II DUMP.ISECA,ITRACE,LB,LBCA.LSL1ST,LSPT,LBUF.LCSB.LE. 1LEC.LFFB.LFFE,LI.LLE,LLFB,LLFE.LMS.LNE,LP,LV,MlNNFL. 1MNSE,NFE,NFL,NI1.NI2.N01,N02., NREP,NRUN.NSE., TIME, TSTOP L=LOC N=IAIL+1) C0026 IF<N.ST,0)GO TO 00027 GO TO 00028 00027 CONTINUE 1=1-11) 00029 1=1*1 IF((1) (I-<N)).LE.0)00 TO 00030 GO TO 00031 O0C30 CONTINUE IAIL+1+I)'0 GO TO 00029 00031 CONTINUE IF(tA(L).ST.01SO TO 00032 GO TO 00033 00032 CONTINUE L=IA(L> N=IA<L*1) GO TO 00034 00033 CONTINUE N=0

00034 CONTINUE GO TO 0002S 00028 CONTINUE RETURN END

C ZRACL.N) -305-

FORTRAN Control Proarsris

C SUBROUTINE ZEROS N ELEMENTS OF RA STARTINS AT L. SUBROUTINE ZRA<L,N1 DIMENSION IA(1) COMMON RA<1 ) EQUIVALENCE U A H I , R A M ) ) COMMON /SYSTEM/MFHOM.MTO, ICTYPE,IP01OT, II DUMP, ISECA,I TRACE,LB,LBCA,LBLIST.LBPT,LBUF,LCSB,LE, 1LEC.LFFB,LFFE,LI,LLE,LLFB,LLFE,LMS,LNE,LP,LV,MINNFL, 1MNS£,NFE,NFL,NI1,NI2,N01,N02,NREP,NRUN,NSE,TIME,TSTOP 1=1-11) 00026 1*1+1 IFMI) (I-fNl).LE. 0160 TO 00027 GO TO oooae

00027 CONTINUE RA<L-1-»t)=0 GO TO 00026 O002B CONTINUE RETURN END C 2RAC(L0;j C SUBROUTINE SETS ALL LOCATIONS IN THE BLOCK CHAIN AT LOC TO C REAL ZERO (0. >. SUBROUTINE ZRAC(LOC) DIMENSION !A<1) COMMON RA(1) EQUIVALENCE < I A(1),RAt1)) COMMON /SYSTEM/MFROM,MTO.ICTYPE,IP01NT, 1 I DUMP, 1 SECA,1 TRACE, LB.LBCA, LBLIST, LBPT, LBUF, LCSB, LE, 1 LEC,LFFB,LFFE,LI,LLE,LLFB,LLFE.LMS,LNE,LP.LV,MINNFL, :MNSE.NFE,NFL,Nil,Nl2,N01,N02,NREP,NRUW,NSE.TIME,TSTOP L=LOfc lf=IA<L+l ) 00026 IF(N.GT.O)GO TO 00027 GO TO 00028 00027 CONTINUE 1=1-111

00029 1=1+1 1F((I) C[-(N)).LE.0)60 TO 00030 SO TO 00031 00030 CONTINUE RACL+1+I)=0. GO TO 00029 00031 CONTINUE 1F(IA(L).ST.O)GO TO 00032 GO TO 00033 00032 CONTINUE L=1A(L) N=IA(L*1) GO TO 00034 00033 CONTINUE

N=0 00034 CONTINUE

-306-

FORTRAN Control Proorans

SO TO 00026 00O3S CONTINUE RETURN END C ZTABLE(LOC) C SUBROUTINE PUTS INTEGER 0 VALUES IN THE TABLE AT LOC. SUBROUTINE ZTABLE(LOC) DIMENSION 1AM > COMMON RAC1) EQUIVALENCE (IA( 1). RA< 1)) COMMON /SYSTEM/MFROM,MTO,1CTYPE,1POINT,

1 I DUMP,ISECA,1TRACE,LB,LBCA.LBLIST,LBPT)LBUF,LCSB,LE, 1 LEO, LFFB, LFFE, L I , LLE, C.LFB. L I .FE, LMS, I.NE, LP, LV, MI NNFL, 1 M H S E , N F E , N F L , N I 1 , N I 2 , N 0 1 , N O 2 , N R E P , N R I * I , N S E , T ! M E , T S T 6 P N=IAtL0C+2) 1F(lAtLOC).EQ.OJGO TO 00026 GO TO 00027

00026 CONTINUE 1 = 1 - 1 1 )

00029 1=1+1 I F U i ) ( I - C N ) ) . L E . 0 ) 6 0 TO 0 0 0 3 0 0 0 TO 00031 00030 CONTINUE 1A(LOC+2*I)-0 SO TO 00029 00031 CONTINUE 60 TO 00028 00027 CONTINUE 1=1-11) 00032 l=I+i IFlll) II-IN)>.LE.O>GO TO 00033 GO TO 00034 00033 CONTINUE IAfLCSCLOC,I*l))=0 60 TO 00032 00034 CONTINUE 00028 CONTINUE RETURN END

-307-

FORTRAN Fund i on Programs

FUNCTION PROGRAMS

C 101 HCMB 3/7 6/76 C RECEIVE MATERIAL BATCHES C LP+0 1 RESPONSE POINTER C I 3 PERIOD OF ARRIVAL SCHEDULE C 2 1 NUMBER OF ARRIVALS PER PERIOD C 3 4 SCHEDULED ARRIVAL TIKES C 4 3 MAXIMUM DEVIATION FROM SCHEDULED ARRIVAL TIMES C 5 1 NUIIUFR OF BULK MATERIAL TYPES C 6 4 BULK MATERIAL SPECIFICATIONS (REPEAT FOR EACH TYPE) C INTEGER MATERIAL TYPE CODE C MEAN COUNT C MAXIMUM UNIFORM DEVIATION OF COUNT C MEAI4 MASS C STANDARD NORMAL DEVIATION OF MASS C MAXIMUM MASS C MINIMUM MASS C 7 1 NUMBER OF MATERIAL TYPES RECEIVED IN CONTAINERS C 8 4 SPECIFICATIONS FOR MATERIAL RECEIVED IN CONTAINERS C (REPEAT THE DATA LISTED ABOVE FOR EACH TYPEJ C 9 3 MEAN NUMBER OF CONTAINERS PER ARRIVAL C 10 3 MAXIMUM UNIFORM DEVIATION OF NUMBER OF CONTAINERS C 111 TIMING CODE C 12 % TIMER FUNCTION C 13 1 DESTINATION FUNCTION C 14 1 TRANSPORT FUNCTION C LV+O 1 ENTRY COUNT C 1 1 NUMBER OF BATCHES RECEIVED C Ll+O 0 C 1 0 SUBROUTINE 6101 DIMENSION IPVTU7) DIMENSION IA(1) COMMON RA(1) EQUIVALENCE <IA(1).RA(1)> COMMON /SYSTEM/MFRaM.MTO,ICTYPE.IPOtNT, 1IDUMP,ISECA,1 TRACE,LB,LBfcA,LBLlST,LBPT,LBUF,LCSB.LE, 1LEC.LFFB.LFFE,LI.LLE,LLFB,LLFE,LMS,LNE,LP,LV,MlNNFL, IMNSE.NFE,NFL.NI1,NI2.N01,N02,NREP,NRUN,NSE,TIME.TSTOP DATA IPVT/1,3,1,4,3,1,4,1,4,3,3,1,1,1,1,1,1/ !AtLV)=lA(LV5*1 1FCICTYPE.SE.OJSO TO 99991 SO TO 00026 99991 GO TO 199100,99200,99300,99400,99500,99600,99700,99600.68900) X, ICTYPE 99992 RETURN 99100 CALL CREATEC101,IS.2,IPVT) ICTYPE=-1 IP01NT=0

-308-

FORTRAN Function IVo^reiis

60 TO 9S992 99200 CALL DESTRO* IPVD ICTVPE=-2 IPOINT=0 GO TO 99992 99300 CALL SET!T,1PVT,INTD.REALD) ICTYPEx-3 I POINTED GO TO 99092 99400 CONTINUE WRITE(N01,00027) 00027 F0RMATC/1X.13H ERROR /1X, X 43H101 RCtIB ATTEMPT TO SET INITIAL CONDITIONS) CALL ERROR 39500 CONTINUE WRITE!NO1,O0028)lA<LB*2), IA(LV*1) 00028 FORMAT!// 9H FUNCTION.I 4,1X.BH101 RCM3 /11X. X. 23HNUMSER OF BATCHES AECEIVEO, i 10) 1CTYPE=-S 1POIHT=0 60 TO 99992 99600 CONTINUE J F(RP< 10) .GT.RPO) )G0 TO 00029 BO TO 00030 00029 CONTINUE WRIT£<N01,00032) 00032 FCRMATC/1X,I5H ERROR /1X. X 46H101 RCMB PARAMETER 10 LARGER THAN PARAMETER 9) CALL ERROR 00030 CONTINUE M1-C1) 00033 1=1+1 IF<(i3 (I-(1A(LB<-4))).LE,0)G0 TO 00034 GO TO 00035 00034 CONTINUE

t A < L V - 1 » ! J s I A t L I - 1 + n GO TO 00033 00035 CONTINUE CALL S C H E D ( R U N I F ( R L P ( 3 J 1 ) , « P ( 4 ) ) , I A ( L B + 2 ) , 1 , 0 ) JCTYPE=-6 1P0INT=0 GO TO 9 9 0 9 2

9 9 7 0 0 CALL DUMPUPVT) lCTYPE=-7 IPOINT=0 GO TO 99992 SSOOO CONTINUE I FC ITRACE.GE.nGO TO 0 0 0 3 6 GO TO 00037 00036 CONTINUE WRITECN01,00039)T1ME,!A(L6+2) 00039 FORMAT(1X,E10.4,I4,2X,5HEVENT)

-309-

FORTRAN Function Prograns

00037 CONTINUE 1FCITRACE.QE ?. AND.'I TRACE.EO I TRACE'S 2)>G0 TO 00010 00 TO 00041

00040 CGNTiNUE WRITE(N02,00043)TIME,IA<LB*2)

00043 FfjRMATI IX, El 0.4, 1 A , SX , 5HEVENT ) CALL (CHECK

00041 CONTINUE CALL cecn , IP(2) ,NARVL) |F(1P(11).E0.1>G0 TO O0O44 GO TO 00045

00044 CONTINUE 1 = 1 T=TIME

GO TO 00046 00045 CONTINUE

MFR0M=IACLB*2) MT0=IPi;2) ICTYP£=9 IPOINT=0

IA(LP)=1 GO TO 99992

00047 CONTINUE CALL Tll"iERCIP<11),l,T)

00046 CONTINUE 1FCI.E0.t)SO TO 00048 00 TO 00049

00048 CONTINUE ASSIGN 00031 TO L00001 GO TO 00001

00051 CONTINUE 1FCLM.8T.01G0 TO 00052 GO TO OO0S3

00052 CONTINUE ASSIGN 00055 TO L00002 60 TO 00002 00055 CONTINUE 00053 CONTINUE JFINARVL.EQ.!P(2))G0 TO 00056 GO TO 000S7

00056 CONTINUE NARVL=1 1=1 GO TO 00058 00057 CONTINUE NARVLsNARVL+1 1=0 00058 CONTINUE T=RUNIFIFL0ATUFIX(T1HE/RP(1>) + 1) RP(I 3+RLP(3. NARVL), RP(4) ) CALL SCHEDtT,IA(LB*2),NARVL,0)

GO TO 00050 00049 CONTINUE -310-

FORTRAN FunclI on Programs

CALL SCHEDCT, IA(LB+2>,NARVL,0> OOOSO CONTINUE ICTYPE=-8 1POINT=0 (SO TO 99992 99900 CONTINUE ]F(1 TRACE.GE.3100 TO 00099 so TO oooso 00059 CONTINUE WRITE<N01,00062)TIME,!A(L&»2) 00062 FORMAT!IX,E10,4,I4,2X,11KINTERACNON) 00060 CONTINUE IF<I7RACE.GE,4.AND.(ITRACE.EQ.ITRACE/2 2>>G0 TO 00063 GO TO 00064 00063 CONTINUE WR1TE<N02.00066)T1ME,IA(L8+2) 00066 FORMAT!1X,El 0.4, 14.2X,11 HINTERACTION)

CALL I CHECK 00064 CONTINUE WRITE<N01,00067) 00067 FORMAT(/1X,15H ERROR /1X.

X 29H101 RCMB ILLEGAL INTERACTION) CALL ERROR ICTYPE=-9 IPOINT=0 GO TO 99992 C 00001 CONTINUE 1F(1P(5!.GT.0160 TO OC06e GO TO 00069 00065 CONTINUE CALL CW1D1(1P<5),IP(6),LBLK) 00069 CONTINUE 1F(IP<7).GT.OJGO TO 00071 GO TO 00072 00071 CONTINUE NC=1FIX(RUNIF<1P(9>,IPtlO))) tF(NC.GT.O)GO TO 00074 GO TO 00075 00074 CONTINUE CALL CRMD21NC,IP<7),IP<8),LC0N) 00075 CONTINUE 00072 CONTINUE IFUP<5).GT.O.AND. 1P(7) .8T. 0>GO TO 00077 GO TO 00076 00077 CONTINUE CALL TRNFRM(0,1.,LBLK,LC0N> LM=LCON GO TO 00079 00078 IF(IPC5I.EO.O.ANO.IPC7).GT.OJGO TO 00080 GO TO 00081 oaoeo CONTINUE

-311-

I

FORTRAN Function Proorans

LM'LCON GO TO 00079 00081 IF( [P<51 .<3T.0.AND. IPC?) .EO.0)G0 TO 00062 SO TO 00063 00082 CONTINUE LI!=LElLK 00 TO 00079 00033 CONTINUE LM=0 00079 CONTINUE GO TO LOOOOI, (O0OS1) c 00002 CONTINUE CALL PCOMCIPI14>,9,1,LM,IA(LB*2),]P(13),0, 0, 0, 0)

I A ( L P ) = 2 GO TO 99992

0008<t CONTINUE IF(IA(IPOINT+2).NE.-1)G0 "O 000S5 GO TO ooose 00085 CONTINUE WRITE<NOI,oooed) 0008B FORMAT!/IX,15H ERROR /IX, X 46H101 RCMB MATERIAL NOT REMOVED AT ARRIVAL 71 ME) CALL ERROR 00086 CONTINUE CALL FSTClREd POINT) I F U T R A C E . G E . 1)G0 TO 00089 GO TO 0 0 0 9 0

0 0 0 8 9 CONTINUE VIR1TE(N01 , 0 0 0 9 S > T I H E , IA(LB*2>

00092 FORMAT! i X , E 1 0 . 4 , 1 4 , 2 X , 3 3 H 1 0 1 RCr-tB MATERIAL BATCH RECEIVED) 00090 CONTINUE IF(I7RACE.GE.2.AND.(ITRACE.EO.ITRACE/2 2) )G0 TO 00093 GO TO 00094 C0093 CONTIIJUE URITE<NOZ,00096)TIKE,IACLB+2) 00096 FORMAT!IX,EIO.4, 14,2X,33H101 RCMB MATERIAL BATCH RECEIVED) CALL I CHECK 00094 CONTINUE IA(L»+1)=IACLV+1>+l GO TO L00002, (00055) 00026 I 00000=IACLP) GO TO (00047,00084). 100000 END C 102 IDAS 3/16/78 C INITIATE DIVERSION ACTION SEQUENCE C LP+O 1 RESPONSE POINTER C 1 4 MATERIAL DIVERSION OBJECTIVE TYPE (1 = COUNTABLE HEMS C OF BULK MATERIAL, 2 • MASS OF BULK MATERIAL, 3 = COUNTABLE C ITEMS FROM CONTAINERS, 4 = MASS FROM CONTAINERS. S = C CONTAINERS) C MATERIAL TYPE (0 FOR BLENDED MATERIALS) -312-

FORTRAN Function Prograns

C MEAN NUMBER OF COUNTABLE ITEMS C MAX UNIFORM DEVIATION OF COUNTABLE ITEMS C MEAN MASS C STANDARD DEVIATION OF MASS C MEAN NUMBER OF CONTAINERS C MAXltlUM UNIFORM DEVIATION OF NUMBER OF CONTAINERS C EVEN? SEQUENCE SPECIFICATION. REPEAT FOR EACH EVENT: C 1) EVENT FUNCTION (NESATIVE FOR FIRST EVENT OF SUBSEQUENCES), C 2) EVENT STARTING TIME DELAV DISTRIBUTION TYPE. 3> EVENT C START I MS TIME DELAY STATISTICS (0 OR MORE VALUES) C LV+O 1 ENTRY COUNT C L H O 0 SUBROUTINE BI02 DIMENSION IPVTI3) DIMENSION I A M ) COMMON RAC11 EQUIVALENCE (IA(1),RA(1)) COMMON /SYSTEM.'MFROM.MTO, ICTYPE, 1P0IMT,

1 I DUMP,1SECA,I TRACE,LB,LBCA.LBLI ST,LBPT,LBUF,LCSB,LE, 1 L E C L F F B , LFFE.Lt , L L E , L.LFB, LLFE, LMS.LNE, LP ,LV .MINNFL, 1MNSE,NFE,NFL,N>I ,N12,N01,N02,NREP,NRUN,NSE,T1ME,TSTOP DATA I P V T / 1 , 4 , 1 / I A < L V ) = I A t L V ) + l IFUCTYPE.GE.OJGO TO 99991 GO TO 00026

999S1 6 0 TO 1 9 9 1 0 0 , 9 9 2 0 0 , 9 9 3 0 0 . 9 9 4 0 0 , 9 9 9 0 0 , 9 9 6 0 0 , 9 9 7 0 0 , 9 9 3 0 0 . 9 9 9 0 0 ) X . ICTYPE

99992 RETURN 99100 CALL C R € A T E M 0 2 , 2 . 1 . IPVT)

ICTYPEs-1 IPOINT'O GO TO 9 9 9 9 2

9 9 2 0 0 CALL DESTROUPVT) ICTYPEs-E IPOINT«0 GO TO 99992

99300 CALL SET(% ,1PVT, INTD,REALD) ICTYPE=-3 IPOINT=0 GO TO 99992 99400 CONTINUE WRI TECNO1,00027; 00027 FORMAT!/1X,15H ERROR /1X, X 43H102 IDAS ATTEMPT TO SET INITIAL CONDITIONS) CALL ERROR 99500 CONTINUE UR1TECN01 ,00026)IA<LB*2) 00025 FORMAT!//,9H FUNCTION,14,IX,8H102 I DAS/11X,SHNO REPORT) ICTYPE=-S 1P01NT=0 GO TO 99992 99600 CONTINUE -313-

FORTRAN Function ProScans

1=1-113 00029 1 = 1 •(

1 F I U ) U - U A I L B » 4 > > ) .LE.01GO TO 00O3O GO TO 00031 00030 CONTINUE

I A < L \ / - 1 * I > = I A C L 1 - 1 + I ) GO TO 0 0 0 2 9

00031 CONTINUE 1=1-113

00032 1=1 +i 1 F K 1 ) ( I - ( J A ( 1 P ( 1 ) + 3 ) ) l .UE.01GO TO 00033 GO TO 0003-4

00033 CONTINUE IFtRLPM , I > .LT.OlGO TO 00035 GO TO 00036 00035 CONTINUE CALL 5AMPLC1PC" ) . 1*1.TO) CALL SCHEDCTD.-IFlXCRLPd.l)), l,1PC1»«

00036 CONTINUE GO TO 00032 00034 CONTINUE JCTYPE=-6 IPOINT=0 GO TO 99992 99700 CALL DUMPtlPVT) lCT¥PE=-7 IPOINT^O GO TO 93992 99800 CONTINUE IF'. 1 TRACE GE.11E0 TO 0OO38 GO TO 00039

00038 CONTINUE WR1TECN01,00041)TiME,IA<LB+2> 00041 FORHATtIX, El 0. 4, M , 2X.SHEVENT] 00039 CONTINUE IF(1 TRACE.GE.3.AND.<I TRACE,EQ.1 TRACE/2 B))GO TO 00042 GO TO 00043 00042 CONTINUE WR]TE<N02,00045>T1ME,IA<LB+2> 00045 FORMAT!IX.E10.4,I4,2X,5MEVENTJ CALL 1 CHECK 00043 CONTINUE WR1TE<N01,00046) 00046 FORMAT!/1X.19H ERROR /1X. X 31H10Z IDAS FLLEGAL EVENT MESSAGE) CALL ERROR ICTYPE-- 8 IPOINT«0 GO TO 99992 99900 CONTINUE IFUTRACE.GE.33GO TO 0 0 0 4 7 GO TO 00048

- 3 1 4 -

FORTRAN FunctI on Programs

00047 CONTINUE WRITE(N01,00050)TIME.IA<L8+2> 00050 FORMAT! IX, El 0. 4, 14, 2X, 11 HI INTERACTION) 00048 CONTINUE 1FCI TRACE.BE.4.AND.f1 TRACE.EO.I TRACE/2 2))G0 TO 00091 00 TQ OOOSZ 00051 CONTINUE WRITE<N02,00054)TIME,IA<LB+2) 00054 F0RMATMX,EI0.4,14,2X,I1HINTERACTION) CALL ICHECK 00052 CONTINUE WRlTEfNOI,00055) 00055 F0RMAT(/tX,13H ERROR /1X. X 29H102 IDAS ILLEGAL INTERACTION]) CALL ERROR ICT¥PE=-9 IP01NT=0 60 TO 99992 00026 CONTINUE WR1TE(N01,00056) 00056 F0RMATI/1X,15H ERROR /1X, X 37HILLEGAL RESPONSE COMMUNICATION (BNNN)) CALL ERROR END C 301 TRMB 3/16/78 C TRANSPORT MATERIAL BATCHES C LP+O 1 RESPONSE POINTER C 1 3 MEAN TRANSPORT TIME

C 2 3 MAX1HUH UNIFORM DEVIATION OF TRANSPORT TIME C 3 2 FUNCTIONS NOTIFIED AT CONDITION TIMES 0 4 1 DUMMY PARAMETER USED AS SAVE LOCATION C LV+O 1 ENTRY COUNT C 1 1 NUMBER OF BATCHES IN TRANSPORT C 2 1 MAXIMUM NUMBER OF BATCHES IN TRANSPORT C 3 3 TIME MAXIMUM NUMBER OF BATCHES FIRST OCCURRED C 4 1 LN OF HOST RECENT BATCH IN TRANSPORT C Ll+O O C 1 0 C 2 0 C 3 0 C 4 0

SUBROUTINE B301 DIMENSION IPVTtlO) DIMENSION IA< 1 > COMMON RAC1) EQUIVALENCE (IAII>,RA<1)) COMMON /SYSTEM/MFROM.MTO,ICTYPE,IP01NT, 11 DUMP.ISECA,I TRACE.LB.LBCA,LBLIST,LBPT,LBUF,LCSB,LE, ILEC,LFFB.LFFE.LI,LLE,LLFB,LLFE,LMS.LNE,LP.LV.MINNFL. 1MNSE.NFE.NFL.N11,NI2,N01,N02,NREP,NRUN,NSE,TIME, TST6P DATA IPVT/1,3,3,2.1.I,1,1.3, J/ IA«LV)=IACLVI*1 -315-

FORTRAN Funcxion Programs

IFMCTYPE.GE.OIOO TO 93991 GO TO 0 0 0 2 6

99991 GO TO ( 9 9 1 0 0 , 9 9 2 0 0 , 9 9 3 0 0 , 9 9 4 0 0 , 9 9 3 0 0 , 9 9 6 0 0 , 9 9 7 0 0 , 9 9 0 0 0 , 9 9 9 0 0 ) X , 1CTVPE

99992 RETURN 99100 CALL CREATEO01,5,5,!PVT> ICTYPE=-1 IP0INT»O GO TO 99992 99200 CONTINUE i F c i v m . G T . o j e o T O 0 0 0 2 7 GO TO 00028 0OOE7 CONTINUE ASSIGN 00030 TO L00003 GO TO 00003 00030 CONTINUE 00026 CONTINUE CALL DESTRO(IPVT) lCTYPE=-2 I POINTED GO TO 99992 99300 CALL SET(1,IPVT,INTD,REALDJ ICTYPE=-3 1P0INT=0 GO TO 99992 99400 CONTINUE WRETEIN01.00031) 00031 F0RMAK/1X, I5H ERROR /1X, X 43H301 TRMB ATTEMPT TO SET INITIAL CONDITIONS) CALL ERROR 99500 CONTINUE WRITE(N01,00032)lA(LB+2),IA(LV+2),RA(LV*3) 00032 FORMAT<//,9H FUNCTION,I 4,1X.BH301/TRMB /11X, X 3BHMAXIMUM NUMBER OF BATCHES 1N TRANSPORT,110 /I IX, X 27HTIME MAXIMUM FIRST OCCURRED, 9X,El2.4J lCTYPE=-5 IPDTNT = 0 GO TO 99992 99600 CONTINUE 1FCRPC2).GT.RP(1))G0 TO 00033 GO TO 00034 00033 CONTINUE WRITECNO1.O0036)

00036 FORMAT!/IX,1BH ERROR /1X, X 45H301 TRMB PARAMETER 2 LARGER THAN PARAMETER 1) CALL ERROR

00034 CONTINUE I F U V I U . G T . O J G O TO 00037 GO TO 0 0 0 3 8

00037 CONTINUE ASSIGN 00040 TO L00003 GO TO 00003

-316-

FORTRAN Funcxion Proarams

00040 CONTINUE 00038 CONTINUE l = 1-M) 00041 l=l+t IF(<I) (I CIA.uB+'IMJ.LE.0)00 TO O0042 GO TO 00043 00042 CONTINUE iA<lV-1+J>*IA(LI-l*1> 00 TO 00041 00043 CONTINUE lCTYPE*-6 IPOINT«0 60 TO 99992 99700 CALL DUMPC1PVT) 1CTYPE«-7 IP01NT=0 GO TO 99992 99800 CONTINUE IFUTRACE.GE.DGO TO 00044 GO TO 00045 00044 CONTINUE WR1TE<NOI,00047)TIME,IA(LB*2> 00017 FORMAT<1X,El0.4,14,2X,5HEVENT) 00045 CONTINUE IFdTRACE.OE.e.AND. IITRACE.EO. ITRACE/2 2>)G0 TO 00048 60 TO 00049 00048 CONTINUE URITECN02,00051)TIME,IAILB+2) 00051 F0RMAT(1X,E10.4.I 4,2X,SHEVENT) CALL I CHECK 00049 CONTINUE CALL CECCI.1,K0DE) LN=lACIPO£NT+'iJ ASSIGN 00052 TO LOO0O1 60 TO 00001 00052 CONTINUE ICTVPE^-8 IP0!NT=0 GO TO 99992 9990O CONTINUE IF(ITRACE.SE.3)G0 TO 00053 GO TO OO0S4 00053 CONTINUE WRITEIN01,00056)T1ME,1A(LB+21 00056 FORMAT!IX.EtO.4,14,2X,11HINTERACTION> 00054 CONTINUE IFCITRACE.GE.4.AND.CITRACE.EO.1TRACE/2 2>>GO TO 00OS7 GO TO 00059 00057 CONTINUE WRITE(N02,00060)TIME,IACLB+2) 0O06O F0RMAT<1X,E10.4, 14,2)!, 1 1 HI NTERACT ION J CALL [CHECK

-317-

FORTRAN F - inc t lon P r o g r a n s

00096 CONTINUE I F C 1 A U P 0 I N T * 2 ) , E O . 1 1 6 0 TO 00061 GO TO 0006E

00061 CONTINUE ! A ( L P * 4 ) = IPOINT CALL C0PYBUPO1N1.LN) 1 A C L V * I } = I A ( L V + 1 1 * 1

IFC1VC1J .BT . IV12J>GC TO 00064 QO TO 0 0 0 6 9 00064 CONTINUE 1A(LV*2) = IVH) RA(LV*31=TIME 00065 CONTINUE IFCRPC1).BT.O.)GO TO 00067 0)0 TO 00068 00067 CONTINUE 1F(1VC4) .LE.01GO TO 00070 60 TO 00071 00070 CONTINUE IA(LN»6)sO IA(LN+9)=0 IACLV*4)=LN 00 TO 0007B 00071 CONTINUE rAC!VC4)»91=LN IACLN*81=IV(4) tA(LN+9)=0 [A(LV*4)=LN 00072 CONTINUE CALL SCHED<TIME+RUNIF(RP<1)jRP(Z>),IAILB+21 , 1 ,LN) ASSIGN 00073 TO L00002 GO TO 00002 00073 CONTINUE IFdTRACE.GE 3)G0 TO 00074 niS TO O0O75 00074 CONTINUE WRITE(N01,0007?)TIME,IAILB+2) 00077 FORMAT(1XIEI0.4Jl4i2XJ27H301 TRM3 TRANSPORT STARTED) 00079 CONTINUE 1 Ft I TRACE. GE. 4. AND. (I TRACE. EO. I TRACE/2 2))6J TO 00076 GO TO 00079 00078 CONTINUE WRITECN02,00081IT1ME,1A(LB*2> 00081 FORHAT(1X,E)0.4,I4,aX,27H301 TRMB TRANSPORT STARTED) CALL (CHECK 00079 CONTINUE GO TO 00069 00068 CONTINUE ASSIGN 00082 TO L00001 GO TO 00001 00062 CONTINUE 00069 CONTINUE

-316-

FORTRAN Function Programs

MATERIA'- ACQUISITION ATTEMPT)

IPOINT=IP<4) lA(lP01NT+2)=-l GO m 00063 00062 IF<IA(IP0INT+Z).EQ.5)G0 TO 00083 00 TO 00084 00083 CONTINUE lA<IPOINT+2)=-5 IAUPOtNT*3)=0 1A<IP0tm>4J = IV<4) IA<IP0rNT*S) = IV(1 > IF(ITRACE,GE.3)G0 TO 000S5 TO TO 00086 00065 CONTINUE WRITE(N01 ,00088>T1ME, IACLB+2) 00088 FORMATCiX,E10.4,I4,2X,38H301 TRMB MATERIAL ACQUISITION ATTEMPT) 00086 CONTINUE IFUTRACE.GE.4.AND. (ITRACE.EO. ITRACE/Z 2>)GO TO 00089 GO TO 00090 00089 CONTINUE WRITE<NO2,00O92)TIME, IAILB+2) 00092 FORHATC 1X.EI0.fl, I A, ZX., 36H3Q1 TRMB CALL ICHECK 00090 CONTINUE GO TO 00063 00084 CONTINUE WRITEIN01.C0093) 00093 FORHATI/IX.ISH X 29H301 TRMB CALL ERROR 00063 CONTINUE ICTYPE=-9 1P0INT=1P0INT 60 TO 99992 C 00001 CONTINUE IF(IV(I).E0.1)G0 TO 00094 GO TO O0O9S 00094 CONTINUE 1ACLV*4)=0 GO TO 00096 00095 CONTINUE IF;lV(4).EQ.LNJGO TO 00097 GO TO O0O98 OO0S7 CONTINUE 1ACLV+4)=IA<LN«8> |FC1A(LN+8>.GT.O)GO TO 00100 GO TO 00101 00100 CONTINUE IA(IA<LN+8)*9)=0 00101 CONTINUE GO TO 00099 00096 CONTINUE

-319-

ERROR /1X. ILLEGAL INTERACTION)

FORTRAN Funct i on Proflrsns

IF(IA<LH*8) E0.0IGO TO 00103 GO TO 00100 00103 CONTINUE IACIAtLN*9>»8>=0 00 TO 00105 00104 CONTINUE lAfJA'LM*0)*9)=IA<LN+9> IAC1A(LN«9)*81=IA<LN*B> 001 OS CONTINUE 00099 CONTINUE 00096 CONTINUE ASSIGN 001OS TO LOOOOS GO TO 00002 001 OS CONTINUE IF<IA(LN+5).ST.0)GO TO 00107 GO TO 00106 00107 CONTINUE !AtLN+8)=0 1A(LN+9)=0 1ACLN+4)=IA(LB+2J MFR0M=lA(LB+2) MTO=IA<LN+S) ICTYPE=9 1 PolNT=LN ]A(LP)=1 80 TO 99992 00110 CONTINUE IFUA(IP01NT*2)-NE.-1 )00 TO 00111 GO TO 00112 00111 CONTINUE WRITECN01.00114) 00114 F0RMAT(/1X,15H ERROR /1X. X 48H301 TRMB MATERIAL NOT REMOVED AT TRANSPORT TIME) CALL ERROR 00112 CONTINUE CALL FSTOREIIPOINT) GO TO 00109 001 OS CONTINUE CALL FRMDdACLN+3)) CALL FSTORE(LN) 00109 CONTINUE IAILV+1J=IA(LV+1)-1 IFtITRACE.GE.nGO TO 00115 60 TO 00116 00115 CONTINUE WRITE<N01, 0OH81T1ME,IA<LB*2) 00118 F0RMAT(1X,E10,4, I 4,2X,29H301 TRMB TRANSPORT COMPLETED) 0C116 CONTINUE (Ft I TRACE.GE.S.AND.tlTRACE.EO.ITRACE/2 2>>G0 TO 00119 GO TO 00120 00119 CONTINUE WRJ TEIN02.00122JTIME,IAILB+2) -320-

FORTRAN Function Proorans

00122 FORMAT!IX,E10.4,I4.2X.29H301 TRMB TRANSPORT COMPLETED) CALL 1 CHECK 00120 CONTINUE 30 TO L00001, (00052,00082) C 00002 CONTINUE IF(IP13I.GT.OJQO TO 00123 GO TO 00124 00123 CONTINUE CALL PCOM<ILP(3,1),9,9,0,!V(4I,IV(1),0,0,0,01 [=1-11) 00126 1=1+1 IF(II) U-i IA( IP<3)*3>)) .LE.OGO TO 00127 GO TO 00126 00127 CONTINUE HrOsJLF<3,!J ICTYPE*9 !A<IP0INT+2)=9 !A<LP)=2 OS TO 99992 00129 CONTINUE IF(!A(IP0INT+2).ME.-9J60 TO 00130 GO TO 0013! 00130 CONTINUE WR17EIN01.00133) 00133 F0RMATC/1X,15H ERROR /1X, X 38H301 TRMB RESPONSE TO CONDITION NOTICE) CALL ERROR 00131 CONTINUE GO TO 00126 00126 CONTINUE CALL FSTORE(J POINT J 00124 CONTINUE 60 TO L00002, C00073,00106) C 00003 CONTINUE LN=IV(4> 00134 1F(LN.GT.0)G0 TO O0135 60 TO 00136 00135 CONTINUE CALL FRMD(1A(LN«3)) CALL FSTORE(LN) LN=IA(LN+B) GO TO 00 J 34 00136 CONTINUE GO TO L00003, (00030,00040) 00026 I00000=IA(LP) GO TO (00510,00129), IO000O END C 401 STOM 3/t6/78 C STORE PIATERIAL C LP->0 1 RESPONSE P01MTER

-321-

FORTRAN Function Programs

C I 1 HOLD UP MODEL C 1 a SINGLE DEPOSIT C 2 - RE-DEPOSIT ON ONLY SURFACE AREAS CONTACTED Br C STATIC MATERIAL C 3 = RE-OEPOSIT WITH WASHDOWN OF ALL INTERNAL SURFACES C OF THE BULK STORAGE VESSEL C 2 3 END AREA OF BULK STORAGE VESSEL C 3 3 VERTICAL SURFACE AREA CONTACTED PER UNIT MASS BULK STORAGE C HOLD UP MODEL 1 OR E, OR TOTAL AREA CONTACTED IF MODEL 3 C 4 3 BULK STORAGE SURFACE HOLDUP COEFFICIENT C 5 2 REPORT CONTROL C 1) BULK STORAGE DATA C 2) CONTAINER STORASE DATA C 3) MATERIAL CURRENTLY IN STORAGE C 4) MATERIAL CURRENTLY IN HOLDUP C 6 2 FUNCTIONS NOTIFIED AT DIVERSION OPPORTUNITIES C 7 1 - MATERIAL IN STORAQE C S I - MATERIAL IN HOLDUP C LV+O 1 ENTRY COUNT C 1 1 NUMBER CONTAINERS IN STORAGE C 2 1 MAX NUMBER CONTAINERS IN STORAGE C 3 3 TIME MAX NUMBER CONTAINERS FIRST STORED C A 1 NUMBER CONTAINER COUNT OBSERVATIONS C 5 3 LAST TIME NUMBER CONTAINERS CHANGED C 6 3 SUM OF N(T-TL> VALUES C 7 3 SUM OF N 2CT-TLJ VALUES C S 3 BULK MASS IN STORAGE C 9 3 MAX BULK MASS IN STORAGE C 10 3 TIME MAX BULK MASS FIRST STORED C 111 NUMBER BULK MASS OBSERVATIONS C IS 3 LAST TIME BULK MASS CHANGED C 13 3 SUM OF M(T-TL) VALUES C 14 3 SUM OF M 2(T-TL> VALUES C 15 3 TIME DATA COLLECTION STARTED C LI * 0 O C 1 0 C 2 0 C 3 0. C A O C 5 0. C 6 O. C 7 O. C O O. C 9 0. C 10 0. C 11 0 C 12 0. C 13 0. C Id O. C 15 O.

SUBROUTINE B101 DIMENSION IPVTI25J -322-

FORTRAK Funct i on Programs

DIMENSION IAI1) COMMON RA(1) E0U1VALENCE < I A d ) , R A I D ) COMMON /SYSTEM/MFROM.MTO,lCTYPE.IPOlWT, 11 DUMP.ISECA,I TRACE,LB,LBCA,LBLIST,LBPT,LBUF.LCSB,LE, ILEC,LFFB,LFFE, LI,LLE,LLFB,LLFE,LMS,LNE.LP.LV.MINNFL, 1MNSE.NFE,NFL,NI1,NI2.N01.N0a,NREP,NRUN,NSE,TlME,TST0P DATA IPVT/1.1,3,3,3,2,2,1,1,1,1,1,3,1, 3,3,3,3,3,3,1,3,3,3,3/ IA(LV)»IA(LV)+1 IFtlCTYPE.GE.OIGO TO 99991 GO TO 00026 99991 GO TO (99100,99200,99300,99400.99500.99600.99700,99800,99900)

X, ICTVPE 99992 RETURN 99100 CALL CREATE£401,9,16,IPVT) ICTYP£=-1 IPOINT=0 GO TO 9999a 99200 CONTINUE 1FCIPI7).GT.OJGO TO 00027 GO TO 00028 00027 CONTINUE CALL FRMD(IP<7)I 00028 CONTINUE IF(1P<8).GT.OIGO TO 00030 GO TO 00031 00030 CONTINUE CALL FRNDCIPC8)) 00031 CONTINUE CALL DESTRO(IPVT) ICTYPE=-2 IPOINT=0 GO TO 99992 99300 CALL SETC1,IPVT,INTD,REALO > ICTYPE=-3 1P0INT»0 GO TO 99992 99400 CONTINUE WR]TE<N01,00033) 00033 FORMAT!/IX,15H ERROR /1X, X 43H401 STOM ATTEMPT TO SET INITIAL CONDITIONS) CALL ERROR 99500 CONTINUE WRITECNQ1,00034)IA(LB+2) 00034 F0RMATC//.9H FUNCTION,14,IX,AH401 STOM) IF<[LP(5,I).EQ.11G0 TO 00035 GO TO 00036 00035 CONTINUE RACLV>12>=TIME-nVt15) RA(LV*l3>=RVI13./RVt12> RA<LVM4)=RV(14)/RVC12)-RV(13) 2 1F(RV(14).GT.O.ISO TO 00036 -323-

FORTRAN Function Proarans

GO TO 00039 000:18 CONTINUE RAtLV*14)=SORT(RVC14> ) 130 TO 00040 00039 CONTINUE RA(LV»I4)=0. 00040 CONTINUE WRITEIIM01 .00041 )RV(81,RV<9>,RV<101 , I V< 1 I ),RVU3) ,RV( 14) 00041 FORMAT</1IX,12HBULK STORAGE /I1X,2CHCURRENTLC 1N STORAGE,El 1 X 4 /11X.19HMAX1MUM MASS STORED,E12.4,BH AT T1ME.E12.4 / X 11X,19HNUMB=R OBSERVATIONS.112 /I1X.4HKEAN,E27.4 /I IX, X 18HSTANDARD DEVI ATI ON,El3.4) 00036 CONTINUE IFIILP(S,2).E0.1>G0 TO 00042 GO TO 00043 00042 CONTINUE RA(LV+S)=TIME-RV(IS) RA<LV+6)=RV(6)/RV(S) RA<LV+7)=RV<7)/RV(5)-RV<6) 2 IF(RV<7).GT.O.)GG TO 00045 GO TO 00046 00045 CONTINUE PA<LV*7)=S0RTCRV«7>) GO TO 00047 00046 CONTINUE RA(LV+7)=0. 00047 CONTINUE WRITE<N01,00048MV(1>,IV<2>,RVr3), IVt4),RV(6),RV<7) 00048 F0RMAT(/1IX,17HCGNTAINER STORAGE /I IX,20HCURRENTLY IN S10RAGE X ,111 /11X,2!HMAX!MUM NUMBER STORED,110,8H AT TIME,Ell X .4 /1IX, 19Hf.JMB.ER OBSERVATIONS, S 12 /1 IX. 4HMEAN, X E27.4 /11X,18HSTANDARD DEVIATION,E13.4) 00043 CONTINUE 1F<ILPC3.3).E0.1)GO TO 00049 GO TO 00050 00049 CONTINUE WRITE<N01,00052) 00052 FORMATt/llX.lSMMATERIAL IN STORAGE) CALL WRMDUP(7>) 00050 CONTINUE IF<ILP(5,4).E0.1)G0 TO 00053 GO TO 00054 00053 CONTINUE WR1TE<NO1,00056) 00056 FORMAT </MX .18HMATER1AL IN HOLDUP) CALL WRMDdPOl ) 00054 CONTINUE IF<!LP(5.1).EQ.I.OR.ILP<5,2).EG.1>G0 Tfl 00057 GO TO 00056 00057 CONTINUE WRITE(NO).00060>RV<15).TIME 00060 FORMATf/ltX,20HREPORT TIME INTERVAL,El t. 4, 3H TO, EM. 4)

-324-

FORTRAN Function Proflrans

00058 CONTINUE ICTYPEs-5 I POINTED SO TO 99992 89600 CONTINUE I F U P t U . L T . I.OR. I P ( 1 ) . 0 T . 3 ) 0 0 TO 00061 00 TO 00062 00061 CONTINUE WRITE(NO1,00064) 0006/1 FORMAT* /IX. 15H ERROR /1X, X 44H401 STOM ILLEGAL HOLDUP MODEL SPECIFICATION) CALL ERROR 00082 CONTINUE IFUP<7).GT.0)G0 TO 00065 00 TO 00066 0CO65 CONTINUE CALL FRWD(]P«7>> 00066 CONTINUE CALL CMB( IAfLP+7>.0,0,0.0,2.0,0.0. > IF(IP(8) GT.0)G0 TO 00068 GO TO 00069 00068 CONTINUE CALL FRMD<!P:e>) O0C69 CONTINUE CALL CNB<IA<LP+8),0,0,0,0,1,0,0,0.> 1 = 1-t 1 1 00071 1=1+1 IF((D CJ-(lACLB+4) ) ) .LE.OGO TO 00072 CO TO O0O73 00072 CONTINUE IA<LV-I*I)=IA<LI-1+I) GO TO 00071 00073 CONTINUE ICTYPEs-6 I POINTED GO TO 99992 99700 CALL DUMPCIPVT) JCTYPE=-7 IPO!NT=0 GO TO 99992 9S800 CONTINUE IF([TRACE.OE.1)G0 TO 00074 GO TO 0007S OC074 CONTINUE WRITE<N01,00077)TlME,IA<LB+2) 00077 FORMATC1X.E10.4,14,2X,5HEVENT) 0007S CONTINUE IFC1TRACE.GE.2.AND.CITRACE.EO.ITRACE/2 2>>G0 TO 00076 GO TO 00079

00078 CONTINUE WRITE(N02,0008nTIME, IA<LB+2> 00081 FORMAT!1X.E10.4,14,2X,5HEVENT)

-325-

FORTRAN Function Programs

CALL I CHECK 00079 CONTINUE WR!TE<Noi,ooceai

00082 FORMAT!/IX,15H ERROR /1X, X 30H401 STOM ILLEGAL EVENT NOTICE) CALL ERROR 99900 CONTINUE

I F d T R A C E GE.3JG0 TO 0O083 GO TO 0 0 0 8 4 00083 CONTINUE WRITE(N01,00086)TIME,IA<LB*2) 00086 FORI"1AT(1X,E10.4, 14, ZX, II HI NTERACTI ON > 00084 CONTINUE I Ft I TRACE.GE.4.AND.I I TRACE.EO.I TRACE/2 2>)BO TO 00097 oo TO oooas 00087 CONTINUE WRITE(N02,00090>TIME,]A<LB+2>

00090 FORMATt1X,E10.4, 14,2X, 11 HINTERACTION> CALL I CHECK 000.08 CONTINUE

I - ( t A « I P 0 I N T * 2 5 E O . D G O TO 00091 GO TO 0 0 0 9 2 00091 CONTINUE ASSIGN 00094 TO LOOOOi 00 TO 00001 00094 CONTINUE ASSIGN 0009S TO L00010 00 TO 00010 00095 CONTINUE SO TO 00093 00092 IFC1ACJP01NT+2).E0.5)G0 TO 00096 00 TO 00097

00096 CONTINUE ASSIGN 00098 TO L00002 GO TO C0002 00098 CONTINUE GO TO 00093 00097 IFC1A(1PC1NT-2).E0.31G0 TO 00099 GO TO 00100

00099 CONTINUE ASSIGN OOI01 TO L00003 GO TO 00003 00101 CONTINUE GO TO 00093 00100 lF(IAUP0INT+2) .EQ.41G0 TO 00102 GO TO 00103

00102 CONTINUE ASSIGN 00104 TO L00004 GO TO 00004 O0104 CONTINUE GO TO 00093 00103 !F£IA(IP0[NT+2).EQ.2>G0 TO 00105

-326-

GO TO 00106 03109 CONTINUE ASSISN 00107 TO I.OOOOS 00 TO 00005 00107 CONTINUE ASSIGN 00108 TO L00010 00 TO 00010 00106 CONTINUE GO TO 00093 00106 CONTINUE WRITE<N01,00109) 00109 F0RMATI/1X,15H ERROR /1X, X 29H40i STOM ILLEGAL INTERACTION!) CALL ERROR 00093 CONTINUE ICTYPE=-9 IPOINT=IP0INT GO TO 99992 C 00001 CONTINUE CALL NCBM(IA(IP0INT+3I,NC,BM) 1A1LV+1>=IV<1)+NC RA(LV+8)=RV(B)4BM IF(Ry(8).GT.RV(9))G0 TO 00110 GO TO 00111 00110 CONTINUE BMX=RVC6J-RV(91 RA<LV*9)=RVtfl] RA(LV*10)=TIME GO TO 00)12 00111 CONTINUE BPIX=0 00112 CONTINUE IFCBM.GT.O.AND.ILPC5,1).EQ.11G0 TO 00113 GO TO 00114 00i13 CONTINUE ASSIGN 00116 TO L00006 GO TO 00006 00116 CONTINUE 00114 CONTINUE 1F(NC.GT.0.AND.ILPt5,2).£0.1)G0 TO 0O117 GO TO 00118 00117 CONTINUE ASSIGN 00120 TO L00007 GO TO 00007 00120 CONTINUE 00118 CONTINUE CALL TRNFRMI-1.1 . , I AtIPOINT+3), IP<7)) CALL FRMDCIA1lP0INT+3>) IF(IP<1>.EQ.l.AND.BMX.GT.O.)G0 TO 00121 GO TO 00122 00121 CONTINUE

-327-

FORTRAM Funct j on ProQrens

ASSIGN 00124 TO L00008 GO TO OOOOB 00124 CONTINUE SO TO 0 0 1 2 3

00122 ! F ( I P ( 1 > . G E . 2 , A N D . 6 M . G T . 0 ) G 0 TO 00125-GO TO 0012l> 00125 CONTINUE ASSIGN 00127 TO L00009 00 TO 00009 0012? CONTINUE 00126 CONTINUE 00123 CONTINUE IA(IP01NT*2)=-1 [F<ITRACE.GE,3)GO TO Q0126 GO TO 00129 00128 CONTINUE WR1TEIN01,00131)TIME,IA(LB*2) 00131 FORMATI1X.E10.4,M,2X,36H4D1 STOM MATERIAL PLACED IN STORAGE) 00129 CONTINUE IFUTRACE.GE.4.AND. (ITRACE.EO. I TRACE/2 2) iGO TO 00132 GO TO 00133

0 0 1 3 2 CONTINUE W R l T E ( N 0 2 , 0 0 1 3 5 ) T f M E . I A ( L B * 2 )

00135 F 0 R M A T U X . E 1 0 . 4 , I 4 , 2 X , 3 6 H 4 0 1 STOM MATERIAL PLACED I N STORAGE) CALL ]CHECK 00133 CONTINUE GO TO LOO0O1, (00094) C 00002 CONTINUE IAtIP0INT-»2)=-5 1A(IP81NT*3)=IF(7) IFdTRACE GE.31GO TO 00136 GO TO 00137 00136 CONTINUE

WRITE(N01 ,00139>T IME. IACLB+2) 00139 F O R M A T ( 1 X , E 1 0 , 4 , J 4 , 2 X , 2 7 H 4 0 1 STOM DIVERSION ATTEMPT) 00137 CONTINUE

I F U T R A C E . G E . 4 . A N U . U T R A C E . E Q . J T R A C E / 2 2 ) ) G 0 TO 00140 GO TO 00141

00140 CONTINUE WRITE(NO2 ,O0t43 )T [ME, IA (LB+2>

00143 F O R M A T ( 1 X , E 1 0 . 4 , 1 4 , 2 X . 2 7 H 4 0 1 STOM DIVERSION ATTEMPT) CALL I CHECK 00141 CONTINUE GO TO L00002, (00098)

c 00003 CONTINUE IA(IP0IHT>2>=-3 1A(IP0INT*3)=IP(7) IF(ITRACE.GE.3)GO TO 00144 GO TO 00145 00144 CONTINUE

-326-

FORTRAN Function Pro&rans

WR)TE(NOl,00147)TIME,IA(LB*2> 00147 FORMAT!1X,E10.4,I4.2X, X 49H40V STOM REQUEST FOR AVAILABLE (STORED) MATERIAL) 00145 CONTINUE 1FUTRACE.GE.4.AND. (1 TRACE. EQ. I TRACE/2 2>>G0 TO 00146 GO TO 00149 00148 CONTINUE WRIT£(N02,001511TIME,1A(LB*2> 00151 FORMAT!1X.E10.4,I4.2X, X 49H401 STOM REQUEST FOR AVAILABLE (STORED) MATERIAL) CALL (CHECK 00149 CONTINUE 00 TO L00003, (00101) c

00004 CONTINUE lAUP0INT+2) = -4 IA(IPOINT->3> = lP<8) 1FUTRACE.G£.3)G0 TO 00152 GO TO 001 S3

00152 CONTINUE WRITECNOl.OOISSJTIME,IA(LB*2)

00155 FORMATUX,E10.4,l4,2X,3eH401 STOM REQUEST FOR HELD UP MATERIAL) 00153 CONTINUE

IFCJTRACE.GE.4.AND.C1 TRACE.EQ.J TRACE/2 2))G0 TO 00156 GO TO 00157 00156 CONTINUE WRITE<N02,OOIS9)TIME,IAILB+2) 00159 F0RMAT(1X,E10.4,14.2X.38H401 STOM REQUEST FOR HELD UP MATERIAL) CALL I CHECK 00157 CONTINUE GO TO L00004, (00104) C 00005 CONTINUE CALL NCBMCIAfIP0INT+3J,NC,BM) IA(LV+1)=IV(1>-NC RA(LV*8>=ftV(8)-BM IF(BH GT.O.AND. ILP(5, 1 l.EQ. UGO TO 00160 GO TO 00161 00160 CONTINUE ASSIGN 00163 TO L0O0O6 GO TO 00008 00163 CONTINUE 00161 CONTINUE IF(NC.GT.O.AND.ILPC5,2).EQ.1)G0 TO 00464 GO TO 00165 00164 CONTINUE ASSIGN 00167 TO L000O7 GO TO 00007 00167 CONTINUE 00165 CONTINUE IA(IP0!NT*2)=-2 IPOINT=0

-329-

FORTRAN Function ProScans

IFfITRACE.SE.3)G0 TO 00)66 SO TO 001 69 00 J 68 CONTINUE WRITEIN01,00)71)TIME,lAtL8«2J 00171 FORMAT! IX El 0.4, I4,2X,39H401 STOM MATERIAL REMOVED FROM STORAGE X > 00169 CONTINUE imrRACE.OE.d.AND. < ITRACE.EO. I TRACE/2 2>)G0 TO 00172 00 TO 00173 00172 CONTINUE UR1TECN02,00175)TIME,IAILB+2) 00175 FORMAT!1X.EI0.4,1 4,2X.39H401 STOM MATERIAL REMOVED FROM STORAGE X I CALL I CHECK 00173 CONTINUE GO TO LO0OO5, (00107) c 00006 CONTINUE RA(LV+13)=RV(13)+RV(8) (TIME-RVt12)) RA(LV*14)=RV(14)+RV<8> RV<8> (TIME-RV1121> lACLVtl])=1V<11)*1 RA(LV*12>sTrME 00 TO LOOOOE, (00116,00163) c 00007 CONTINUE

RACLV*6)=RV(6) + IVU) {TIME-RV(5)> RA(LV*7)=RV(7)*IV(1) IVll) (TIME-RVC6-)) IA(LV+4)=!V(4)+1 1FCIVC1l.GT.IV(21>G0 TO O0T76 GO TO 00177 0 0 1 7 6 CONTINUE 1A(LV»2)=IVI1) RACLV*3>=T1WE 00177 CONTINUE RACLV*5)=T1HE GO TO LQ0007, (00120,00167) C 00008 CONTINUE IF<BMX.GT.O.ISO TO 00179 GO TO 00ISO 00179 CONTINUE F=tRPf2)*RP(3) RV(8)> RP<4>/RV(8) ASSIGN 00182 TO 1.00011 GO TO 00011 001OS CONTINUE 00160 CONTINUE GO TO L00008, <00124) C 00009 CONTINUE IFtBMX.ST.O.)00 TO 00183 GO TO 00184 00183 CONTINUE

-330-

FORTRAN Function Programs

CALL TRNFRMIO,1.,IP<8>,1PI7)> GO TO 00185 00184 CONTINUE CALL NC6M(IP(8I,NC,BMH> IF(IPtl) E0.2JG0 TO 00186 GO TO 00187 00186 CONTINUE IFIBMH.GT.O.)GO TO 00189 GO TO 00190 00189 CONTINUE F=(CBMH-RF>(2> RP14>> (RV«8)/RV(9))*RP(2> RP<4>>/BMH CALL TRNFRM(0,F.,IP<e>,1P«7)> 0 0 1 9 0 CONTINUE F=<R.-'<2)*RP(3) RVC8I) RP(4)/RV(8J ASSIGN 00192 TO LOOOl1 GO TO 0001) 00192 CONTINUE GO TO 00188 00187 1F(IPC1).E0.3)G0 TO 00193 GO TO 00194 00193 CONTINUE IFCBMH.GT.OiaO TO O019S GO TO 00196 00195 CONTINUE CALL TRNFRMtO,1.. 1PC»),!PC71) 00196 CONTINUE F=RPf3J RP<4)/RVC8) ASSIGN 00198 TO LOOOl1 GO TO 00011 00198 CONTINUE 00194 CONTINUE 00188 CONTINUE 00185 CONTINUE GO TO L00009, (00127) C O0O10 CONTINUE 1F(IP(B).GT.OJGO TO 00199 GO TO 00200 00199 CONTINUE CALL PC0M<ILP(6,1 1,9,9,1P(7), 0,0, »,0,0,0) 1*1-111 00202 I'1+1 IF<«1J < l-< IA<IPC6)+3>>) .LE.OGC TO 00203 GO TO 00204 00203 CONTINUE MTOsILPIG,!) [CTYPE=9 IA<LP)=1 GO TO 99992 00205 CONTINUE

IF<1A<1P01NT).NE.-9)G8 TO 00206 GO TO 00Z07 -331-

FORTRAN

00206 CONTINUE WRITE<NOt,00209) 00200 F0RMAT(/1*(,13M ERROR /1X. X 38H401 STOM RESPONSE TO CONDITION NOTICE) CALL ERROR 00207 CONTINUE 00 TO 00202 00204 CONTINUE CALL FSTORE(IPOINT) 00200 CONTINUE GO TO L00010, (00095,001081 C 00011 CONTINUE IFCF.GT.1.)GO TO 00210 00 TO 00211 00210 CONTINUE CALL TRNFRMtO,1..IP<7),IP<8>) SO TO 00212 00211 CONTINUE CALL TRNFRMCO.F,IPI7J, IPf8J> 00212 CONTINUE GO TO L00011, (00162,00192,00198) 00026 100000=tAt LP) (30 TO 00205 END C 501 1NDA 3/16/78 C INDEPENDENT ACTION C LP+O 1 RESPONSE POINTER C 1 1 DURATION TIME DISTRIBUTION TYPE C 2 0 DURATION TIME STATISTICS C 3 4 STIMULUS SPECIFICATIONS (REPEAT FOR EACH TYPE) C MONITOR FUNCTION C STIMULUS TYPE C DELAY TIME 01STRIBUT'CN TYPE C DELAY TIME STATISTICS. C DURATION TIME DISTRIBUTION TYPE C DURATION TIME STATISTICS * INTENSITY DISTRIBUTION TYPE C INTENSITY STATISTICS C 4 2 FUNCTIONS NOTIFIED AT CONDITION TIMES C LV*0 1 ENTRY COUNT C LI+O 0 SUBROUTINE BS01 DIMENSION IPUT<6> DIMENSION IAI1) COMMON RAM) EQUIVALENCE (IA<1>.RA(1>) COMMON /SYSTEM/MFR6M,MTO,ICTYPE.I POINT, 1I DUMP,ISECA.ITRACE.LB.LBCA.LBLIST I BPT,LBUF,LCSB,LE, 1LEC,LFFB.LFFE.LI,LLE,LLFB,LLFE.LMS,LI*.LP.LV,MlNNFL. 1MNSE,NFE,NFL,NIt.N1Z.N01,N02,NREP,NRUN,NS£,TIME,TSTOP DATA IPtft/1,1,4,4,2,1/

-332-

FORTRAN Function Proflrsns

I A ( L V ) = I A ( L V I + 1 JFdCTYPE.GE.OJGO TO 99991 SO TO 00026 99991 SO TO (99100.99200,99300,99400,99500,99600,99700,99600,S9900) X, 1CTYPE 96992 RETURN 99100 CALL CREATE(501,5,1,1PVT) ICTYPE=-1 1P01NT=0 GO TO 99992 99200 CALL OESTRO(IPVT) ICTYPE=-2 IPOINT=0 SO TO 999E2 99300 CALL SET(1,IPVT,INTD,REALD) ICTYPE=-3 IPOINT-0 GO TO 99992 99400 CONTINUE WRITE<N01,00027) 00027 FORMATt/IX,15H ERROR /1X, X 43HS01 INDA ATTEMPT TO SET INITIAL CONDITIONS] CALL ERROR 99900 CONTINUE WRITE(N01 ,00028>IA<LB+2) 00028 F0RMATC//.9M FUNCTION,14,IX.8H501 INDA/I IX, 9HNQ REPORT) ICTYPE=-5 IPOINT'O SO TO 99992 99600 CONTINUE i = 1 - r i >

00029 1=1+1 1FCCIJ <l-(IA(LB+4) D.LE.OGO TO 00030 GO TO 00031 00030 CONTINUE IA<LV-1+r)=IA(LI-1+I) GO TO 00029 00031 CONTINUE ICTYPE=-6 1P01NT=0 SO TO 99992 99700 CALL DUMPCIPVT) ICTYPE=-7 1POINT=0 GO TO 99992 99800 CONTINUE I F d T R A C E . G E . 1)G0 TO 0 0 0 3 2 6 0 TO 00033 00032 CONTINUE WRITECN01,00035)TIME,IA(LB*2) 00035 FORMAT(1X,E10.4,I 4,2X,5HEVENT) 00033 CONTINUE

-333-

FORTRAN Function Prcgrans

IF! ITRACE.GE.Z.AND. UTRACE.EO. ITRACE/2 21)GO TO 00036 GC TO 00037 00036 CCNTIK'JE W R I T E I N 0 2 , 0 0 0 3 9 ) T I M E , I A ( L B + 2 >

D0039 F C R M A T U X , E I 0 . 4 , M , 2X. 5HEVENT) CALL I CHECK 00037 CONTINUE 1F(IA(IPOINT) OT.0)60 TO 00040 GC TO 00041

00040 CONTINUE CALL EVDP$ri,2,D) 1» IP<4),GT.O)GO TO 00043 G' TO 00044 00043 CCNTINUE CALL SCHED<TIM£+D(1A<LB+2>,0,0) 00044 CONTINUE 1 - I A U P O I N T ) L = I A ( I P O I N T + l ) l N X T = l + 2 + N S T A T S U F I X ( R A C C L , 1 + 3 ) ) )

\Fl I F I X ( R A C < L , 1NXT+2)) .GT.O.AND. I N X T . L T . l A t L + S D G O TO 00046 GC TO 00047

00046 CCITINUE CALL ^AMPLIL,INXT+l.TD) CALL SCHEOCTIME+D+TP.IFIX<RAC(L,INXT+2)),INXT,L) 0 0 0 4 7 CONTINUE

I F U P O I . G T . O I O O TO 0 0 0 4 9 SO TO 0 0 0 5 0 00049 CONTINUE ASSIGN 00052 TO L00001 co ro ooooi

00062 CONTINUE 00050 CONTINUE GC TO 00042 00041 IF{ I A< IPOINT) EO.OJGC TO O00S3 SO TO 00054 00053 CONTINUE IF(IP<4).EQ.O)GO TO 00095 GO "O 00056 00055 CON!(NUE WRITECN01,00059) 00058 FORr-".T( / IX, 15K ERROR /JX.24HS01 INDA CONDITION LIST) CALL ERROR 00056 CONT'NUE CALL PC0MC1LP<4, 1 ) , 9,9, 0, O, O, 0, O, OJ.O) 1=1-11) 00059 1=1+1 IF(II) (•-(IAIIP(4)+3>>>.LE.0)GO TO 0O060 SO TC 00061 00060 CONTINUE MFR0M=lACLB+2) MT0=ILPt4, ]) ICTYPE=9 -334-

FORTRAN Function Proorans

IACIP0INT+2U9 IA(LP)»1 GO TO 99992 00062 CONTINUE 1FUA<IPOINT*2).NE.-91GO TO 00063 SO TO 00061 00063 CONTINUE WRITE(NOt,00066) 00066 FORMAT*/IX.ISH ERROR /1X, X 38H501 INDA RESPONSE TO CONDITION NOTICE] CALL ERROR 00064 CONTINUE GO TO 0OOS9 00061 CONTINUE CALL FSTOREU POINT) 00054 CONTINUE 00042 CONTINUE ICTYPE=-8 1P01NT=0 60 TO 99992 99900 CONTINUE I F U T R A C E . G £ . 3 ) G O TO O0067 0 0 TC 00068

0 0 0 6 7 CONTINUE W R I T E < N O ! , O O 0 7 0 ) T l f i E J I A f L B * 2 ) 00070 FORMAT!IX,El0.4,14.2X,11HINTERAC1ION) 00068 CONTINUE JF(irRACE.GE.4.AN0.(ITRACE.EQ.ITRACE/2 2JJG0 TO 00071 SO TO 00072 C0071 CONTINUE WRITE<N02,00074)T[ME,IA(LB«2) 00074 FORMAT!IX,El 0.4,14,2X.11HINTERACT10N) CALL I CHECK 00072 CONTINUE WRITE(N01,0007S> 00075 F0RMATC/1X,15H ERROR /1X, X 2SH501 INDA ILLEGAL INTERACTION) CALL ERROR ICTYFE=-9 IPOINT=0 SO TO 99992 C 00001 CONTINUE 1=1 CALL PCOMUFIXCRLPO, I ) J 9, 7,1P(3). I + 1, 0, O, 0, 0, 0) 00076 IFU.LE. IA(tP(3)*3))G0 TO 00077 GO TO 00078 00077 CONTINUE

MFR0«=IAfLB+2) MTOsRLPOj 1 ) tCTVPE=9 I A ( I P 0 I N T * 2 1 s 7

- 3 3 5 -

FORTRAN Funct ion Protjrans

IA< |P0INT«4)=I»1 !A<LP)«2 GO TO 99993 00079 CONTINUE IFUAUPOINT+aj.NE -7)G0 TO OOOBO GO TO 0OOB1 00080 CONTINUE WR1TECN01,000831 00083 FORMAT (/I X.15H ERROR /1X, X 35H501 JNDA STIMULI OATA NOT ACCEPTED] CALL ERROR 000S1 CONTINUE [ = 1*2 I=1»NS»ATSIIFIXCRLP(3,I» >1*1 t=I*NSTATS(IFIXCRLP<3,I1 J)*1 1=1*NSTAT3<1FIX<RLP<3,I>))•]

SO TO 00075 00078 CONTINUE CALL FSTORE<IPOINT) GO TO L00001, (000521 00026 100000=IACLP) GO TO (00062,00079), 100000 END C 502 HAOA 3/16/78 C ADVERSARY MATERIAL ACQUISITION ACTION C LP+O 1 RESPONSE POINTER C 1 1 DURATION TIME DISTRIBUTION TYPE C 2 4 DURATION TIME STATISTICS C 3 4 STIMULUS SPECIFICATIONS CREPEAT FOR EACH TYPE) C STIMULUS MONITOR FUNCTION C STIMULUS TYPE C DELAY TIME DISTRIBUTION TYPE C DELAY TIME STATISTICS C DURATION TIME DISTRIBUTION TYPE C DURATION TIME STATISTICS C INTENSITY DISTRIBUTION TYPE C INTENSITY STATISTICS C 4 £ TARGET FUNCTIONS C 5 2 FUNCTIONS NOTIFIED AT CONDITION TIMES C 6 1 -DIVERTED MATERIAL C LV+0 1 ENTRY COUNT C LI+0 0 SUBROUTINE 6502 DIMENSION IPVT18) DIMENSION IA(1> COMMON RAC1) EQUIVALENCE < 1 A< 1 > , RA< 1 ) ) COMMON /SYSTEM/MFROM,MTO,ICTYPE,IPO1MT.

11 DUMP, I SECA, I TRACE, LB, LBCA, LBU ST, LBPT, LBUF, LCSB, LE, 1LEC,LFFB1LFFE.L1,LLE,LLFB,LLFE J.LMS,LNE1LP,LV,MINNFL, lMNSE.NFE.NFL.NII.Nia.NOI.NOE.NREP.NRUN^SE.TlME.TSTOP DATA I P V T / 1 , 1 , 4 , 4 , 2 , 2 , 1 , 1 /

-336-

FORTRAN Function Proorans

1ACLV>=JACLV!*1 IF(icrypE.aE.oiGO TO 99991 00 TO 00026 99991 00 TO (99t00, 99200,99300,99400,99500,99600,99700,99800,S9900) X, ICTVPE 99992 RETURN DATA IX.U/1,0./ 99100 CALL CREATE<502,7,I,IPVT) ICTVPEs- l 1P01NT=0 SO TO 99992 99200 CONTINUE 1F<IP<6).GT.0)G0 TO 00027 SO TS 00028 00027 CONTINUE

CALL FRM0<1P(6>> 00028 CONTINUE

CALL OESTROCIPVTJ 1CTYPE=-2 !POIN =0 GO TO 99992 99300 CALL SET(;,IPVT,INTD,REALD) lCTYPE=-3 IPOINT=0 GO TO 99992 99400 CONTINUE WRITEfNOl.00030) 00030 FCRMAT(/1X.15H ERROR /1X. X 43H502 MAOA ATTEMPT TO SET INITIAL CONDITIONS) CALL ERROR 99500 CONTINUE WR1TE<N01,0003!>IA<LB+2) 00031 F0RMATl//,9H FUNCTION,14,IX,8H502 MAOA /1IX,17HDIVERTED MATERIAL X > CALL HRMDUP<6>) ICTYPE=-5 1POIIO=0 GO TO 99992 99600 CONTINUE IF(IP(6).GT.0)G0 TO 00032 GO TO 00033 00032 CONTINUE CALL FRM0«IP(6>) 00033 CONTINUE CALL CMBUACLP+6), 0,0,0,0,2,0,0,0. ) 00035 1=1*1 IFCCI) <1-!IA<LB+4))).LE.O)GO TO 00036 GO TO 00037 00036 CONTINUE IA(LV-l«-l) = !AtLI-1+]> CO TO 00035

-337-

FORTRAN Funcrion Programs

00037 CONTINUE ICTYPE=-e IP0INT=0 GO TO 99992 99700 CALL DUMPflPVT) ICTYPE=-7 IPOINT'O GO TO 99992 99800 CONTINUE I F d T R A C E . G E . 1 >G0 TO 0003S GO TO C0039

00038 CONTINUE W R I T E C N O I , 0 0 0 4 1 ( T I M E , I A ( L B * 2 >

00041 FQRMATMX.E10 .4 ,14 ,2X ,5MEVENT) 00039 CONTINUE 1FUTRACE.GE.2.AND.(I TRACE.EQ.1TRACE/2 2))G0 TO 00042 GO TO 00043 000*2 CONTINUE WRITE{N02,00045)T1ME,1AILB+21 00045 FORMAT(1X,E10.4,14,2X,SHEVENT) CALL 1 CHECK 00043 CONTINUE IF(IA«[POINT).GT.O)GO TO 00046 GO TO 00047 00046 CONTINUE CALL EVDftSC1.2.0) IF(IP(5>.GT.OJGO TO 00049 GO TO 00050 00049 CONTINUE CALL SCHED(TIME+0,IA<LB*2),0,0) 00050 CONTINUE ! = 1 A ( I P 0 1 N T ) J=1A< 1P0INT-H > INXT=l*2+NSTATS(IFIX(RACtJ,1+3)11 IF(IFIX(RAC(J,1NXT*2)1.GT.0.AND.INXT.LT.IA(J*3))G0 TO 00052 GO TO 00053 00052 CONTINUE

CALL S A M P L U . l N X T ' H . T D l CALL SCHED(T IME+D>TD, IF1XCRACCJ, INXT*2 ) ) , INXT ,J> 00053 CONTINUE IF(IPO) .GT.OGO TO 00055 GO TO 00056 00055 CONTINUE ASSIGN 00058 TO LOO001 GO TO 00001 00058 CONTINUE 00056 CONTINUE IF(IP(4).GT.01GO TO 00059 GO TO 00060 00059 CONTINUE ASSIGN 00062 TO L00002 GO TO 00002

-338-

FORTRAN Function Prograna

00062 CONTINUE 00060 CONTINUE SO TO 00048 00047 IFdAUPOINTI.EO. 0)00 TO 00063 GO TO 00064 00063 CONTINUE IF(IP(S).E0.0)Q0 TO 0006S GO TO O0066 00065 CONTINUE WR1TECN01,00066) 00066 FORMAT</IX,15H ERROR /1X.26H502 MAOA 0?PORTUN I TV LI ST) CALL ERROR 00066 CONTINUE CALL PC0M(ILP(5, 1), 9,9,0, 0.0, 0,0,0,0) 1 = 1-11 ) 00069 1=1+3 IF((I> (1-<!AUP(5)+3) M.LE.OJGO TO 0007C 00 TO 00071 00070 CONTINUE MT0=ILP(5,1) 1A(1P01NT*2)=9 IACLP)=1 GO TO 99992 00072 CONTINUE IFtlAUPCINT*2).NE. -9>60 TO 00O73 GO TO 00074 00073 CONTINUE WR!TE(N01,00076) 00076 FORMAT</1X,15H ERROR /1X, X 4CH502 MAOA RESPONSE TO OPPORTUNITY NOTICE) CALL ERROR 00074 CONTINUE 60 TO 00069 00071 CONTINUE CALL FSTORECIPOINT) 00064 CONTINUE 00048 CONTINUE

]CTVPE=-6 1P0INT=0 GO TO 99992 99900 CONTINUE IFdTRACE.GE.3ieo TO 00077 GO TO 00078 00077 CONTINUE WRITECNOI,OOOeO)TIME,IA(LB+2> 00080 F0RMAT(1X.E10.4,I4,2X,1IHINTERACTION) 00078 CONTINUE IFUTRACE.GE.4.AND. < I TRACE. £0- ITRACE/2 2)160 TO 00081 GO TO OOG62 00061 CONTINUE WR!TE(NOS,00084)T1ME,1AILB+2) 00064 FORMAT MX, El 0.4, I 4, SX, 1 IHINTERACTION)

-339-

FORTRAN Function Prograns

CALL I CHECK 00062 CONTINUE IF1|A(1P01NT*25.EQ.3>00 TO 00065 GO TO 00086 00063 CONTINUE l A U P 0 1 N T * 2 ) = - 3 1 A ( 1 P 0 I N T + 3 ) = 1 P I 6 )

GO TO 0 0 0 8 7 00086 CONTINUE WRITEtNOl,00088) 00088 F0RMAT</1X,I5H ERROR /1X, X 29H502 MAOA ILLEGAL INTERACT IOM) CALL ERROR 00087 CONTINUE

10TYPE=-9 IP0IHT=IPO1NT GO TO 9 9 9 9 2

C 00001 CONTINUE 1*1 CALL PC0J1CJFIXIRLPI3, I ) ) , 9,7, iP< 3>, I+ 1 , 0, 0, 0, 0, 0) 00089 JFM .LE. IA< 1F(3>*3>)G0 TO 00090 GO TO 00091 00090 CONTINUE MT0=RLP<3,I» 1CTYPE=9 IACIPOINT+2>=7 1AIIP0IWT*4)=I*1 IACLP1=2 GO TO 99992 00092 CONTINUE IFUAUP0INT+2).NE.-7IG0 TO 00093 GO TO OO094 00093 CONTINUE WRITECNOi,00096) 00096 FORMAT!/IX,15H ERROR /1X. X 35H502 MAOA STIMULI DATA NOT ACCEPTED) CALL ERROR 00094 CONTINUE 1=1+2 ] = I+NSTATS<1FIX(RLP<3, J >))*1 l=IiNSTATS<lF!X<RLP<3,I))J*l 1=1+NSTATS<1FIXIRLPI3,1)))*1 GO TO OO0B9 00091 CONTINUE CALL FST0RECIP01NT) GO TO L00001, 100098) C 00002 CONTINUE II=!-<I) 00097 n « n * i

1 F K I ) ( 1 1 - O A C 1 P C 4 J + 3 I >>.LE.O)GO TO 0 0 0 9 6 - 3 4 0 -

FORTRAN Function Programs

GO TO 00099 0009S CONTINUE CALL P0OM<ILP(4,1 I 1,9,3,0,0,0,0,0,0,0J 1A<LP>=3 GO TO 99992 00100 CONTINUE ]FtIA(IPOINT+2).NE,-5>00 TO 00101 SO TO 00102 00101 CONTINUE WRITE<N01J00104> 00104 FORMATI/**.1SH ERROR /1X, X 34HS02 I1AOA TARGET FUNCTION RESPONSE) CALL ERROR 00102 CONTINUE 1F<IAUP0INT+3).GT.0)(SC TO 00105 60 TO 00106 00105 CONTINUE LSM=IAMP0INT+3) ASSIGN 00{08 TO L00003 GO TO 00003 00108 CONTINUE GO TO 00107 001OS IFnAClPOINT+4) .GT.OJGO TO 00109 GO TO 00110

00109 CONTINUE CALL U R N U X . U ) N*U FLOATUA< I P 0 | N T * S 1 ) , 9 9 9 9 * 1 L = I A < l P 0 t M T * 4 ) M=l 00111 IF(H.LT,N)GO TO 00112 GO TO 001T3

00112 CONTINUE L=IA(L->8>

I F I L . L E . O G O TO 00114 GO TO 001 I S

00114 CONTINUE WRITE<N01,00117) 00117 FORMAT(/1X.15M ERROR /1X. X 30H502 MAQA MESSAGE BLOCK LINKAGE) CALL ERROR 00115 CONTINUE H=M*1 GO TO 00111 00113 CONTINUE LSM=IA(L+3J ASSIGN 001IS TO L00003 GO TO 00003 0O11S CONTINUE 00110 CONTINUE 00107 CONTINUE CALL FSTORElI POINT) GO TO 00097

-341-

00099 CONTINUE GO TO L00002, C00063) C 00003 CONTINUE CALL NCBMCLSM.NCQM) I = I F I X < R A C U , 3 > ) I F f I . E O . 1 ) G 0 TO 0 0 1 1 9 GO TO 00120 00119 CONTINUE IF(BM.GT.O.)G0 TO 00122 GO TO 00123 00122 CONTINUE ASSIGN 00i25 TO L00004 GO TO 00004 00125 CONTINUE 00123 CONTINUE GO TO 00121 00120 IF(I.E0.2)G0 TO 00126 GO TO 00127 00126 CONTINUE IF<BM.GT.O.>G0 TO 00128 GO TO 00129 00126 CONTINUE ASSIGN 00131 TO L00005 GO TO 00005 00131 CONTINUE O0129 CONTINUE GO TO 00121 00127 IF(I.EQ.31G0 TO 00132 GO TO 00133 00132 CONTINUE IFINC.GT.OIGO TO 00134 GO TO 00135 00134 CONTINUE ASSIGN 00137 TO L00006 GO TO OOOOE 00137 CONTINUE 00135 CONTINUE GO TO 00121 00133 lFfI.E0.4)GO TO 00138 GO TO 00139 00138 CONTINUE IFtNC.GT.OJGO TO 00140 GO TO 00141 00140 CONTINUE ASSIGN 00143 TO L00007 GO TO 00007 O0143 CONTINUE 00141 CONTINUE GO TO 00121 00139 IFU.£0.-5)80 TO 00144 SO TO 00145

FORTRAN Funtllon Proorans

00144 CONTINUE IFINC.GT.OIGO TO 00146 00 TO 00147 00146 CONTINUE ASSIGN 00149 TO L00008 GO TO 00006 00149 CONTINUE 00147 CONTINUE

GO TO 00121 00145 CONTINUE

WRITE<N01,00150) 0 0 1 5 0 FORMAT</1X,15H ERROR / 1 X , X 51H503 MAOA ILLEGAL MATERIAL DIVERSION OBJECTIVE TYPE) CALL ERROR 00121 CONTINUE 60 TO L00003. (00106,00118) C 00004 CONTINUE ASSIGN 00151 TO L000O9 GO TO O0O09 00151 CONTINUE L=IAlLSMB-l5> 00152 IFCL.NE.O.AND.IA(L*7).NE.TFIXIHACfJ,4)))GO TO 00153 GO TO O0154 00153 CONTINUE L=IA(L«4) GO TO 00152 00154 CONTINUE 1F(L.EQ.O)GO TO 00155 GO TO 00156 00155 CONTiNUE LB 1=0 GO TO 00157 00156 CONTINUE lF(IA(L*e).BT.O)GO TO 00158 GO TO 00159 00159 CONTINUE LB1=L*8 GO TO 00160 00159 CONTINUE LB 1=0 00160 CONTINUE 00157 CONTINUE

I F ( L B 1 . G T . O I O O TO 00161 GO TO 0 0 1 6 2 00161 CONTINUE CALL CMB<LOM,0,0,0,0.1,0,0,0.) CALL CM8< IACLOM+5), LJ3»,0. O, 0, O, I F1JURAC( J, 4) 1,0,0.) NMUN1FI IFiX(RAC( J, 51 1 . I FIX* RAC( J,6) ) ) IFKN.GT. IA<LBI 1)G0 TO 00164 GO TO 00165 00164 CONTINUE

-343-

FORTRAN F u n d I on P r o l a n s

N=IA(LB1) 60 TO 00166 00165 IF(N.LT.0)60 TO 00167 60 TO 00166 00167 CONTINUE N=0 00168 CONTINUE 00166 CONTINUE I A < 1 A ( L D M * 5 ) » 8 ) = N I A < L B I > = I A I L B I J - N CALL T R N F R M t O . I . A D M . I P i e J ) CALL FSTORECLDM)

00162 CONTINUE GO TO L00004, (00125) C 00005 CONTINUE ASSIGN 00169 TO L00009 GO TO 00009 00169 CONTINUE ( F < [ F I X ( R A C C J , 4 ) ) . E O 0 ) G 0 TO 0 0 3 7 0 GO TO 00171 00170 CONTINUE

A ^ N O R M d F I X C R A C t J . y j I ^ I F l X t R A C C J ^ S n ) I F t A . L T . O . ) G 0 TO 00173 SO TO 00174

0 0 1 7 3 CONTINUE A=0. 0D174 CONTINUE CALL TRNFRM(0,A/BM,LSM,IP < 6)) GO TO 00172 00171 CONTINUE L=IA(LSMB+5) 00176 1FCL.NE.0.AND.IACL+7).NE.1F!X(RAC<J.4>))G0 TO 00177 GO TO 00176 00177 CONTINUE L=IA<L*4) GO TO 00176 00178 CONTINUE IF<L.NE.0>G0 TO 00179 GO TO 00160 00179 CONTINUE A=RNORM<RAC<J,7),RACCJ,6>> IF<A.LT.O.)G0 TO 00182 GO TO 00163 00182 CONTINUE A=0. GO TO 00184 00183 !F(A.GT.RA(L*9!)G0 TO 00185 GO TO 00166 00165 CONTINUE A=RA<L+9> 00186 CONTINUE

-344-

FORTRAN Function Prigrans

00184 CONTINUE CALL TRNFfu-i(0,A/RA<L»9>,LSM.ll»<6>> 00160 CONTINUE 00172 CONTINUE GO TO LOOOOS, (00131)

00006 CONTINUE ASSIGN 00187 TO LOOOIO GO TO 00010 0O187 CONTINUE LSMSAV=LSM LSM=LSMC ASSIGN 00166 TO L00004 GO TO 00004 ootee CONTINUE LSM=LSMSAV 00 TO L00006, (00137) c 00007 CONTINUE ASSIGN 00169 TO LOOOIO GO TO 00010 00169 CONTINUE LSMSAV=LSM LSM=LSMC ASSIGN 00190 TO LOOOOS GO TO OOOOS 00190 CONTINUE LSM=LSM3AV GO TO L00007, (00143) C 00008 CONTINUE N = I U N 1 F < I F I X ( R A C ( J , 9 > ) , 1 F ( X ( R A C C J . 1 0 ) ) > I F ( N . L T . 0 > 6 6 TO 00191 GO TO 00192 00191 CONTINUE N=0 GO TO 00193 00i92 IF<N.GT.NC)GO TO 00194 GO TO 00195 00194 CONTINUE N=NC 00195 CONTINUE 00193 CONTINUE CALL TRNFRMtN.O.,LSM,1P(6)) 80 TO LOOOOS, (O0149) C 00009 CONTINUE IF(IA(LSM*6).E0.1)G0 TO 00196 GO TO 00137

00196 CONTINUE LSMB^LSli

GO TO 00196 - 3 4 5 -

FORTRAN Function Programs

00197 CONTINUE; L=!A<LSM+S) IF(IA(L*6> EO 1)GO TO 00199 30 TO 00200 0O1S9 CONTINUE LSMB=L 60 TO 00201 00200 CONTINUE WRTTECNOT,002021 0O20Z FORMAT!/1X,15H X 30H502 MAOA CALL ERROR 00201 CONTINUE 00190 CONTINUE

GO TO L00009

ERROR /1X, LOCATING BULK AT LSM)

(00151,00169) 00010 CONTINUE L=IAILSM*5) If<IA<L*6).E0.1)G0 TO 00203 00 TO 00204 00203 CONTINUE L=(A(L+4) 00204 CONTINUE IFC1A(L*6).NE.2)G0 TO 00206 GO TO 00207 00206 CONTINUE WR1TE(N01.00209) 00209 FORMAT!/1X.15H X 52H502 MAOA CALL ERROR 00207 CONTINUE N=0 K=L 00210 1F(K.NE.0)G0 TO 00211 GO TO 00212 0OZ1I CONTINUE K.= 1A(K*4> N=N*1 60 TO OOZJO 00212 CONTINUE CALL URN IIX,U) l=U FLOATCN) .9999*1 N*1 K=L 00213 tF(N,LT,I)GO TO 00214 GO TO 0021S 00214 CONTINUE K=IAIK*4) N=N*1 SO TO 00213 00215 CONTINUt LSMC=K

ERROR /1X, LOCATING CONTAINER MATERIAL DATA STRUCTURE)

-346-

FORTRAN Funcxion Programs

GO TO LO001O, (00167,00189) O00Z6 100000=IACLP1 GO TO (00072,00092,00100), 100000 ENO C 503 DEPA 3/16/78 C DEPENDENT ACTION C LP+O 1 RESPONSE POINTER C 1 1 DURATION TIME DISTRIBUTION TYPE C 2 4 DURATION TIME STATISTICS C 3 4 STIMULUS SPECIFICATIONS (REPEAT FOR EACH TYPE) C STIMULUS MONITOR FUNCTION C STIMULUS TYPE C DELAY TIME DISTRIBUTION TYPE C PELAY TIME STATISTICS C DURATION TIME DISTRIBUTION TYPE C DURATION TIME STATISTICS C INTENSITY DISTRIBUTION TYPE C INTENSITY STATISTICS C 4 1 MODE: 1 = CONDITIONAL STARTING OF ACTION C 2 = CONDITIONAL COMPLETION OF ACTION C 5 3 REFERENCE TIME C 6 2 FUNCTIONS NOTIFIED AT COMPLETION TIMES C 7 1 -REPORT DATA C LV+0 1 ENTRY COUNT C 1 3 TIME Tl ACTION STARTED C 2 3 DURATION OF ACTION C 3 3 TIME DELAY OF NEXT ACTION C 4 1 NEXT ACTION FUNCTION C S 1 NEXT ACTION FUNCTION INDEX INXT C 6 1 - ACTION SEQUENCE LIST C 7 3 TIME TO THE LAST CONDITION NOTICE WAS RECEIVED C LltO 0 C 1 -2. C 2 -1 . C 3 -1 . C 4 0 C 5 0 C 6 0 C 7 -1 . SUBROUTINE B503 DIMENSION IPVTM6) DIMENSION IA(1) COMMON RA<1 ) EQUIVALENCE <IA(1),RA(1)) COMMON /SYSTEM/MFROM.MTO, ICTYPE, IPOlNnT, 11 DUMP,ISECA,I TRACE,LB,LBCA,LBL1ST.LBPT,LBUF, LCSB, LE, 1LEO,LFFB,LFFE,LI,LLE,LLFB,LLFE,LMS,LNE,LP, LV,MINNFL, 1MNSE,NFE,NFL,N11,NI2,NO I,N02,NREP,NRUN, NSE,TIME, TSTBP DATA lPVT/1. 1,4, 4, 1,3,2,1,1,3,3,3,1,1,1,3/ IA(LV)=IACLVI+1 IF(ICTYPE.GE.01GO TO 99991 GO TO 0002S -347-

FORTRAN Funcxion Proorans

99991 SO TO (99T00.99300,99300,99A0O,99500,99600,99700,99800,99900) X, ICTYPE 99992 RETURN 99100 CALL CREATErsOS.S.e.lPVT) RA(LI*1) = -2. RA(LI*2>=-1 . RA<LI*3>=-1. RA<L1*7)=-1. ICTYPE=-I IP0IHT=0 GO TO 99992 99200 CONTINUE IF(1PC7).GT OJGO TO 000Z7 60 TO 00028 00027 CONTINUE CALL FSTOREtIPI7)I 00028 CONTINUE CALL DESTROtlPVT) !CTYPE=-2 IPC1NT=0 GO TO 9S992 99300 CALL SET(1,IPVT,INTD,REALD) ICTYPEs-3 IPOINT=0 GO TO 99992 99400 CONTINUE URITE<NO1,00030) 00030 FORMAT!/IX,15H ERROR /1X, X 43H503 DEPA ATTEHPT TO SET INITIAL CONDITIONS) CALL ERROR 99500 CONTINUE ASSIGN 00031 TO LOO004 GO TO 00004 00031 CONTINUE !CTYPE=-5 1P0IMT-0 GO TO 99992 99600 CONTINUE 1FCIPC7) .EO.OGO TO 00O32 GO TO 00033 00032 CONTINUE CALL ASTORECIACLP+7),8) 00033 CONTINUE IFCNRUN.EO.1)S0 TO 00035 GO TO 0003S 00035 CONTINUE IA(LCS(1PI7>,>1)=0 RACLCS(IP{7),2))=0. RACLCS(lPC7),3))s0. RA(LCSUP<7),4)>=0. RA(LCS(1P(7),511=1-OE*50 00036 CONTINUE -348-

FORTRAN Funct i on Prograns

1=1-11) 00039 1*1*1 IF(Cl) <l-<!A(LB*4J)).LE.O)G0 TO O0039 GO TO 0O040 00039 CONTINUE IA<LV-t+I1=IA(LI-1*l) GO TO 00038 00040 CONTINUE IOTYPEs-6 IPOlNTsO GO TO 99992 99700 CALL DUMP(IPVT) ICTYPE=-7 fP0INT*0 GO TO 99992 99600 CONTINUE I F d T R A C E . S E . I >G0 TO 00041 GO TO 0 0 0 4 2 00041 CONTINUE WRITECN01,00044)TIME.JACLB+2) 00044 FORMAT(1X.E10.4,14.2X,SHEVEHT> 00042 CONTINUE IFUTRACE.GE.2.AND. ( iTRACE.EO. ITRACE/2 2) )G0 TO 00045 GO TO 00046 00045 CONTINUE WFMTE(N02, OOO401TIME, IACLB+2) 00048 F0RMAT<1X,E10,4,14,2X,SHEVENT) CALL I CHECK 00046 CONTINUE ]FC1A<IPOiNT),GT.O)GQ TO 00049 GO TO 00050 00049 CONTINUE CALL EVORS(1.2,RAILV+2)) I=1ACIP0INT) L=lACIPOINT*l) 1A(LV+6)«L JNXT=l+2+NSTATS(IFlXCRAC(L,1+3))) IF(JFIX(RAC(L,1NXT+2)J.GT.O.AND.1NXT.LT.1A(L*3))S0 TO 00052 GO TO 00053 00052 CONTINUE CALL SAMPLCL,1NXT*1,TD) RA(LV+3)=T0

IA<LV*4)=IFIX<RAC<L,1NXT+2)) IA(LV+5)=INXT 00053 CONTINUE IF(IP(4).EO.1)G0 TO 00059 GO TO 00056 00055 CONTINUE 1F(RV(7).GT.T1HE-RP(5))G0 TO 00056 GO TO 00059 00058 CONTINUE ASSIGN 00061 TO L00001

-349-

FORTRAN Function Prograns

GO TO OCOOl ocr-OT CONTINUE: GO TO cooeo COC59 CONTINUE RAILV+I)=-1. CCC60 CONTINUE GS TO COOSV 0CC56 IF! IPMi .E0.81GO TO 00062 GO TO 00063 DC062 CONTINUE ASSiSN 00064 TO L00002 GO TO 00002 003E4 CONTINUE GO TO 00057 00063 CONTINUE WRITE(NO1,00065) 0C065 F0RMAT</1X,I5H ERROR /IX, X 3CKS03 DEPA ILLEGAL MODE SPECIFICATION) CALL ERROR 00057 CONTINUE 60 TO 00051 00050 IF( 1A11P01NT) .EQ.OGC TO 00066 GO TO 00067 Q00B6 CONTINUE 1F(IP(6).E0.0)GO TO 00068 GO TO 00069 00068 CONTINUE WRITECNOl., 00071 ) C0071 FCRMAT</1X, t5H ERROR /1X,24H503 DEPA CONDITION LIST} CALL ERROR 000S9 CONTINUE CALL PCOMI ! LP! 6,1 1,9,9,0,0,0,0.0,0,0) !=1-(1) 00072 1=1+1 IF(<!) (I-(IA(IP(6)+3))).LE.O)G0 TO 00073 GO TO 00074 00073 CONTINUE MTO*!LP<6.t) 1A(IP0INT*2)=9 IA(LP)=1 GO TO 99992 00075 CONTINUE IFUAUPOINT+2) .NE, -9)G0 TO 00076 GO TO C0077 00076 CONTINUE WRITEIN01,00079) 00079 FORMAT*/1X.15H ERROR /IX, X 36H503 OEPA RESPONSE TO CONDITION NOTICE) CALL ERROR 00077 CONTINUE GO TO 00072

00074 CONTINUE -350-

FORTRAN Function Programs

CALL FSTOREU POINT) 00067 CONTINUE 00051 CONTINUE ICTYPE=-8 I POINTED 60 TO 99992 99900 CONTINUE IF(1TRACE.G£.3)G0 TO 00080 60 TO 00081 00080 CONTINUE WR1T£<N01,00063)T!ME,IAtLB*2J 00083 FORMAT!1X,El 0.4,14.2X,11H1NTERACTION) 00081 CONTINUE IF<ITRACE.GE.4.AND.!iTRACE.EO.1TRACE/2 2))G0 TO 00081 GO TO 00085 00084 CONTINUE WRlTE<N02,00087>TIME.lACLB+2) 00087 FORMAT!IX,El 0.4,t4,2X,11HINTERACT10N) CALL 1 CHECK 00085 CONTINUE I F U A < l p e t N T « - 2 ) .NE.9JG0 TO 00088 SO TO 00089 00088 CONTINUE WR1TE(N01,00091) 00091 FORMATC/1X.15H ERROR /1X, X 29H503 DEPA ILLEGAL INTERACTIONS CALL ERROR 00089 CONTINUE IF(IP<4).EQ.1)G0 TO 00092 GO TO 00093 00092 CONTINUE [F<RV<t).LT.-1.5)80 TO 00095 GO TO 00098 00095 CONTINUE RAILV*?)=TIHE GO TO 00097 00096 IF(RV«H.LT.-.5)G0 TO 00098 GO TO 00099 00098 CONTINUE ASSIGN 00100 TO L00001 GO TO 00001 01"OO CONTINUE GO TO 00097 00099 CONTINUE WRITECN01,00101> 00101 FORMAT</1X,15H ERROR /IX,27H503 DEPA CONDITIONAL START) CALL ERROR 00097 CONTINUE GO TO 00094 00093 IF(IP(4).E0.2)G0 TO 00102 GO TO O01O3 00102 CONTINUE

FORTRAN Funcrion Ppoorans

IFlR'/d ) ,LT.-1 .5>G0 TO 00104 GO TO 00105 00104 CONTINUE RA(LV+7)iTIME SO TO 00106 00)05 IFlRV(l) .OE. (O. >. AN0.1V(4) .OT.OGO TO- 00107 SO TO 00108 00107 CONTINUE IFlTIME.LE.RVCi;-RVC2J>G0 TO 00109 GO TO 00110 00109 CONTINUE CALL SCHEDCRV(1)*RV(2>+RV<3>,1VC4),IV(5),1V<6>> GO TO 00111 00110 CONTINUE CALL SCHE01T1ME+RVI3),!V(4),IVI51.IV(6>) IA(LV+d)=0 !A(LV+5>*0 IA<LV+6>-0 00111 CONTINUE 001 OS CONTINUE 00106 CONTINUE 00103 CONTINUE 00094 CONTINUE ASS16N 00112 TO L00005 60 TO 00005 001 IS CONTINUE IA(IP0INT*2)=-9 ICTYPE*-9 IPOINT=IP0tNT GO TO S9992 C 00001 CONTINUE !F(IV<4>.GT.0)G0 TO 00113 00 TO 00114 00113 CONTINUE

CALL SCHED(T11' IE*RVI25*RVI3>, 1V£4>, IV15J , 1 V t 6 ) > 00114 CONTINUE ]F(IP(3).8T.01G0 TO 00116 60 TO 00117 00116 CONTINUE ASSION 00119 TO L00003 60 TO 00003 00119 CONTINUE 00117 CONTINUE 1F(JP(6).GT.O)00 TO OOtSO 60 TO 00121 00120 CONTINUE CALL SCHEDCTIME*RVC2),)AtLB*21,0,O> 00121 CONTINUE 60 TO L00001, (00061.00100) c 00002 CONTINUE

-3S2-

FORTRAN Function Proflrins

RA«LV+1>=T1ME I F C 1 P ( 3 > . O T , 0 > 0 0 TO 0 0 ) 2 3

0 0 TO 0 0 1 2 4 00123 CONTINUE ASS 1 ON 00126 TO L00003 00 TO 00003 00126 CONTINUE 00124 CONTINUE IF(IP(6).0T.0)00 TO 00127 00 TO 00120 00127 CONTINUE CALL SCHEOITIME+RV^)., IA<LB+21 ,0,0* 00128 CONTINUE 1F(1V<4>.GT.O)GO TO 00130 60 TO 0O131 00130 CONTINUE IF(RVO) .QT.T1ME+RV(2)-RP(SJI00 TO 00433 00 TO 00134 00133 CONTINUE CALL SCHE0(T1ME+RV<2)+RV(3).1VC4),IVC51,IV(5)) IA<LV+4)=0 IA(LV*5)=0 lA(LV+6)=0 00134 CONTINUE 00131 CONTINUE 00 TO L00002, 100064) C 00003 CONTINUE 1°1 CALL PC0MCIFIX<RLP<3,1>>.9,7,1P(3),I*1,0,0,0, O, OJ 00136 IF(!.LE.lA(IPt3)»3)>GO TO 00137 00 TO 00136 00137 CONTINUE

MTO=RLPO, 1 > 1CTYPE=9 l A U P 0 I N T + 2 > = 7 I A ( 1 P 0 1 N T + S ) M + 1

1ACLP>=2 GO TO 99992 00139 CONTINUE IFIIAUPOINT+2) .NE--7JG0 TO 00140 00 TO 00141

0 0 1 4 0 CONTINUE WR1TE(N01 ,00143) 00143 F0RMATI/1X.1SH ERROR /1X. X 35HS03 DEPA STIMULI DATA NOT ACCEPTED) CALL ERROR 00141 CONTINUE

I = 1 + 2 I = I + N S T A T S C I F I X t R L P ( 3 , 1 1 U + 1 I s l + N S T A T S U F I X C R L P O j ! J ) ) + 1 l = I + N S T A T S ( I F I X t R L P t 3 j I ) ) ) + 1

- 3 5 3 -

FORTRAN Function PrOOrsms

GO TO 00136 00130 CONTINUE CALL FSTORE'I POINT* GO TO L000C3, (00119,001261 C 00004 CONTINUE WRITE<f:OI.OOI44)lA(LB*2) 00144 F 0 R M A T ( / / , 9 H FUtlCT ION. 1 4 , 1X, 6H503 OEPA)

RA(LCS(1P<7) , 2 ) ) = R A I L C S f I P I 7 I . Z J 1/FLOAT* IA(I_CS( I P < 7 > . I D ) SD=RA(LCS(SP17) ,3) I/FLOAT? lA'.LCV IP(7).1 > ) >-RA(LCS( lf"<7) , 2> ) 2 IFCSD GT.O >G0 TO 00145 GO TO 10146 00143 CONTINUE S0=SOR7<SD) GO TO 00147 00146 CONTINUE S0=O. 00147 CONTINUE WRITEfNOI,00148)RA(LCS<IP<7),2)).SD 00146 FCRMAT(11X,22HM£AN TIME OF CONDITION, E12.4 /UX, X 18HSTAHDARD DEVIATION,El 2.4) WRITEINOl,00149)IA<LCS<IP<7),11),RA(LCS(1P(7),4)),RA(LCS<IP(7),5 A )) 00149 FORMAT( 1 lX.S2HNUr,BER OF OBSERVATIONS, I 10 /1 IX, 12HMAXIMUM TIME, X E12.4 /11X,12HKJHIMUM TIHE.E12.4) GO TO L00004., 100031 ) C 00005 CONTINUE IA<LCS<IPC7),1>)=[A<LCSCI PC 7).1))*1 RA<LCS<IP<7),2>)=RA(LCStIP(7),2))*T!WE RA(LCS((P(7),3)!=RA(LCS(!P(7),3!)*TIME TIME IF(TIM£.GT.RA(LCS(IP(7),4)1)GO TO OOISO GO TO 00151 00150 CONTINUE RAfLCSClP(7>.4))=TIME 0015) CONTINUE IF(T(ME.LT.RACLCSfIPt7),5)))G0 TO 00153 GO TO 00154 00153 CONTINUE

R A < L C S < i P < 7 ) i 5 l ) = T l M £ 00154 CONTINUE GO TO L00005, (00112) 00026 I0OOOO=IA<LPi GO TO (00075,00139), 100000 END C 504 MODA 3/16/78 C MODIFICATION ACTION C LP*0 I RESPONSE POINTER C 1 1 DURATION TIME DISTRIBUTION TYPE C 2 4 DURATION TIME STATISTICS C 3 4 STIMULUS SPECIFICATIONS (REPEAT FOR EACH TYPE) C STIMULUS MONITOR FUNCTION -3B4-

FORTRAN Function Proorans

C STIMULUS TYPE C DELAY TIME DISTRIBUTION TYPE C DELAY TIME STATISTICS C DURATION TIME DISTRIBUTION TYPE C DURATION TIME STATISTICS C INTENSITY DISTRIBUTION TYPE C INTENSITY STATISTICS C 4 2 MODIFICATION SPECIFICATIONS (REPEAT FOR EACH MODIFICATION) C FUNCTION C PARAMETER/VARIABLE C FIRST LIST INDEX C LAST LIST INDEX C 5 4 NEW VALUES C 6 4 INITIAL VALUES C 7 2 CONDITION FUNCTIONS C LV+O I ENTRY COUNT C LI+O 0

SUBROUTINE B504 DIMENSION IPVTI9) DIMENSION IA(1) COMMON R A M ) EQUIVALENCE (IA(1),RA(I)) COMMON /SYSTEM/MFROM.HTO.1CTYPE.IPOI MT,

I IDUMP. ISECA.ITRAce,LB.LaCA,LBLIST.LBPT,l.BUF,LCSB.LE. 1 LEC, LFFB, LFFE , LI , LLE, LLF6, LLFE, LMS, LNE, LP. LV, M1 NNFL , 1MNSE.NFE.MFL.NI1.Nt2,N01,N02,NREP,NRUN.NSE,TlME.TSTOP DATA IPVT/1.1,4.4,2.4,4,2,1/ IA(LV)=1ACLV)+1 IFCICTYPE.GE.OJGO TO 99991 GO TO 00026

99991 GO TO (99100.99200,993O0,9940O.99S0O,99600.99700,99800.99900) X. ICTYPE

99992 RETURN 99100 CALL CREATE!504,6,1,IPVT)

1CTYPE=-1 IPOINT=0 GO TO 99992

99200 CALL DESTRO(IPVT) ICTYPE=-2 IPO!NT=0 GO TO 99992

99300 CALL SET!I,IPVT,INTD,REALD> ICTYPE=-3 I POINT'0 60 TO 99992

99400 CONTINUE WRITECN01,0QQ27)

00027 FORMAT!/1X,15H ERROR /IX, X 43H504 MODA ATTEMPT TO SET INITIAL CONDITIONS) CALL ERROR

99500 CONTINUE WRITE<N01 .00026>!A<LB-»2)

-3SS-

FORTRAN F u n c t i o n Proarsmz

00026 FORMAT///,9H FUNCTI ON, 1A, 1X. 8H504 KOOA/11/.9HN0 REPORT) ICTYP£=-S IPOINTsO GO TO 99992 99600 CONTINUE 1=1-11) 00020 1=1*1 IF(<I> (I-<IA(LB»4))).LE.OJGO TO 00030 GO TO 00031 00030 CONTINUE lA(LV-)*])=1A(L)-1*1 J CO TO 00029 00031 CONTINUE NPVAL=B ASSIGN 00032 TO L0D002 GO TO 00002 00032 CONTINUE ICTYPE*-6 IPOINT=0 GO TO 9S992 99700 CALL DUMPCIPWTI lCT!TPE=-7 IPOINT=0 GO TO 99B92 99B0O CONTINUE IF<1.RACE.GE.I)G0 TO 00033 GO TO 00034 00033 CONTINUE

WR1TE(N01 .00036>T IME, IACLB+2) 00035 K0RMAT<1X,E10 ,4 ,1 4 .2X,5HEVENTI 00034 CONTINUE

l F < l ' / R A C E . G E . 2 . A N D . < I T f f A C E . E 0 . I T R A C E / 2 2 M G 0 TO 00037 GO TO 0 0 0 3 8 00037 CONTINUE WRITE(NO2.O0040)TIME,IAILB+2) 00040 FORMAT < 1X, El 0. 4, I 4. 2X, 5HEVENT) CALL I CHECK 00036 CONTINUE IF(1A<IPOINT) .GT.01GO TO 00041 GO TO 00042 00041 CONTINUE CALL EVDRSCt,2,0) |FCIP(7).GT.0)G0 TO 00044 GO TO 00045 00044 CONTINUE CALL SCHED(TJME»0.1A<Le*2),0,0) 00045 CONTINUE

I = 1 A < I P O I N T ) L=1A<IPOINT+1> INXT=1+2*NSTATS<1FIXIRACIL.I*3>)1 IF<rFIX<RAC(L,INXT*2)J.GT.O.AND.INXT.LT,IA<L*3))00 TO 00047 GO TO 00048

-356-

FORTRAN Furic-t iun ProScans

00047 CONTINUE CALL SAMPLfL,1NXT+1,TD> CALL SCHED<TIME*D»TD,IFIXtRACCL, INXT-21), 1NXT.L) 00048 CONTINUE IF(IP(3».0T.0I00 TO OOOSO GO TO 00051 00050 CONTINUE ASSIGN 00053 TO L00001 GO TO 00001 00053 CONTINUE 00051 CONTINUE IF(IP<4).GT.OJGO TO 000S4 GO TO OOOSS 00054 CONTINUE NPVAL=S ASSIGN 00057 TO LOOOOZ GO TO 00002 00057 CONTINUE 00055 CONTINUE SO TO 00043 00042 IF< !/»< IP01NT) .EO.OIGO TO 00058 GO TO 00059 0005a CONTINUE JF(IPC7).EO.OiOO TO 00060 GO TO 00061 00060 CONTINUE WRITE«N01,000631 G0C63 F0RM.VT(/1X, 15H ERROR / IX, 24H504 MODA CONDITION LIST; CALL ERROR 00061 CONTINUE CALL PC0M(ILPC7. 1 ) ,9,9, 0, O. 0,0, 0, 0*. O) I»l-U> 00064 I=l>l IF!(!> I I-(IA(IPI71+3))1.LE.OJGO TO 0O065 GO TO 00066 00065 CONTINUE MT0=ILP(7,I) !A(1 POINT*2)=9 IAtLP)=1 GO TO 99992 i . : -,7 CONTINUE JFUA(1POINT*2).NE.-9>GO TO 00068 GO TO 00069 00058 CONTINUE WRITE<N01,00071) 00071 F0RI1AT</1X,15H ERROR /1X, X 38H504 MODA RESPONSE TO CONDITION NOTICE) CALL ERROR 00069 CONTINUE 60 TO 00064 00066 CONTINUE CALL FSTORE(IPOINT)

-357-

FORTRAN Function Prograns

O0OS9 CONTINUE 00043 CONTINUE !CTYPE=-6 IP0INT=0 60 TO 99992 99900 CONTINUE IF(17RACE.SE.3)GO TO 00072 00 TO 00O73 00072 CONTINUE

URITE(N01.0007SITIME.IAILB+2) 00075 FORMATMX.E10.4, 14, 2X, 11HJNTERACTIQN) 00073 CONTINUE IF([TRACE.GE.4.AND.<ITRACE.EO. I TRACE/2 2))G0 TO 00076 GO TO 00077 00076 CONTINUE WRITE<N02,00079)TIME.IAILB+2) 00079 FORMAT!IX,E10.4, I 4,2X,1IH1NTERACTION) CALL I CHECK 00077 CONTINUE URJTE<N01,00080) 00080 F0RMATI/1X,15H ERROR /1X, X 29H504 MODA ILLEGAL INTERACTION) CALL ERROR ICTYPE=-9 IPOINT=0 GO TO 99992 C 00001 CONTINUE 1=1 CALL PC0MCIFIX(RLP(3.I)),9,7.!Pt3>,I+1,0,0,0,0,0) 00061 IFU.LE. IACIPI31+3) )G0 TO 00082 GO TO 00O83 00082 CONTINUE MFRGM=IA(LB+2> MTO=RLP(3,J) ICT¥PE=9 IACIPOINT+2)=7 IA<IP01NT+4)=!+I 1A<LP)=2 GO TO 99992 00084 CONTINUE IF(IA<1POINT+2>.NE.-7)GO TO 0OO85 GO TO 00066 00035 CONTINUE WRITE*NOT,00068) 00088 FORMATt/lX,15H ERROR /1X. X 35H504 MODA STIMULI DATA NOT ACCEPTED) CALL ERROR 00086 CONTINUE 1 = 1+2

IsJ+NSTATSIIFIXIRLPO, 11)1+1 l=!+NSTATS< IFIXCRLPC3, 11)1 + 1

-JS8-

FORTRAN Function Prograns

l=I+NSTATSIIFIX<RLPt3, I ))> + 1 oo TO oooai

0C083 CONTINUE CALL FSTOREII POINT I OS TO L00001, (00053) C 00008 CONTINUE 1=1 J=1 00069 IF<! .L£. IAMF<4)+3JIG0 TO 00090 60 TO 00091 00090 CONTINUE NF=ILPC4, 1 ) LBF=IA(LCS(LBPT,NF«1)1 IFCLBF.GT.OJGO TO 00092 GO TO 00093 00092 CONTINUE ASSIGN 0OOS5 TO i .00003 GO TO 0 0 0 0 3 00095 CONTINUE GO TO 00094 00093 CONTINUE WRITEIN01,000961 00096 F0RMATC/1X,15H ERROR /1X,

X. 49HS04 MODA ATTEMPT TO MODIFY AH UNDEFINED FUNCTION) CALL ERROR 00094 CONTINUE 1 = 1+4 GO TO 00089 00091 CONTINUE GO TO L00002, (00032,00057) C 00003 CONTINUE N P V = I L P ( 4 , 1 + 1 ) N = I L P < 4 , 1 + 8 ) M = I L P < 4 , I * 3 ) IF<NPV.QT.0)G<5 TO 00097 GO TO 0009S 00097 CONTINUE LPWF=LBF+5 ASSI6N 00tOO TO L00004 GO TO 00004 00100 CONTINUE GO TO 00099 00098 lF(NPV.LT.O)GO TO 00101 GO TO 00102

00101 CONTINUE NPV=-NPV LPVF=LBF+5+IA(LBF+3) ASSIGN 00103 TO L00004 GO TO 00004 00103 CONTINUE

-359-

*

FORTRAN Function Prosrana

i50 TO 00099 00102 CONTINUE WR1TEIN01,00104) 00104 FORMAT(/IK,ISH ERROR /1X. X 46H504 HOOA ILLEGAL PARAMETER/VARI ABLE NUMBER ZERO) CALL ERROR 00099 CONTINUE GO TO I.0OO03, I0009S) c 00004 CONTINUE IF(N.EO.0)G0 TO 00105 eo TO oo106 00105 CONTINUE IFlM.ECI.O»GO TO 00108 GO TO 00109

001 OS CONTINUE IA(LPVF+NPV)=IFIX(RLP<NPVAL,J>> GO TO 001 TO 00109 IF(M.EQ.1>G0 TO 00111 GO TO 00112 00111 CONTINUE

RA (LPVF+ NPV) = RLP ( NPVAL, J ) GO TO 001 10 00112 CONTINUE WRITEtNOl,00113J 00113 FORMATC/1X,1SH ERROR /1X. X 31H504 MODA LAST INDEX FOR SCALAR) CALL ERROR 0 0 1 1 0 CONTINUE

J = J + 1 GO TO 00107 00106 IF(N.6T.O)G0 TO 00114 GO TO 001 IS 00)14 CONTINUE IFtM.GT.O.AND.M.GE N)BO TO 00116 GO TO 001!7 00116 CONTINUE K=N-I1) 00119 K=K+I

1F((!) 5K-JM1).LE.OIGO TO 00120 GO TO 00121 00120 CONTINUE IA (LCS< IA<LPVF+NPV) ,K*2 ) ) = I F I X < R L P ( N P V A L , J ) ) J=J + 1

GO TO 00119 00121 CONTINUE GO TO 00118 00117 CONTINUE WRITEINOI,00122) O01Z2 FORMAT(/1X,15H ERROR /1X, X 37H504 MODA LAST INDEX FOR INTEGER LIST) CALL ERROR

-360-

FORTRAN Function Programs

00116 CONTINUE GO TO 0010V 00115 IF(N.LT.O>G0 TO 00123 GO TO 00124 00123 CONTINUE N=-N 1F(M.©T,0.AND.M,GE.N1G0 TO 00125 GO TO 00126 00125 CONTINUE K*N-M ) 001S8 K*K+I IF(ft! <K-(M)>.LE.OJGO TO 00129 GO TO 00130 00129 CONTINUE RA(LCS(IA(LPVF+NPV),K+2>)=RLP(NPVAL,J) J=J-M GO TO 00128 00130 CONTINUE GO TO 00127 00126 CONTINUE WRITECN01,00131) 0013! FORMAT(/IX,15H ERROR /1X, X 34H!i04 MODA LAST INDEX FOR REAL. LIST) CALL ERROR 00127 CONTINUE 00124 CONTINUE 00107 CONTINUE GO TO L0OO04, (00100,00103) 00026 100000=1A(LP)

60 TO (00067,00084), 100000 END C 505 HDAS 3/16/78 C HALT DIVERSION ACTION SEQUENCE C LP+O 1 RESPONSE POINTER C LV+O 1 ENTRY COUNT C 1 1 HALT STATUS C 2 1 SAVE I = IA ( IPOI NT) C 3 1 SAVE .. = IA(1P0INT*1) C L1*0 0 C 1 0 C 2 0 C 3 0 SUBROUTINE B50S DIMENSION 1PVT(S) DIMENSION 1A(1) COMMON RAC1) EQUIVALENCE CI AC 1),RA( I>) COMMON /SVSTEM/MFROM.MTO,ICTYPE,IPOINT, IIDUMP,ISECA.I TRACE,LB,LBCA.LBLlST.LBPT,LBUF,LCSB,LE, 1LEC.LFFB,LFFE,LI,LLE,LLFB,LLFE,LHS,LNE,LP,LV,MlNNFL 1MNSE,NFE.NFL,NI1,NI2.N01,NOZ,NREP,NRUN,NSE,TIME,TST6P DATA IPVT/1.1,1,1.1/

-361-

FORTRAN Fur icxion p ro f l rans

I A ( L V ) = I A C L V ) + 1 IFdCTVPE.GE.OJGO TO 99991 GO TO 00P26

99991 6 0 TO ( 9 9 1 0 0 , 9 9 2 0 0 , 9 9 3 0 0 , 9 9 4 0 0 . 9 9 5 0 0 , 9 9 6 0 0 , 9 9 7 0 0 . 9 9 8 0 0 , 9 9 9 0 0 ) x, ICTYPE

99392 RETURN 99100 CALL CREATE!505,1,4,1PVT) ICTYPE=-1 IPOINT=0 GO TO 99992 99200 CALL DESTROilPVT) ICTYPE=-a IP01WT'-0 GO TO 99992 99300 CONTINUE WRITE(NO1.00027) 00027 FORMAT (/1X, 1 5H ERROR /1X, X 3SH505.HDAS ATTEMPT TO SET PARAMETERS) CALL ERROR

99<100 CALL S E T I 2 , I P V T , 1 N T D . R E A L 0 ) ICTYPE=-4 IPOINT=0 GO TO 99992 99500 CONTINUE WRITE!NO1 , 00026) 1A(L8*2) 00026 FORMAT!//,9H FUNCTION,14,IX,BH50S HDAS/11X.9HN0 REPORT) lCTYPE=-5 IPOIMT=0 SO TO 99932 99600 CONTINUE I =1-I» ) 00029 I=lt! IF(O) (I-(IA(LB+4>>).LE.0)G0 TO 0003O GO TO 00031 00030 CONTINUE IA(LV-)*I)=IA(L!-1+1 ) GO TO 00029 00031 CONTINUE ICTYPE=-6 IP01WT=0 GO TO 99992 99700 CALL DUMP(IPVT) ICTYPE=-7 IPOINT'O GO TO 99992 99800 CONTINUE IFdTRACE.GE.DGO TO 00032 GO TO 00033 00032 CONTINUE WR1TECNO!.0003S)T1ME,IA(L6+2>

00035 FORMAT!1X.E10.4,14,2X,5HEVENT) 00033 CONTINUE

-382-

FORTRAN Function Proorans

1FUTRACE.GE.2.AND. CITRACE.EO. ITRACE/2 2)100 TO 00036 GO TO 00037 00036 CONTINUE

WR!TE<TI02,00039UIME,IA(LB*2> 00039 FORMAT!IX,El 0 . 4 , ! 4 , 2 X , 5 H E V E N T ) CALL I CHECK 00037 CONTINUE 1A(LV+2> = IA(IP0INT> I^'LV+3)=IA(JPOINT+I) !.' • IV<1).£0.0)60 TO 00O40 GO TO 00041 00040 CONTINUE ASSIGN 00043 TO LOOOOl GO TO 00001 00043 CONTINUE 00041 CONTINUE

!CTYPE="« 1P0INT=0 GO TO 99992 99900 CONTINUE 1FUTRACE.GE.3JG0 TO 00044 GO TO 00045 00044 CONTINUE WRITE«N01,000471TIME. 1AILB+2) 00047 FORMAT!IX,E10,4,I4.2X,11H1NTERACTI0N) 00045 CONTINUE 1F(lTRACE.GE.4.AND.(ITRACE.EO.]TRACE/2 2))G0 TO 00048 GO TO 00049 00043 CONTINUE WRITE<IN02,00051 JTIME, IACLB*Z)

00051 FORMAT! I X , El 0 . 4 , I 4 . 2 X , 1 I HI INTERACTION) CALL I CHECK 00049 CONTINUE ] F U A ( 1 P 0 I N T + 2 > . E 0 . 8 ) G 0 TO 00052 GO TO 0 0 0 5 3 00052 CONTINUE IFUV<1).E0.1)G0 TO 00055 GO TO 00056 00055 CONTINUE IAILV+1)=0 ASSIGN O00S8 TO LOOOOl 00 TO 00001 00058 CONTINUE 00056 CONTINUE GO TO 00054 00053 CONTINUE WRITEfNOl,00059) 00059 FORMAT!/IX,15H ERROR /1X, X Z9H505 HDAS ILLEGAL INTERACTIONS CALL ERROR 00054 CONTINUE IA(IPOSNT*25=-8

r u f c f o n Prc^rai-.E

iCT/-F'E = -9 If-OINT = 0 CO 10 95092

OOijOl CCN71UUE I = I V I 2 > L- n/in) IN/TeI»2*MSIATS I IFI/IRACIL, 1*3) 1 J IFlIFlXfRACCL.JMXT42S1.GT O AtlD.INXT LT.1A<L«3)JGC TO 00060 GO TO 00061 00060 CONTINUE CALL SAMPLCL.INXT*1,TD> CALL SCHEDITIME'TO,IF1/<RAC<L,!NXT*2)1,INKT.L)

00061 CONTINUE GO TO L00001 , (000<13,00058l

0 0 0 2 6 CONTINUE W R I T E I N 0 1 , 0 0 0 6 3 )

0 0 0 6 3 FORI ' .ATI / l r f . lSH ERROR / I K . X 37HILLEGAL RESPONSE COMMUNICATION (BNNN)>

CALL ERROR END C 601 TIMR 3/16/78 C TIMER C LP*0 I RESPONSE POINTER C 1 3 PERIOD C 2 1 NUMBER OF SHIFTS PER PERIOD C 3 0 SHIFT STARTING TIMES C A A SHIFT ENDING TIMES C 5 1 NUMBER OF INTERVALS PER PERIOD C 6 a INTERVAL STARTING TIMES C 7/1 INTERVAL ENDING TIMES C LV*0 1 ENTRY COUNT C 1 3 TIME CURRENT PERIOD WILL END C 2 1 CURRENT SHIFT C 3 3 TIME CURRENT SHIFT WILL END C a 3 TIME NEXT SHIFT WILL BEGIN C 5 1 CURRENT INTERVAL C 6 3 TIME CURRENT INTERVAL WILL END C 7 3 TIME NEXT INTERVAL WILL BEGIN C Ll+0 O C 1 RP(1> C 2 0 C 3 O. C 6 RLPI3,1) C 5 0 C 6 0. C 7 RLP<6,1) SUBROUTINE B60I DIMENSION IPVTCI6) DIMENSION IA<1) COMMON RAC1) EQUIVALENCE (IA( I ),RAt1)) -36d-

FORTRAN Function Prograns

COtfKON .••SrSTEM/MFROM.MTO, ICTYPE. I POINT, 11 DUMP, ISECA, !TRACE,LB,LBCA,LBL I ST LBPT,LBUF,LCSB,LE, l L E i ; , LFFB, L F F E . L I , LLE, L.LFB, LLFE. I.MS, LNE , LP . LV , HI NNFL . tM' ISE.NFE, MFL.N! I , N l 2 , N 0 l , N02 . NREP, NRUIJ, NSE.TIME, TSTCP DATA IPVT/l,3,1,6,6,\ ,6,6,I,3,1,3,3,1,3,3/ IA<LV) = IAII.V) «1 IF!ICTYPE GE.OJSO TO 99991 GO TO 00026

99991 GO TO I 99 I 00, 99200, 99300, 99<100, 99500, 99600, 99700, 99BO0, 99900 I /, ICTYPE 99992 RETURN 99100 CALL CREATE'COI.8,8,IPVT> ]CTYPE=-1 IPOIMT=0 GO TO 99992 49200 CALL DESTROI1PVTI ICTYPE=-2 IPOIMT=0 GO TO 99992 S9300 CALL SET I 1,IPVT,IMTD,SEALD) iCTYPE=-3 !POINT=0 GO TO S93S2 99400 CONTINUE URITECNOl,00027) 00027 FORMATr/1X,15H ERROR /1X, JC 43H601 Tlt'.R ATTEMPT TO SET INITIAL CCNQ J TICNS) CALL KRROR 99500 CONTINUE

W R I T E C ^ O l , 0 0 0 2 a 1 I A ( L S + 2 ) 00023 FCR;1AT( / / , 9H FUNCTION, 16, I X , 8H601 7V.1t/ 1 IX , SHNC REPORT)

ICTYPE=-5 I P O I I I T - 0 GO TO 99992 B9600 CONTINUE RA(LI»1JsRPI1) RA<LI•4>=RLP<3, 11 RA(LI»7)-RLP<6,1) 1=1-11) 00029 1=1*: IFr<.) (I-(IACLB+4))).LE.01G0 TO 0003O GO TO O0031 00030 CONTINUE IA(LV-^I )=JAtLI -1*1 ) GO TO 00029 00031 CONTINUE CALL SCHEOCTIME,IA<LB+2>. »,0) IF<IP(2) GT.0>GO TO 00032 GO TO 00033 00032 CONTINUE

CALL SCHEDIRVtd),tA(LB+2),2,01 00033 CONTINUE

-365-

: i ' i r ' i ' i j C,Z -j;!iO ~r, 0C03S ',r. rr, r,tj'j-SO

'.',•,-is ' . rv j ' l r;.,t C/-UU r>C>!FD'PV' 7 ) . I / - ' LB«2J , 3 . 0 ;

i.'.'.jf. ' x t i T i K u : iCTft'Es -6 if 'RINT - 0 'jr; T O fjrj'J5»

Viin>. '.!•[ ._ G U K P ' I P/Ti I'.WI'E- • 7 i t-c i n r - o ' , 0 r o 9 rj<*<;<;

r J3B0r j ' .OUT 1 HUE IFrI TRACE GE 1)GO TO 00038 CO TO 00039

00036 CONTINUE W»; TF.tr.01 , 00041 J TIME, IA(LB*2)

0004 1 FORMAT< 1/.E10.4, 14,2/, 5HEVENT) 00039 CONTINUE

IFMTRACE 6E B.ANi) IITRACE EO !"RACE/2 2 J ) G C TO 0CC42 GO TO C0043

00042 CONTINUE «R: TEIN02, 00045;T IT1E, I (••'• LB*2)

00045 FORMAT(IX.ElO 4.:4,2/.5HEVEK.T) CALL I CHECK.

00043 CONTINUE CALL CECI1,5.K00E) IF'KOnE.EQ.I>G0 TO C0046 GO T 3 00047

00046 CONTINUE RA(LV»1 > = TIP!E*RP< l ) CALL SCHEOIRVII),MTO.I.0)

IF( I TRACE.GE.1)GO TO 00049 GO TO 00050

00049 CONTINUE WRITEtNOl,00052)TIME,IACLB*2)

00052 FORMAT!IX,ElO.4.I4.2X.22H601 TIMR BBSIh :RI0D; 00050 CONTINUE

I Ft I TRACE.GE.2.AND (I TRACE.EO ITRACE/2 2>;G0 TC 00053 GO TO 00054

00053 CONTINUE WRITE(N02,00056)T1HE,IA(LB*2>

00056 FORMAT!IX,ElO.d,M.2X.22H601 TIMR BEGIN PERIOOI CALL I CHECK

00054 CONTINUE TPB=TIME 1A(LV*2>=0 1ACLV*5>=0

60 TO 00048 00047 IFCKOOE.EG.2>G0 TO 00057

GO TO 00058 00057 CONTINUE

-366-

:*<.. I ' i . •- ;* > Ly«2. • • •"-': f i .-*PB»RLPi a : .• • 2 i , cr-^_ r-C'-t.n'fti/i 3. c i e .; o>

|F'.-rf!2 •«£ !P(2..r,e TC 0C059 PC '(J OU06C PAC _."•;. !TPB , sr-p 3 :/'2 *'

130 TO C.0&' iOC&O IChTI N05 RA'_ .'•<! , = TP[j-^P •.-» " 3 '

•.0'J6' CON" I •!:.,£ |f'iFs« 3£ : J so -c cooes no ~~ '•'•^•i'j

00-62 ICnTI'wL W»]T£(r„r;i car ,S5 iT lMr | A - . f i - 2 l

C0C6S F C R I ' A T I " E l i <! ! J . 2 / . 2 i - ' b O I TiMP UEC • \ •...-.' C0063 CC r<"INl,£

iF-:rp/.r;F 'if 2 -i ,'TPicE cr. :TB/.'.C i . •• -•. . •. G O T O c-r-c? 0CC66 CONTINUE WRIIEINO? 00069iT!~ IE !A!L6->2

00C69 FORMAT' • > , E10 4 , 1 c 2 / , 2 1 M 6 C ! TIMR BEP: '. :>-. C»_. I CHECK C0G6 7 CONTINUE GO TO 000<58

0CC53 ; F ( K O D E ~.Q 3 I G 0 TO CDC70 SO TO C007i 0CC70 CONTINUE : A (LV- ' j ) = - : A I -V' -S) •»' "H LV»6 ,• = TPB->RL°(7. I V(SJ 1 CALL S C r l E 0 l R V ( 6 i . K T C , 5 , 0 l

I F ( 1 V ( 5 > NE l P f S J I G C TO 00072 00 TO 00073 00072 CONTINUE RAl LV-71 =TPB-RLP<6 IV'BI-M GO TO 00074 00073 CONTINUE

RA(i-V47J=TPB-tRP( 11 «»_P(e., I . 00074 CONTINUE

IF(I TRACE GE.1)QO TO 00075 GO TO 00076 00 1 CONTINUE W R I T E ( N C I . 0 0 0 7 8 - T I M E , I A ( L B * 2 )

C0C78 F O R M A T I I X . E I O . 4 , I 4 , 2 X , 2 4 H 6 0 1 TIHR BES IN !N _ ERVAL. 0OC76 CONTINUE

I F ( i r R A C E . S E . 2 AND <!TRACE EO ITRACE/2 2) IOC TC O0C - 9 SO TO 00080

00079 CONTINUE WRITE(NO2.O0082JTIME, IACLB+2)

00082 FORMAT< I X , £ 1 0 . 4 . 1 4 . 2 X , 2 4 H 6 0 1 TIMR BEGIN INTE=? j t CALL 1 CHECK oooao CONTINUE

-367-

FORTRAN F u n c t i o n Procjrans

GO TO 00046 00071 IFCKODE EG.4)GO TO 00083 GO TO 00084 00063 CONTINUE IA(LV<2)=-IAILV*2) CALL SCHED<RVr4i,MTO,2,0) nA<LV»3)=0. IF(I TRACE.GE.1lGO TO 00085 GO TO 00086 00063 CONTINUE WRITE<N01 ,000B8ST!I1E. !AILB*2) 00088 rORMATMX.ElO 4. 14,2/. 19H601 TIMR END SHIFT) 00086 CONTINUE IF!IFRACE.GE.2 AMD I[TRACE.EO ITRACE/2 S>/GO TO 00089 GO TO 00090 00089 CONTINUE WRITE<N02,00092 ITT ME, IACLB*2) 00092 FORMATMX.E10 4, M, 2X , 1 9H601 TIMR END SHIFT) CALL I CHECK 00090 CONTINUE GO TO 00046 C0084 IF(KC0E.eO.S)Ga TO 00093 GO TO 00094 00093 CONTINUE I A ( L V + 5 ) = - IA(LV-»5> CALL SCHED<RV(7) ,MTO,3,0> R A ( L V « 6 ) = 0 .

I F U T R A C E . G E . 1 >GO TO 00095 GO TO 00096 00095 CONTINUE WRITECNOl,00098)TIME, IAtLB*21 00098 FORMAT(1X.EI0.4,I4.2X.22H601 TJMR ENO INTERVAL) 00096 CONTINUE IF(ITRACE.GE.2.AND.(ITRACE.EO.ITRACE/2 2))GO TO 00099 GO TO 00100 00099 CONTINUE VJRli'E(N02,00102)TIME, IA(LB+2> 00102 FORMAT!IX.E10.4.I4.2X.22H601 TIMR END INTERVAL) CALL I CHECK 00100 CONTINUE 00094 CONTINUE 00048 CONTINUE ICTYP£=-6 IPOINT=0 GO TO 99992 99900 CONTINUE 1F(ITRACE.GE.t.&O TO 00103 GO TO 00104 00103 CONTINUE WRITE<N01.00I061TIME,[A<LB*2> 00106 FORMAT!IX,El0.4, I4.2X, 11HINTERACTION) 00104 CONTINUE

-368-

FORTRAN Function Prograns

IFIIfRACE.GE 4 AND.I I TRACE.EO.I TRACE/2 2))GO TO OOI07 GO TO 00108 00107 CONTINUE WRITE* N0;>, 00110) TIME, (A<LB*2) 00110 FORMAT(IX.E10.4. J4,2X, 1 1HINTERACT 1 ON) CALL I CHECK 00108 CONTINUE IFU i -RACE QE.3 IG0 TO 001 1 1 SO TO 00112 00111 CONTINUE WR1TE(M)1,00114ITIME, 1A1LB+21 00114 FORMATl1X.E1C.4,I4,2X,31H60> TIMR RETURNING TIMING DATA) 00112 CONTINUE JFUTRACE GE 4 . AND. C I TRACE. EO. I TRACE/2 2 ) ) G O TO 0 0 ) 1 5 GO TO 00116 00115 CONTINUE URITECNG2.001 18)TIME, lA(LB+2> 00116 FORMAT!1X.E10.4,t4,2X.3)H601 TIMR RETURNING TIMING OATA) CALL I CHECK 00116 CONTINUE ICTTPE=-9 IPOINT=LV<l GO TO 39992 00026 CONTINUE WRITE t f JO l . 00119 )

00119 FORMATC/1X,15H ERROR / 1 X , X 37HIIJ.EGAL RESPONSE COMMUNICATION CBNNN))

CALL ERROR END C 602 SCAS 3/16/78 C START CONTROL ACTION SEQUENCE C LP*0 1 RESPONSE POINTER C 1 4 ACTION SEQUENCE SPECIFICATION. REPEAT FOR EACH ACTION: C 11 FUNCTION [NEGATIVE FOR FIRST ACTION OF SUBSEQUENCES), C 2) ACTION STARTING TIME DELAY DISTRIBUTION TYPE, 3) ACTION C STARTING TIME DELAY STATISTICS CO OR MORE VALUES) C LV+0 1 ENTRY COUNT C LI*0 0 SUBROUTINE 6602 DIMENSION IPVT<3) DIMENSION IAI1) COMMON RAC1) EQUIVALENCE I I AC 1 ),RA(1> ) COMMON /SYSTEM/MFROM,MTO,1CTYPE,IPOIMT, 1 I DUMP.ISECA,1 TRACE,LB.LBCA,LBLIST,LBPT,LBUF,LCSB.LE, 1LEC,LFFB,LFFE,LI,LLE.LLFB,LLFE.LMS,LNE,1,P.L.V M1NNFL, 1IWSE,NFE,NFL,NI1,NI2,N0I,N02,NREP,NRUM,NSE,TIME.TSTOP DATA IPVT/1,4,1/ ]A(LV)=1AILV)*1 !F(ICTYPE.GE.O)GO TO 99991 GO TO 00026 99991 GO TO (99:00,99200,99300,99400,99500,99600,99700,99600,99900)

-369-

FORTRAN F u n c t i o n Frogrsjr.s

X, ICTVPE 99992 RETURN 99100 CALL CREATE!602,2,1,IPVT) ICTYPE=-1 IP01NT=O GO TO 9 9 9 9 2

99200 CALL DLSTROUPVT) ICTYPE=-2 IP0IHT=O 60 TO 99992 99300 CALL SET!1,IPVT,INTD.REALD) ICTYPE=-3 IP0INT=0 GO TO 93992 99400 CONTINUE VRITE<KQ1,000271 00027 F0RMAT(/1X,15H ERROR /1X, X 43H602 SCAS ATTEMPT TO SET INITIAL CONDITiONS) CALL ERROR 99500 CONTINUE WRITEIN01,G0026)IA<LB+2> 00028 FORMAT!//.9H FUNCTION,I 4,IX.8H602 SCAS/tlX.SHNO REPORT) ICTYPE--5 IPOINT^O GO TO 99932 99600 CONTINUE 1=1-11)

00029 1=1+1 IF(ri) (i-(lAtLB+4))).LE.OIGO TO 00030 GO TO 00031 00030 CONTINUE IA(LV-I*I)=IA(LI-1fI) GC TO 00029 00031 CO.'.TINUE ICTYPE=-6 1P0IMT=0 GO TO 99992 99700 CALL DUMPeIPVT) ICTYPE=-7 IPOINT'D GO TO 99992 99600 CONTINUE IF([TRACE.GE.1>B0 TO 00032 SO TO 00033 00032 CONTINUE WRITEtNO 1,00035)TIME,IA<LB*a> 00035 FORMAT!IX,El 0.4, I 4,2X,5HEVENT) 00033 CONTINUE IF(i7RACE.GE.2.AN0.CITRACE.EO.ITRACE/2 Z>>G0 TO 00036 GO TO 00037 00036 CONTINUE WRITE(NO2,00039)TIME,IA(LB+21 -370-

FORTRAN Function Programs

00039 F0RH*T(1X,E10,4, M, 2X, SHEVENT) CALL I CHECK 00037 CONTINUE WR!TECNO1,00040) 00040 F0RMAT</IX.15H ERROR /1X, X 31H602 SCAS ILLEGAL EVENT MESSAGE) CALL ERROR 1CTYPE=-6 IPOINT=0 00 TO 93992 99900 CONTINUE IF<ITRACE.GE.3>G0 TO 00041 60 TO 00042 00041 CONTINUE WRITE(N01,00044)TIME,IACLB*2) 00044 FORMAT!1X.E10.4.14,2X.11HINTERACTI0N) 00042 CONTINUE IF<I TRACE.GE.4.AND.<tTRACE.EO.ITRACE/2 211G0 TO 00045 00 TO 00046 00045 CONTINUE WRITE<N02,00048)TIME,IAILB+2) 00048 FORMATt1X.E10.4.14.2X,11HtNTERACTICNl CALL I CHECK 0004S CONTINUE IF(IA<IP01NT*Z).E0.11)GO TO 00049 GO TO 00050 00049 CONTINUE 1=1-11 I 00052 1=1*1 1F((I) <I-<IA(IP(1>+3>)).LE,0)GO TO OO0S3 GO TO 00054 00053 CONTINUE IFIRLPC1.t).LT,0)GO TO 00099 GO TO 00056 00055 CONTINUE CALL SAMPLt IPM), 1*1, TD) CALL SCHEO(TIME-»TD, -IFIX<RLP<1, I )), 1 , 1P<1 1 ) 00056 CONTINUE GO TO 00052 00054 CONTINUE 30 TO 00051 00050 CONTINUE WRITE!NO1.0005S) 00055 FORMATt/1X.15H ERROR /1X, X 29H602 SCAS ILLEGAL INTERACTION) CALL ERROR 00051 CONTINUE 1A<IP0INT«2>=-11 ICTYPE=-9 1P01HT=1P01NT GO TO 99992 O0026 CONTINUE -371-

FORTRAN Funclion Programs

W R I T E ' N O I , 0 0 0 5 9 ) 00059 F O W H T C / I X , ISH ERROR / 1 X , X 37HILLEGAL RESPONSE COMMUNICATION (BNNNJ) CALL ERROR END C 701 Pl?i1B 3/16/70 C MEASURE MATERIAL BATCHES C LP+O 1 RESPONSE POINTER C 1 1 NUMBER OF MATERIAL TYPES MEASURED c 2 4 MEASUREMENT SPECIFICATIONS (REPEAT FOR EACH TYPE) C INTEGER MATERIAL TYPE CODE C MEAN COUNT ERROR \: MAXIMUM UNIFORM DEVIATION OF COUNT ERROR C SYSTEMATIC MASS ERROR C MEAN OF RANDOM MASS ERROR C STANDARD DEVIATION OF RANDOM MASS ERROR C 3 3 MEAN TIME TO COMPLETE ALL MEASUREMENTS C 4 3 MAXIMUM UNIFORM DEVIATION OF MEASUREMENT TIME C 5 1 TIMINS CODE C 6 1 TIMER FUNCTION C 7 2 MONITOR FUNCTIONS C 8 1 DESTINATION FUNCTION C 9 1 TRANSPORT FUNCTION C 10 2 FUNCTIONS NOTIFIED AT CONDITION TIMES C 1 1 1 DUMMY PARAMETER USED FOR SAVE LOCATION C LV+O 1 ENTRY COUNT C 1 1 NUMBER OF BATCHES IN FUNCTION C 2 1 MAXIMUM NUMBER OF BATCHES CONCURRENTLY MEASURED C 3 3 TIME MAXIMUM FIRST OCCURRED C 4 1 LN OF MOST RECENT BATCH IN MEASUREMENT c Li*; o C 1 O C 2 O C 3 0 C 4 0 SUBROUTINE B701 DIMENSION IPVTM7) DIMENSION IA<1) COMMON RAO) EQUIVALENCE I IA(1>.RAC1>> COMMON /SYSTEM/MFROM.MTO.ICTYPE.IPOIMT, I I DUMP,1SECA,I TRACE,LB,LBCA,LBL1ST,LBPT,LBUF,LCSB,LE, 1LEC,LFFB,LFFE,LI,LLE,LLFB.LLFE,LMS,Lf-e,LP,LV.MINNFL, 1MNSE,NFE,NFL,NI1,NI2,N01,N02.NREP.NRUN,NSE,TIME,TSTOP DATA IPVT/1,1,4,3,3,1,1,2,1,1,2,1,1,1,1,3,1/ IA<LV)=tA(LV)*l IF(ICTYPE.QE.OJSO TO 99991 GO TO 00026 99991 GO TO (99100,99200,99300,99400,99500,99600,99700,99000,99900) X, 1CTYPE 99992 RETURN 99100 CALL CREATE<701,12,5,IPVT)

-372-

FORTRAN F u n c t i o n pro&rons

ICTYPE=-I IP01NT=0 GO TO 99992 99200 CONTINUE IFClVd > .OT.OIGO TO 00027 GO TO 00028 00027 CONTINUE ASSIGN 00030 TO L00004 GO TO 00004 00030 CONTINUE 00028 CONTINUE CALL DESTRO*tPVT) ICTYPE=-Z IPOINT=0 GO TO 99992 99300 CALL SET<1,1PVT,1NTO,REALDI lCTYPE=-3 1P01NT=0 GO TO 99992 99400 CONTINUE WRITECN01,00031) 00031 FORMATC/1X, 15H ERROR /1X, X 43H701 MZMB ATTEMPT TO SET INITIAL CONDITIONS) CALL ERROR 99500 CONTINUE WR]TE<N01 ,00032} ]A(LB+2> , IACLV+21 .RACLV+3)

C0032 F C S t U T ( / / . 9 H FUNCTION,14 , IX ,8H701 /MZMB / 1 I X . X 40HMAX1MUM NUMBER OF BATCHES 11* MEASUREMENT.I 10 /I IX, X 27HT1ME MAXIMUM FIRST OCCURRED,1IX,El 2.43 lCTYPE=-5 1POIMT=0 GO TO 99992 99600 CONTINUE IF( IV< 1 ) .GT.OGO TO 00033 GO TO 00034 00033 CONTINUE ASSIGN 0003S TO L00004 GO TO 000O4 00036 CONTINUE 00034 CONTINUE 1=1-11) 00037 1=1+1 IF(t;> (1-(IA(LB+4))).LE.0)G0 TO 00038 60 TO 00039 00039 CONTINUE IA(LV-l + n = IA(LI-1 + n GO TO 00037 00039 CONTINUE lCTYPE=-6 1P0INT=0 GO TO 99992 99700 CALL DUKPtlPV7J

-373-

FORTRAN Funcxion Programs

ICTVPE»-7 IPOiNT=0 Grj TO 9999S 99600 CONTINUE IF<I TRACE GE.lJGO TO 00040 00 TO 00041 00040 CONTINUE WRITEIN01.000431T1ME,IACLB+2) 00043 F 0 R M A T M X . E 1 O . 4 . I 4 .2X.5HEVENT) 00041 CONTINUE IP(irRACE.GE.2.AND.(1TRACE.EQ.ITRACE/2 2>)G0 TO 00044 60 TO 00045 00044 CONTINUE WRITE(N02,00047)TJME, IACLB+2) 00047 FORMAT(1X.£10.4, I 4,2X,5HEVENT) CALL I CHECK 00045 CONTINUE

CALL C E C I \ , 1 , K O D E ) L N = I A ( I P 0 I N T + 1 ) LFi=IA<LN+3) I F I I I M S ) , E 0 . I )G0 TO 00048 GO TO 0 0 0 4 9 00048 CONTINUE 1=1 T=TIME GO TO 00050 00049 CONTINUE MFR0M=IA(LB*2) MT0=IPC6) ICTYPE=9 1P0INT=0 IA<LP)=1 GO TO 99992 00051 CONTINUE CALL TtMER<IP<5),I.T1 00050 CONTINUE IFCI.GT.1>G0 TO 00052 60 TO 00053 00052 CONTINUE CALL SCHEDCT.IA(LB*2>,1.LN) GO TO 00054 r J53 CONTINUE ASSI3N 00055 TO L00001 SO TO 00001 00055 CONTINUE tF(lTRACE.GE.1)G0 TO 00056 GO TO 00057 00056 CONTINUE W R I T E I N O l , 0 0 0 5 9 ) T I M E , I A ( L B * S )

0 0 0 5 9 F0Ri1ATC1X,El0 .4 , J 4 , 2 X , 3 1 H 7 0 1 MZMB MEASUREMENT COMPLETED} 00057 CONTINUE IFOTRACE.GE.2.AND.(ITRACE.EO.1 TRACE/2 2))G0 TO 00060 -374-

FORTRAN Function Programs

GO TO 0O061 00OS0 CONTINUE WRITE!N02,00063)TIME,IA!L6*2) 00063 FORMAT!1X.E10.4,Id,2X,31H70I MZMB MEASUREMENT COMPLETED) CALL I CHECK 00061 CONTINUE ASSIGN 00064 TO L00002 GO TO 00002 00064 CONTINUE 00034 CONTINUE ICTYPE--8 IP0INT=0 ISO TO 99992 99900 CONTINUE JFdTRACE.GE.3IG0 TO 00065 GO TO 00066 00065 CONTINUE WRITE<N01.000681TIME.IAILB*2) 00068 FORMAT! 1/.,E10.4, 14.2X, 1 IHINTERACTION) 00066 CONTINUE IF!ITRACE.GE.4.AND.<ITRACE.EQ ITRACE/2 2))G0 TO 00069 GO TO 00070 00069 CONTINUE WRITECN02,00072)TIME.IACLB+2) OC072 F O R M A T U X , E 1 0 . 4 , 1 4 . 2 X , 11H] NTERACT! ON)

CALL I CHECK. 00070 CONTINUE IFCIACIP0]NT*2).E0.1)G0 TO 00073 GO TO 00074 0O073 CONTINUE 1AILP+11!=IPOSNT CALL COPYB(IPOINT.LN) I A ( L V + J ) = I A ( L V * 1 ) * 1

I F H V i l > .GT. J V ( 2 ) ) G 0 TO 00076 GO TO 00077 00076 CONTINUE IA(LV+2)=IV(1) RA!LV+3)=T!ME 00077 CONTINUE IFC1VI4),LE.0)G8 TO 00079 GO TO 00060 00079 CONTINUE !A<LNf8>=0 !A(LN+9)=0 IA(LV*4)=LN GO TO 00O81 00060 CONTINUE IAIrV(4)*9)=LN IA<LN+6)=IV<4) IA(LN+9>=0 IA(LV*4)=LN 00061 CONTINUE

-375-

FORTRAN Function ProScans

IF<IP<5).EQ.1)G0 TO 00082 00 TO 00003 00002 CONTINUE 1=1 T=T!ME GO TO 0O0B4 00083 CONTINUE MFR0M=IA!LB*2) MT0*JPC6> ICTYPE=9 IPOINT=0 1A(LP>=Z SO TO 99992 00085 CONTINUE CALL TIMER!IP<5),I,T) 00064 CONTINUE CALL SCHED(T+RUNIF(RP(3)1RP«4)l,IA<LB*ai,lJLN) ASSIGN 000B6 TO L00003 00 TO 0C003 00066 CONTINUE tF( I TRACE. GE. 3)00 TO 00087 00 TO 00066 00087 CONTINUE WftlTE<N01,00090)TIME,IACLB+2)

0 0 0 9 0 FORMATMX.E10 .4 , I 4 , 2 X , 2 9 H 7 0 1 MZMB MEASUREMENT STARTED) 00088 CONTINUE IFII7RACE GE.4.AND.IITRACE.EO.ITRACE/2 2))C0 TO 00091 GO TO 0O092 00091 CONTINUE WRITECN02,00094)TIME,!A(LB*2) 00094 FORMAT!1X,E10.4,I4,2X,29H701 MZMB MEASUREMENT STARTED) CALL ICHECK 00092 CONTINUE I P O I N T ^ I P C U ) 1A(1P01NT*2>=-1 GO TO 00075 00074 TFtIACIP0INT*2).EO.5)GO TO 00095 00 TO 00096 00095 CONTINUE IA<IP0INT+2)=-5 IA<IP0INT*3>=0 IA<IP0JNT+4)*1V(41 IA<IP0INT+5>s|Vtl) IF(IJRACE GE.31G0 TO 00097 GO TO 00098 00097 CONTINUE WR1TECN01,00100)T1ME,IACLB+2) 00100 FORMATI1X,E10.4,14,2X,38H701 MZMB MATERIAL ACQUISITION ATTEMPT) 00098 CONTINUE lF(l1TftACE.GE.4.AND. (ITRACE.EO. ITRACE/2 2>>G0 TO 00101 GO TO 001 OS 00101 CONTINUE

-376-

FORTRAN Function Programs

WRITE<N0£,00104>TIME,IACLB+2) 00104 F0RMAT(1X,E10,4,14,2K,3SH701 MZMB MATERIAL ACQUISITION ATTEMPT) CALL I CHECK 00102 CONTINUE 00 TO 0OO7S 00096 CONTINUE WRITEfNOl,00103) 00105 FORMAT!/1X.15H ERROR /1X. A 29H701 MZMB ILLEGAL INTERA6T10NI CALL ERROR 00075 CONTINUE JCTYPE=-9 1POINTsI POINT SO TO 99992 C 00001 CONTINUE CALL PC0MCILPC7,I),9,6,0,0.0, 0,0,0,0) N=1-11 ) 00106 N=N*i IF<fi) (N-IIP(1))).LE.01G0 TO 00107 GO TO 00106 00107 CONTINUE

CALL MZURILM.IP(2).N,IA<IP01NT*3>,1ACIP0IMT*4>,RA(IPOINT+5 1 , lA(IPOINT+6),RAHP0INT+7>)

1=1-11) 00109 1=1*1 1F((1) <l-<lA(IP(7)+31)).LE.0)Gei TO 00110 GO TO 0O1I1 00110 CONTINUE MFR0M=IA(LB«-2> MTCMLPI7,)) ICTYPE=9 IAClP01NT+2>=8 IA(LP)-3 SO TO 99992 00112 CONTINUE IF(IA(IPOINT*2),NE.-6)G0 TO 00113 GO TO 00114 00113 CONTINUE WRITECN01,00116) 0Q116 F0RMATI/1X,15H ERROR /1X, X 3BH701 MZMB RESPONSE TO MEASUREMENT DATA) CALL ERROR 00114 CONTINUE GO TO 00109 00111 CONTINUE GO TO 00106 001 OB CONTINUE CALL FSTOREMPOINT) GO TO L00001, (00055) C 00002 CONTINUE

-377-

FORTRAN Function Programs

I F C I v m . E Q . 1 )G0 TO 00117 0 0 TO 001 IB

00117 CONTINUE IA<LV+4>=0 GO TO 00119 00118 CONTINUE IF< IV<4).E0..LN>G0 TO 00120 GO TO 00121 00120 CONTINUE 1A<LV*4)=1A<LN«8)

IF ( IA( I .N»8) G T . O G O TO 00123 GO TO 00124

00123 CONTINUE [AC IA(LN-»8)*9!=0 00124 CONTINUE 00 TO 00122 00121 CONTINUE IF(!A<LN+8J.EO.O>GO 'O 00126 GO TO 00127 00126 CONTINUE rA( 1A(I.N*9)*8:=0 GO TO 00128 00127 CONTINUE IA< lA(LtJ*0H-9) = l A<LN+9> !AtIA(LN*9|tO)=IA<LN+a) 00128 CONTINUE 00122 CONTINUE 00119 CONTINUE ASSI6N 00129 TO 1.00003 GO TO 00003

00129 CONTINUE IA<LN+6>=0 lA<LN+9>=0 IA(LN+4>=IACLB*2> MFR0H=lACLB+2> MT0=IPC9) ICTVPE=9 1P0INT=LN I A ( L N * 5 ) = I P C 8 ) 1AU , ) = 4 GO TO 9 9 9 9 2 00130 CONTINUE IF<IA(IP0INT+2).NE.-1>GO TO 00131 GO TO 00132 00131 CONTINUE WRITE(N01 ,0013<!> 00134 F0RMATI/1X,15H ERROR /'1X, X 49H701 hzm MATERIAL NOT REMOVED AT COMPLETION TIME)' CALL ERROR 00132 CONTINUE CALL FSTORE(IPOINT) 1AILV*1)=IA(LV+I)-1

-378-

FORTRAN Function Programs

GO TO L00002, (00OG4) C 00003 CONTINUE IF(IP(10).GT.OJGO TO 00135 GO TO 00136 00135 CONTINUE CALL PCOMCJLPMO, 1J ,9, 9,0, I V<4>, I W 1 >, 0, 0, 0, 0) l«l-ll) 00133 1=1+1 IF((I) <l-(IAtIP()0>+3))).LE.0)G0 TO 00139 GO TO 00140 00139 CONTINUE MT0=ILP(10,I) ICTYPE=9 IA(LP)>5 GO TO 99992 00141 CONTINUE IFCAUPOINT+2) .NE. -9)G0 TO 00142 GO TO 00143 00142 CONTINUE WRITE(N01,00145) 00148 F0RMAT(/1X.1SH ERROR /1X. X 36H701 MZMB RESPONSE TO CONDITION NOTICE) CALL ERROR 00143 CONTINUE CALL FSTOREI IPOI NT) GO TO 00138 00140 CONTINUE 00136 CONTINUE SO TO L00003, (00066,00129) C 00004 CONTINUE LN=IV(4) 00146 IF<LN GT.01G0 TO 00147 GO TO 00146 00147 CONTINUE CALL FRMD(1A(LN*3>> CALL FSTORE(LN) i_iW=IA(LN+8> GO TO 00146 00146 CONTINUE GO TO L00004, (00030,00036) 00026 IOOOOO=IA(LP) GO TO (00051.00065,00112,0013C,00141), IOOO00 ENO C 702 CMBA 3/16/78 C COMPUTE MATERIAL BALANCE C LP+O I RESPONSE POINTER C 1 1 NUMBER OF REPORTS C 2 4 REPORT SPECIFICATIONS (REPEAT FOR EACH REPORT) C INTEGER MATERIAL TVPE CODE C OATA: 1 = OBSERVED 2 = TRUE 3 = ERROR

-379-

FORTRAN Function Proarens

C VARIABLE: 1 - COUMT 2 - MASS C SAMPLING: 1 = EACH INPUT/OUTPUT 2 = REPLICATE C REPLICATE SAMPLING TIME C NUM&ER HISTOGRAM CELLS C WIOTH OF HISTOGRAM CELLS C LOWER LIMIT OF FIRST HISTOGRAM CELL C 3 2 INPUT FUNCTIONS C <S 2 OUTPUT FUNCTIONS C 5 1 - POINTERS TO REPORT DATA C LV*0 1 ENTRY COUNT C LI*0 0 SUBROUTINE B702 DIMENSION 1PVT<7) DIMENSION lAfl) COMMON RA(1) EQUIVALENCE (I A(1),RA(I)) COMMON /SYSTEM/MFROM.MTO,ICTYPE,I POINT, I I DUMP,1 SECA,I TRACE,LB,LBCA.LBLI ST.LBPT,LBUF.LCSB,LE, ]LEC,LFFB,LFFE.LI,LLE,LLFB,LLFE.LMS.LNE,LP.LV.MlNHFL 1MNSE,NFE,NFL,Nl1,NI 2,N01,N02,NREP,NRUN,NS£,TI ME.TSTOP DATA IPVT/1,1.4,2,2,1,1/ IA(LV)=IA<LV)+1 IFCICTYPE.GE OiGO TO 99991 GO TO 00026 99991 GO TO (99100.99200,99300,99400,99500,99600,99700.99800,999001 X, ICTYPE 99992 RETURN 99100 CALL CREATE(702,6,1,IPVT) ICTYPE=-1 IPOINT 'O GO TO 99992

99200 CONTINUE I F ( I P ' 5 ) . G T . 0 ) G 0 TO 0 0 0 2 7 GO TO 0002:8 00027 CONTINUE N»l-M) 00030 N=N*1 IF((I) (N-(IP<1JJ ) . LE.01G0 TO 00031 GO TO 00032 00031 CONTINUE CALL FSTOREUACf IP(5>,N>) GO TO 00030 00032 CONTINUE CALL FST0RE(IP(5)) 00028 CONTINUE CALL DESTROUPVT) (CTYPE=-2 (POINTsO GO TO S9992 99300 CALL SETtt,IPVT,INTD,REALD) ICTYPE=-3 IPOINT=0

-380-

FORTRAN Funct i on Pr ogr

60 TO 99992 99400 CONTINUE WRITEINOl,00033) 00033 FORMAT I/\X,1BH ERROR /1X, X 43H702 CMBA ATTEMPT TO SET INITIAL CONDITIONS) CALL ERROR 99S00 CONTINUE ASSIGN 00034 TO LOOOOI eo TO ooooi

00034 CONTINUE lCTYf>E*-5 I P 0 I N T = 0 GO TO 9 9 9 9 2

9 9 6 0 0 CONTINUE N = l - M ) 00035 N=N+i ]Ft(l> <N-<IP<1))).LE.0JG0 TO 00036 60 TO 00037 00036 CONTINUE 1F<RAC(IP<2},L(1NM<N,8I4>).EQ.2, >G0 TO 00038 GO TO 00033 00038 CONTINUE CALL SCHEO(RAC(IPC 2),LI 1NM<N,8,5)),IA(LB*2i.K,0) 00039 CONTINUE GO TO 00035 0003? CONTINUE IA(LV)=0 IFtlP<5).EQ.0>G0 TO 00041 00 TO 00042 00041 CONTINUE ASSIGN 00044 TO L00002 GO TO 00002 00044 CONTINUE 00042 CONTfNUE IF(NRUN.EO.1)G0 TO 00045 ©0 TO 00046 00045 CONTINUE ASSIGN 00O46 TO L00003 00 TO 00003 00048 CONTINUE GO TO 00047

00046 CONTINUE ASSIGN 00049 TO L00004 GO TO 00004 00049 CONTINUE 00047 CONTINUE ICTYPE«-6 IPOINT=0 GO TO 99992 99700 CALL DUMPtlPVT) ICTYPE=-7 IPOINT=0

-3t»l-

FORTRAN Functi on Programs

GO TO 99992 99800 CONTINUE I Ft I TRACE.GE.1)G0 TO 00050 00 TO 00051 00090 CONTINUE WRITE(NO1,00053)TIME,lAfLB+21 00053 F0RMAT(1X,Et0.4,I 4,2X,5HEVENT> 00051 CONTINUE IF(lrRACE.GE.2.ANL\ tlTRACE.EO. [TRACE/2 2))GO TO 0OO54 GO TO 00055 00050 CONTINUE WRITE(N02,00057)TIME,IA<LB*2) 00057 FORMAT!IX,El 0,4,14,2X,5HEVENT) CALL ICHECi, 00055 CONTINUE CALL CECI 1, IPC 1 ),t;) ASSIGN 00058 TO L00005 GO TO 00005 00058 CONTiNUE I F U I R A C E . G E 1)Q0 TO 00059 GO TO 0 0 0 6 0

00059 CONTINUE WRITE(N01,00062)TIME,IA<LB+2> 00062 FORMAT! "iX,E10.4, 14 2X.32H702 CMBA REPLICATE SAMPLE TAKEN) 00060 CONTINUE 1FUTRACE.GE.2.AND. (I TRACE. EQ. ITRACE/2 2I1G0 TO 00063 GO TO 00064 00063 CONTINUE URIT£<N02,000661 TIME, IAILB+2) 00066 FORMAT!1X.E10.4,14,2X,32H702 CMBA REPLICATE SAMPLE TAKEN) CALL I CHECK 00064 CONTINUE ICTYPE=-8 IPOINT=0 GO TO 99992 99900 CONTINUE IF(ITRACE.GE.3)G0 TO 00067 GO TO 00068 00067 CONTINUE WRITEIN01,00070)TIME,IAILB+2) 00070 FORMATIIX.E10.4,14,2X,11HINTERACTION) 00068 CONTINUE 1 Ft I TRACE.GE.4.AND.(I TRACE.Ed.I TRACE/2 2)>G0 TO 00071 GO TO 00072 00071 CONTINUE WRITE<N02,00074)TIME,IA(LB+2) 00074 FORMATIIX.E10.4.14,2X,11HINTERACT1ON) CALL I CHECK 00072 CONTINUE IF<IA<IP0tNT*2).NE.6JG0 TO 00075 GO TO 00U76 00075 CONTINUE -382-

FORTRAN Function Programs

WRITEfNOI,00078) 00078 F0RMAT(/1X,1SH ERROR /1X. X 29H702 CKBA ILLEGAL INTERACT IOM) CALL ERROR 00076 CONTINUE N»l-I1) 00079 N=N«I IF((t) (M-(IP(1)I I.LE.OJGO TO 00080 GO TO 00081 00080 CONTINUE IFUFIXIRACC IP(2),LI [NM(N,8, 1 ))) .EO. IAC IP0JNT*3))G0 TO 00082 GO TO 00083 00082 CONTINUE ASSIGN 00085 TO LOO006 GO TO 00006 00085 CONTINUE IF!I.EC,1)G0 TO 00086 GS TO 00087 00086 CONTINUE SIGN=1. ASSIGN 00089 TO L00007 GO TO 00007 00069 CONTINUE GO TO 00088 0C087 lF(I-E0.2)Gb TO 00090 GO TO 00091 00090 CONTINUE SIGN=-1. ASSIGN 00092 TO L00007 GO TO 00007 00092 CONTINUE GO TO O0088 00091 CONTINUE WRITECN01,00093) 00033 F0RMAT(/1X,15H ERROR /1X, X 49H702 CMBA DATA RECEIVED FROM ILLEGAL I/O FUNCTION; CALL ERROR 0D088 CONTINUE lSAMP=IF!X(RACUP(2)>LIINMtN,B,4>>) IF(ISAMP.EO,1>G0 TO 00094 GO TO 0009S 00094 CONTINUE ASSIGN 00097 TO L00005 GO Tu 00005 00097 CONTINUE GO TO 00096

00095 IFUSAMP.NE.ZIGO TO 00098 GO TO 00099 00098 CONTINUE WRITE(N01,00100) 00100 F0RMATI/1X,1SH ERROR /1X, X 36H702 CMBA ILLEGAL SAMPLING PARAMETER1

-383-

FORTRAN Function Pt-ograns

CALL ERROR •C099 CONTINUE 00096 CONTINUE 00083 CONTINUE SO TO 00079 0OOS1 CONTINUE IAlIP0INT«2)=-6 IFlITRACE GE.3)G0 TO QOiOl 60 TO 00102 0010! CONTINUE WRITE(N01,001Cd>TlME,IA(LB*2) 00104 FORKAT11X,EI0.4,I4.2X.35H702 CKBA MEASUREMENT DATA RECEIVEO) 00102 CONTINUE IFIliRACE.GE.4.AN0.{[TRACE.EO.ITRACE/2 2)>GO TO O0105 GO TO 00106 00105 CONTINUE WR|TE(M02,00108)T;ME,IA(LB+2) 00108 FORMAT(IX,El 0.4,M,ZX,35H7U2 CHBA MEASUREMENT DATA RECEIVED) CALL I CHECK 00103 CONTINUE !CTYr>E=-9 IP01NT=lP0iNT GO TO 99392 C 00001 CONTINUE N=1-ll) 00109 N=N*t IFCtl) (N-ilP(l))) LE.OJOO TO C0110 GO TO 001t1 00110 CONTINUE

L=1A<LCSC1P(S),N)> RA<LCSCL,3))=RAC(L,3I/FL0AT(IAC(L,1)) RA(LCS(L,4))=RAC(L,4>/FL0AT<!A3(L,1))-RAC(L,3) 2

IF :RACIL,4> .LT.O. >i50 TO 00112 GO TO 00113 00112 CONTINUE WRITECN01.C01 15) 00115 FORMATt/IX,1SH ERROR /1X,27H702 CMBA NEGATIVE VARIANCE) CALL ERROR 00113 CONTINUE RA(LCSCL,4))=SQRT(RAC(L,4>) URITE<N01,00116)IA(LB+2),N 00116 F0RMATtlHI,8HFUNCTI0N,14,1X,3H702 CMBA,19X,10HREP0RT KB.,13) I=RAC(IPC 2),LI[NMCN.S,1)) WRITECN01.D0117)1 00117 F0RMAT(11X.13HMATER1AL TYPE,118) l=RAC(tPC2),LItNMlN.8,2>) IFII.E0.1)G0 TO 00118 BO TO 00119 001 IB CONTINUE WRITE(N01,00121 I 00121 FORMAT(1IX,4HDATA,26X,8H0BSERVED) -381-

FORTRAN Fi n e t i o n Pro f l rans

0 0 TO 0 0 1 2 0 0 0 1 1 9 I F U . E O . 2 > G 0 TO 0 0 1 2 2

GO TO 0 0 1 2 3 00182 CONTINUE WRITEfNOI,00124) 00124 FORMAT<1IX,4KDATA,26X,4HTRUE) GO TO 00120 00123 iF(i.eo.3)eo TO 00125

00 TO 00126 00129 CONTINUE URITE!N01.00127) 0 0 1 2 7 F0RI(AT!11X,4HDATA,26X,23HERR0R (OBSERVED - TRUE))

GO TO 0 0 1 2 6 00126 CONTINUE WR1TE<N01,00128> 00128 FORMAT!1IX,2UHILLEGAL DATA SPECIFICATION) 00120 CONTINUE !=RACCIPl2),LMNM(N,a,3>) 1F(I.EQ.I)G0 TO C0I29 GO TO 00)30 00129 CONTINUE WRITEIN01,00132) 00132 FORMAT!11X.8HVARIABLE,22X,5HC0UNT) GO TO 0013^ 00130 IF(I.EQ.2)G0 TO 00133 GO TO 00134 00133 CONTINUE WR1TE<N0I,001351 00135 FORMATI 11X,BHVAR1 ABLE, 22X,4HMASS) GO TO 00131 00134 CONTINUE WRITE<NO1,00l36> 00136 FORMAT!11X,30H1LLEGAL VARIABLE SPECIFICATION) 00131 CONTINUE

I=RAC(IP(2),L!INM(N,8,4!) IFd.EQ.1 )G0 TO 00137 GO TO 00138 00137 CONTINUE WR1TE(N01,00140) 00140 FORMAT! 1 IX, 9HSAMPLING,22X,22HEACH INPUT/OUTPUT IIP GO TO 00139 00)38 IFII.E0.21G0 TO 00111 GO TO 0 0 1 4 2

0 0 t 4 1 CONTINUE WRITECNOI,00143) 00143 FORMAT MIX, BHSAMPL1 NG, 22X, 9HREPL1 CATE) GO TO 00139 00142 CONTINUE

WRITECNOI,00144) 00144 FORMATCI IX,30HILLEGAL SAMPLING SPECIFICATION) 00)39 CONTINUE

WRITE! NCI ,001491RAC! IP!2) , LI INMCN, 8, 5-) ) , I AC< L, 1 ) -385-

FORTRAN Function Ppoorans

00145 FORMAT!1IX 23HREPLICATE SAMPLING TIME.5X, El 2.4 , 6X, X 22HNUMBER OF OBSERVATIONS,8X,110) WRITECNO!,00146)RACCL,3>,RAC<L,4>

00146 FORMAT!1IX,fOHMEAN VALUE,19X,Ell.4 ,6X,18HSTANDARD DEVIATION, X I2X,EIC4) WRITECNOl ,00147JRAC(L,S> ,RA0(L,6)

00147 F0RK.*r( 1 I X , 13i«1«XIMUM VALUE. 1 6 X , E 1 I . 4 , 8 X , X 21HT1?>e OF MAXIMUM V A L U E . 9 X , E 1 0 . 4 )

WRITE(N01,OUi4e)RAC<L,71 ,RACCL,8> 00140 FORMAT!11X, ISHHINinun VALUE,16X,E l 1 .4 , 8 X ,

X EIHTiME OF MINIMUM VALUE,OX.E10 ,4 ) I F d F I X I R A C C l P C Z I . L l I N M ( N , a , 6 l I ) . O T . C M G O TO 0 0 1 4 9 60 TO 00ISO

00149 CONTINUE WRITECN01,00152)

00153 FORMATI/1IX,1IHLOWER L1MIT,26X,7HD1STRI-,4X,3H0.0,9X, X 4H0.2E , BX,qH0.5.9X,4K0.75-,8X,3H1 .0 /I IX, X 7H0F CELL,9X,5HC0UNT,SX,7HDEMS!TV, SX, 6HBUTI ON, 8X X 49H» * * + *>

X=RACnP(2),LI INM(N,e,8) )-RACClP(2),L11MM(N,8,7)) DIS=0. 1A(LBUF*30)=1H1

M=1 - I 1 1 00153 M=M+i

!F!<!) <M-UF!XCRAC(IPC2),UINM1H,8,S)>)>>.LE.0>G0 TO 00154 GO TO 00155

00154 CONTINJE 0EN=FC0ATC1AL.L,8*M))/FLOAT< iAC«L,1)) D!S=D1S*DEN X=X+RAC(1PC2),LIINMIN, 8,71)

J»31-CI) 00155 J=J»I

IF((i) CJ-C80>).LE.0)G0 TO 00157 00 TO 00158

00157 CONTINUE !AvLBUF+J)=1H

GO TO 00156 ' 00156 CONTINUE

K-49. DSN+.999 J=l-I I -

00159 J = J*I IFtCI) CJ-CK!).LE 01G0 TO 00160 GO TO 00161

00160 CONTINUE IA(L8UF*30*J)=1H

GO TO 00159 00161 CONTINUE K=49. DIS IA(LBUF*31»KJ»IK* U'R1TE(N01,00162)X. 1 AC( L, 8»M), DEN, DtS. C IACLBUF+J ) . J=30, 80) 00102 FORMAT: IPX,El 1 .4, 1 10,5X,F6.4.6;<,F6.4. 5X.SIA1 > GO TO 00153 -386-

FORTRAN Function Programs

00153 CONTINUE 00160 CONTINUE

GO TO 0O109 00111 CONTINUE

00 TO L00001, < 0003-1) c 00002 CONTINUE

CALL ASTaREMAILP+SI, IP( 1 ) ) N=1-(1)

00163 NsN»l I F C t l ) <N-<1P<1 m . L E . O J G O TO 0016' i GO TO 001 65

00164 CONTINUE CALL ASTORE(IA(LCS< IP! 5 ) . N>), 6*1 - 1 Xi S«Ci SPJ£> L! J :.MfN. 8, 6)) > i

GO TO 00163 00165 CONTINUE

GC TO L00002, (0004-3) C 00003 CONTINUE

I F O P C 5 ) .LE.OIGO TO 00166 GO TO 00167

00166 CONTINUE WRITEIN01,00169)

00169 FORMAT!/IX,15H ERROR /1X. X 33H702 CKBA NO REPORT DATA TO RESET) CALL ERROR

00167 CONTINUE N=1 -f 1 )

00170 N=N*I IF<<!) IN-IIP<1))).LE.OJGO TO 00171 GO TO 00172

00171 CONTINUE CALL ZlACUACt !P(S),N>>

i = a - d ) 00173 1=1*1

IF((() «]-18)].LE.OiGO TO 00174 GO TO 00175

00174 CONTINUE RA(LCS<IAOC[P<5>,N>,J > ) = 0 .

GO TO 0 0 1 7 3 0 0 1 7 5 CONTINUE

RA(LCS( 1AC( I P < 5 ) , N ) , 7 ) ) = 1 ,0E*50> GO TO 0 0 1 7 0

00172 CONTINUE GO TO L00003., (00048)

C 00004 CONTINUE

N=1"(1) 00176 U-N-M

IF((I) (N-CIPI1)]).LE.OIGO TO 00177 GO TO 00178

00177 CONTINUE -387-

FORTRAN Furicx i on Prosjrdns

L=:AC( I P O ) ,N ) R A ( L C S f L , 2 i ) ' 0 .

00 70 00176 00178 CONTINUE

GC TO LQ00C4, (00049) C 00006 CONTINUE

K=! 00179 [FIK.LE. IA( IP(3)»3>. AND IACI i P<3) ,K*8r) NE MFfiOHJQO TD 00180

GO TO 00181 001 SO CONTINUE

K = Ktl 60 TO 00179

00181 CONTINUE IF(K.l.E. 1AI !PI3)*3>)G0 TO 00182 GO TO 00183

00188 CONTINUE [-1

GO TO 00184 00103 CONTINUE 00185 IF(K.LE. !A( }P(A)-3) .AND IACt]Pt-J) ,K*Z> . NE l-IFRCMJGO TO 00186

GO TO 00187 001 BE CONTINUE

K-K + l GO TO 00185

00187 CONTINUE IF<K.LE.IAIIP(4>+3>)GC TO 00188 GO TO 00189

00188 CONTINUE 60 TO 00190

00189 CONTINUE 1=0

00190 CONTINUE COI84 CONTINUE

CO TO L00006, (00085) C 00005 CONTINUE

L=IAC(1F-<B).N) IA(LCSCL.11)=IAC(L,11*1 CV=RAC(L,21 RA(LCS(U,311=RAC«L,3)*CU RA(LCS(L,41)=RAC<L,4)*CV CW IF(CV.GT.RACIL,5)IGO TO 00191 GO TO 00192

00191 CONTINUE RACLCS(L,5))sCV RA(LCS<L,6)IsTlME

00192 CONTINUE IF<Cl/.LT.RAC<L,71IG0 TO 00194 GO TO 00195

-388-

FORTRAN Function Programs

00194 CONTINUE R/>(LCS(L,7) >=CV RA(LCSCL,B>)sTIME 00195 COMTiMUfc !FUFJX(RAC< I P < 2 ) , L I I N W N , B , 6 ) > ) . G T . O ) G 0 TO 00197 00 TO 00193 00197 CONTINUE ICtuLMFIXI <CV-RAC< !P(2>,LI 1NM(N,6,B> >>/ 1 RACIIP(2),LllNMi'N,8.7>))*l IF(1CELL.LT.1!G0 TO 00200 GO TO 00201 00200 CONTINUE 1CELL=1 £50 TO 00202 00201 JFIICF.LL.GT. IF1XCRAC< IP<2),L1INMCN,8.6) ) ) )<30 TO 00203 6C TO 00204 00203 CONTINUE

I C E L L = I F I X I R A C d P c 2 > , U I N M I N . 8 , 6 > > ) 00204 CONTINUE • 0 2 0 2 CONTINUE

1C£LL=LCS(L ,8 * IC£LL) I A < I C E L L ) = I A < I C E L L H - 1 00198 CONTINUE GO TO L00005, (00058,00097) C 00007 CONTINUE

1 D A T A M F 1 X < R A C ( I P < 2 ) . L I I N M C N , 8 , 2 ) 1 ) IVAR=!F1X(RAC(1PC2),L1INMCN,8,3))) L=IAC<IPI5J,N) IFC1VAR.EQ.1)G0 TO 00205 GO TO 00206 00205 CONTINUE IFCIDATA.EQ. 1 )G0 TO 00208 GO TO 00209 00208 CONTINUE RAlLCS<L,2)>-RACLCS(L,2].•SIGN FLOATIIACIP01NT*4)) 60 TO 00210 00209 IF(I0ATA.E0.21G0 TO 00211 GO TO 00212 0021) CONTINUE RA<LCSCL,2>)=RACLCS(L,2))+SIGN FLOATIIAC 1POIHT»6)) GO TO 00210 00212 IFCIDATA.EQ.3)G0 TO 00213 GO TO 00214 00213 CONTINUE RACLCSCL.2) 1sRACLCSCL,2) l-»SIGN FLOATC I AC I POI NTt-4) 1 -IA(IP01NT+6>) GO TO 00210 00214 CONTINUE WRITECKQ1,00215) 00215 FORMATC/IX.15H ERROR /IK, X 39H702 CMBA ILLEGAL REPORT DATA PARAMETER) -389-

FORTRAN F u n c t i o n rVocjrans

CAUL ERROR 00210 CONTINUE 60 70 00207 00206 IF(JVAR.EQ.2)S0 TO DOS16 GO TO 00317 00216 CONTINUE IF<IDATA.EO.1>G0 TO 00218 GO TO 00219 00216 CONTINUE RA<LCS(L,2>;-RA<tCS(L,2)l*SION RA(IPQINT*5) GO TO 00220 00219 IF(|0ATA.EO.2)GO TO 00221 GO TO 00222 00221 CONTINUE RAIL.CS(L,21 >=RA<LCSIL,2) .•SIGN RAf IPOINT*7) GO TO 00220 00222 IF(IDATA.EO,3 JGO TO 00223 GO TO 00224 00223 CONTINUE RA(LCS(L,2))=RA(LCSfL,2))*SIGN (RAf]POINT*5)-RA(IPOINT*7)> GO TO 00220 00224 CONTINUE WRITE<N01,00225) 00225 FORMAT<C1X,15H EKROR /1X, X 39H702 CMBA ILLEGAL REPORT DATA PARAMETER] CALL ERROR 00220 CQN"INUE GO TO 00207 00217 CONTINUE WRITE(N01 ,002261 00226 FORMAT!/1X.15H ERROR /1X, X 43H702 CMBA ILLEGAL REPOKT VARIABLE PARAMETER) CALL ERROR 00207 CONTINUE GC TO L00007, (00089,00092) 00026 CONTINUE WRIT£<N01,00227) 00227 FORMATI/1X.15H ERROR /1X, X 37H1LLEGAL RESPONSE COMMUNICATION (BNNN)) CALL ERROR END C 703 MNTR 3/56/78 C MONITOR STIMULUS TYPE 1 C LP+O 1 RESPONSE POINTER C I 4 SENSITIVITY CHARACTERISTICS PAIRS C 2 4 TIME DELAY OISTRIBUTION TYPE ANO STATISTICS C 3 1 MOOE: 1 = RANDOM INTERVAL 2 = STIMULUS TRACKING 3 * LATCHING C 4 4 DISTRIBUTION TYPE AND STATISTICS- OF RANDOM COMPONENT OF C DETECTION SIGNAL INTERVAL C 5 1 SIGNAL INDEX C 6 3 DETECTION SIGNAL AMPLITUDE C 7 2 DECISION FUNCTIONS

-390-

FORTRAN Function Programs

C 8 3 MEAN TiME BETWEEN SPURIOUS OUTPUTS C LV»0 1 ENTRY COUNT C I 1 DETECTION SIGNAL STATE C LI*0 0 C 1 0 SUBROUTINE B703 DIMENSION 1PVTI11) DIMENSION lAfl) COMMON RA(1> EQUIVALENCE <IA<I).RA<I>> COMMON /SYSTEM/MFROM, MTO , I CTYPE, I POI NTT, I I DUMP,ISECA,J TRACE,LB,LBCA,LBL1ST,LBPT,LBUF,LCSS,LE, 1LEC,LFFB,LFFE,LI,LLE,LLFB,LLFE,LMS, LNE,LP.LV.MINNFL. 1MNSE.NFE,NFL,NI1.NI2.NOl,N02,NREP,NRUM,NSE,TIME,TSTOP DATA tPVT/l,4,4,1.4,i,3,2,3,l,1/ IA<LV>=IA<LV)+1 IFtlCTYPE.GE.OIGO TO 99999 (30 TO 00026 99991 60 TO (99100,99200,99300,99400,99500,99600,99700.99600,99900) X, 1CTYPE 99992 RETURN DATA IX.U/1,0./ 99^00 CALL CREATE!703,3,2,IPVT) ICTYPE*-1 1P0INT=0 GO TG 99992 99200 CALL DESTRO(IPVT) ICTYPE*-2 !P0INT*O GO TO 99992 99300 CALL SETI I, IPVT,INTD,REALD) ICTYPE* -3 IPOINT 'O

6 0 TO 9 9 9 9 2 99-100 CONTINUE WRITE(NOl,00027 J 00027 F0RMATC/1X.15H ERROR /1X, •X 43H703 MNTR ATTEMPT TO SET INITIAL CONDITIONS) CALL TRROR 99500 CONTINUE WR1TECN01,00028/1A(LB*2) 00028 FORMAT!//,9H FUNCTION,I A.1X,8H703 MNTR/1IX,9HN0 REPORT) ICTYPE=-5 IPOlNTsO 60 TO 99992 996O0 CONTINUE If^RPt" ,GT.O. )G0 TO 00029 SO TO 030 0 0 0 2 9 CONTlt> CALL URN(IX.U) T=-RP(8) ALOG(U) CALL SCHEDCT,IA(LB*2),3,0)

-391-

FORTRAN Funcxion Programs

00030 CO. NUE 1-1 t) 00032 1=1*1 IF((I> <]-(!AfLB»4))1 LE.01G0 TO 00033 GO TO 00034 00033 CONTINUE I A f L V - I H >=IA(LJ - 1 * 1 )

GO TO 00032 00034 CONTINUE

ICTYPE=-6 IP01NT=0 GO TO 9 9 9 9 2

99700 CALL DOMP(IPVT) ICTYPE=-7 IPOINT=0 GO TO 99992 99800 CONTINUE IF(ITRACE.SE.1)00 TO 00035 GO TO 00036

00035 CONTINUE WRIT t£<N01 ,00038>T lME, lA (LB*2 )

0 0 0 3 8 F O R M A T ( 1 X , E 1 0 . 4 , I 4 ,2X.SHEVENT) 00036 CONTINUE !F£!TRACir.GE.2.AND. f ITRACE.EO. ITRACE/2 2MG0 TO 00039 GO TO 00040 00039 CONTINUE WRITECNO2,00042>T!ME.IA(LB»2) 00042 FORMAT<1X,E10 4,14,2X,5HEVENT) CALL I CHECK 00040 CONTINUE

CALL CECC1,2.K0DE! JFCKODE.EO.1)GO TO 00043 GO TO 00044

0OD<n CONTINUE Q*RP(6> ASSIGN 00046 TO LOOOOl GO TO 00001 00046 CONTINUE 1A<LV+t>=1 GO TO 00045 00044 [F(KOOE.E0.2)GO TO 00047 GO TO 00048 00047 CONTINUE Q=0. ASSIGN 00049 TO LOOOOl GO TO 00001 00049 CONTINUE IA<LV*t)=0 GO TO 00045 00048 IF(K00E.EQ.31GO TO OOOSO GO TO 00051 00050 CONTINUE -392-

FORTRAN Function PnoQnans

0=RPC6) ASSIGN 00052 TO L00001 60 TO 00001 00092 CONTINUE 1A!LV*1)=1 1F(lTRACE.GE.1)60 TO 00053 GO TO 00094 00058 CONTINUE WR1TE<N01,00056)TIME,1ACLB+2) 00056 FORMAT!1X,E10.4,I 4,2X,25K703 MNTR SPURIOUS OUTPUT) 00054 CONTINUE IF<17RACE.0E.2.AND.<ITRACE.EO.ITSACE/2 2>)GO TO 00057 GO TO 00058 00057 CONTINUE WRITE(N02,00060)TIME,1AILB+2) 00060 FOr<MAT(1X.El0.4, I4.2X.25H703 MNTR SP"JRICJS OUTPUT) CALL I CHECK 00058 CONTINUE 00051 CONTINUE 00045 CONTINUE ICTYPEs-8 IPOINT=0 GO TO 99992 99900 CONTINUE I FtITRACE.GE.3SGO TO 00061 GO TO 00061. 00061 CONTINUE WRITEtftOl,00064)T!KE,IAtLB+2) 00064 FORMATt1X,E10.4,14.2X,11HINTERACTION) 00062 CONTINUE I Ft I TRACE.SE.4.AND.tlTRACE.EO.1 TRACE/2 2>)GO TO 00065 SO Vi 000f.6 00065 CONTINUE URITEINO2,00068)TIME,1A1LB+2) 00068 FORMAT!IX,El0.4,I4J2XJIIHINTERACTION} CALL I CHECK 00066 CONTINUE IFtlAtlP01NT+2) .E0..71G0 TO 00069 GO TO 00070 00069 CONTINUE L=lACIPOINT+3> I=tA(IPaiNT+4) lFtlFlXIRACtL,1*211.NE. 1 )G0 TO OQ072 GO TO 000-»3 00072 CONTINUE WRITEtNCI.00075) 00075 F0RMAT!/1X,15H ERROR /1X, X 31H703 MNTR ILLEGAL STWLL'S TYPES CALL ERROR 00073 CONTINUE 1 = 1 + 1 CALL SAHPLfL,1,T1)

-393-

FORTRAN Fui ' iCtion Pi-ogrsns

| s 1 + N S T A T S t I F I X I R A C ( L , 1 + 2 ) > l + l CALL S A M P L t L . I , T 2 ) 1 = " * N S 7 A T S ( J F I X I R A C ( L , l + 2 ) > ) t 1 CALL S A M P L t L , I . A > N=1ACIPC 1 > + 3 ) - 1

001I7D I F I R L P r i ,N ) .QT.A.AMB.N.GE. 1 ) 6 0 TO 000177 GO TO 00078

00077 CONTINUE N=N-2 30 TO 00076 00078 CONTINUE IFtN.BT.OJGO TO 00079 60 TO 00080 00079 CONTINUE POsRLPd ,N+1 I GO TO 00081 00080 CONTINUE PD=0. 00061 CONTINUE CALL URN(IX.U) IF<U.LE.P0)G0 TO 00082 GO TO 00063 00062 CONTINUE CALL SAMPLUP(2),1,T3) T=TIME+T1+T3 CALL SCHED(T,IA<L£+2)>1.0) IF(1P(3>.E0. 1 IGO TO 0008*3 30 TO 00086 00063 CONTINUE CALL SAHPLUPIrf),!,^) T*T+T4 CALL SCHED<T,lAtLB+2>,2,0) GO TO 00087 00088 IF!)P(3),£0.2)60 TO 00068 GO TO 00089 00088 CONTINUE CALL SAMPL(IP(4),1,T4> T=T+T2*T4 IFCT.LT.O.)B0 TO 00090 GO TO 00091 00090 CONTINUE T=0. 00091 CONTINUE CALL SCHEDIT,!A<LB*2>.2,0> GO TO 00067 00069 IF(!P<3).NE.3)G0 TO 00093 GO TO 00094 00093 CONTINUE URITEfNOI,00095) 00095 FORMAYC/1X,15H ERROR /1X.22H703 MNTR ILLEGAL MODE) CALL ERROR 00094 CONTINUE

FORTRAN Function Prograns

00007 CONTINUE 00083 CONTINUE IAIIP01NT+2) -7 00 TO 00071 00070 IF(JA(IP0INT*2,.EO.8,AND.IAIIP0INT-3).EO L A N D . lAfIPOINT+4)-EQ. X 0100 TO 00096 00 TO 00097 00096 CONTINUE IPUVlt) .EO.DOO TO 00098 00 TO 00099 00098 CONTINUE 0*0. ASSIGN OOIOI TO L00001 GO TO 00001 00101 CONTINUE !ACLV*1)=0 GO TO 00100 00O9S CONTINUE WRITECNOI,00102) 00102 FORMAT(/IX,1SH ERROR /1X,15H703 MNTR RESET) CALL ERROR 00100 CONTINUE IA<IP0INT*2)=-8 GO TO 00071 00097 CONTINUE WRITECN01,00103) 00103 FORMATI/IX,15H ERROR /IX. X 29H703 MNTR ILLEGAL INTERACTION) CALL ERROR 00071 CONTINUE ICTYPE»-9 IPOINT'IPOINT 60 TO 99992 C 00001 CONTINUE

CALL P C O M f t L P { 7 , 1 ) , 9 J 1 0 , 1 , l P < 5 ) , 0 J 0 ( O , 0 , 0 ) RA(JP01NT-»S)=0 K = 1 - I I 3

01)104 K=K+I I F t ( l > ( K - ( ] A ( 1 P ( 7 > + 3 > ) ) . L E . O > G O TO 00105 60 TO 00106 00105 CONTINUE 1CTYPE=9 MT0=ILP(7,K) 1A(LP)»I GO TO 99992 00107 CONTINUE IFClA<IP0tNT+2I.NE.-10)00 TO 00108 60 TO 00109 00108 CONTINUE UR1TE<N01,0011I) 00111 F0RMATC/1X,15H ERROR /IX,

-39S-

FORTRAN Function Proorains

X 37H703 HNTR MONITOR SIGNAL NOT ACCEPTED) CALL ERROR 00109 CONTINUE GO TO 00101 00106 CONTINUE CALL FSrOR£(IPOIMT) GO TO L0O0O1. (00046,00049,00052,00101) 00026 !00000=1ACLPJ GO TO 00107 END C 001 DTBL 3/16/78 C DECISION TABLE C LP+0 1 RESPONSE POINTER C I 2 INPUT SIGNAL INDEXES C 2 1 NUMBER OF CONDITION ROWS C 3 4 CONDITION TRIPLETS C 4 2 OUTPUT SIGNAL INDEXES C 5 1 NUMBER OF ACTION ROUS C 6 4 ACTION PAIRS C 7 1 NUMBER OF DECISION RULES C 6 2 DECISION RULES C 9 2 FUNCTIONS TO RECEIVE OUTPUT SIGNALS C lO 1 NUMBER OF REPORTS C 11 4 REPORT SPECIFICATIONS (REPEAT FOR EACH REPORT) C SIGNAL INDEX C SAMPLING TIME C NUMBER OF CELLS C WIDTH OF CELLS C LOWER LIMIT OF FIRST CELL C 12 1 - POINTERS TO REPORT DATA C LV-fO 1 ENTRY COUNT C 1 4 INPUT SIGNALS C 2 4 OUTPUT SIGNALS C 3 3 TIME OF SCHEDULED DECISION EVENT C LI*0 O C 1 O C 2 O C 3 * 1 SUBROUTINE B601 01MENSION IPVT<17) DIMENSION IAI1) COMMON RA C1) EQUIVALENCE ( 1 A( 1 ),RA(I]) COMMON /SYSTEM/MFROM.MTO.ICTYPE,I POINT, 1 I DUMP.1SECA.I TRACE,LB,LBCA,LBLIST.LBPT.LBUF,LCSB,LE, 1LEC.LFFB,LFFE,LI,LLE,LLFB,LLFE.LMS,LNE,LP.LV,MINNFL, 1MNSE.NFE.NFL.NJ1,N12, N01,N02,NREP.NRUN,NSE.TIME,TSTOP

DATA 1 P V T / 1 , 2 , 1 , 4 , 2 , 1 , 4 , 1 , 2 , 2 , 1 , 4 , 1 , 1 , 4 , 4 , 3 / IA<LV)=IACLV)»1 iftlCTYPE.GE.OGO TO 99991 GO TO 00026 99991 GO TO (99100,99200,99300,99400,99500,99600,99700,99800,99900)

-396-

FORTRAN Function Prooraras

X, 1CTYPE 99992 RETURN 99100 CALL CR£ATr<801,13,4,IPVT) ICTVPE=-1 IPOINT»0 00 TO 99992 99200 CONTINUE IF<IP<12) .GT.O)GO TO 00027 OS TO 00028 00027 CONTINUE N'l-ll) 00030 N=N+t 1F((I) (N-(IP(lO)l).LE.01S0 TO 00031 SO TO 00032 00031 CONTINUE CALL FST0REC!ACUP(12>,U) J 00 VO 00030 00032 CONTINUE CALL FSTOREtIP(12)) 00026 CONTINUE CALL DESTRO(IPVT) ICTYPE=-2 1 POINTED SO TO 99992 99300 CALL SETI 1,IPVT,INTD,REALD) ICTYPE=-3 IPOtNT=0 GO TO 99992 99-100 CALL SET<2.IPVT,INTO,REALD) ICTYPE=-4 IPOINT=0 GO TO 99992 99S00 CONTINUE ASSIGN 00033 TO L00001 GO TO 00001 00033 CONTINUE lCTYPE=-5 IPOINT=0 GO TO 99992 99600 CONTINUE IA<LV*O)=0 I Ft I PC 1l.LE.OIGO TO 00034 GO TO 00035 00034 CONTINUE WR1TECN01,00037) 00037 F0RH«Tt/1X,15H ERROR /IX, X 51H80I DTBL UNDEFINED INPUT SIGNAL INDEXES AT IC TIME) CALL ERROR GO TO 00036 00035 CONTINUE IFCIVC1>.LE.O)GO TO 00038 GO TO 00039 -397-

FORTRAN Function Programs

00038 CONTINUE CALL ASTOREtlAfLV*1),IA(IPC1;+3)*2> rAIIVO >+2> = !A(IV<1> + 1>-2 IA«1V(1)+3>=IA(IP<l)»3> 00039 CONTINUE 00036 CONTINUE I F f t l C t n . L E . O I G O TO 00001 SO TO 00042 00041 CONTINUE «RITE(N0I,00044) 00044 FORMATt/IX,15H ERROR /IX, X 46HB01 DTBL UNDEFINED INPUT IC VALUES AT 1C TIME) CALL ERROR GO TO 00043 00042 CONTINUE 1=1-11) 00045 1=1*1 IF((1) U-(tA( IPC 1 >*3>>) .LE 0)60 TO 0O04S GO TO 00047 00046 CONTINUE RACLCS(IVM>, 1+2)>=RA(LCS(IIC(1>, I+2>) GO TO 00045 00047 CONTINUE 00043 CONTINUE 1F(IP(4).L£.0)60 TO 00048 00 TO 00049 0004S CONTINUE WRITFCNOI,00051) 00051 FORMATt/1X,15H ERROR /IX, X 52H801 DTBL UNDEFINED OUTPUT SIGNAL INDEXES AT IC " CALL ERROR GO TO 00050 00049 CONTINUE I F t I V ( 2 ) . L E . 0)150 TO 0 0 0 5 2 GO TO 00053 00052 CONTINUE CALL ASTORE< t A<LV*2> , 1 At IPC4) <-3> <-2) 1A(IV(2)+2)=IA<1V(2>*1>-2 JA(IV(2)+31=[A<rP<4)+3) 00053 CONTINUE 00050 CONTINUE IFMICI2) .LE.01G0 TO 0OOS5 GO TO 00056 00055 CONTINUE WRITE(N01,00058) 00058 FORMAT*/IX,15H ERROR /IX. X 47H801 DTBL UNDEFINED OUTPUT IC VALUES AT IC TIME) CALL ERROR GO TO O00S7 00056 CONTINUE J"1-ll ) 00059 1=1+1

-398-

FORTRAN Function Proorans

IFUI) CI-<JA(IP(4J+3> D.LE.OJSO TO 00060 SO TO 00061 00060 CONTINUE RA(LCS(IVC2)>I->2))>RACLCS(ltC(2), t*2i) 00 TO 00059 00061 CONTINUE 00057 CONTINUE N»t-I1> 00062 N=N*I IF(CI) <N-(IPt10n >.LE.0)OO TO 00063 00 TO 00064 00064 CONTINUE CALL SCHEDIRACUPIU >,L! INM(N,S,2>>, I ACLB*2) ,N, 0) GO TO 00062 00064 CONTINUE tF<lP('2).EO.0)GO TO 0006S 00 TO 00066 00065 CONTINUE ASSIGN 00068 TO (.00002 GO TO 00002 00068 CONTINUE 00066 CONTINUE IFINRUN.EQ.1>00 TO 00069 GO TO 0OO7O r

00069 CONTINUE ASSISN 00072 TO L00003 GO TO 00003 00072 CONTINUE 80 TO 00071 00070 CONTINUE ASSISN 00073 TO L00004 00 TO 00004 00073 CONTINUE 00071 CONTINUE RAtLV*3J=-l. !CTYPE=-6 IPOINT=0 OO TO 99992 99700 CALL 0UMPWPVT1 ICTYP£=-7 IPOINT=0 80 TO 99992 99800 CONTINUE JFdTRACE.GE. I ISO TO 00074 00 TO 00075 00074 CONTINUE WRITE<NOI,00077)T1ME,IACLB+2) 00077 FORMATCIX.EIO^, 14, 2X, 5H6VENT) 00075 CONTINUE IF(I TRACE.G£.2.AND.UTRACE,EQ,I TRACE/2 2))G0 TO 00078 00 TO 00O79 00078 CONTINUE -399-

FORTRAN Function Pronrans

WR E ( N 0 2 , 0 0 0 8 1 1 ' I M E . I A ( L B * 2 ) 00081 FOKI1ATI1X,E10.4 , I 4 , 2X,5HEVENT> CALL I CHECK 00079 CONTINUE

CALL CEC<-1,|P(10),N) IFCN.EO.-DGO TO 00082 00 TO 00063 00082 CONTINUE ASSIGN 0008S TO L00007 00 TO 0ODO7 00089 CONTINUE

IF INEWSIO.EO, 1 )00 TO 000811 0 0 TO 00087 00086 CONTINUE ASSIGN 00089 TO L00008 00 TO 00008 00089 CONTINUE 00087 CONTINUE 00 TO 00034 00083 CONTINUE ASSIGN 0Q090 TO L00005 GO TO O0O05 00090 CONTINUE

00084 CONTINUE 1CTYPE=-B 1P01NT=0 GO TO 99992 99900 CONTINUE IF<1TRACE.GE.3)G0 TO 00091 GO TO 00092 00091 CONTINUE WRITE<N01,00094)TIME,IA<L&»2) 00094 F0RMATI1X.E10.4,14,2X,11HiNTERACTION] 00092 CONTINUE 1FCITRACE.GE.4. \N0. (J TRACE. EQ. 1 TRACE/2 21)00 TO 000 .5 00 TO 00096 00095 CONTINUE WRITE<NOZ,00099)TIME,IA(LB*2> 00098 F0RMATI1X.E1O.4, 14, SX, 11HINTERACT10N* CALL )CHECK 00096 CONTINUE IF(IA<IP0INT->-2).NE. 10)60 TO 00099 00 TO 00100

00099 CONTINUE WRITE4NQ1,00102) 00102 F0RMATC/1X,15H ERROR /1X, X E9HB01 OTBL ILLEBAL INTERACTIOH) CALL ERROR 00100 CONTINUE ASSION OOI03 TO L00006 00 TO 00006 00103 CONTINUE

FORTRAN Function Programs

IF!*V<3> LT.T1ME1G0 TO 00104 GO TO 00105 00104 CONTINUE CALL SCHED(T[ME,IA(LB-2),-1,0) RA(LV*3)=TIME 00105 CONTINUE 1FMTRACE.GE.39GO TO 00107 BO TO 001 08 00107 CONTINUE WRITE<N01,00110JTIME,IACLB*2) 00110 FDRMATI1X.E1P4,14,2X,33H801 DTBL CONTROL SI&NAL RECEIVED) 00109 CONTINUE IF(IVRACE.lSE.4.AND. UTRACE.EQ. ITRACE/2 2))G0 TO 0011-GO TO 00112 00111 CONTINUE WHITEU. ~u, i,lir;i.,IA -LI'-, 00114 FORHAT(ia,ei0.4,I4,2X,33Haai DTBL CONTROL SIGt-.Ai_ RECEIVED) CALL 1CHECK 00112 CONTINUE

iA(iraiNT*2>s-io lCTYPE=-9 IP01NT=1P0INT GO TO 99992 C 00001 CONTINUE N=1-t1> 001 IS N«N*I IF«((I (N-(IPdO))] .LE.Q1G0 TO 0011B GO TO O0117 00116 CONTINUE L=IA(LCStlP(12),N))

R A ( L C S < L , 3 ) ) = R A C ( L . 3 ) / F L O A T ( I A C ; L , I ) ) R A C L C S ( L , 4 ) > = R A C C L . 4 ) / F L 0 A T C J A C ( L . 1 > W R A C ( L , 3 I 2

I F C R A C ( L , 4 ) . L T . O . 1 G 0 TO 0 0 1 1 8 GO TO 00119 00118 CONTINUE WRITECN01,00121) 00121 F0RMAT(/1X,15H ERR>3R /1X.27H801 DTBL NEGATIVE VARIANCE! CALL ERROR 00119 CONTINUE RA(LCSCL,4))=SQRT'.RAC(L,41 ) WRITECN01,00122)IACLB+2),N 00122 FORMAT!1 HI,8HFUNCTI0N,14,IX.BH801 DTBL,19X,1CHREPORT NO.,13) J=RAC(1PM1 >,LIINHIN,S, 1>> WRITECN01,00123)1 00123 FORMAT!1IX,I4HC0NTR0L SIGNAL,117) TsRACUPMl >,LIINM(N,5,2») WRITECN01.00124)T 00124 FORMATdIX,13HSAMPUING TIME,15X,E12.4) WRITECN01,0012S1RACIL.3),RAC<L.41 00125 FGRMATdIX,1OHMEAN VALUE,19X,£11.4 ,SX,18HSTAND6RD DEVIATION. X 12X.E10.4)

-401-

FORTRAN F u n c l i o n Programs

W R I T E < N 0 1 , 0 0 1 2 6 ) R A C I L , 5 > , S A C ( L , 6 > ">0126 FORMAT!11X.13HMAXIMUM VALUE,16X.E11 . 4 , 6 X .

X 21HTIME OF MAXIMUM V A L U E . 9 X , E l 0 . 4 ) W R I T E ( N 0 1 , 0 0 1 2 7 I R A C ( L , 7 ) , R A C < L , 8 >

00127 FCRMATM1X, 13HMINIMUM V A L U E , 1 6 X . E 1 1 , 4 , 8 X , X 21HT1ME OF MINIMUM V A L U E , 9 X , E l 0 . 4 1

W R | T E ( N 0 1 , 0 0 1 2 0 ) I A C I L , 1 ) 00128 FORMATd1X.22HNUMBER OF OBSERVATIONS,6X,110)

I F < 1 F I X ( R A C ( I P ( I 1 ) , L 1 1 N M ( N , 5 , 3 J ; ) . G T , 0 > 0 0 10 0 0 1 2 9 GO TO 0 0 1 3 0 00129 CONTINUE WRJTECN01,00132) 00132 F0RMAT«/11X,11HL0VER LIM1T,26X,7HDISTRI-,4X.3H0.0,9X, X 4H0.25 ,eX,3H0-5,9X,4H0.7».eX.3H1.0 /11X, X 7M0F CELL,6X,5HC0UNT,SX,7MDENBITY,5X,6HBUTI0N,6X X 49H+ + • • •) X=RAC(1P(11 ),L!INM(N,5.5))-RAC<IP(11 ) ,LnNM(N,5,41 ) D[S=0. IA(LBUF*30)=1HI M=1-(1) 00133 M=M*I IFUI) CM-CIFtXIRACtIPtll),L!INMtN,S,3>)>>J.CE.OIGO TO 00134 GO TO 00135 00134 CONTINUE

D£N=FLOAT(IACCL.8+M))/FLOAT(IAC<L,1)) D1S=DIS*DEN X=X+RAC< I P d l > , L I l N M ( N , 5 , 4 > }

J = 3 1 - d > 0 0 1 3 6 J=J+ I

I F < ( I 1 f J - C 8 O > ) . L E . 0 > G O TO 0 0 1 3 7 GO TO 00138 00137 CONTINUE 1A(LBUF»J)=1H GO TO 00136 00138 CONTINUE K=49. DEN*.999 J=l-tl> 00139 J=J*l IF(ti) (J-(IU).LE.OIGO TO 00140 GO TO 00141 00140 CONTINUE IA(LBUFt30*J)=1H GO TO 00139 00141 CONTINUE

K=49. D I S * 9 9 9 I A ( L B U F * 3 0 * K ) = I H *

WR1TE<N01 . 0 0 1 4 2 1 X . I A C < L , 8 * M ) , D E N , D I S . ( 1ACLBUF*. ' ) . J = 3 0 , 8 0 ) 0 0 1 4 2 FORMATdOX,E l l . 4 , 1 1 0 , 5 X ^ 6 . 4 , 6 X , F 6 . 4 . 5 X . 5 1 A I )

GO TO 00133 00135 CONTINUE 00130 CONTINUE GO TO 00115 -402-

FORTRAN Fund ion Programs

00117 CONTINUE GO TO L0000I, (00033) C 00002 CONTINUE CALL ASTORE(IA<LP412),IP<10)) N«l-I1) 00143 N»N*I IF((I) (N-dP(lO))) .LE.OJGO TO 00144 GO TO 00149 00144 CONTINUE CALL AST0RE(IA(LCS(IP(12),N)))8+IFIX(HA0(IP<11),LIINMIN,B,3)))> GO TO 00143 00145 CONTINUE GO TO LO0002, (00068) 00003 CONTINUE IF(IP(12).LE.0>GO TO 00149 GO TO 00147 00146 CONTINUE

WRITE(N01.00149) 00149 F0RMAT(/1X,15H ERROR /IX„ X, 33H801 DT8L NO REPORT DATA TO RESET) CALL ERROR 00147 CONTINUE N=1-I1> 00190 N»N+3 IF((1) (N-(IP(10>)>.LE.OIGO TO O0151 GO TO 00152

00151 CONTINUE CALL Z I A C < 1 A C < I P ( 1 2 ) , N > )

1 = 2 - 1 1 ) 00153 1*1+1

I F ( ( I > < I - ( 8 ) ) . L E . 0 ) G O TO 00154 GO TO 00155 00154 CONTINUE RA(LCS(IAC(IP(I21.N),I})»0. GO TO 00153 00155 CONTINUE

R A C L C S ( ! A C < ] P ( 1 2 ) , N ) , 7 J ) = 1 . O E * 5 0 GO TO 0 0 1 5 0 00152 CONTINUE 30 TO L00003, (00072) C 00004 CONTINUE N»1-d) 00156 N*N*I IF((I) (N-(IP(10))).LE.0)GO TO 00157 GO TO 00158 00157 CONTINUE L=IACUP<12J,N) RA<LCS(L,2))=0. GO TO 0O156

-403-

00150 CONTINUE GO TO L00004, (00073; C 00005 CONTINUE L=IAC(IPt121,NI ASSIGN 00S59 TO LO0015 GO TO 000•5 00159 CONTINUE IA(LCS(L,1]>=IAC(L,11*1 CV°RACtL,2) RA(LCS<L,3>):RAC(L,3>*CV RA(L(;S(L,/1M=RAC<L,4)'CV CV IF<CV.GT.RAC<L,5)JGO TO 00160 00 TO 00161 00160 CONTINUE RA<LCSJL.S)]=CV RA<LCS(L,6)]=TIME 00161 CONTINUE [F(CV.LT.RAC(L,7))00 TO 00163 SO TO 00)64 00163 CONTINUE RACLCSCL.7))=CV RA(LCRCL,8)>=TtME 00164 CONTINUE IF(IFIXIRACdPdl),LI:MM(N,5,3))).GT.0)GO TO 00166 GO TO 00167 00166 CONTINUE ICELL=fFIX(<CV-RAC(IP(111.LIINMCN.S.5)))/ 1 RACtlPCI1),LI]NM(N.5,4>11*1 rFdCELL.LT.11G0 TO 00169 GO TO 0O170 0016*. CONTINUE ICELL=1 GO TO 00171 00170 IFdCELL.GT. IF1 X( RACd Pd 1 > . LI INMCN, S, 3) ) ) >G0 TO 00172 GO TO 00173 00172 CONTINUE IC£LL=IFIX(RAC<IP(1! ) ,LI INMCN. 5, 3) ) ) 00173 CONTINUE 00171 CONTINUE ICELL=LCS<L,8+ICELL) IA< !CELL) = IA( 1CELD + I 00167 CONTINUE GO TO LO00O5, (00090) C 00006 CONTINUE L=0

N=0 I F ( I A ( 1 P U 1 N T * 3 ) . G T . 0 1 G 0 TO 0 0 1 7 4 GO TO 0O175 00174 CONTINUE M=IAHPd>*3>

-404-

FORTRAN Fu r> t r t i on P r o g r a m s

1 = 1 IF(1A(1PO!NT*4).GT.OIGO TO 00177 GO TO 00178 00177 CONTINUE 00160 IFII.UE.M AMD. ILPd , I l.NE. IA( I POl MT-M) >G0 TO 00181 60 TO 00162 00181 CONTINUE 1 = 1*1 GO TO 00180 00162 CONTINUE I F U . L E . M J G O TO 0 0 1 8 3 GO TO 0 0 1 8 1

00183 CONTINUE P.A<LCS< I VI I 1,2*1 > )=RA< 1P01NT*5) L=1 N=N*1 00184 CONTINUE 00178 CONTINUE IF<IAC1P0INT+61.GT.01GO TO 00186 GO TO 00167 00166 CONTINUE 1=1 00189 IFU.Us.M.ANO. 1LPC1 , ll.NE. IA<|POINT*6))G0 TO 00190 GO TO 00191 00190 CONTINUE 1 = 1*1 GO TO 00169 00191 CONTINUE IF<1,LE.M)GO TO 00192 GO TO 00193 00)93 CONTINUE RA(LCS(IV<1),2+I))=RA(IP0!NT*7> L=1 N=N+1 00193 CONTINUE 00)87 CONTINUE 1FCN.LT.IA(IPOINT+3))G0 TO 00195 GO TO 00196 00195 CONTINUE K=l-II) 00196 K=K*i IF((1> (K-<IACIACIPOINT*8J*3)>>.L£.0>G0 TO 00199 GO TO 00200 00199 CONTINUE 1 = 1 00201 IF<1.LE.M.AND.[LP<1,1).NE.1AC(1A(tPQINT+6).K+2HG0 TO 00202 GO TO 00203 00202 CONTINUE 1 = 1*1 GO TO 00201 00203 CONTINUE

1F<1 . LE.rDGO TO 00204 - 4 0 5 -

FORTRAN Funcrtion Prograns

GO TO 00205 00204 CONTINUE RA(LC5< IV( 1 ) ,2*1) l=RA0(IA.f IP0SNT«9) , K*2) L = 1 N=N+I 00205 CONTINUE GO TO 00198 00200 CONTINUE 00196 CONTINUE IFCL.E0.0IG0 TO 00207 GO TO 00200 00207 CONTINUE WRITE<NOT ,002101 00210 FORMAT(/IX.I5H ERROR /IK. X 44H80) DTBL NO INPUT SIGNALS IM THOSE RECEIVED) CALL ERROR 00208 CONTINUE IFCN.NE. IA(IPOINT»3XGO TO 0021 1 GO TO 00212 00211 CONTINUE WRITE(N01,00214) 00214 F0RMATI/1X,15H ERROR /1X. X 44H801 DTBL NUMBER CONTROL SIGNALS TRANSMITTED) CALL ERROR 00212 CONTINUE GO TO 0 0 1 7 6

0 0 1 7 9 CONTINUE WRITE<N01,00215) 00215 FORMAT!/IX,ISH ERROR /1X, X 43H801 DTBL ZERO CONTROL SIGNALS TRANSMITTTED) CALL ERROR 00178 CONTINUE LIM=IAtlVtl1*3) I F U 7 R A C E . G E . I )G0 TO 00216 GO TO 00217 0021G CONTINUE WRITE«N01.002I9ITIME.1A(LB»21 00219 FORHATC1X.E10.4,14,2X.5H1NPUT> WRITE(N01 ,00220) (RAC(IV( 1 ), I *Zi, 1 *1 ,UH) 00220 F0R"1ATC1X,5E12.4> 00217 CONTINUE I FUTRACE.GE. 2. AND. < I TRACE. EQ. I TRACE/2 2))G0 TO 00221 GO TO 00222 00221 CONTINUE WRITE<N02.00224)T[ME.IA(LB+2) 00224 FORMAT(1X,E10.4.14.2X.5HINPUT) WR1TEIN02,0022S>(RAC<IV«I),I»2),1=I,LIM) 00225 FORMAT(1X.5E12.4) CALL I CHECK 00222 CONTINUE GO TO L00006, (00103) C

-406-

FORTRAN Function Prograns

00007 CONTINUE JsO JSAT=0 NEWSIG=0 00226 IFCJ.LT.IPI7) AND.JSAT.EO.OIGO TO 00227 GO TO 00228 00227 CONTINUE JrJ*l ASSIGN 00229 TO L00009 GO TO 00009 00229 CONTINUE GO TO 00226 00220 CONTINUE 1 F U S A T . E 0 . 1)G0 TO 0 0 2 3 0 GO TO 00231 00230 CONTINUE ASSIGN 00233 TO L00O1O GO TO 00010 00233 CONTINUE GO TO 00232 00231 CONTINUE WRITEIN01,00234) 00234 F0RKATI/1X.1SH ERROR /1X, X 32H801 DTBL NO CONDITION SATISFIED) CALL ERROR 00232 CONTINUE GO TO L00007, (00085) C 00008 CONTINUE LIM-IAI1VC2)*31 IFtlTRACE.GE.1)G0 TO 00235 SO TO 00236 ' 00235 CONTINUE URITF<KOI,00238)TIME,1A(L6*2)

00238 FORMAT!'X.E10 4.14,2X.6H0UTPUT) WRJTE<N01,002:,'9)tRACtlVt2»,l*2),I=1,UM) 00239 FCRMATC1X.SE12.4) 00236 CONTINUE 1FUTRACE.GE 2 , AND . « 1 TRACE . EO. tTRACE/2 Z I 1 G 0 TO 0O2«J0 GO TO 00241

00240 CONTINUE W R I T £ t N 0 2 , 0 0 2 4 3 > T I M E , I A < U 3 * 2 > 00243 FORMATCIX.EIO.4,14,2X.6H0UTPUT) WRITE<N02,00244)(RAC<lV<2>,1+2),1=1,LIU) 00244 F0RMAT(1X,5E12,4) CALL I CHECK 00241 CONTINUE !F(1P<93.GT.01G0 TO 0024S GO TO 00246 00245 CONTINUE

CALL P C O M U L P O , 1 ) . 9 , 10 . 1 A< 1P<4) • »> , 0 , 0 , 0 . 0 , I P< 4 ) , I V<2 ) )

- 4 0 7 -

J-'ORTKAU Furiction Pro()rans

00248 I" I •! 1F(M) CI -( IA(1P<9)*3> ) ) LE.0IG0 TO 00249 BO TO 00250 00219 CONTINUE MFROM=[A(LB»Z) KTOslLPO, 1 I ICTVPE=9 IA(JP01NT*2)=10 IA(LP>=1 GO TO 99992 00251 CONTINUE:

IFlIMIPOtMT+2) ,HE. -10IG0 TO 00252 GO TO 00233 00252 CONTINUE WR1TE<N0I.002551 00255 F0ftt1»TI/l/(, 15H ERROR /1X.

X 36H801 OTBL RESPONSE TO OUTPUT SIGNALS) CALL ERROR 00253 CONTINUE GO TO 00248 00250 CONTINUE CALL FSTORE(IPOINT) 00?46 CONTINUE SO TO LOU00S, (00069) C 00009 CONTINUE 1=0 JSAT=1 00256 IF(I.LT.IPI21.AND.JSAT.EO.I)G0 TO O02S7 BO TO 00258 00257 CONTINUE 1 = 1*1 ASSIGN 00259 TO LOOOU GO TO 00011 00259 CONTINUE GO TO 002S6 00258 CONTINUE GO TO L00009, (O0229) C 00010 CONTINUE N'(J-I) (IPI21*IP(SJ1*IP(2> 1=1-(I) 00260 l=I+t

[F<(i> CI-tIPCS))),L€.0)GO TO 0O2S1 GO TO 00262 00261 CONTINUE IF(ILP<6.N+I J.EO. UGO TO 00263 GO TO 00264 00263 CONTINUE ASSIGN 00266 TO L00012 GO TO 00012 00266 CONTINUE -408-

FORTRAN Fuict i on Proerans

00264 CONTINUE GO TO 00260 00262 CONTINUE 1 F ( I VRACE . GE 1 ) GO TO 00267 GO TC 00266 00267 CONTINUE WRITEIM01 ,00270)TIMIT, IAtLB«2> 00270 FORMAT! IX,E10 4, I 4,2X,4HRULE) WRITE(N01,00271SJ 00271 HORMATI110) 00268 CONTINUE IPC1YRACE.GE 2.AND.<I TRACE.EO I TRACE/2 21)00 TO D0272 GO TO 00273 00272 CONTINUE WRITE«NO2,00275)TJME,IA(LB»2> 00275 FORMAT!IX.E10.4,14,2X,4HRULE) WRITE<N02.0l-276>J 00276 FORMAT!110) CALL I CHECK 00273 CONTINUE GO TO L00010, (00233) C 00011 CONTINUE K'(J-l) <IPI2)*1P(5))«1 IF(1LPI8,K>.E0.-1)G0 TO 00277 GO TO 00278 00277 CONTINUE ASSIGN 00280 TO L00013 GO TO 00013 00280 CONTINUE IF!ICON.NE.-1)G0 TO 00281 GO TO 00282 00281 CONTINUE JSAT=0 00282 CONTINUE GO TO 00279 00278 IF<ILP<8.K).E0.1)G0 TO 00284 GO TO 00285 00284 CONTINUE ASSIGN 00286 TO L00013 GO TO 00013 00286 CONTINUE IF(ICON.NE.I ISO TO 00287 GO TO 00288 00287 CONTINUE JSAT=0 00288 CONTINUE GO TO 00279 00285 IF<ILP(3,K).NE.OJGO TO 00290 GO TO 00291 00290 CONTINUE WR1TE<N01,00292)

FORTRAN Fyncii on Prograns

00292 FORMAT!/I*.1SH ERROR /1X, X 33H601 DTBL ILLEGAL CONDITION ENTRY) CALL ERROR 00891 CONTINUE 0027*J CONTINUE SO TO LO0011, (00259) C 00012 CONTINUE L»n-i) 2*1 INr iX= IF IXCRLP<6, l .> ) 1FI I ! IDX.QT.0»GO TO 00293 GO TO 0 0 2 9 4

00293 COHTlMjr K=l 00296 IFIK.LE. 1A(IPM>*3). AND. 1NDX.WE. ILPr4.K)>G0 TO 0029? GO TO 00298 00297 CONTINUE GO TO 00296 0029A CONTINUE IF(K.QT.IA(IP(4>*3))G0 TO 00299 GO TO 00300 00299 CONTINUE WRITEIN01,00302) 00302 FORMAT!/IX.ISH ERROR /IX, X 51H801 DTflL ILLEGAL SIGNAL INDEX IN ASSIGNMENT ACTION) CALL ERROR GO TO 00301

00300 CONTINUE RA(LCS<IV<2),K*2)>=RLP(6.L+I) NCUSIG=I

00301 CONTINUE GO TO 0029S 00294 IFIINDX.LT.OIOO TO 00303 GO TO 00304 00303 CONTINUE CALL PC0M(-1NDX.9.11,0.0,0,0.0,0,0* IFlITRACE.GE.1)G0 T0 00305 BO TO 00306 00305 CONTINUE WRITECNOl,O0308)TIME,IACLB+2) 00306 FORMATtlX,E10.4.»4,ZX,5HSTART) WRITEINOI,00309)MTO 00309 FORMAT!110) 00306 CONTINUE IFIITRACE.GE.2.AND.(1TRACE.EQ.1TRACE/2 2))G0 TO 00310 GO TO 00311 00310 CONTINUE WRITE(N02,00313)TIME,IA(L8+2> 00313 FORHATI1X.EI0.4,I4.2X,5HSTART) WRITEtN02,00314)MTO 00314 FORHATII 10)

-410-

FORTRAN Function Programs

CALl I CHECK 00311 CONTINUE IACLP)=2 GO TO 99992 00315 CONTINUE IF(1AUP0INT»2).NE.-11 >GO TO 00S1S GO TO 00317 00316 CONTINUE WRITEIN01,00319) 00319 F0RMATI/1X,15H ERROR /1X, X 37H801 DTBL RESPONSE TO CONTROL MESSAGE 1 CALL ERROR 00317 CONTINUE CALL FSTOREiI POINT) GO TO 00295 00300 CONTINUE URITE<N01,00320) 00320 F0RMATI/1X,15H ERROR /1X, X 43HB01 DTBL ILLEGAL ZERO VALUE IN ACTION PAIR) CALL ERROR 00295 CONTINUE

60 TO L00012, 100266) C 00013 CONTINUE L=(I-I ) 3*1 IHDX=lFlXtRLP<3,L>) ASSIGN 00321 TO L00014 GO TO 0001.1 00321 CONTINUE SI=V L=Lft J0P=IF1X<RLP<3,L>> L=L*I IF<JaP-L£.6)G0 TO 00322 GO TO 00323 00322 CONTINUE INDX=lFIX(RLPt3,L)> ASSIGN 00323 TO L00014 GO TO 00014 00325 CONTINUE SK.=V GO TO 00324 00323 1FCJ0P.LE.12)GO TO 00326 GO TO O0327 00326 CONTINUE SK=RLPt3,L> GO TO 00324 00327 CONTINUE UR1TECN01,00326) 00320 FORMAT(/!X,15H ERROR /1X, X SOHSOI DTBL ILLEGAL RELATIONAL OPERATOR IN CONDITION) CALL ERROR

FORTRAN Function Programs

00324 CONTINUE IF(J0P.ST.61GO TO 00329 GO TO 00330 00329 CONTINUE JOP=J0P-6 00300 CONTINUE IF<JOP.LE.3>G0 TO 003T;! 00 TO 00333 00332 CONTINUE IFUOP.EO. tiGO TO 00335 GO TO 00336 00315 CONTINUE IF(SI.EO.SK1GO TO 00338 GO TO 00339 00338 CONTINUE IC0M=1 GO TO 00340 00339 CONTINUE ICON=-l 00340 CONTINUE GO TO 00337 00336 IF<J0P.EO.21GO TO 0D34J GO TO 00342 00341 CONTINUE IF<SI.LT.SK1G0 TO 00343 GO TO 00344 00343 CONTINUE 1C0M=1 GO TO 00345 00344 CONTINUE IC0M=-1 00345 CONTINUE GO TO 00337 00342 IF(J0P.E0.3)G0 TO 00346 GO TO 00347 00346 CONTINUE IF(SI.GT.SK)GO TO 00343 GO TO 00349 00348 CONTINUE ICON=1 GO TO 00350 00349 CONTINUE IC0N=-1 00350 CONTINUE 00347 CONTINUE 00337 CONTINUE GO TO 0O334 00333 IF<JOP.LE.GIGO TO 00351 00 TO 00352 00351 CONTINUE IF(J0P.EQ.4JG0 TO 00353 GO TO 00354 -•412-

FORTftAN F u n c t i o n P r o a r a n s

00358 CONTINUE IFISI.NE.SKISO TO C03S6 GO TO 00357 00356 CONTINUE ICONsi SO TO 0035C 00357 CONTINUE ICON»-I 00350 CONTINUE GO TO 00355 00354 IF( J0F-, EO. 5) SO TO 00£)S'i GO TO 00360 00359 CONTINUE !F(SI LE.SK1GO TO C0361 GO TO 00362 00361 CONTINUE ICONs1 GO TO 00363 00362 CONTINUE ICONs-1 00363 CONTINUE GO TO 00355 0P3SD IFIJOP.EO 6)GO TO 0036-3 GO TO 00365 00364 CONTINUE IF(S1 .GE.S-'.JSO TO 00366 GO TO 00367 0036G CONTINUE ICON=t GO TO 00368 00367 CONTINUE ICONs-1 00368 CONTINUE 00365 CONTINUE 00355 CONTINUE 003S2 CONTINUE O0334 CONTINUE 60 TO LC0013, (00280,00286) C 000 14 CONTINUE K=l 00369 IF(K,LE.IA(IP(1)»3) ANO.INDX.NE.ILP<l,K))GO TO 00370 GO TO 00371 00370 CONTINUE K*K*1 GO TO 00369 00371 CONTINUE IF<K,6T. iAMPf U*3)>G0 TO 00372 GO TO 00373 00372 CONTINUE WRITE(N01,00375) 00375 FORMAT!/1X. 15H ERROR /1X., -413-

FGPTRAM rync*.ion Pc-oarsns

X 48HB01 DTBL SIGNAL OF CONDITION ENTRV HOT AH INPUT) CALL ERROR 00 TO 00374

00373 CONTINUE V=RLV<l,K)

00374 CONTINUE GO TO L 0 0 0 1 4 , ( 0 0 3 B ! , 0 0 3 2 5 )

C OOCJIS CONTINUE

K = l 00376 IFIK.Lf . IA< IF,<4)«3) AMD . I LP< A. K ) . N£. 1 FI/< R/.C( I P M ! i, LI I NM(N, 5, 1

X )))IGO TO 00377 GO TO 00378

00377 CONTINUE CO TO 00376

00378 CONTINUE IF<K.GT.IAflPI4)*3))GO TO 00379 GO TO 00380

00379 CONTINUE WRITE*KOI,00362)

00382 F0RMATI/1X,1SH ERROR /1X. X 54HC01 DTBL SIGNAL OF REPORT SPEC1FICATION NOT AN OUTPUT) CALL ERROR GO TO 0O381

00380 CONTINUE RA<LCSrL,2))=RLVf2,K)

00381 CONTINUE GO TO LOQ01S. (001591

00026 I 00000=1AtLPJ GO TO (00251.00315). I 00000 END

C 901 TRCN 3/16/78 C TRACE CONTROL C LP+0 1 RESPONSE POINTER C LV«0 1 ENTRY COUNT C L1*0 Ci

SUBROUTINE 6901 DIMENSION IPVT(2I DIMENSION IAI1) COMMON RAC1 > EQUIVALENCE (I AC 1).RAt1)> COMMON /SYSTCM/MFROM.MTO. ICTYPE. IPOI NTT,

1 I DUMP.ISECA,iTRACE.LB,LBCA,LBL!ST.LBPT.LBUF,LCSB,LE, 1 LEC, LFFB, LFFE, Lt , LLE, LLFB, LLFE.LMS, LNE, LP. L<T,M1 HNFL, IMMSE.NFE.NFL.MI 1 ,N[2,N01 , N02, NR£P, NRUN. NSE, T IME , TSTOP

DATA J P V T 7 1 , 1 / I A < L V ) * I A C L V I * 1 IFUCTYPE.GE.OJBO TO 99991 GO TO 00026

99P91 GO TO (99100,99200,99300,99400,99500,99600,99700,99800,99900) -414-

FORTRAN Function Programs

x, icrvPE 99992 RETURN S9100 CALL CREATEfSOl,1,1,1PVT) ICTYPE=-1 IPOJNT=0 GO TO 99992 99200 CALL DESTROIIPVT) ICTYPE=>-2 IPOINT'O GO TO 99992 99300 MLL SET!I,IPVT,INTO.REALD)

ICTYPE=-3 IPOINT=0 6 0 TO 9 9 9 9 2

99*100 CONTINUE WRITECN01.00027) 00027 FORMAT!/IX,I5H ERROR /1X, X 43H9D1 TRCM ATTEMPT TO SET INITIAL oONDITICNS) CALL ERROR 99500 CONTINUE URITEIN01,OO02S)IA(LB+e! 00028 FORMAT*//.9H FUNCTION, 14,IX,BM90I TRCN/11X,9HN0 REPORT) ICTYPE=-5 IPOINT=0 GO TO 93^92 99600 CONTINUE CALL SCHEDCO.,IA(LB»2),I,0) JCTYPE=-6 1PO!NT=0 GO TO 99992

9 9 7 0 0 CALL DUMPCI PUT) lCTYPE=-7 IPOINT=0 GO TO 99992 99800 CONTINUE IF(I TRACE GE. 1 )GO TO 00029 GO TO 00030 00029 CONTINUE WRITE<N01,00032)TIMEJlA(LB+2) 00032 FORMATtlX.EIO.iJ, 14, 2X, 5HEVENTJ

00030 CONTINUE IFIITRACE.GE.2.AND. ( I TRACE . SO . [TRACE'2 2) )G0 TO C0033 GO TO 00034 00033 CONTINUE WRlTECNO2,O0036)TIME,IA!LB*2) 00036 FORMAT!IX,El0.4, 14,2X.SHEVENT) CALL I CHECK 00034 CONTINUE CALL CECII,1,KODE) WRITE159,0G037)TIME 00037 FORMAT!1X.E10.4,2X, 11HNEW ITRACE?) READI 59,00038>N

-415-

FORTRAN F<jncx i on P i -ca^a is

00038 FORMAT(I I) 00039 1FIN.LT.0 OR N GT.61G0 TO 00040 GO TO 00041 00040 CONTINUE WRITEfSS,00042) 00042 FORMAT(20HILLEGAL I TRACE VALUE) READ 159, 00043 )N 00D43 FORMAT(I 1) GO TO 00034 00041 CONTINUE ITRACE=N WRITE(59,00044 I[TRACE 00044 FORMAT!13H1TRACE IS NOW,13) WRITE!59,00045) 00045 FORMAT!1X.24HNEXT TRACE CONTROL TIME?) READ f 59.00046> TNEXT 00046 FORMAT<K80.0) 00047 ]F(TNEXT.LE.TIME)GO TO 00048 GO TO 00049 00048 CONTINUE WRITE!59,00050)TIME 00050 FORMAT!IX.!IHTIME IS NOW,£12.4) READIS9.000S1)TNEXT 00051 FORMATIFBO.O) GO TO 00047 00049 CONTINUE CALL SCHED(TNEXT,IA(LB*2),1,01 WRITEtS9,00052)TNEXT 00052 FORMAT!IX,23HNEXT TRACE CONTROL TIHE.E12.4, lCTYPE=-8 1P01NT=0 ' GO TO 49992 99900 CONTINUE IF!I TRACE GE.31G0 TO 00053 GO TO 00054 00053 CONTINUE WRITE!N01,00056JTIME,1A!LB*2> 00056 FORMAT!IX,El 0.4,14.2X,I1H!NTERACTIONf 00054 CONTINUE 1FUTRACE.GE 4.AND. (1 TRACE.EO I TRACE/2 211G0 TO 00057 GO TO 00058 00057 CONTINUE WR1TE(N02.00060)T1ME,1A<LB»2; 00060 FORMAT!IX.£10.4,14.2X,11 HIMTERACTION) CALL I CHECK 00058 CONTINUE WR!TE<NQ1,00061) 00061 FORMAT! / IX, I 5H ERROR /1X.28H901/TRCN ILLEGAL. INTERACTION X ) CALL ERROR ICTYPE=-9 IPOINT=0

-416-

FORTRAN Funcxion Proar-ans

00 TO 99992 00086 CONTINUE WRITE!NOI,00062) 00062 FORMATr/IX,1SH ERROR /1X, X 37H1LLEGAL RESPONSE COMMUNICATION CBNNNH CALL ERROR END C 902 RMDS 3/16/78 C REPORT MATERIAL DIVERSION STATISTICS C LP+O 1 RESPONSE POINTER C 1 2 MAOA FUNCTIONS TABULATED C 2 4 TIME REPORT SPECIFICATION C NUMBER OF CELLS C WIDTH OF CELLS C LOWER LIMIT 0F FIRST CELL C 3 4 DIVERTED MATERIAL REPORT SPECIFICATION C NUMBER OF CELLS C WIDTH OF CELLS C LOWER LIMIT OF FIRST CELL C 4 1 - TIME REPORT DATA C 5 1 - MATERIAL REPORT DATA C LV*0 1 ENTRY COUNT C LI'O 0 SUBROUTINE B902 DIMENSION 1PVTI7J DIMENSION IA(1) COMMON RA(1 ) EQUIVALENCE (1A<U,RA(1)> COMMON /SYSTEM/MFROM.MTO,ICTYPE.IPOINT, 1IDUMP,1SECA,1 TRACE,LB,LBCA,LBLIST.LBPT,LBUF,LCSB.LE, 1LEC,LFFS,LFFE,LI,LLE,LLFB,LLFE,LWS,LNE,LP,LV4MINNFL, lMNSE.NFE.NFL.NII.MI2.N01,N02,MREP,NRUN.NSE,TIME.TST&P DATA IPVT/1,2,4,4,1,1, 1/ 1ACLV>=1A(LV>*1 IFtlCTYPE.SE.OJOO TO 99991 GO TO 0002 S 99991 GO TO (99200,99200.99300,99400,99500,99600,99700,99800,99900> X, 1CFYPE 99992 RETURN 99100 CALL CREATE(90S,6,1,1PVT) !CTYPE=-1 IPOIMT=0 GO TO 99992 99200 CONTINUE IFIIPI4).GT.01GO TO 00027 GO TO 0002S 00027 CONTINUE CALL FST0RE(IP(4)J 00026 CONTINUE IF(1P<5).GT.OIGO TO 00030 GO TO 00031 00030 CONTINUE

FORTRAN Funcxion Proorans

CALL FSTOSE<IP(5)1 00031 CONTINUE CALL OESTRO(IPVT) !CTYPE=-2 1POINT=0 00 TO 99992 99300 CALL SET(1,IPVT,1NT0.REALD) ICTYPE«-3 1P0INT-0 00 TO 99992 99400 CONTINUE WR1TECN01,00033) 00033 FORMATt/IX.13H ERROR /1X, X 43H501 INDA ATTEMPT TO SET INITIAL CONDITIONS) CALL ERROR 99500 CONTINUE

ASSIGN 00034 TO L00001 GO TO 00001 00034 CONTINUE ICTYPE=-5 IPOINT=0 GO TO 99992 99600 CONTINUE IA(LV)=0 IF(IP<4) .EO.OGO TO 00035 GO TO 00036

00035 CONTINUE CALL AST0RECIACLP*4>,8*IFIXIRI_P(a, 1))> 00036 CONTINUE 1FIIPI5),£0,0)00 TO 00038 GO TO 00039 00036 CONTINUE CALL AST0RECJA(LP*5>,8+IF1X[RLP(3,1)>) 00039 CONTINUE IFINRUN.EQ.1)G0 TO 00041 GO TO 00042 00041 CONTINUE ASSIGN 00044 TO L00003 GO TO 00003 00044 CONTINUE GO TO 00043 00042 CONTINUE ASSIGN 00045 TO L00004 GO TO 00004 00045 CONTINUE 00043 CONTINUE lCTYPE=-6 1P01NT=0 GO TO 99932 99700 CALL DUMPtlPVT) iCTYPE=-7 IP01NT=0

-418-

FORTRAN Function Prograins

GO TO 99992 99800 CONTINUE IFtlTRACE.GE. 11G0 TO 00046 00 TO 00047 00046 CONTINUE WR1TECN01,00049)TIME,IA(LB+8) 00049 FORMAT!IX,E10.4,14,2X,SHEVENT) 00047 CONTINUE !F(irRACE.G£.£.AND.(ITRACE.EQ.1TRACE/2 2>>GO TO 00050 GO TO 00051 00050 CONTINUE WR!TE(NOS,00053)TIME,IA(L6+2> 00053 FORMAT!IX,El 0.4,14,2X,5HEVENT) CALL I CHECK 00051 CONTINUE IFCIA('P01NT).GT.O)GO TO O00S4 GO TO 00055 00054 CONTINUE 1=IA(IP01NT) L=!A<IPOINT+l> )NXT=l-»2tNSTATS(IFIX<RACfL, I+31)) IFtlFIXCRACIL.]NXT»2)).GT.O.AND.INXT.LT.IA(L*3))GO TO 00OS7 GO TO 00050 00057 CONTINUE CALL SAMPLfL.INXT*1.TD) CALL SCHED(T1ME«TD.1FIXIRACIL.]NXT*2)I,INXT.L) 00058 CONTINUE ASSIGN 00060 TO LO0005 GO TO OOOOS 00060 CONTINUE GO TO 00056 00055 CONTINUE URITE(N01.00061) 00061 F0RMATI/1X.15H ERROR /1X.28H902 RMDS ILLEGAL EVENT CODE X ) CALL ERROR 00056 CONTINUE 1CT*PE=-B IP01,'JT=0

GO TO 99992 99900 CONTINUE IF(ITRACE.GE.3)G0 TO 00062 GO TO 00063 00062 CONTINUE WRITE(N01,00065)TIME,IA(LB»?) 00065 FORMAT!1X.E10,4,14,2X.11HINTERACTION) 00063 CONTINUE IFdTRACE.GE 4.AND. (1TRACE EO. ITRACE/2 2))G0 TO 00066 GO TO 00067 00066 CONTINUE WR1TE(N02,00069)T1ME.IACLB-2) 00069 FORMATC1X,El0.4,14,2X,11 HINTERACTION)

-419-

FORTRAN Function Progrsns

CALL 1 CHECK 00067 CONTINUE K3ITE<N01,00070) 00070 FORMAT!.'1X.1SH ERROR /IX, X 29HS01 1N0A ILLEGAL INTERACTIOM) CALL ERROR ICTYPE=-9 IPOINTsO SO TO 99992 C 00001 CONTINUE 1F(IAC<IP(4>,1>,8T,0,>G0 TO 00071 GO TO 00072 00071 CONTINUE N= t- It) 00074 N=N*I 1F<<1) <N-<2)).LE.0)G0 TO 00075 SO TO 00076 0007$ CONTINUE L=IPI3+N) RA<LCS<L,3>)=RACCL,3>/FL0ATtIACCL,t)) RA<LCS<L,4>)=RAC(L,4>/FL0AT<1ACCL.1) )-RAC<L.3> 1F(RAC(L,4).GT0.)G0 TO 00077 GO TO 00078 00077 CONTINUE RA(LCS(L,4))=S0RT(RACIL,4)1 GO TO 00079 00078 CONTINUE RA(LCS(L,4))=0. 00079 CONTINUE WRITECN01.00080}IA(LB*2) 00080 FORMAT<1H1.8HFUNCTION,14,1X.8H902 RMDS) 1F(N.E0. DGO TO 00081 GO TO 00082 00081 CONTINUE UR1TE<N01.00084) 00084 FORMAT(11X,24HSE0UENCE COMPLETION TIME) GO TO 00083 00082 IFCN.EQ.2)G0 TO 00088 GO TO 00086 00085 CONTINUE WR1TE<NO1.00087) 00087 F0RMATO1X,17HDIVERTE0 MATERIAL) 00086 CONTINUE 00083 CONTINUE WRITE<N01,0008»)RACCL,3).RAC(L.4) 00088 FORMAT(11X,1OHMEAN VALUE,19K,E11.4 ,8K, X 18HSTANDARD DEVIATION,12X,E10.4) IF1N.E0. DGO TO 00089 GO TO 00090 00089 CONTINUE WRITE<N01,00092)RAC(L,S>,RACIL,7) -420-

FORTRAN Function Progrens

00092 F0RMAT(1IX,I3HHAX1MUM VALUE,I6X,E11.4/ 11X, X I3HMINIMUM VALUE, I6X.E11 .4) GO TO 00091 00090 IF(N.E0.2)GO TO 00093 60 TO 00094 00093 CONTINUE WRITE(N01,00095)RACfL,S),RAC(L,6) 00095 FORMAT!1IX,13HMAXIMUM VALUE,16X,E11.4 ,SX, X 2IHTIME OF MAXIMUM VALUE.9X.E10.4) WRITE(N01,00096)RAC(L,7),RAC<L,8> 00096 FORMATMIX, 13HMINIMUM VALUE.16X.E11 .4 ,8X, X 21HTIME OF MINIMUM VALUE.9X,El 0.4) 00094 CONTINUE 00091 CONTINUE WRITECNOl,00097)IACIL,1) 00097 FORMAT<11K.22HNUMBER OF OBSERVATIONS,8X,I 10) 1FCN.ECJ. 1 .AND. IF1XCRLPI2, 1 l).GT.O)GO TO 00098 GO TO 00099 00098 CONTINUE ASSIGN 00101 TO LOOOOZ GO TO 00002 00101 CONTINUE GO TO 00100 00099 1FCN.E0.2.AND.1FIX(RLP(3,1>>.GT.0)GO TO 00102 60 TO 00103 00102 CONTINUE ASSIGN 00104 TO L00002 GO TO 00002 00104 CONTINUE 00103 CONTINUE 00100 CONTINUE GO TO 00074 00076 CONTINUE GO TO 00073 00072 CONTINUE WRITECNOl,0010S)IACLS+2) 00105 FQRMATI/V9H FUNCTION, 14, IX, 8H902 RMDS- /11X,15HN0 OBSERVATIONS X > 00073 CONTINUE GO TO L00001, (00034) C 00002 CONTINUE WRITEIN01,00106) 00106 F0RMATC/1IX,11HL0WER LIM1T,26X,7HDISTRI-.4X,3H0.0,9X.4H0.25 ,8X, X 3H0.5,9X,4H0.75,8X,3H1.0 /11X,7H0F CELL,6X,5HC0UNT,5X, X 7HDENSITY,5X.6HBUT10N,6X , X 49H* + • • +> IFCN.EQ.1JG0 TO 00107 GO TO 00108 00107 CONTINUE X=RLP<2,3)-RLPC2,2) GO TO 00109 -421-

FORTRAN Furicxion Prof l rsns

00108 IF(N,EO.2>G0 TO 00110 00 TO 00111 00110 CONTINUE X=RLP(3,3)-RLP<3,2) 001!1 CONTINUE 00109 CONTINUE o:s«o. I A < L 6 U F * 3 0 ) = 1 H I M = 1 - 1 1 )

00112 M=M+I I F U 1 1 ( M - ( [ F J X ( R L P < 1 * N . » ) ) ) ) . L E . O > G O - TO 00113 0 0 TO 00114 00113 CONTINUE DEN=FL0AT(]AC(L.8*M)1/FLOAT!IAClL.1)) DIS=D1S*DEN X=X*RLP<1*N,2) J=31-<1) 00115 J=J*1 IF(ll) <J-<60>l.LE.OJGO TO 00116 SO TO 00117 00116 CONTINUE 1A(LBUF+J)=1H GO TO 00115 00117 CONTINUE K-49. DEN*.999 J = 1-M > 001 IS J=J*1 IF<CI) (J-CK) KLE.01GO TO 00119 GO TO 00120 00119 CONTINUE 1A<LBUF*30+J)=1H GO TO OOlIS 00120 CONTINUE K=49. DIS+.9S9 1A(LBUF*30*K)=1H+ WRITEtNOl.00121)X,IAC(L,8fM),DEN,DJS,<IA(LBUF*J),J=30,601

00121 FCRMATCIDX.EII.4,110,5X,F6.4,6X,F6.4,5X,51A1> 00 TO 00112 00114 CONTINUE GO TO L00002, (00101.001043 C 00003 CONTINUE CALL 2IACC1PC41) CALL 2IACC1P(S)> 1=2-11! 00122 1=1+1 IFCC11 ( I - < 8 > 1 . L E . O J G O TO C0123 CO TO 0 0 1 2 4 00123 CONTINUE RAtLCSUPM), !))=0. RMLCSCIP(S),1)1=0. GO TO 00122

-422-

001S4 CONTINUE RAIUCSCIPC4»,7))=1.OE'SO RAILCSCIPC5),7>>=1.0E«50 00 TO L00003, (00044) C 00004 CONTINUE RACLtStIPC4),£))=0. RA<LCS(IPC5»,2))=0, 30 TO LO00O4, (00045) C 00005 C O N ; N U E

MD0=RAC<L,3> N-1-I1) 00125 t ' H * l IF((I) <N-(2)>,LE.0>G0 TO 00128 GO TO 00127 00126 CONTINUE L=IP(3*N) IFCN.EG.1>GO TO 00128 GO TO 00129 00188 CONTINUE RACLCS<L,2>)=TIME GO TO 00130 00129 JF(N.E0.2>G0 TO 00131 GO TO 00132 00131 CONTINUE

IFIIPC 1).GT.0)G0 TO 00133 GO TO 00134 00133 CONTINUE ASSIGN 00136 TO LOOOOE GO TO 00006 00136 CONTINUE 00134 CONTINUE 00132 CONTINUE 00130 CONTINUE I A ( L C S ( L , 1 > ) = I A C < L , 1 ) * 1 CV=RAC(L,2> R r t f L C S d . ^ ) ) *RAC<L,3>*CV RA(LCSCL,4>)=RAC(L ,4 )+CV CV

IF tCV G T . R A C ( L , 5 ) l<30 TO 0 0 1 3 7 GO TO 0 0 1 3 « 00137 CONTINUE RA<LCS(L,5))=CU RA<LCS(L.6))=TIME 00138 CONTINUE 1F(CV LT.RAC(L,7))Q0 TO 001 JO GO TO 00141 00140 CONTINUE RA<LCS(L,7))=CV RA<LCS(L,«))=TIHE 00141 CONTINUE IF(IF1X(RLP(1*N,1>).GT.O)SO TO 00143

-423-

FCPTRAN F u n c t i o n Prorjren

6 0 TO 00144 001-13 CONTINUE

I C E L L = | F | X ( < C V - f i L F ' ( l « N , 3 > > / R L P ( 1 * N , 2 M » 1 S F U C E L L L T . D G O TO 0 0 1 4 6 GO TO 00147 00146 CONTINUE ICELL=1 GO TO 00148

00147 I F d C E L L . G T . I F I X ( R L P M * N , 1 ) > ) G 0 TO 0 0 1 4 9 GO TO 0 0 1 5 0 00149 CONTINUE ICELL=IFIX(RLP(1*N,1)) 00150 CONTINUE 00148 CONTINUE ICELL=LCS(L,8 * 1 CELL) IA<1CELL)=IA<I CELL)'I 00144 CONTINUE GO TO 00125 00127 CONTINUE GO TO L00005, (00060) C 00006 CONTINUE IF(!A<IP<?>*3>.LE.01GO TO 00151 GO TO 00132 00151 CONTINUE WRITE*NOl,001541 00154 FORMAT!/IX,15H ERROR /1X, X 39H902 RMDS NO MAOA FUNCTIONS TO TABULATE) CALL ERROR 00152 CONTINUE CALL PCOMlI LP(1,1 1,9,3,0,0,0,0,0,0,0) l=l-rii

00155 1=I*» IF((>> CI-(IACIP(1)*3I)).LE.01GO TO 00156 GO TO 00157 00156 CONTINUE MTO=ILP<1,1) 1A(IP0INT*2J=3 IA(LP)=1 GO TO 99992 00156 CONTINUE !F([A<IPOINT*2)-NE.-3)GO TO 00159 GO TO 00160 00159 CONTINUE WRIT£<N01,00162) 00162 F0RMATI/1X,1SH ERROR /1X. X 40H90Z RMDS RESPONSE OF TABULATED FUNCTION) CALL ERROR

00160 CONTINUE L M = I A ( [ P 0 I N T * 3 >

1FIMD0.EQ. 1 .OR-MDO.£0.3X50 TO 00163 GO TO 00164

- 4 2 4 -

FORTRAN Function Programs

00163 CONTINUE RACLCS<L,2))=FL0ATtIA!LM*8H 60 TO 00165 00164 IF(MD0.E0.2.0R.MUO.E0.4JG0 TO 00166 60 TO 00167 00166 CONTINUE RA(LCS(L,2>)=RA(LM*9> 60 TO 00165 00167 IF<MD0.EQ.5)00 TO 00160 60 TO 00169 00168 CONTINUE CALL NCBMtLM.NC.BM) RAtLCS(L,2)>=FL0AT<NC) GO TO 00165 00169 CONTINUE URITE<N01,00170) 00170 F0RH*Tf/1X,15H ERROR /IK, X 5IH902 RMDS ILLEGAL MATERIAL DIVERSION OBJECTIVE TYPE) CALL ERROR 001G5 CONTINUE 60 TO 00155 00157 CONTINUE CALL FSTORE(IPOINT) SO TO L00006, (00136) 00O2S IO0O00=IA(LP) 60 TO 00158 fND SUBROUTINE B103 RETURN END SUBROUTINE B104 RETURN ENO SUBROUTINE BIOS RETURN END SUBROUTINE B106 RETURN ENO SUBROUTINE B107 RETURN END SUBROUTINE BI08 RETURN END SUBROUTINE B109 RETURN END SUBROUTINE B110 RETURN END SUBROUTINE B201

-425-

FORTRAN Function Proorans

RETURN END SUBROUTINE B202 RETURN END SUBROUTINE B203 RETURN END SUBROUTINE B204 RETURN END SUDROUTtNE 6205 RETURN END SUBROUTINE B206 RETURN END SUBROUTINE B207 RETURN END SUBROUTINE 6208 RETUKN END SUBROUTINE B209 RETURN END SUBROUTINE 8210 RETURN END SUBROUTINE B302 RETURN END SUBROUTINE B303 RETURN END SUBROUTINE B304 RETURN END SUBROUTINE B305 RETURN END SUBROUTINE B30E RETURN END SUBROUTINE B307 RETURN END SUBROUTINE B308 RETURN END SUBROUTINE B309 RETURN -426-

FORTRAN Function Prograns

END SUBROUTINE BD10 RETURN END SUBROUTINE B402 RETURN END SUBROUTINE D403 RETURN END SUBROUTINE B404 RETURN END SUBROUTINE B405 RETURN END SUBROUTINE B406 RETURN END SUBROUTINE B407 RETURN END SUBROUTINE B40» RETURN END SUBROUTINE B409 RETURN END SUBROUTINE Ed 10 RETURN END SUBROUTINE BS06 RETURN END SUBROUTINE BS07 RETURN END SUBROUTINE BS08 RETURN END SUBROUTINE BS09 RETURN END SUBROUTINE BS10 RETURN END SUBROUTINE B603 RETURN END SUBROUTINE B604 RETURN END -427-

FORTRAN F u n c t i o n Pr-oor-ans

SUBROUTINE B605 RETURN ENO SUBROUTINE B606 RETURN END SUBROUTINE 8607 RETURN END SUBROUTINE B608 RETURN ENO SUBROUTINE B609 RETURN END SUBROUTINE B610 RETURN ENO SUBROUTINE B70<4 RETURN END SUBROUTINE 3705 RETURN END SUBROUTINE B706 RETURN ENO SUBROUTINE B707 RETURN END SUBROUTINE B70B RETURN END SUBROUTINE B709 RETURN END SUBROUTINE B710 RETURN END SUBROUTINE B802 RETURN END SUBROUTINE B803 RETURN ENO SUBROUTINE B804 RETURN ENO SUBROUTINE B805 RETURN END SUBROUTINE BB06

FOSTRAr: Funct i on Procrans

RETURN END SUBROUTINE B807 RETURN END SUBROUTINE 380S RETURN END SUBROUTINE B809 RETURN END SUBROUTINE B310 RETURN END SUBROUTINE B903 RETURN END SUBROUTINE B904 RETURN ENO SUBROUTINE B90S RETURN END SUBROUTINE B906 RETURN ENO SUBROUTINE B907 RETURN END SUBROUTINE B908 RETURN ENO SUBROUTINE BS09 RETURN ENO SUBROUTINE B910 RETURN END

GPO 7 8 9 - 0 S G / I 9 B C