home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
vol_300
/
349_01
/
sss.arc
/
EX_0401.FOR
< prev
next >
Wrap
Text File
|
1991-04-09
|
3KB
|
109 lines
C Program EX_0401.FOR
C Listing 6F - see documentation in TUTOR.SSS
$include:'SSSF1.H'
subroutine prime
$include:'SSSF2.H'
integer ARRIVL, TRYBUY, REPLNS, CUSTMR, GOODS
real*8 c, mean, min, mode, max, limit
common ARRIVL, TRYBUY, REPLNS, CUSTMR, GOODS,
+ c, mean, min, mode, max, limit
real*8 endt
data endt /40.0/
ARRIVL = 1
TRYBUY = 2
REPLNS = 3
CUSTMR = 0
GOODS = 1
mean = 2.0
c = 15.0
min = 5.0
mode = 7.0
max = 9.0
limit = 4.0
call INIQUE(0, 0, 2)
call inista(1,'Outof stock ',0, 0, 0, 0)
call inista(2,'Avestock ',1, 0, 0, 0)
call SIMEND(endt)
call CREATE(EX(mean), CUSTMR)
call TALLY(2, c)
return
end
subroutine buying
$include:'SSSF2.H'
integer ARRIVL, TRYBUY, REPLNS, CUSTMR, GOODS
real*8 c, mean, min, mode, max, limit
common ARRIVL, TRYBUY, REPLNS, CUSTMR, GOODS,
+ c, mean, min, mode, max, limit
if (c.eq.limit)
+ call CREATE(TR(min, mode, max), GOODS)
if (c.gt.0) then
c = c - 1
else
call TALLY(1, 1)
endif
call TALLY(2, c)
call DISPOS
return
end
subroutine order
$include:'SSSF2.H'
integer ARRIVL, TRYBUY, REPLNS, CUSTMR, GOODS
real*8 c, mean, min, mode, max, limit
common ARRIVL, TRYBUY, REPLNS, CUSTMR, GOODS,
+ c, mean, min, mode, max, limit
c = c + 12
call TALLY(2, c)
call DISPOS
return
end
Program EX_0401
$include:'SSSF2.H'
integer ARRIVL, TRYBUY, REPLNS, CUSTMR, GOODS
real*8 c, mean, min, mode, max, limit
common ARRIVL, TRYBUY, REPLNS, CUSTMR, GOODS,
+ c, mean, min, mode, max, limit
integer ecode
call prime
99 ecode = NEXTEV()
if (ecode.gt.0) then
goto (101, 102, 103) ecode
C ARRIVL
101 continue
if (IDE().eq.CUSTMR) then
call CREATE(EX(2.0), CUSTMR)
call SCHED(0.0, TRYBUY, IDE())
else
call SCHED(0.0, REPLNS, IDE())
endif
goto 99
C TRYBUY
102 continue
call buying
goto 99
C REPLNS
103 continue
call order
goto 99
else
call SUMRY(' ')
stop 'End of simulation'
endif
end