SUBROUTINE SKYOBC(KFILDO,XDATA,NVAL,IER) C C SEPTEMBER 2010 GLAHN MDL MOS-2000 C JUNE 2014 GLAHN KER DEFINED; IER SET 666 WHEN C = 1 AND DIAGNOSTIC. C C PURPOSE C TO PREPROCESS SKY COVER OBSERVATIONS IN 5 CATEGORIES C CLEAR (0 AND 1), FEW (2), SCATTERED (2), BROKEN (6), C OVERCAST (8) AND OBSCURATION (10) TO FIVE CATEGORIES C FOR ANALYSIS. C C THE 5 CATEGORIES ARE DEFINED: C C CATEGORY OBSERVATION C 1 0 CLEAR (ASOS) C 1 1 CLEAR (MANUAL) C 2 2 FEW C 3 3 SCATTERED C 4 6 BROKEN C 5 8 OVERCAST C 5 10 OBSCURATION C C DATA SET USE C KFILDO - UNIT NUMBER OF OUTPUT (PRINT) FILE. (OUTPUT) C C VARIABLES C KFILDO = UNIT NUMBER OF OUTPUT (PRINT) FILE. (INPUT) C XDATA(K) = THE SKY OBSERVATIONS TO TRANSFORM TO CATEGORIES C (K=1,NVAL). (INPUT-OUTPUT) C NVAL = THE NUMBER OF VALUES IN XDATA( ) BEING DEALT C WITH. (INPUT) C IER = ERROR RETURN. C 0 = GOOD RETURN. C (OUTPUT) C TABLE(J) = HOLDS THE UPPER CATEGORY VALUES FOR THE C NOCAT CATEGORIES OF SKY (J=1,NOCAT). (INTERNAL) C NOCAT = THE NUMBER OF SKY CATEGORIES. (INTERNAL) C KER = 1 WHEN AN ERROR OCCURS, THEN IER SET = 666 FOR C RETURN. (INTERNAL) C 1 2 3 4 5 6 7 X C C NONSYSTEM SUBROUTINES USED C NONE C PARAMETER(NOCAT=5) C DIMENSION XDATA(NVAL) DIMENSION TABLE(NOCAT) C DATA TABLE/ 1., 2., 3., 6., 10./ C CALL TIMPR(KFILDO,KFILDO,'START SKYOBC ') IER=0 KER=0 C CCCCD WRITE(KFILDO,105)(K,XDATA(K),K=1,NVAL) CCCCD105 FORMAT(/,' IN SKYOBC AT 105',/,(8(I7,F8.2))) C DO 160 K=1,NVAL C IF(XDATA(K).GT.9998.9)GO TO 160 C DO 150 J=1,NOCAT C IF(NINT(XDATA(K)).LE.TABLE(J))THEN C D SAVEX=XDATA(K) C XDATA(K)=J C D WRITE(KFILDO,144)K,J,SAVEX,XDATA(K),TABLE(J) D144 FORMAT(' IN SKYOBC--K,J,SAVEX,XDATA(K),TABLE(J)--', D 1 2I6,F8.1,F12.5,F8.2) C GO TO 160 ENDIF C 150 CONTINUE C C DROP THROUGH HERE IS CONSIDERED AN ERROR AS A NON-MISSING VALUE C GT TABLE(6) SHOULD NOT OCCUR. C D WRITE(KFILDO,155)XDATA(K) D155 FORMAT(/' ****ERROR IN SKYOBC, OBSERVED VALUE =',F10.1,' GT 10.', D 1 ' VALUE SET TO MISSING.') C XDATA(K)=9999. KER=KER+1 C 160 CONTINUE C IF(KER.EQ.1)THEN WRITE(KFILDO,161)KER 161 FORMAT(/' ****SKY > 10',I7,' TIMES IN SKYOBC.') IER=666 ENDIF C RETURN END