SUBROUTINE ERLTAB C C This module of the ERLANG program calculates a table of C probabilities for a given amount of traffic. The table gives C the probability that a given number of trunks will be occupied, C and may be the whole table or a selected section. C C B. Z. Lederman I.T.T. World Communications C BYTE ANS LOGICAL FULL INTEGER BEGIN, END REAL MUOLD, MU C 10 FULL = .TRUE. MU = 0. MUOLD = -1. N = 0 CUMUL = 0. BEGIN = 0 END = 16000 C WRITE (5, 20) 20 FORMAT ('$ Full table desired [Y/N] ?: ') READ (5, 30, END=360) ANS 30 FORMAT (A1) IF ((ANS .EQ. 'Y') .OR. (ANS .EQ. 'y')) GO TO 80 WRITE (5, 40) 40 FORMAT ('$ Enter starting and ending number of Trunks: ') READ (5, 50, END=360) BEGIN, END 50 FORMAT (2I5) IF (BEGIN .LT. 0 .OR. END .LT. BEGIN) GO TO 400 FULL = .FALSE. 80 WRITE (5, 85) 85 FORMAT ('$ Enter Erlangs of traffic: ') READ (5, 90, END=360) A 90 FORMAT (F10.2) IF (A .LE. 0.) GO TO 400 PROBL = EXP(-1. * A) WRITE (5, 500) 500 FORMAT ('0 Number of Trunks, Probability, ', 1'Cumulative Probability' / ) IF (N .LT. BEGIN) GO TO 100 CUMUL = PROBL WRITE (5, 510) N, PROBL, CUMUL 510 FORMAT (T12, I3, 2(9X, F6.4)) 100 N = N + 1 PROBL = PROBL * ( A / FLOAT(N) ) IF (N .LT. BEGIN) GO TO 100 IF ((.NOT.FULL) .AND. (N .GT. END)) GO TO 300 CUMUL = PROBL + CUMUL IF (CUMUL .LT. 0.99996) WRITE (5, 510) N, PROBL, CUMUL IF (.NOT.FULL) GO TO 100 MU = (PROBL * FLOAT(N)) + MU IF ((ABS(MU - MUOLD) .LT. 0.00001) .AND. (N .GT. A)) GO TO 200 MUOLD = MU GO TO 100 200 DEV = ERLDEV(MU, A) WRITE (5, 520) MU, DEV 520 FORMAT ('0 Mean number of trunks occupied = ', F7.1, 1', Deviation = ', F7.1) 300 WRITE (5, 530) 530 FORMAT ('0' / '$ Another table [Y/N] ?: ') READ (5, 30, END=360) ANS IF ((ANS .EQ. 'Y') .OR. (ANS .EQ. 'y')) GO TO 10 C 360 RETURN C 400 WRITE (5, 410) 410 FORMAT ('0 Data is incorrect, please re-enter.') GO TO 300 C END