home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Interactive Reference Guide / C-C++ Interactive Reference Guide.iso / c_ref / csource5 / 349_01 / sss.arc / EX_0804.FOR < prev    next >
Encoding:
Text File  |  1991-04-15  |  1.7 KB  |  73 lines

  1. C     Program EX_0804.FOR
  2. C     Listing 16F - see documentation in TUTOR.SSS
  3.  
  4. $include:'SSSF1.H'
  5.  
  6.       subroutine prime
  7. $include:'SSSF2.H'
  8.       TIMEL = 150
  9.       call INIQUE(1, 0, 1)
  10.       call CREATE(0, n)
  11.       call SIMEND(TIMEL)
  12.       open (7, FILE='SSS.PRN', MODE='WRITE')
  13.       return
  14.       end
  15.  
  16.       Program EX_0804
  17. $include:'SSSF2.H'
  18.       integer ARRIVL, STARTA, ENDACT, NEXTAC,
  19.      +  n, server, ecode
  20.       data  ARRIVL/1/, STARTA/2/, ENDACT/3/, NEXTAC/4/
  21.       data  n/0/, server/1/
  22.  
  23.       call prime
  24.   200 format(A, F7.2, A, I3, A, F4.1, A, F5.2)
  25.   201 format(A, F7.2, 1X, I3, 1X, F4.1, 1X, F5.2)
  26.  
  27.    99 ecode = NEXTEV()
  28.       if (ecode.gt.0) then
  29.         goto (101, 102, 103, 104) ecode
  30.  
  31. C ARRIVL
  32.   101   continue
  33.         n = n + 1
  34.         call CREATE(EX(1), n)
  35.         call SCHED(0, NEXTAC, IDE())
  36.         goto 99
  37.  
  38. C NEXTAC
  39.   104   continue
  40.         if (server.gt.0) then
  41.           call SCHED(0.0, STARTA, IDE())
  42.         else
  43.           call QUEUE(1, 0.0)
  44.           write(7, 201)' ',T(),NQ(1),QAVG(1),QSTD(1)
  45.           write(*, 200)' At ',T(),' q size:',NQ(1),
  46.      +             ' ave q:',QAVG(1),' std:',QSTD(1)
  47.         endif
  48.         goto 99
  49.  
  50. C STARTA
  51.   102   continue
  52.         call SCHED(EX(0.9), ENDACT, IDE())
  53.         server = server - 1
  54.         goto 99
  55.  
  56. C ENDACT
  57.   103   continue
  58.         call DISPOS
  59.         server = server + 1
  60.         if (NQ(1).gt.0) then
  61.           call REMVFQ(1, 1)
  62.           call SCHED(0.0, STARTA, IDE())
  63.           write(7, 201)' ',T(),NQ(1),QAVG(1),QSTD(1)
  64.           write(*, 200)' At ',T(),' q size:',NQ(1),
  65.      +             ' ave q:',QAVG(1),' std:',QSTD(1)
  66.         endif
  67.         goto 99
  68.  
  69.       else
  70.         stop 'End of simulation'
  71.       endif
  72.       end
  73.