home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol268 / arrvlx.for < prev    next >
Text File  |  1986-05-22  |  2KB  |  64 lines

  1.     SUBROUTINE    ARRVL( NSET,QSET )
  2. C////////////////////////////////////////////////////////////////
  3. C/                                /
  4. C/    Program-id.    ARRVL.FOR                /
  5. C/    Date-written.    11th,Feb,1984                /
  6. C/    Remarks.    Subroutine ARRVL is called each time    /
  7. C/            a new customer arrives to the system    /
  8. C/            from page 272                /
  9. C/                                /
  10. C////////////////////////////////////////////////////////////////
  11. C
  12.     DIMENSION    NSET(1),QSET(1)
  13.         COMMON/C1/ID,IM,INIT,JEVNT,JMNIT,MFA,MSTOP,MX,MXC,NCLCT,NHIST,
  14.      $  NOQ,NORPT,NOT,NPRMS,NRUN,NRUNS,NSTAT,OUT,ISEED,TNOW,
  15.      $  TBEG,TFIN,MXX,NPRNT,NCRDR,NEP,VNQ(4),IMM,MAXQS,MAXNS
  16.     COMMON /C2/ATRIB(10),ENQ(4),INN(4),JCELS(5,22),KRANK(4),
  17.      $  MAXNQ(4),MFE(4),MLC(4),MLE(4),NCELS(5),NQ(4),PARAM(20,4),
  18.      $  QTIME(4),SSUMA(10,5),SUMA(10,5),NAME(6),NPROJ,MON,NDAY,NYR,
  19.      $  JCLR,JTRIB(12)
  20.     COMMON /U1/ NARC,NSCAN,JBUFF,NSTA(10),JRPLY(10)
  21.     COMMON /U2/ XL,NTER,IBUFF,CDIAL(2),CREAD(2),SRTIM,SCTIM,
  22.      $  TRTIM,DLTIM,COMTIM(2)
  23. C
  24. C    --- Determine the station number that the arriving customer
  25. C        will go to by sampling from a uniform distribution.
  26. C        Collect statistics on number of customers at the station
  27. C        to which the new arrival is going.
  28. C
  29.     NARC = NARC + 1
  30.     J = 1
  31.     ICHEK = NSTA( 1 )
  32.     DO 10 I=2,NTER
  33.     IF( ICHEK.LE.NSTA( I ) ) GO TO 10
  34.     ICHEK = NSTA( I )
  35.     J = I
  36. 10    CONTINUE
  37.     X = NSTA( J )
  38.     CALL    TMST( X,TNOW,J,NSET,QSET )
  39. C
  40. C    --- Allow customer to make his request immediately since 
  41. C        station was idle.
  42. C
  43.     IF ( NSTA(J) ) 2,2,3
  44. 2    ATRIB(1) = TNOW + UNFRM( CDIAL(1),CDIAL(2) )
  45.     JTRIB(1) = 2
  46.     JTRIB(2) = J
  47.     CALL    FILEM( 1,NSET,QSET )
  48. C
  49. C    --- Increment number of customer at station J by one
  50. C
  51. 3    NSTA( J ) = NSTA( J ) + 1
  52. C
  53. C    --- Schedule next customer arrival at current time olus a
  54. C        sample from an exponential distribution.
  55. C        Customers request is completed. Store request in file 
  56. C        of calls requested but not in buffer. 
  57. C
  58.     CALL    DRAND( ISEED,RNUM )
  59.     ATRIB(1) = TNOW - XL*ALOG( RNUM )
  60.     JTRIB(1) = 1
  61.     CALL    FILEM( 1,NSET,QSET )
  62.     RETURN
  63.     END
  64.