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