*** PARSE OUT THE PRECIP DATA FROM EACH AA FIELD IN THE ADDITIONAL DATA *** SECTION, ASSIGNING THE VALIDATED VALUES TO VARIABLES, TO THEN BE *** PASSED BACK TO THE ADDSEC SUBROUTINE *** subroutine precip_value(ind1,hr,hr06p,hr12p,hr24p,inda12,irussi, & p00,p06,p12,p18,p24,pcpchk,prcp6,prcp12,prcp24,tmpprec,stnind, & pcp6a,pcp6b,pcp6c,pcp6d,pcp6,pcp12,pcp24,pcp12a,pcp12b,trace, & hr06ck) implicit none character*2 ind1 integer hr,hr06p,hr12p,hr24p,inda12,irussi,p00,p06,p12,p18,p24 integer pcpchk,prcp6,prcp12,prcp24,tmpprec,stnind,trace,hr06ck real*4 pcp6a,pcp6b,pcp6c,pcp6d,pcp6,pcp12,pcp24,pcp12a,pcp12b *** PRINT*,HR06CK ! added Mar 04 *** *** COLLECT THE 6-HOURLY PRECIP REPORTS: *** IF (IND1 .EQ.'06' .AND. PCPCHK .NE. 1 ) THEN prcp6=tmpprec IF (PRCP6.GE.0 .AND. PRCP6.LE.2000) THEN PCP6 = PRCP6 / 254. IF (PCP6 .GT. 0.0) HR06P = HR IF (STNIND .EQ. 1) THEN IF (HR.EQ.0.AND.HR06CK.NE.24.AND.P00.EQ.0) PCP6A=PCP6 ! modified Mar 04 IF (HR.EQ.6.AND.PCP6A.NE.99.99.AND.P06.EQ.0) PCP6B=PCP6 IF (HR.EQ.6.AND.PCP6A.EQ.99.99.AND.P06.EQ.0) PCP6A=PCP6 IF (HR.EQ.12.AND.PCP6B.NE.99.99.AND.P12.EQ.0) PCP6C=PCP6 IF (HR.EQ.12.AND.PCP6B.EQ.99.99.AND.P12.EQ.0) PCP6B=PCP6 IF (HR.EQ.18.AND.PCP6C.NE.99.99.AND.P18.EQ.0) PCP6D=PCP6 IF (HR.EQ.18.AND.PCP6C.EQ.99.99.AND.P18.EQ.0) PCP6C=PCP6 IF (HR .EQ. 24 .AND. PCP6D .NE. 99.99 .AND. - PCP6A .EQ. 0.0 .AND. P24 .EQ. 0) PCP6A=PCP6 IF (HR .EQ. 24 .AND. PCP6D .NE. 99.99 .AND. - PCP6A .EQ. 99.99 .AND. P24 .EQ. 0) PCP6A=PCP6 IF (HR .EQ. 24 .AND. PCP6D .NE. 99.99 .AND. - PCP6 .GT. PCP6A .AND. P24 .EQ. 0) PCP6A=PCP6 IF (HR.EQ.24.AND.PCP6D.EQ.99.99.AND.P24.EQ.0) PCP6D=PCP6 IF (HR .EQ. 0) P00=1 IF (HR .EQ. 6) P06=1 IF (HR .EQ. 12) P12=1 IF (HR .EQ. 18) P18=1 IF (HR .EQ. 24) P24=1 ELSE IF (HR .GE. 0 .AND. HR .LE. 5) PCP6A =PCP6 IF (HR.GE.6.AND.HR.LE.11.AND.PCP6A.NE.99.99) PCP6B =PCP6 IF (HR.GE.6.AND.HR.LE.11.AND.PCP6A.EQ.99.99) PCP6A =PCP6 IF (HR.GE.12.AND.HR.LE.17.AND.PCP6B.NE.99.99) PCP6C =PCP6 IF (HR.GE.12.AND.HR.LE.17.AND.PCP6B.EQ.99.99) PCP6B =PCP6 IF (HR.GE.18.AND.HR.LE.23.AND.PCP6C.NE.99.99) PCP6D =PCP6 IF (HR.GE.18.AND.HR.LE.23.AND.PCP6C.EQ.99.99) PCP6C =PCP6 IF (HR .EQ. 24 .AND. PCP6D .NE. 99.99 .AND. - PCP6A .EQ. 0.0) PCP6A =PCP6 IF (HR .EQ. 24 .AND. PCP6D .NE. 99.99 .AND. - PCP6A .EQ. 99.99) PCP6A =PCP6 IF (HR .EQ. 24 .AND. PCP6D .NE. 99.99 .AND. - PCP6 .GT. PCP6A) PCP6A =PCP6 IF (HR.EQ.24.AND.PCP6D.EQ.99.99) PCP6D =PCP6 END IF ELSE END IF ! IF (PCP6 .EQ. 99998) THEN IF (trace .EQ. 2) THEN PCP6 = .0001 IF (STNIND .EQ. 1) THEN IF (HR.EQ.0.AND.HR06CK.NE.24.AND.P00.EQ.0) PCP6A=PCP6 IF (HR.EQ.6.AND.PCP6A.NE.99.99.AND.P06.EQ.0) PCP6B=PCP6 IF (HR.EQ.6.AND.PCP6A.EQ.99.99.AND.P06.EQ.0) PCP6A=PCP6 IF (HR.EQ.12.AND.PCP6B.NE.99.99.AND.P12.EQ.0)PCP6C=PCP6 IF (HR.EQ.12.AND.PCP6B.EQ.99.99.AND.P12.EQ.0)PCP6B=PCP6 IF (HR.EQ.18.AND.PCP6C.NE.99.99.AND.P18.EQ.0)PCP6D=PCP6 IF (HR.EQ.18.AND.PCP6C.EQ.99.99.AND.P18.EQ.0)PCP6C=PCP6 IF (HR .EQ. 24 .AND. PCP6D .NE. 99.99 .AND. - PCP6A .EQ. 0.0 .AND. P24 .EQ. 0) PCP6A = PCP6 IF (HR .EQ. 24 .AND. PCP6D .NE. 99.99 .AND. - PCP6A .EQ. 99.99 .AND. P24 .EQ. 0) PCP6A = PCP6 IF (HR .EQ. 24 .AND. PCP6D .NE. 99.99 .AND. - PCP6 .GT. PCP6A .AND. P24 .EQ. 0) PCP6A = PCP6 IF (HR.EQ.24.AND.PCP6D.EQ.99.99.AND.P24.EQ.0)PCP6D=PCP6 IF (HR .EQ. 0) P00=1 IF (HR .EQ. 6) P06=1 IF (HR .EQ. 12) P12=1 IF (HR .EQ. 18) P18=1 IF (HR .EQ. 24) P24=1 ELSE !----------- STN NOT EQ 1 IF (HR .GE. 0 .AND. HR .LE. 5)PCP6A = PCP6 IF (HR.GE.6.AND.HR.LE.11.AND.PCP6A.NE.99.99) PCP6B=PCP6 IF (HR.GE.6.AND.HR.LE.11.AND.PCP6A.EQ.99.99) PCP6A=PCP6 IF (HR.GE.12.AND.HR.LE.17.AND.PCP6B.NE.99.99)PCP6C=PCP6 IF (HR.GE.12.AND.HR.LE.17.AND.PCP6B.EQ.99.99)PCP6B=PCP6 IF (HR.GE.18.AND.HR.LE.23.AND.PCP6C.NE.99.99)PCP6D=PCP6 IF (HR.GE.18.AND.HR.LE.23.AND.PCP6C.EQ.99.99)PCP6C=PCP6 IF (HR .EQ. 24 .AND. PCP6D .NE. 99.99 .AND. - PCP6A .EQ. 0.0) PCP6A = PCP6 IF (HR .EQ. 24 .AND. PCP6D .NE. 99.99 .AND. - PCP6A .EQ. 99.99) PCP6A = PCP6 IF (HR .EQ. 24 .AND. PCP6D .NE. 99.99 .AND. - PCP6 .GT. PCP6A) PCP6A = PCP6 IF (HR.EQ.24.AND.PCP6D.EQ.99.99)PCP6D=PCP6 END IF ELSE ! --------- NOT (PCP6 .EQ. 99998) END IF ELSE ! --------- NOT (IND1 .EQ. 06 .AND. PCPCHK .NE. 1) END IF ****** *** *** COLLECT THE 12-HOURLY PRECIP REPORTS: *** IF (IND1 .EQ. '12') THEN PRCP12 = TMPPREC INDA12 = 1 IF (PRCP12 .GE. 0 .AND. PRCP12 .LE. 3000) THEN PCP12 = PRCP12 / 254. IF (PCP12 .GT. 0.0) HR12P = HR IF (HR .GE. 0 .AND. HR .LE. 11) PCP12A = PCP12 IF (HR .GE. 12 .AND. HR .LE. 24) PCP12B = PCP12 ELSE END IF ! IF (PRCP12 .EQ. 99998) THEN IF (trace .EQ. 2) THEN PCP12 = .0001 IF (HR .GE. 0 .AND. HR .LE. 11) PCP12A = PCP12 IF (HR .GE. 12 .AND. HR .LE. 24) PCP12B = PCP12 ELSE END IF ! ------- (PREC12 .EQ. '99998') ELSE END IF ! ------- (INDAA .EQ. 'AA12') ****** IF (IND1.EQ.'99'.AND.IRUSSI.EQ.1 .AND.INDA12.NE.1) THEN PRCP12 = TMPPREC IF (PRCP12 .GE. 0 .AND. PRCP12 .LE. 3000) THEN ! READ (710,PREC12) PRCP12 ! DECODE (5,710,PREC12) PRCP12 PCP12 = PRCP12 / 254. ! FLOAT(PRCP12) IF (PCP12 .GT. 0.0) HR12P = HR IF (HR .GE. 0 .AND. HR .LE. 11) PCP12A = PCP12 IF (HR .GE. 12 .AND. HR .LE. 24) PCP12B = PCP12 ELSE END IF ! IF (PRCP12 .EQ. 99998) THEN IF (trace .EQ. 2) THEN PCP12 = .0001 IF (HR .GE. 0 .AND. HR .LE. 11) PCP12A = PCP12 IF (HR .GE. 12 .AND. HR .LE. 24) PCP12B = PCP12 ELSE END IF ELSE END IF ! --------(IND1.EQ.AA99.AND.IRUSSI.EQ.1 .AND.INDA12.NE.1) ****** *** *** COLLECT THE 24-HOURLY PRECIP REPORTS: *** IF (IND1 .EQ. '24' .AND. STNIND .NE. 3) THEN PRCP24 = TMPPREC IF (PRCP24 .GE. 0 .AND. PRCP24 .LE. 5000) THEN ! READ (710,PREC24) PRCP24 ! DECODE (5,710,PREC24) PRCP24 PCP24 = PRCP24 / 254. ! FLOAT(PRCP24) HR24P = HR ELSE END IF ! IF (PRCP24 .EQ. 99998) THEN IF (trace .EQ. 2) THEN PCP24 = .0001 HR24P = HR ELSE END IF ELSE END IF ! ---------- (IND1 .EQ. 24 .AND. STNIND .NE. 3) **** return end