home *** CD-ROM | disk | FTP | other *** search
- SUBROUTINE ARRVL( NSET,QSET )
- C////////////////////////////////////////////////////////////////
- C/ /
- C/ Program-id. ARRVL.FOR /
- C/ Date-written. 11th,Feb,1984 /
- C/ Remarks. Subroutine ARRVL is called each time /
- C/ a new customer arrives to the system /
- C/ from page 272 /
- C/ /
- C////////////////////////////////////////////////////////////////
- C
- DIMENSION NSET(1),QSET(1)
- COMMON/C1/ID,IM,INIT,JEVNT,JMNIT,MFA,MSTOP,MX,MXC,NCLCT,NHIST,
- $ NOQ,NORPT,NOT,NPRMS,NRUN,NRUNS,NSTAT,OUT,ISEED,TNOW,
- $ TBEG,TFIN,MXX,NPRNT,NCRDR,NEP,VNQ(4),IMM,MAXQS,MAXNS
- COMMON /C2/ATRIB(10),ENQ(4),INN(4),JCELS(5,22),KRANK(4),
- $ MAXNQ(4),MFE(4),MLC(4),MLE(4),NCELS(5),NQ(4),PARAM(20,4),
- $ QTIME(4),SSUMA(10,5),SUMA(10,5),NAME(6),NPROJ,MON,NDAY,NYR,
- $ JCLR,JTRIB(12)
- COMMON /U1/ NARC,NSCAN,JBUFF,NSTA(10),JRPLY(10)
- COMMON /U2/ XL,NTER,IBUFF,CDIAL(2),CREAD(2),SRTIM,SCTIM,
- $ TRTIM,DLTIM,COMTIM(2)
- C
- C --- Determine the station number that the arriving customer
- C will go to by sampling from a uniform distribution.
- C Collect statistics on number of customers at the station
- C to which the new arrival is going.
- C
- NARC = NARC + 1
- J = 1
- ICHEK = NSTA( 1 )
- DO 10 I=2,NTER
- IF( ICHEK.LE.NSTA( I ) ) GO TO 10
- ICHEK = NSTA( I )
- J = I
- 10 CONTINUE
- X = NSTA( J )
- CALL TMST( X,TNOW,J,NSET,QSET )
- C
- C --- Allow customer to make his request immediately since
- C station was idle.
- C
- IF ( NSTA(J) ) 2,2,3
- 2 ATRIB(1) = TNOW + UNFRM( CDIAL(1),CDIAL(2) )
- JTRIB(1) = 2
- JTRIB(2) = J
- CALL FILEM( 1,NSET,QSET )
- C
- C --- Increment number of customer at station J by one
- C
- 3 NSTA( J ) = NSTA( J ) + 1
- C
- C --- Schedule next customer arrival at current time olus a
- C sample from an exponential distribution.
- C Customers request is completed. Store request in file
- C of calls requested but not in buffer.
- C
- CALL DRAND( ISEED,RNUM )
- ATRIB(1) = TNOW - XL*ALOG( RNUM )
- JTRIB(1) = 1
- CALL FILEM( 1,NSET,QSET )
- RETURN
- END
-