SUBROUTINE CIGFRQ(KFILDO,XDATA,NSTA,ISTOP,IER)
C
C        MARCH     2011   GLAHN   MDL   MOS-2000
C                                 CODE FROM VISFRQ
C        FEBRUARY  2015   GLAHN   ADDED CAPPING AT 130
C        
C
C        PURPOSE
C            TO CAP THE CEILINGS AT CIGMAX, SET = 130, AND
C            TO COMPUTE THE FREQUENCIES OF CEILING OBSERVATIONS.
C            THIS IS TO ALLOW COMPARISION OF FORECAST FREQUENCIES
C            WITH ACTUAL FREQUENCIES.
C
C        DATA SET USE
C            KFILDO   - UNIT NUMBER FOR OUTPUT (PRINT) FILE.  (OUTPUT)
C
C        VARIABLES
C              KFILDO = UNIT NUMBER FOR OUTPUT (PRINT) FILE.  (INPUT)
C            XDATA(K) = CEILING HEIGHTS IN JUNDREDS OF FT. (K=1,NSTA).
C                       (INPUT)
C                NSTA = NUMBER OF VALUES BEIN PROCESSED. THE NUMBER 
C                       OF VALUES IN XDATA( ).  (INPUT)
C               ISTOP = INCREMENTED BY ONE ON ERROR.  (INPUT/OUTPUT)
C                 IER = ERROR CODE. 
C                       0 = GOOD RETURN.
C                       (OUTPUT)
C              CIGMAX = SET AT 130 HUNDREDS OF FT.  (INTERNAL)
C        1         2         3         4         5         6         7 X
C 
C        NONSYSTEM SUBROUTINES USED  
C           NONE
C
      DIMENSION XDATA(NSTA)
      DIMENSION FREQ(15),IFREQ(15),RFREQ(15)
      DATA FREQ/1.,2.,3.,4.,5.,7.,9.,15.,19.,30.,50.,65.,100.,120.,999./
      DATA CIGMAX/130./
C
D     CALL TIMPR(KFILDO,KFILDO,'START CIGFRQ        ')
      IER=0
C
      DO 200 J=1,15
      IFREQ(J)=0
 200  CONTINUE
C
      TOTAL=0.
C
C        COMPUTE THE FREQUENCIES.  THE TEST IS ON LE, SO THE LISTED
C        VALUE IS THE HIGH END OF THE CATEGORY, INCLUSIVELY.
C      
      DO 220 K=1,NSTA
C
      IF(XDATA(K).GT.9998.)THEN
         GO TO 220
      ELSE
         XDATA(K)=MIN(XDATA(K),CIGMAX)
C
         DO 218 J=1,15
C
         IF(XDATA(K).LE.FREQ(J))THEN
            IFREQ(J)=IFREQ(J)+1
            GO TO 219
         ENDIF
C
 218     CONTINUE
C
 219     TOTAL=TOTAL+1
      ENDIF
C
 220  CONTINUE
C
      IF(TOTAL.EQ.0.)THEN
         WRITE(KFILDO,225)
 225     FORMAT(/' ERROR IN VISMBO.  TOTAL = 0.')
         ISTOP=ISTOP+1
         GO TO 240
      ENDIF
C
      DO 230 J=1,15
      RFREQ(J)=IFREQ(J)/TOTAL
 230  CONTINUE
C
      WRITE(KFILDO,232)(FREQ(J),J=1,15)
 232  FORMAT(/' LE HDS FT  ',15F7.2,'    TOTAL')
      WRITE(KFILDO,233)(IFREQ(J),J=1,15),NINT(TOTAL)
 233  FORMAT(' FREQUENCIES',15I7,I9)
      WRITE(KFILDO,234)(RFREQ(J),J=1,15)
 234  FORMAT(' REL FREQ   ',15F7.2)
C
 240  RETURN
      END