SUBROUTINE VISFRQ(KFILDO,XDATA,NSTA,ISTOP,IER) C C MARCH 2011 GLAHN MDL MOS-2000 C CODE FROM VISMBO C DECENBER 2014 GLAHN ACCOUNTED FOR MISSING DATA C FEBRUARY 2015 GLAHN DEFINED VISMAX; CAPPED VIS AT MAXVIS C FEBRUARY 2015 GLAHN REDEFINED VISMAX 10. VICE 10.01 C NOVEMBER 2018 HUANG CHANGED MAXIMUM VISIBILITY FROM C 10. to 10.08 FOR IMAGE PRODUCTION C PURPOSES. C C C PURPOSE C TO CAP THE VISIBILITIES AT VISMAX, SET = 10.01, AND C TO COMPUTE THE FREQUENCIES OF VISIBILITY OBSERVATIONS. C THIS IS TO ALLOW COMPARISON OF FORECAST FREQUENCIES C WITH ACTUAL FREQUENCIES. C 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) = VISIBILITIES IN MILES. (K=1,NSTA). (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 VISMAX = SET AT 10 MILES. (INTERNAL) C 1 2 3 4 5 6 7 X C C NONSYSTEM SUBROUTINES USED C NONE DIMENSION XDATA(NSTA) DIMENSION FREQ(15),IFREQ(15),RFREQ(15) DATA FREQ/ .5,1.,2.,3.,4.,5.,6.,7.,8.,9.,10.,11,12.,15.,999./ DATA VISMAX/10.08/ C D CALL TIMPR(KFILDO,KFILDO,'START VISFRQ ') IER=0 C DO 200 J=1,15 IFREQ(J)=0 200 CONTINUE C TOTAL=0. C DO 220 K=1,NSTA C IF(XDATA(K).GT.9998.)THEN GO TO 220 ELSE XDATA(K)=MIN(XDATA(K),VISMAX) 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 VISFRQ. 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 MILES ',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) ITOTAL=NINT(TOTAL) WRITE(KFILDO,235)(NSTA-ITOTAL) 235 FORMAT(100X,' MISSING VALUES = ',I8) C 240 RETURN END