Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-02 - decus/20-0026/hist.sss
There are 2 other files named hist.sss in the archive. Click here to see a list.
C                                                                       HIST  10
C     ..................................................................HIST  20
C                                                                       HIST  30
C        SUBROUTINE HIST                                                HIST  40
C                                                                       HIST  50
C        PURPOSE                                                        HIST  60
C           PRINT A HISTOGRAM OF FREQUENCIES VERSUS INTERVALS           HIST  70
C                                                                       HIST  80
C        USAGE                                                          HIST  90
C           CALL HIST(NU,FREQ,IN)                                       HIST 100
C                                                                       HIST 110
C        DESCRIPTION OF PARAMETERS                                      HIST 120
C           NU   - HISTOGRAM NUMBER (3 DIGITS MAXIMUM)                  HIST 130
C           FREQ - VECTOR OF FREQUENCIES                                HIST 140
C           IN   - NUMBER OF INTERVALS AND LENGTH OF FREQ (MAX IS 20)   HIST 150
C                  NORMALLY, FREQ(1) CONTAINS THE FREQUENCY SMALLER THANHIST 160
C                  THE LOWER BOUND AND FREQ(IN) CONTAINS THE FREQUENCY  HIST 170
C                  LARGER THAN THE UPPER BOUND                          HIST 180
C                                                                       HIST 190
C        REMARKS                                                        HIST 200
C           FREQUENCIES MUST BE POSITIVE NUMBERS                        HIST 210
C                                                                       HIST 220
C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED                  HIST 230
C           NONE                                                        HIST 240
C                                                                       HIST 250
C        METHOD                                                         HIST 260
C           THE LARGEST FREQUENCY IS DETERMINED AND SCALING IS USED     HIST 270
C           IF REQUIRED                                                 HIST 280
C                                                                       HIST 290
C     ..................................................................HIST 300
C                                                                       HIST 310
      SUBROUTINE HIST(NU,FREQ,IN)                                       HIST 320
      DIMENSION JOUT(20),FREQ(20)                                       HIST 330
C                                                                       HIST 340
    1 FORMAT(6H EACH ,A1,8H EQUALS ,I2,7H POINTS,/)                     HIST 350
    2 FORMAT(I6,4X,20(4X,A1))                                           HIST 360
    3 FORMAT(9H0INTERVAL,4X,19(I2,3X),I2)                               HIST 370
    4 FORMAT(1H1,47X,11H HISTOGRAM ,I3)                                 HIST 380
    5 FORMAT(10H0FREQUENCY,20I5)                                        HIST 390
    6 FORMAT(6H CLASS)                                                  HIST 400
    7 FORMAT(113H   ----------------------------------------------------HIST 410
     1----------------------------------------------------------)       HIST 420
    8 FORMAT(1H )                                                       HIST 430
    9 FORMAT(A1)                                                        HIST 440
   10 FORMAT(1H*)                                                       HIST 450
C                                                                       HIST 460
      REWIND 13                                                         HIST 470
      WRITE(13,10)                                                      HIST 480
      REWIND 13                                                         HIST 490
      READ(13,9) K                                                      HIST 500
      REWIND 13                                                         HIST 510
      WRITE(13,8)                                                       HIST 520
      REWIND 13                                                         HIST 530
      READ(13,9) NOTH                                                   HIST 540
      REWIND 13                                                         HIST 550
C                                                                       HIST 560
C        PRINT TITLE AND FREQUENCY VECTOR                               HIST 570
C                                                                       HIST 580
      WRITE(6,4) NU                                                     HIST 590
      DO 12 I=1,IN                                                      HIST 600
   12 JOUT(I)=FREQ(I)                                                   HIST 610
      WRITE(6,5)(JOUT(I),I=1,IN)                                        HIST 620
      WRITE(6,7)                                                        HIST 630
C                                                                       HIST 640
C        FIND LARGEST FREQUENCY                                         HIST 650
C                                                                       HIST 660
      FMAX=0.0                                                          HIST 670
      DO 20 I=1,IN                                                      HIST 680
      IF(FREQ(I)-FMAX) 20,20,15                                         HIST 690
   15 FMAX=FREQ(I)                                                      HIST 700
   20 CONTINUE                                                          HIST 710
C                                                                       HIST 720
C        SCALE IF NECESSARY                                             HIST 730
C                                                                       HIST 740
      JSCAL=1                                                           HIST 750
      IF(FMAX-50.0) 40,40,30                                            HIST 760
   30 JSCAL=(FMAX+49.0)/50.0                                            HIST 770
      WRITE(6,1)K,JSCAL                                                 HIST 780
C                                                                       HIST 790
C        CLEAR OUTPUT AREA TO BLANKS                                    HIST 800
C                                                                       HIST 810
   40 DO 50 I=1,IN                                                      HIST 820
   50 JOUT(I)=NOTH                                                      HIST 830
C                                                                       HIST 840
C        LOCATE FREQUENCIES IN EACH INTERVAL                            HIST 850
C                                                                       HIST 860
      MAX=FMAX/FLOAT(JSCAL)                                             HIST 870
      DO 80 I=1,MAX                                                     HIST 880
      X=MAX-(I-1)                                                       HIST 890
      DO 70 J=1,IN                                                      HIST 900
      IF(FREQ(J)/FLOAT(JSCAL)-X) 70,60,60                               HIST 910
   60 JOUT(J)=K                                                         HIST 920
   70 CONTINUE                                                          HIST 930
      IX=X*FLOAT(JSCAL)                                                 HIST 940
C                                                                       HIST 950
C        PRINT LINE OF FREQUENCIES                                      HIST 960
C                                                                       HIST 970
   80 WRITE(6,2)IX,(JOUT(J),J=1,IN)                                     HIST 980
C                                                                       HIST 990
C        GENERATE CONSTANTS                                             HIST1000
C                                                                       HIST1010
      DO 90 I=1,IN                                                      HIST1020
   90 JOUT(I)=I                                                         HIST1030
C                                                                       HIST1040
C        PRINT INTERVAL NUMBERS                                         HIST1050
C                                                                       HIST1060
      WRITE(6,7)                                                        HIST1070
      WRITE(6,3)(JOUT(J),J=1,IN)                                        HIST1080
      WRITE(6,6)                                                        HIST1090
      RETURN                                                            HIST1100
      END                                                               HIST1110