C*********************************** SUBROUTINE DAILY C*********************************** IMPLICIT INTEGER (A-Z) *** *** *** DO DAILY SUMS IF CRITERIA ARE MET *** *** INCLUDE 'dat3.com' TTAVG = 9999.9 SLPAVG = 9999.9 STPAVG = 9999.9 MAXAVG = 9999.9 MINAVG = 9999.9 SPDAVG = 999.9 VISAVG = 999.9 PCPTOT = 99.99 *** MUST HAVE AT LEAST 4 OBS FOR A GIVEN ELEMENT FOR A MEAN TO *** BE COMPUTED. DAILY EXTREMES/TOTALS TREATED SEPARATELY. IF (TTCNT .GE. 4) THEN TTAVG = TTSUM / TTCNT ELSE END IF IF (TDDCNT .GE. 4) THEN TDDAVG = TDDSUM / TDDCNT ELSE END IF IF (SLPCNT .GE. 4) THEN SLPAVG = SLPSUM / SLPCNT ELSE END IF IF (STPCNT .GE. 4) THEN STPAVG = STPSUM / STPCNT ELSE END IF IF (MAXCNT .GE. 1) THEN MAXAVG = MAXSUM / MAXCNT ELSE END IF IF (MINCNT .GE. 1) THEN MINAVG = MINSUM / MINCNT ELSE END IF IF (SPDCNT .GE. 4) THEN SPDAVG = SPDSUM / SPDCNT ELSE END IF IF (VISCNT .GE. 4) THEN VISAVG = VISSUM / VISCNT ELSE END IF IF (MAXCNT .GE. 1 .AND. MINCNT .GE. 1) THEN TTAVG2 = (MAXTMP + MINTMP) / 2.0 ELSE TTAVG2 = 9999.9 END IF IF (TTAVG2 .NE. 9999.9 .AND. TTAVG .NE. 9999.9) THEN TTDIFF = TTAVG2 - TTAVG ELSE TTDIFF = 9999.9 END IF ** IF ((TTDIFF .NE. 9999.9 .AND. TTDIFF .GE. 10.0) ** - .OR. (TTDIFF .LE. -10.0)) THEN ** MAXTMP = 9999.9 ** MINTMP = 9999.9 ** ELSE ** END IF *** TRCFLG = 0 PCPFLG = 0 *** *** DO SUMMATIONS FOR PRECIP--6, 12, AND 24-HOURLY. PRIORITY *** GIVEN TO 24-HLY, THEN 12, THEN 6-HLY. *** *** NEW CODE ADDED MAR 12, 2004, just for testing *** IF (PCP6A .GT. 0.0 .AND. PCP6A .NE. 99.99 .AND. *** - HR06CK .EQ. 24) THEN *** PCP6A = 99.99 *** ELSE *** END IF *** IF (PCP6A .NE. 99.99 .AND. PCP6B .NE. 99.99 .AND. - PCP6C .NE. 99.99 .AND. PCP6D .NE. 99.99) THEN PCPTOT = PCP6A + PCP6B + PCP6C + PCP6D PCPFLG = 4 ELSE END IF *** IF (PCP6A .NE. 99.99 .AND. PCP6B .EQ. 99.99 .AND. - PCP6C .EQ. 99.99 .AND. PCP6D .EQ. 99.99) THEN PCPTOT = PCP6A PCPFLG = 1 ELSE END IF *** IF (PCP6A .EQ. 99.99 .AND. PCP6B .NE. 99.99 .AND. - PCP6C .EQ. 99.99 .AND. PCP6D .EQ. 99.99) THEN PCPTOT = PCP6B PCPFLG = 1 ELSE END IF *** IF (PCP6A .EQ. 99.99 .AND. PCP6B .EQ. 99.99 .AND. - PCP6C .NE. 99.99 .AND. PCP6D .EQ. 99.99) THEN PCPTOT = PCP6C PCPFLG = 1 ELSE END IF *** IF (PCP6A .EQ. 99.99 .AND. PCP6B .EQ. 99.99 .AND. - PCP6C .EQ. 99.99 .AND. PCP6D .NE. 99.99) THEN PCPTOT = PCP6D PCPFLG = 1 ELSE END IF *** IF (PCP6A .NE. 99.99 .AND. PCP6B .NE. 99.99 .AND. - PCP6C .EQ. 99.99 .AND. PCP6D .EQ. 99.99) THEN PCPTOT = PCP6A + PCP6B PCPFLG = 2 ELSE END IF *** IF (PCP6A .NE. 99.99 .AND. PCP6B .EQ. 99.99 .AND. - PCP6C .NE. 99.99 .AND. PCP6D .EQ. 99.99) THEN PCPTOT = PCP6A + PCP6C PCPFLG = 2 ELSE END IF *** IF (PCP6A .NE. 99.99 .AND. PCP6B .EQ. 99.99 .AND. - PCP6C .EQ. 99.99 .AND. PCP6D .NE. 99.99) THEN PCPTOT = PCP6A + PCP6D PCPFLG = 2 ELSE END IF *** IF (PCP6A .EQ. 99.99 .AND. PCP6B .NE. 99.99 .AND. - PCP6C .NE. 99.99 .AND. PCP6D .EQ. 99.99) THEN PCPTOT = PCP6B + PCP6C PCPFLG = 2 ELSE END IF *** IF (PCP6A .EQ. 99.99 .AND. PCP6B .NE. 99.99 .AND. - PCP6C .EQ. 99.99 .AND. PCP6D .NE. 99.99) THEN PCPTOT = PCP6B + PCP6D PCPFLG = 2 ELSE END IF *** IF (PCP6A .EQ. 99.99 .AND. PCP6B .EQ. 99.99 .AND. - PCP6C .NE. 99.99 .AND. PCP6D .NE. 99.99) THEN PCPTOT = PCP6C + PCP6D PCPFLG = 2 ELSE END IF *** IF (PCP6A .NE. 99.99 .AND. PCP6B .NE. 99.99 .AND. - PCP6C .NE. 99.99 .AND. PCP6D .EQ. 99.99) THEN PCPTOT = PCP6A + PCP6B + PCP6C PCPFLG = 3 ELSE END IF *** IF (PCP6A .NE. 99.99 .AND. PCP6B .EQ. 99.99 .AND. - PCP6C .NE. 99.99 .AND. PCP6D .NE. 99.99) THEN PCPTOT = PCP6A + PCP6C + PCP6D PCPFLG = 3 ELSE END IF *** IF (PCP6A .NE. 99.99 .AND. PCP6B .NE. 99.99 .AND. - PCP6C .EQ. 99.99 .AND. PCP6D .NE. 99.99) THEN PCPTOT = PCP6A + PCP6B + PCP6D PCPFLG = 3 ELSE END IF *** IF (PCP6A .EQ. 99.99 .AND. PCP6B .NE. 99.99 .AND. - PCP6C .NE. 99.99 .AND. PCP6D .NE. 99.99) THEN PCPTOT = PCP6B + PCP6C + PCP6D PCPFLG = 3 ELSE END IF *** new code added Mar 12, 2004, just for testing *** IF (PCPTOT .NE. 0 .AND. HR06CK .EQ. HR06P) PCPTOT = 99.99 *** IF (PCP12A .NE. 99.99 .AND. PCP12B .NE. 99.99) THEN PCPTOT = PCP12A + PCP12B PCPFLG = 6 ELSE END IF *** IF (PCP12A .EQ. 99.99 .AND. PCP12B .NE. 99.99) THEN PCPTOT = PCP12B PCPFLG = 5 ELSE END IF *** IF (PCP12A .NE. 99.99 .AND. PCP12B .EQ. 99.99) THEN PCPTOT = PCP12A PCPFLG = 5 ELSE END IF *** IF (PCP24.EQ.99.99.AND.PCP24P.GT.0.0.AND.PCP24P.NE.99.99) THEN *** - .AND. RAIN.EQ.0 .AND. SNOW.EQ.0 .AND. HAIL.EQ.0) THEN !! added code... PCPTOT = 0.0 PCPFLG = 7 *** PRINT*,"24-HR ASSUMED TO = 0",DAPRV,PCP24P,PCPTOT !! ....added code ELSE END IF *** PRINT*,"HR06CK",DAPRV,HR06CK,HR06P IF (PCP24 .NE. 99.99) THEN IF (PCP24 .GE. 2.0.AND.PCP24 .EQ. PCP24P) THEN PCP24 = 99.99 ELSE END IF IF (PCP24 .GE. 2.0.AND.PCPPRV .GE. 2.0 .AND. - PCPPRV .NE. 99.99) THEN PCP24 = 99.99 ELSE END IF IF (PCP24 .GT. 0.0.AND.PCP24 .EQ. PCP24P .AND. - HR24P .LT. HR24CK) THEN PCP24 = 99.99 ELSE END IF IF (HR06CK .NE. 99) HRDIF = HR06CK - HR24P IF (HR12CK .NE. 99) HRDIF = HR12CK - HR24P IF (PCPPRV .NE. 99.99 .AND. PCP24 .NE. 99.99 - .AND. PCPPRV .GT. 0.0 .AND. PCP24 .GT. 0.0) THEN PCPRAT = PCP24 / PCPPRV IF (PCPRAT .LE. 2.0 .AND. HRDIF .GT. 3) THEN PCP24 = 99.99 ELSE END IF ELSE END IF IF (PCP24 .NE. 99.99) THEN PCPTOT = PCP24 PCPFLG = 7 ELSE END IF ELSE END IF *** *** IF (PCPTOT .GE. .0001 .AND. PCPTOT .LE. .0004) THEN PCPTOT = 0.0 TRCFLG = 1 ELSE END IF *** *** ADDITIONAL QUALITY CONTROL *** *** DATA ARE IN ENGLISH UNITS AT THIS POINT. *** *** *** WIND DATA *** IF (GSTMX2 .GT. GSTMAX .AND. GSTMX2 .NE. 999.9) THEN GSTALL = GSTMX2 ELSE GSTALL = GSTMAX ENDIF IF (GSTALL .LE. SPDMAX) GSTALL = 999.9 IF (SPDAVG .EQ. 999.9) GSTALL = 999.9 IF (SPDAVG .EQ. 999.9) SPDMAX = 999.9 WNDCK1 = 0.0 WNDCK2 = 0.0 WNDCK3 = 0.0 IF (SPDAVG.NE.999.9 .AND. SPDMAX.NE.999.9) - WNDCK1 = SPDMAX - SPDAVG IF (SPDAVG.NE.999.9 .AND. GSTALL.NE.999.9) - WNDCK2 = GSTALL - SPDAVG IF (SPDMAX.NE.999.9 .AND. GSTALL.NE.999.9) - WNDCK3 = GSTALL - SPDMAX IF (WNDCK1 .GE. 40.0) SPDMAX = 999.9 IF (WNDCK2 .GE. 80.0) GSTALL = 999.9 IF (WNDCK3 .GE. 40.0) GSTALL = 999.9 IF (SPDMAX .EQ. 0.0) SPDMAX = 999.9 IF (GSTALL .EQ. 0.0) GSTALL = 999.9 *** *** MAX/MIN TEMP DATA *** IF (MAXTMP .LE. MINTMP .AND. MINTMP .NE. 9999.9) THEN MAXTMP = 9999.9 MINTMP = 9999.9 ELSE END IF IF (MAXTMP .LE. TTAVG) MAXTMP = 9999.9 IF (MINTMP .GE. TTAVG) MINTMP = 9999.9 MAXCHK = MAXTMP - TTAVG MINCHK = TTAVG - MINTMP IF (MAXCHK .GE. 30.0) MAXTMP = 9999.9 IF (MINCHK .GE. 30.0) MINTMP = 9999.9 *** IF (THRMAX .NE. -999.9 .AND. MAXTMP .NE. 9999.9) THEN MAXDIF = ABS (THRMAX - MAXTMP) IF (MAXDIF .GE. 15.0 .AND. STNIND .EQ. 1) THEN MAXTMP = THRMAX MAXFLG = '*' ELSE END IF ELSE END IF IF (THRMIN .NE. 9999.9 .AND. MINTMP .NE. 9999.9) THEN MINDIF = ABS (THRMIN - MINTMP) IF (MINDIF .GE. 15.0 .AND. STNIND .EQ. 1) THEN MINTMP = THRMIN MINFLG = '*' ELSE END IF ELSE END IF *** IF (MAXTMP .EQ. 9999.9 .AND. THRMAX .NE. -999.9) THEN MAXTMP = THRMAX MAXFLG = '*' ELSE END IF IF (MINTMP .EQ. 9999.9 .AND. THRMIN .NE. 9999.9) THEN MINTMP = THRMIN MINFLG = '*' ELSE END IF IF (THRMAX .NE. -999.9 .AND. THRMAX .GT. MAXTMP) THEN MAXTMP = THRMAX MAXFLG = '*' ELSE END IF IF (THRMIN .NE. 9999.9 .AND. THRMIN .LT. MINTMP) THEN MINTMP = THRMIN MINFLG = '*' ELSE END IF IF (MAXFLG .EQ. '*' .AND. MINFLG .EQ. ' '.AND.YRPRV.EQ.1996 - .AND.MOPRV.GE.7.AND.STNIND.EQ.1.AND.THRMIN.NE.9999.9) THEN MINTMP = THRMIN MINFLG = '*' ELSE END IF IF (MINFLG .EQ. '*' .AND. MAXFLG .EQ. ' '.AND.YRPRV.EQ.1996 - .AND.MOPRV.GE.7.AND.STNIND.EQ.1.AND.THRMAX.NE.-999.9) THEN MAXTMP = THRMAX MAXFLG = '*' ELSE END IF IF (MAXFLG .EQ. '*' .AND. MINFLG .EQ. ' '.AND.YRPRV.GE.1997 - .AND.STNIND.EQ.1.AND.THRMIN.NE.9999.9) THEN MINTMP = THRMIN MINFLG = '*' ELSE END IF IF (MINFLG .EQ. '*' .AND. MAXFLG .EQ. ' '.AND.YRPRV.GE.1997 - .AND.STNIND.EQ.1.AND.THRMAX.NE.-999.9) THEN MAXTMP = THRMAX MAXFLG = '*' ELSE END IF *** IF (MAXTMP .LE. MINTMP .AND. MINTMP .NE. 9999.9) THEN MAXTMP = 9999.9 MINTMP = 9999.9 ELSE END IF IF (MAXTMP .LE. TTAVG) MAXTMP = 9999.9 IF (MINTMP .GE. TTAVG) MINTMP = 9999.9 MAXCHK = MAXTMP - TTAVG MINCHK = TTAVG - MINTMP IF (MAXCHK .GE. 30.0) MAXTMP = 9999.9 IF (MINCHK .GE. 30.0) MINTMP = 9999.9 IF (MAXTMP .EQ. 9999.9) MAXFLG = ' ' IF (MINTMP .EQ. 9999.9) MINFLG = ' ' *** *** MEAN TEMPERATURE DATA - CHECKS FOR HIGH VALUES *** IF (TTAVG .GT. 110.0) TTAVG = 9999.9 IF (LATPRV.NE.9999) THEN IF (TTAVG .GT. 95.0 .AND. LATPRV .GT. 2000 .AND. - MOPRV .GE. 10 .AND. MOPRV .LE. 12) TTAVG = 9999.9 IF (TTAVG .GT. 95.0 .AND. LATPRV .GT. 2000 .AND. - MOPRV .GE. 01 .AND. MOPRV .LE. 04) TTAVG = 9999.9 IF (TTAVG .GT. 110.0 .AND. LATPRV .GT. 2000 .AND. - MOPRV .GE. 05 .AND. MOPRV .LE. 09) TTAVG = 9999.9 IF (TTAVG .GT. 95.0 .AND. LATPRV .LT. -2000 .AND. - MOPRV .GE. 05 .AND. MOPRV .LE. 09) TTAVG = 9999.9 IF (TTAVG .GT. 110.0 .AND. LATPRV .LT. -2000 .AND. - MOPRV .GE. 01 .AND. MOPRV .LE. 04) TTAVG = 9999.9 IF (TTAVG .GT. 110.0 .AND. LATPRV .LT. -2000 .AND. - MOPRV .GE. 10 .AND. MOPRV .LE. 12) TTAVG = 9999.9 *** IF (TTAVG .GT. 90.0 .AND. LATPRV .GT. 3000 .AND. - MOPRV .GE. 10 .AND. MOPRV .LE. 12) TTAVG = 9999.9 IF (TTAVG .GT. 90.0 .AND. LATPRV .GT. 3000 .AND. - MOPRV .GE. 01 .AND. MOPRV .LE. 04) TTAVG = 9999.9 IF (TTAVG .GT. 110.0 .AND. LATPRV .GT. 3000 .AND. - MOPRV .GE. 05 .AND. MOPRV .LE. 09) TTAVG = 9999.9 IF (TTAVG .GT. 90.0 .AND. LATPRV .LT. -3000 .AND. - MOPRV .GE. 05 .AND. MOPRV .LE. 09) TTAVG = 9999.9 IF (TTAVG .GT. 110.0 .AND. LATPRV .LT. -3000 .AND. - MOPRV .GE. 01 .AND. MOPRV .LE. 04) TTAVG = 9999.9 IF (TTAVG .GT. 110.0 .AND. LATPRV .LT. -3000 .AND. - MOPRV .GE. 10 .AND. MOPRV .LE. 12) TTAVG = 9999.9 *** IF (TTAVG .GT. 70.0 .AND. LATPRV .GT. 6000 .AND. - MOPRV .GE. 10 .AND. MOPRV .LE. 12) TTAVG = 9999.9 IF (TTAVG .GT. 70.0 .AND. LATPRV .GT. 6000 .AND. - MOPRV .GE. 01 .AND. MOPRV .LE. 04) TTAVG = 9999.9 IF (TTAVG .GT. 80.0 .AND. LATPRV .GT. 6000 .AND. - MOPRV .GE. 05 .AND. MOPRV .LE. 09) TTAVG = 9999.9 IF (TTAVG .GT. 70.0 .AND. LATPRV .LT. -6000 .AND. - MOPRV .GE. 05 .AND. MOPRV .LE. 09) TTAVG = 9999.9 IF (TTAVG .GT. 80.0 .AND. LATPRV .LT. -6000 .AND. - MOPRV .GE. 01 .AND. MOPRV .LE. 04) TTAVG = 9999.9 IF (TTAVG .GT. 80.0 .AND. LATPRV .LT. -6000 .AND. - MOPRV .GE. 10 .AND. MOPRV .LE. 12) TTAVG = 9999.9 ELSE END IF *** *** MEAN TEMPERATURE DATA - CHECKS FOR LOW VALUES *** IF (TTAVG .LT. -120.0) TTAVG = 9999.9 IF (LATPRV.NE.9999) THEN IF (TTAVG .LT. 0.0 .AND. LATPRV .GE. -2000 .AND. - LATPRV .LE. 2000) TTAVG = 9999.9 IF (TTAVG.LT.20.0.AND.LATPRV.GT.2000.AND.LATPRV.LE.3000 - .AND. MOPRV .GE. 05 .AND. MOPRV .LE. 09) TTAVG = 9999.9 IF (TTAVG.LT.0.0.AND.LATPRV.GT.3000.AND.LATPRV.LE.6000 - .AND. MOPRV .GE. 05 .AND. MOPRV .LE. 09) TTAVG = 9999.9 IF (TTAVG.LT.-20.0.AND.LATPRV.GT.6000.AND.LATPRV.LE.9000 - .AND. MOPRV .GE. 05 .AND. MOPRV .LE. 09) TTAVG = 9999.9 IF (TTAVG.LT.20.0.AND.LATPRV.GT.-3000.AND.LATPRV.LE.-2000 - .AND. MOPRV .GE. 10 .AND. MOPRV .LE. 12) TTAVG = 9999.9 IF (TTAVG.LT.0.0.AND.LATPRV.GT.-6000.AND.LATPRV.LE.-3000 - .AND. MOPRV .GE. 10 .AND. MOPRV .LE. 12) TTAVG = 9999.9 IF (TTAVG.LT.-30.0.AND.LATPRV.GT.-7000.AND.LATPRV.LE.-6000 - .AND. MOPRV .GE. 10 .AND. MOPRV .LE. 12) TTAVG = 9999.9 IF (TTAVG.LT.-100.0.AND.LATPRV.GE.-9000.AND.LATPRV.LE.-7000 - .AND. MOPRV .GE. 10 .AND. MOPRV .LE. 12) TTAVG = 9999.9 IF (TTAVG.LT.20.0.AND.LATPRV.GT.-3000.AND.LATPRV.LE.-2000 - .AND. MOPRV .GE. 01 .AND. MOPRV .LE. 04) TTAVG = 9999.9 IF (TTAVG.LT.0.0.AND.LATPRV.GT.-6000.AND.LATPRV.LE.-3000 - .AND. MOPRV .GE. 01 .AND. MOPRV .LE. 04) TTAVG = 9999.9 IF (TTAVG.LT.-30.0.AND.LATPRV.GT.-7000.AND.LATPRV.LE.-6000 - .AND. MOPRV .GE. 01 .AND. MOPRV .LE. 04) TTAVG = 9999.9 IF (TTAVG.LT.-100.0.AND.LATPRV.GE.-9000.AND.LATPRV.LE.-7000 - .AND. MOPRV .GE. 01 .AND. MOPRV .LE. 04) TTAVG = 9999.9 *** IF (TTAVG.LT.-10.0.AND.LATPRV.GT.-3000.AND.LATPRV.LE.-2000 - .AND. MOPRV .GE. 05 .AND. MOPRV .LE. 09) TTAVG = 9999.9 IF (TTAVG.LT.-80.0.AND.LATPRV.GT.-6000.AND.LATPRV.LE.-3000 - .AND. MOPRV .GE. 05 .AND. MOPRV .LE. 09) TTAVG = 9999.9 IF (TTAVG.LT.-90.0.AND.LATPRV.GT.-7000.AND.LATPRV.LE.-6000 - .AND. MOPRV .GE. 05 .AND. MOPRV .LE. 09) TTAVG = 9999.9 IF (TTAVG.LT.-120.0.AND.LATPRV.GE.-9000.AND.LATPRV.LE.-7000 - .AND. MOPRV .GE. 05 .AND. MOPRV .LE. 09) TTAVG = 9999.9 IF (TTAVG.LT.-10.0.AND.LATPRV.GT.2000.AND.LATPRV.LE.3000 - .AND. MOPRV .GE. 10 .AND. MOPRV .LE. 12) TTAVG = 9999.9 IF (TTAVG.LT.-80.0.AND.LATPRV.GT.3000.AND.LATPRV.LE.6000 - .AND. MOPRV .GE. 10 .AND. MOPRV .LE. 12) TTAVG = 9999.9 IF (TTAVG.LT.-90.0.AND.LATPRV.GT.6000.AND.LATPRV.LE.9000 - .AND. MOPRV .GE. 10 .AND. MOPRV .LE. 12) TTAVG = 9999.9 IF (TTAVG.LT.-10.0.AND.LATPRV.GT.2000.AND.LATPRV.LE.3000 - .AND. MOPRV .GE. 01 .AND. MOPRV .LE. 04) TTAVG = 9999.9 IF (TTAVG.LT.-80.0.AND.LATPRV.GT.3000.AND.LATPRV.LE.6000 - .AND. MOPRV .GE. 01 .AND. MOPRV .LE. 04) TTAVG = 9999.9 IF (TTAVG.LT.-90.0.AND.LATPRV.GT.6000.AND.LATPRV.LE.9000 - .AND. MOPRV .GE. 01 .AND. MOPRV .LE. 04) TTAVG = 9999.9 ELSE END IF *** *** MEAN DEW POINT DATA - CHECKS FOR HIGH VALUES *** IF (TDDAVG .GT. TTAVG) TDDAVG = 9999.9 IF (TDDAVG .GT. 90.0) TDDAVG = 9999.9 IF (LATPRV.NE.9999) THEN IF (TDDAVG .GT. 85.0 .AND. LATPRV .GT. 2000 .AND. - MOPRV .GE. 10 .AND. MOPRV .LE. 12) TDDAVG = 9999.9 IF (TDDAVG .GT. 85.0 .AND. LATPRV .GT. 2000 .AND. - MOPRV .GE. 01 .AND. MOPRV .LE. 04) TDDAVG = 9999.9 IF (TDDAVG .GT. 90.0 .AND. LATPRV .GT. 2000 .AND. - MOPRV .GE. 05 .AND. MOPRV .LE. 09) TDDAVG = 9999.9 IF (TDDAVG .GT. 85.0 .AND. LATPRV .LT. -2000 .AND. - MOPRV .GE. 05 .AND. MOPRV .LE. 09) TDDAVG = 9999.9 IF (TDDAVG .GT. 90.0 .AND. LATPRV .LT. -2000 .AND. - MOPRV .GE. 01 .AND. MOPRV .LE. 04) TDDAVG = 9999.9 IF (TDDAVG .GT. 90.0 .AND. LATPRV .LT. -2000 .AND. - MOPRV .GE. 10 .AND. MOPRV .LE. 12) TDDAVG = 9999.9 *** IF (TDDAVG .GT. 80.0 .AND. LATPRV .GT. 3000 .AND. - MOPRV .GE. 10 .AND. MOPRV .LE. 12) TDDAVG = 9999.9 IF (TDDAVG .GT. 80.0 .AND. LATPRV .GT. 3000 .AND. - MOPRV .GE. 01 .AND. MOPRV .LE. 04) TDDAVG = 9999.9 IF (TDDAVG .GT. 90.0 .AND. LATPRV .GT. 3000 .AND. - MOPRV .GE. 05 .AND. MOPRV .LE. 09) TDDAVG = 9999.9 IF (TDDAVG .GT. 80.0 .AND. LATPRV .LT. -3000 .AND. - MOPRV .GE. 05 .AND. MOPRV .LE. 09) TDDAVG = 9999.9 IF (TDDAVG .GT. 90.0 .AND. LATPRV .LT. -3000 .AND. - MOPRV .GE. 01 .AND. MOPRV .LE. 04) TDDAVG = 9999.9 IF (TDDAVG .GT. 90.0 .AND. LATPRV .LT. -3000 .AND. - MOPRV .GE. 10 .AND. MOPRV .LE. 12) TDDAVG = 9999.9 *** IF (TDDAVG .GT. 65.0 .AND. LATPRV .GT. 6000 .AND. - MOPRV .GE. 10 .AND. MOPRV .LE. 12) TDDAVG = 9999.9 IF (TDDAVG .GT. 65.0 .AND. LATPRV .GT. 6000 .AND. - MOPRV .GE. 01 .AND. MOPRV .LE. 04) TDDAVG = 9999.9 IF (TDDAVG .GT. 70.0 .AND. LATPRV .GT. 6000 .AND. - MOPRV .GE. 05 .AND. MOPRV .LE. 09) TDDAVG = 9999.9 IF (TDDAVG .GT. 65.0 .AND. LATPRV .LT. -6000 .AND. - MOPRV .GE. 05 .AND. MOPRV .LE. 09) TDDAVG = 9999.9 IF (TDDAVG .GT. 70.0 .AND. LATPRV .LT. -6000 .AND. - MOPRV .GE. 01 .AND. MOPRV .LE. 04) TDDAVG = 9999.9 IF (TDDAVG .GT. 70.0 .AND. LATPRV .LT. -6000 .AND. - MOPRV .GE. 10 .AND. MOPRV .LE. 12) TDDAVG = 9999.9 ELSE END IF *** *** MEAN DEW POINT DATA - CHECKS FOR LOW VALUES *** IF (TDDAVG .LT. -150.0) TDDAVG = 9999.9 IF (LATPRV.NE.9999) THEN IF (TDDAVG .LT. -40.0 .AND. LATPRV .GE. -2000 .AND. - LATPRV .LE. 2000) TDDAVG = 9999.9 IF (TDDAVG.LT.-20.0.AND.LATPRV.GT.2000.AND.LATPRV.LE.3000 - .AND. MOPRV .GE. 05 .AND. MOPRV .LE. 09) TDDAVG = 9999.9 IF (TDDAVG.LT.-40.0.AND.LATPRV.GT.3000.AND.LATPRV.LE.6000 - .AND. MOPRV .GE. 05 .AND. MOPRV .LE. 09) TDDAVG = 9999.9 IF (TDDAVG.LT.-60.0.AND.LATPRV.GT.6000.AND.LATPRV.LE.9000 - .AND. MOPRV .GE. 05 .AND. MOPRV .LE. 09) TDDAVG = 9999.9 IF (TDDAVG.LT.-20.0.AND.LATPRV.GT.-3000.AND.LATPRV.LE.-2000 - .AND. MOPRV .GE. 10 .AND. MOPRV .LE. 12) TDDAVG = 9999.9 IF (TDDAVG.LT.-40.0.AND.LATPRV.GT.-6000.AND.LATPRV.LE.-3000 - .AND. MOPRV .GE. 10 .AND. MOPRV .LE. 12) TDDAVG = 9999.9 IF (TDDAVG.LT.-70.0.AND.LATPRV.GT.-7000.AND.LATPRV.LE.-6000 - .AND. MOPRV .GE. 10 .AND. MOPRV .LE. 12) TDDAVG = 9999.9 IF (TDDAVG.LT.-140.0.AND.LATPRV.GE.-9000.AND.LATPRV.LE.-7000 - .AND. MOPRV .GE. 10 .AND. MOPRV .LE. 12) TDDAVG = 9999.9 IF (TDDAVG.LT.-20.0.AND.LATPRV.GT.-3000.AND.LATPRV.LE.-2000 - .AND. MOPRV .GE. 01 .AND. MOPRV .LE. 04) TDDAVG = 9999.9 IF (TDDAVG.LT.-40.0.AND.LATPRV.GT.-6000.AND.LATPRV.LE.-3000 - .AND. MOPRV .GE. 01 .AND. MOPRV .LE. 04) TDDAVG = 9999.9 IF (TDDAVG.LT.-70.0.AND.LATPRV.GT.-7000.AND.LATPRV.LE.-6000 - .AND. MOPRV .GE. 01 .AND. MOPRV .LE. 04) TDDAVG = 9999.9 IF (TDDAVG.LT.-140.0.AND.LATPRV.GE.-9000.AND.LATPRV.LE.-7000 - .AND. MOPRV .GE. 01 .AND. MOPRV .LE. 04) TDDAVG = 9999.9 *** IF (TDDAVG.LT.-50.0.AND.LATPRV.GT.-3000.AND.LATPRV.LE.-2000 - .AND. MOPRV .GE. 05 .AND. MOPRV .LE. 09) TDDAVG = 9999.9 IF (TDDAVG.LT.-120.0.AND.LATPRV.GT.-6000.AND.LATPRV.LE.-3000 - .AND. MOPRV .GE. 05 .AND. MOPRV .LE. 09) TDDAVG = 9999.9 IF (TDDAVG.LT.-130.0.AND.LATPRV.GT.-7000.AND.LATPRV.LE.-6000 - .AND. MOPRV .GE. 05 .AND. MOPRV .LE. 09) TDDAVG = 9999.9 IF (TDDAVG.LT.-150.0.AND.LATPRV.GE.-9000.AND.LATPRV.LE.-7000 - .AND. MOPRV .GE. 05 .AND. MOPRV .LE. 09) TDDAVG = 9999.9 IF (TDDAVG.LT.-50.0.AND.LATPRV.GT.2000.AND.LATPRV.LE.3000 - .AND. MOPRV .GE. 10 .AND. MOPRV .LE. 12) TDDAVG = 9999.9 IF (TDDAVG.LT.-120.0.AND.LATPRV.GT.3000.AND.LATPRV.LE.6000 - .AND. MOPRV .GE. 10 .AND. MOPRV .LE. 12) TDDAVG = 9999.9 IF (TDDAVG.LT.-130.0.AND.LATPRV.GT.6000.AND.LATPRV.LE.9000 - .AND. MOPRV .GE. 10 .AND. MOPRV .LE. 12) TDDAVG = 9999.9 IF (TDDAVG.LT.-50.0.AND.LATPRV.GT.2000.AND.LATPRV.LE.3000 - .AND. MOPRV .GE. 01 .AND. MOPRV .LE. 04) TDDAVG = 9999.9 IF (TDDAVG.LT.-120.0.AND.LATPRV.GT.3000.AND.LATPRV.LE.6000 - .AND. MOPRV .GE. 01 .AND. MOPRV .LE. 04) TDDAVG = 9999.9 IF (TDDAVG.LT.-130.0.AND.LATPRV.GT.6000.AND.LATPRV.LE.9000 - .AND. MOPRV .GE. 01 .AND. MOPRV .LE. 04) TDDAVG = 9999.9 ELSE END IF *** *** SNOW DEPTH DATA *** SNOWCK = 0 SEASON = 0 C..... Print*,STNPRV,ELVPRV,STNELV,LATPRV C..... Read (5,*) Ipgo IF (SNDPIN .LT. 0.0) SNDPIN = 999.9 IF (LATPRV.GE.0 .AND. MOPRV.GE.10.AND. MOPRV.LE.12) SEASON=1 IF (LATPRV.GE.0 .AND. MOPRV.GE.1 .AND. MOPRV.LE.4) SEASON=1 IF (LATPRV.LT.0 .AND. MOPRV.GE.4 .AND. MOPRV.LE.10) SEASON=1 IF (LATPRV.LT.2800 .AND. LATPRV.GT.-2800) SNOWCK = -1 IF (LATPRV.GE.2800 .OR. LATPRV.LE.-2800) SNOWCK = 0 IF (LATPRV.GE.4500 .OR. LATPRV.LE.-4500) SNOWCK = 1 IF (ELVPRV .GE. 1000) SNOWCK = SNOWCK + 1 IF (ELVPRV .GE. 2000) SNOWCK = SNOWCK + 1 IF (SEASON .EQ. 1) SNOWCK = SNOWCK + 1 IF (LATPRV.EQ.9999) SNOWCK = 0 IF (SNOWCK .LE. 0 .AND. SNDPIN .GT. 0.0) SNDPIN = 999.9 IF (SNOWCK .EQ. 1 .AND. SNDPIN .GT. 50.0) SNDPIN = 999.9 IF (SNOWCK .EQ. 2 .AND. SNDPIN .GT. 120.0) SNDPIN = 999.9 IF (SNOWCK .EQ. 3 .AND. SNDPIN .GT. 270.0) SNDPIN = 999.9 IF (SNOWCK .EQ. 4 .AND. SNDPIN .GT. 390.0) SNDPIN = 999.9 IF (TTAVG .GE. 50.0 .AND. SNDPIN .GT. 110.0) SNDPIN = 999.9 IF (TTAVG .GE. 60.0 .AND. SNDPIN .GT. 50.0) SNDPIN = 999.9 IF (TTAVG .GE. 70.0 .AND. SNDPIN .GT. 10.0) SNDPIN = 999.9 IF (TTAVG .GE. 80.0 .AND. SNDPIN .GT. 0.0) SNDPIN = 999.9 IF (LATPRV.GE.0 .AND. MOPRV.GE.6 .AND. MOPRV.LE.9 .AND. - TTAVG .GE. 50.0 .AND. SNDPIN .GT. 20.0 .AND. ELVPRV.LT.1000) THEN SNDPIN = 999.9 ENDIF IF (LATPRV.GE.0 .AND. MOPRV.GE.6 .AND. MOPRV.LE.9 .AND. - TTAVG .GE. 60.0 .AND. SNDPIN .GT. 10.0 .AND. ELVPRV.LT.1000) THEN SNDPIN = 999.9 ENDIF IF (SNDPIN .EQ. 0.0) SNDPIN = 999.9 IF (SNDPPV .NE. 999.9 .AND. SNDPIN .NE. 999.9 - .AND. STNPRV .EQ. STN) SNDPCK = SNDPIN - SNDPPV IF (SNDPCK .LT. -20.0) SNDPIN = 999.9 IF (SNDPCK .GT. 60.0) SNDPIN = 999.9 SNDPPV = SNDPIN SNDPCK = 0.0 *** *** PRECIP DATA *** PRCPCK = 0 IF (LATPRV .GE. 3000 .OR. LATPRV .LE. -3000) PRCPCK = 2 IF (LATPRV .GE. 6000 .OR. LATPRV .LE. -6000) PRCPCK = 1 IF (LATPRV .LT. 3000 .AND. LATPRV .GT. -3000) PRCPCK = 3 IF (LATPRV.EQ.9999) PRCPCK = 1 IF (PRCPCK .EQ. 1 .AND. PCPTOT .GE. 8.00) PCPTOT = 99.99 IF (PRCPCK .EQ. 2 .AND. PCPTOT .GE. 14.00) PCPTOT = 99.99 IF (PRCPCK .EQ. 3 .AND. PCPTOT .GE. 20.00) PCPTOT = 99.99 IF (PRCPCK .EQ. 0 .AND. PCPTOT .GE. 8.00) PCPTOT = 99.99 **** NEW CODE, 8/30/00 IF ((RAIN.EQ.1 .OR. SNOW.EQ.1 .OR. HAIL.EQ.1) .AND. - (PCPTOT .EQ. 0.0 .AND. TRCFLG .NE. 1 - .AND. PCPFLG .GE. 1 .AND. PCPFLG .LE. 3)) PCPFLG = 8 IF ((RAIN.EQ.1 .OR. SNOW.EQ.1 .OR. HAIL.EQ.1) .AND. - (PCPTOT .EQ. 0.0 .AND. TRCFLG .NE. 1 - .AND. PCPFLG .EQ. 5)) PCPFLG = 9 IF (RAIN .EQ. 0 .AND. PCPTOT .GE. 8.00) PCPTOT = 99.99 IF (THNDER .EQ. 0 .AND. TDDAVG .LT. 50.0 .AND. - PCPTOT .GE. 6.00) PCPTOT = 99.99 IF (TDDAVG .LE. 20.0 .AND. PCPTOT .GE. 4.00) PCPTOT = 99.99 IF (TDDAVG .LE. -20.0 .AND. PCPTOT .GE.1.00) PCPTOT = 99.99 IF ((PCPFLG .EQ. 1 .OR. PCPFLG .EQ. 2 .OR. PCPFLG .EQ. 3 - .OR. PCPFLG .EQ. 4) .AND. (STNIND .EQ. 1 .AND. - WXIND .EQ. 0 .AND. SLPAVG .EQ. 9999.9)) PCPTOT = 99.99 WXIND = 0 *** IF (VISAVG .EQ. 999.9 .AND. SPDAVG .EQ. 999.9 .AND. *** - SLPAVG .EQ. 9999.9 .AND. STPAVG .EQ. 9999.9) PCPTOT=99.99 IF (PCPTOT .GT. 3.93 .AND. PCPTOT .LT. 3.95 - .AND. PCPFLG .EQ. 7) PCPTOT=99.99 IF (STNIND .EQ. 5 .AND. PCPTOT .GE. 2.00) PCPTOT=99.99 **** NEW CODE, 8/30/00 IF (RAIN.EQ.0 .AND. SNOW.EQ.0 .AND. HAIL.EQ.0 .AND. - PCPTOT .EQ. 99.99) THEN PCPFLG = 10 PCPTOT = 0.0 ELSE END IF PCPPRV = 99.99 PCP24P = 99.99 *** IF (TTAVG .EQ. 9999.9) TTCNT = 0 IF (TDDAVG .EQ. 9999.9) TDDCNT = 0 IF (SLPAVG .EQ. 9999.9) SLPCNT = 0 IF (STPAVG .EQ. 9999.9) STPCNT = 0 IF (VISAVG .EQ. 999.9) VISCNT = 0 IF (SPDAVG .EQ. 999.9) SPDCNT = 0 *** RETURN END