C*********************************** SUBROUTINE ADDSEC implicit integer (a-z) integer fsndp2,irussi,pcpchk,prcp6,stnind integer gusti,gusti2,gusti3,sndp2,trace integer p00,p06,p12,p18,p24 C*********************************** C SET ADDITIONAL DATA FIELDS C C C INDICATORS ARE: AA FOR PRECIP, CA FOR SNOW DEPTH, C KA FOR MAX TEMP, KD FOR MIN TEMP, MA FOR STN PRESSURE, C & OA FOR WIND GUST. C SOME QUALITY CONTROL IS INCLUDED HERE ALSO. C C SET INDICATOR FOR PRECIP IN BLOCKS 69-78 + HAWAII + C-MAN: C MUST BE 00, 06, 12, OR 18Z FOR 6-HOUR PRECIP TO BE VALID. C BLOCKS 20-38: USE AA99 FOR 12-HOUR PRECIP FOR 1982-PRESENT. C BLOCKS 96-97 (INDONESIAN PORTION): DON'T USE AA24 (24-HLY C PRECIP) FOR 1982-PRESENT, ONLY USE 6-HOURLY AMOUNTS. C BLOCK 47: USE AA99 FOR 12-HOUR PRECIP FOR 1982-PRESENT, C DON'T USE AA06 FOR 1973-PRESENT. C BLOCK 89: SET IND FOR ANTARTICA FOR LATER QC CHECKS. C INCLUDE "dat3.com" INTEGER B,E CHARACTER*6 JUNK6 C -------------- READ ADDITIONAL ! AB TEST print '("++ADDSEC: [",A65,"]")', ADDL1(1:65) IGSTCK=0 SECID = ADDL1(1:3) IF (SECID .NE. 'ADD')GO TO 2999 ! CASE OF NO ADDITIONAL SECTION FIRST=0 B=4; E=6 ! INITIALIZE THE POINTERS AFTER SECID 1000 CONTINUE ! READ NEXT IDENTIFIER (DATAID) DATAID = ADDL1(B:B+2) B=B+3 C ------ Scan table of valid ID's to obtain associated width: cccccc print*, '++ Pre Do Loop' DO 1040 I=1,IDS IF (DATAID .EQ. ID(I)) go to 1050 1040 CONTINUE c IF (DATAID .NE. 'REM') write (*,*) 'INVALID IDENTIFIER ', stn, c + year,mo,da,hr,mn,DATAID GO TO 2999 C---- Width of data field found, scale moving pointer to decode c pick off field: 1050 CONTINUE ! STRING(1:W(I))=ADDL(B:B+W(I)-1) E = B+W(I)-1 !AB TEST print*, '("FRED test",2i6,1x,A40)', b,e, addl1(b-3:e) ! PRINT*, "STRING = ", STRING (1:W(I)) C------ The following data statements associate a record ID type C------ with it's decoded width: C------ I= 1, 6)/"AA1","AA2","AA3","AA4","AC1","AG1"/ C------ I= 7,12)/"AJ1","HL1","AL1","AL2","AL3","AL4"/ C------ I=13,18)/"MW1","MW2","MW3","MW4","MW5","MW6"/ C------ I=19,24)/"MW7","AW1","AY1","AY2","AZ1","AZ2"/ C------ I=25,30)/"ED1","GA1","GA2","GA3","GA4","GA5"/ C------ I=31,36)/"GA6","GF1","GD1","GD2","GD3","GD4"/ C------ I=37,42)/"GG1","GG2","GG3","GG4","GG5","GG6"/ C------ I=43,48)/"GJ1","IA1","IA2","KA1","KA2","MA1"/ C------ I=49,54)/"MD1","ME1","OA1","OA2","OA3","OC1"/ C------ I=55,60)/"SA1","UA1","UG1","UG2","WA1","WG1"/ C------ I=61,61)/"WD1"/ GOTO ( 2001, 2002, 2003, 2004, ! AA1 - 4 1 2005, 2006, ! AC1, AG1 2 2007, 2008, ! AJ1, HL1 3 2009, 2009, 2009, 2009, ! AL1 - 4 4 2013, 2014, 2015, 2016, 2017, 2018, 2019, ! MW1 - 7 5 2020, 2021, 2022, ! AW1, AY1-2 6 2023, 2024, 2025, ! AZ1-2, ED1 7 2026, 2027, 2028, 2029, 2030, 2031, ! GA1 - GA6 8 2032, ! GF1 9 2033, 2034, 2035, 2036, ! GD1 - 4 a 2037, 2038, 2039, 2040, 2041, 2042, ! GG1 - 6 b 2043, 2044, 2045, ! GJ1, IA1-2 c 2046, 2047, 2048, ! KA1-2, MA1 d 2049, 2050, ! MD1, ME1 e 2051, 2052, 2053, ! OA1 - OA3 f 2054, 2055, ! OC1, SA1 g 2056, 2057, 2058, ! UA1, UG1 - UG2 h 2059, 2060, 2061, ! WA1, WG1, WD1 i 2062, 2063, 2064, 2065, 2066, 2067, 2068) I ! MV1 - 7 *** *** PRECIP DATA: *** 2001 AA1DATA = ADDL1 (B:E) ! SECID == 'AA' READ (AA1DATA,FMT=711) IND1, TMPPREC, trace 711 FORMAT (A2,I4,I1) call 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) GO TO 2100 2002 AA2DATA = ADDL1 (B:E) READ (AA2DATA,'(A2,I4,I1)') IND1, TMPPREC, trace call 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) GO TO 2100 2003 AA3DATA = ADDL1 (B:E) READ (AA3DATA,'(A2,I4,I1)') IND1, TMPPREC, trace call 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) GO TO 2100 2004 AA4DATA = ADDL1 (B:E) READ (AA4DATA,'(A2,I4,I1)') IND1, TMPPREC, trace call 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) GO TO 2100 2005 AC1DATA = ADDL1 (B:E); GO TO 2100 2006 AG1DATA = ADDL1 (B:E); GO TO 2100 *** *** SNOW DEPTH DATA: *** 2007 AJ1DATA = ADDL1 (B:E) READ (AJ1DATA,'(I4)') SNDP2 IF (SNDP2 .LT. 300) SNDPIN = SNDP2 / 2.54 GO TO 2100 2008 HL1DATA = ADDL1 (B:E); GO TO 2100 2009 AL1DATA = ADDL1 (B:E) GO TO 2100 2010 AL2DATA = ADDL1 (B:E); GO TO 2100 2011 AL3DATA = ADDL1 (B:E); GO TO 2100 2012 AL4DATA = ADDL1 (B:E); GO TO 2100 **** **** DETERMINE OCCURRENCE OF VARIOUS WEATHER PHENOMENON *** **** 2013 MW1DATA = ADDL1 (B:E) READ( MW1DATA,FMT=10) WW 10 FORMAT(I2) IF (WW .GE. 0 .AND. WW .LE. 99) WXIND = 1 IF (WW.EQ.17) THNDER = 1 IF (WW .GE. 91 .AND. WW .LE. 99) THNDER = 1 IF (WW .GE. 40 .AND. WW .LE. 49) FOG = 1 IF (WW .GE. 50 .AND. WW .LE. 69) RAIN = 1 IF (WW .GE. 80 .AND. WW .LE. 84) RAIN = 1 IF (WW .GE. 89 .AND. WW .LE. 92) RAIN = 1 IF (TT.GT.2732 .AND. WW.GE.93 .AND. WW.LE.99) RAIN = 1 IF (TT.LE.2732 .AND. WW.GE.93 .AND. WW.LE.99) SNOW = 1 IF (WW .GE. 70 .AND. WW .LE. 75) SNOW = 1 IF (WW .GE. 77 .AND. WW .LE. 79) SNOW = 1 IF (WW .GE. 85 .AND. WW .LE. 88) SNOW = 1 IF (WW .GE. 93 .AND. WW .LE. 94) SNOW = 1 IF (WW .GE. 89 .AND. WW .LE. 90) HAIL = 1 IF (WW .EQ. 96 .OR. WW .EQ. 99) HAIL = 1 IF (WW .EQ. 19) TORN = 1 IF (WW .GE. 20 .AND. WW .LE. 21) RAIN = 1 IF (WW .GE. 23 .AND. WW .LE. 25) RAIN = 1 IF (TT .GT. 2732 .AND. WW. EQ. 26) RAIN = 1 IF (WW .EQ. 27) RAIN = 1 IF (WW .GE. 22 .AND. WW .LE. 23) SNOW = 1 IF (WW .EQ. 26) SNOW = 1 IF (WW .EQ. 27) HAIL = 1 IF (WW .EQ. 28) FOG = 1 IF (WW .EQ. 29) THNDER = 1 GO TO 2100 2014 MW2DATA = ADDL1 (B:E) READ( MW2DATA,FMT=10) WW IF (WW .GE. 0 .AND. WW .LE. 99) WXIND = 1 IF (WW.EQ.17) THNDER = 1 IF (WW .GE. 91 .AND. WW .LE. 99) THNDER = 1 IF (WW .GE. 40 .AND. WW .LE. 49) FOG = 1 IF (WW .GE. 50 .AND. WW .LE. 69) RAIN = 1 IF (WW .GE. 80 .AND. WW .LE. 84) RAIN = 1 IF (WW .GE. 89 .AND. WW .LE. 92) RAIN = 1 IF (TT.GT.2732 .AND. WW.GE.93 .AND. WW.LE.99) RAIN = 1 IF (TT.LE.2732 .AND. WW.GE.93 .AND. WW.LE.99) SNOW = 1 IF (WW .GE. 70 .AND. WW .LE. 75) SNOW = 1 IF (WW .GE. 77 .AND. WW .LE. 79) SNOW = 1 IF (WW .GE. 85 .AND. WW .LE. 88) SNOW = 1 IF (WW .GE. 93 .AND. WW .LE. 94) SNOW = 1 IF (WW .GE. 89 .AND. WW .LE. 90) HAIL = 1 IF (WW .EQ. 96 .OR. WW .EQ. 99) HAIL = 1 IF (WW .EQ. 19) TORN = 1 IF (WW .GE. 20 .AND. WW .LE. 21) RAIN = 1 IF (WW .GE. 23 .AND. WW .LE. 25) RAIN = 1 IF (TT .GT. 2732 .AND. WW. EQ. 26) RAIN = 1 IF (WW .EQ. 27) RAIN = 1 IF (WW .GE. 22 .AND. WW .LE. 23) SNOW = 1 IF (WW .EQ. 26) SNOW = 1 IF (WW .EQ. 27) HAIL = 1 IF (WW .EQ. 28) FOG = 1 IF (WW .EQ. 29) THNDER = 1 GO TO 2100 2015 MW3DATA = ADDL1 (B:E) READ( MW3DATA,FMT=10) WW IF (WW .GE. 0 .AND. WW .LE. 99) WXIND = 1 IF (WW.EQ.17) THNDER = 1 IF (WW .GE. 91 .AND. WW .LE. 99) THNDER = 1 IF (WW .GE. 40 .AND. WW .LE. 49) FOG = 1 IF (WW .GE. 50 .AND. WW .LE. 69) RAIN = 1 IF (WW .GE. 80 .AND. WW .LE. 84) RAIN = 1 IF (WW .GE. 89 .AND. WW .LE. 92) RAIN = 1 IF (TT.GT.2732 .AND. WW.GE.93 .AND. WW.LE.99) RAIN = 1 IF (TT.LE.2732 .AND. WW.GE.93 .AND. WW.LE.99) SNOW = 1 IF (WW .GE. 70 .AND. WW .LE. 75) SNOW = 1 IF (WW .GE. 77 .AND. WW .LE. 79) SNOW = 1 IF (WW .GE. 85 .AND. WW .LE. 88) SNOW = 1 IF (WW .GE. 93 .AND. WW .LE. 94) SNOW = 1 IF (WW .GE. 89 .AND. WW .LE. 90) HAIL = 1 IF (WW .EQ. 96 .OR. WW .EQ. 99) HAIL = 1 IF (WW .EQ. 19) TORN = 1 IF (WW .GE. 20 .AND. WW .LE. 21) RAIN = 1 IF (WW .GE. 23 .AND. WW .LE. 25) RAIN = 1 IF (TT .GT. 2732 .AND. WW. EQ. 26) RAIN = 1 IF (WW .EQ. 27) RAIN = 1 IF (WW .GE. 22 .AND. WW .LE. 23) SNOW = 1 IF (WW .EQ. 26) SNOW = 1 IF (WW .EQ. 27) HAIL = 1 IF (WW .EQ. 28) FOG = 1 IF (WW .EQ. 29) THNDER = 1 GO TO 2100 2016 MW4DATA = ADDL1 (B:E) READ( MW4DATA,FMT=10) WW IF (WW .GE. 0 .AND. WW .LE. 99) WXIND = 1 IF (WW.EQ.17) THNDER = 1 IF (WW .GE. 91 .AND. WW .LE. 99) THNDER = 1 IF (WW .GE. 40 .AND. WW .LE. 49) FOG = 1 IF (WW .GE. 50 .AND. WW .LE. 69) RAIN = 1 IF (WW .GE. 80 .AND. WW .LE. 84) RAIN = 1 IF (WW .GE. 89 .AND. WW .LE. 92) RAIN = 1 IF (TT.GT.2732 .AND. WW.GE.93 .AND. WW.LE.99) RAIN = 1 IF (TT.LE.2732 .AND. WW.GE.93 .AND. WW.LE.99) SNOW = 1 IF (WW .GE. 70 .AND. WW .LE. 75) SNOW = 1 IF (WW .GE. 77 .AND. WW .LE. 79) SNOW = 1 IF (WW .GE. 85 .AND. WW .LE. 88) SNOW = 1 IF (WW .GE. 93 .AND. WW .LE. 94) SNOW = 1 IF (WW .GE. 89 .AND. WW .LE. 90) HAIL = 1 IF (WW .EQ. 96 .OR. WW .EQ. 99) HAIL = 1 IF (WW .EQ. 19) TORN = 1 IF (WW .GE. 20 .AND. WW .LE. 21) RAIN = 1 IF (WW .GE. 23 .AND. WW .LE. 25) RAIN = 1 IF (TT .GT. 2732 .AND. WW. EQ. 26) RAIN = 1 IF (WW .EQ. 27) RAIN = 1 IF (WW .GE. 22 .AND. WW .LE. 23) SNOW = 1 IF (WW .EQ. 26) SNOW = 1 IF (WW .EQ. 27) HAIL = 1 IF (WW .EQ. 28) FOG = 1 IF (WW .EQ. 29) THNDER = 1 GO TO 2100 2017 MW5DATA = ADDL1 (B:E) READ( MW5DATA,FMT=10) WW IF (WW .GE. 0 .AND. WW .LE. 99) WXIND = 1 IF (WW.EQ.17) THNDER = 1 IF (WW .GE. 91 .AND. WW .LE. 99) THNDER = 1 IF (WW .GE. 40 .AND. WW .LE. 49) FOG = 1 IF (WW .GE. 50 .AND. WW .LE. 69) RAIN = 1 IF (WW .GE. 80 .AND. WW .LE. 84) RAIN = 1 IF (WW .GE. 89 .AND. WW .LE. 92) RAIN = 1 IF (TT.GT.2732 .AND. WW.GE.93 .AND. WW.LE.99) RAIN = 1 IF (TT.LE.2732 .AND. WW.GE.93 .AND. WW.LE.99) SNOW = 1 IF (WW .GE. 70 .AND. WW .LE. 75) SNOW = 1 IF (WW .GE. 77 .AND. WW .LE. 79) SNOW = 1 IF (WW .GE. 85 .AND. WW .LE. 88) SNOW = 1 IF (WW .GE. 93 .AND. WW .LE. 94) SNOW = 1 IF (WW .GE. 89 .AND. WW .LE. 90) HAIL = 1 IF (WW .EQ. 96 .OR. WW .EQ. 99) HAIL = 1 IF (WW .EQ. 19) TORN = 1 IF (WW .GE. 20 .AND. WW .LE. 21) RAIN = 1 IF (WW .GE. 23 .AND. WW .LE. 25) RAIN = 1 IF (TT .GT. 2732 .AND. WW. EQ. 26) RAIN = 1 IF (WW .EQ. 27) RAIN = 1 IF (WW .GE. 22 .AND. WW .LE. 23) SNOW = 1 IF (WW .EQ. 26) SNOW = 1 IF (WW .EQ. 27) HAIL = 1 IF (WW .EQ. 28) FOG = 1 IF (WW .EQ. 29) THNDER = 1 GO TO 2100 2018 MW6DATA = ADDL1 (B:E) READ( MW6DATA,FMT=10) WW IF (WW .GE. 0 .AND. WW .LE. 99) WXIND = 1 IF (WW.EQ.17) THNDER = 1 IF (WW .GE. 91 .AND. WW .LE. 99) THNDER = 1 IF (WW .GE. 40 .AND. WW .LE. 49) FOG = 1 IF (WW .GE. 50 .AND. WW .LE. 69) RAIN = 1 IF (WW .GE. 80 .AND. WW .LE. 84) RAIN = 1 IF (WW .GE. 89 .AND. WW .LE. 92) RAIN = 1 IF (TT.GT.2732 .AND. WW.GE.93 .AND. WW.LE.99) RAIN = 1 IF (TT.LE.2732 .AND. WW.GE.93 .AND. WW.LE.99) SNOW = 1 IF (WW .GE. 70 .AND. WW .LE. 75) SNOW = 1 IF (WW .GE. 77 .AND. WW .LE. 79) SNOW = 1 IF (WW .GE. 85 .AND. WW .LE. 88) SNOW = 1 IF (WW .GE. 93 .AND. WW .LE. 94) SNOW = 1 IF (WW .GE. 89 .AND. WW .LE. 90) HAIL = 1 IF (WW .EQ. 96 .OR. WW .EQ. 99) HAIL = 1 IF (WW .EQ. 19) TORN = 1 IF (WW .GE. 20 .AND. WW .LE. 21) RAIN = 1 IF (WW .GE. 23 .AND. WW .LE. 25) RAIN = 1 IF (TT .GT. 2732 .AND. WW. EQ. 26) RAIN = 1 IF (WW .EQ. 27) RAIN = 1 IF (WW .GE. 22 .AND. WW .LE. 23) SNOW = 1 IF (WW .EQ. 26) SNOW = 1 IF (WW .EQ. 27) HAIL = 1 IF (WW .EQ. 28) FOG = 1 IF (WW .EQ. 29) THNDER = 1 GO TO 2100 2019 MW7DATA = ADDL1 (B:E) READ( MW7DATA,FMT=10) WW IF (WW .GE. 0 .AND. WW .LE. 99) WXIND = 1 IF (WW.EQ.17) THNDER = 1 IF (WW .GE. 91 .AND. WW .LE. 99) THNDER = 1 IF (WW .GE. 40 .AND. WW .LE. 49) FOG = 1 IF (WW .GE. 50 .AND. WW .LE. 69) RAIN = 1 IF (WW .GE. 80 .AND. WW .LE. 84) RAIN = 1 IF (WW .GE. 89 .AND. WW .LE. 92) RAIN = 1 IF (TT.GT.2732 .AND. WW.GE.93 .AND. WW.LE.99) RAIN = 1 IF (TT.LE.2732 .AND. WW.GE.93 .AND. WW.LE.99) SNOW = 1 IF (WW .GE. 70 .AND. WW .LE. 75) SNOW = 1 IF (WW .GE. 77 .AND. WW .LE. 79) SNOW = 1 IF (WW .GE. 85 .AND. WW .LE. 88) SNOW = 1 IF (WW .GE. 93 .AND. WW .LE. 94) SNOW = 1 IF (WW .GE. 89 .AND. WW .LE. 90) HAIL = 1 IF (WW .EQ. 96 .OR. WW .EQ. 99) HAIL = 1 IF (WW .EQ. 19) TORN = 1 IF (WW .GE. 20 .AND. WW .LE. 21) RAIN = 1 IF (WW .GE. 23 .AND. WW .LE. 25) RAIN = 1 IF (TT .GT. 2732 .AND. WW. EQ. 26) RAIN = 1 IF (WW .EQ. 27) RAIN = 1 IF (WW .GE. 22 .AND. WW .LE. 23) SNOW = 1 IF (WW .EQ. 26) SNOW = 1 IF (WW .EQ. 27) HAIL = 1 IF (WW .EQ. 28) FOG = 1 IF (WW .EQ. 29) THNDER = 1 GO TO 2100 ! END OF MWDATA PROCESSING 2020 AW1DATA = ADDL1 (B:E) READ( AW1DATA,FMT=10) WW IF (WW .GE. 0 .AND. WW .LE. 99) WXIND = 1 IF (WW .EQ. 20) FOG = 1 IF (WW .GE. 30 .AND. WW .LE. 35) FOG = 1 IF (TT.GT.2732 .AND. WW.GE.21 .AND. WW.LE.22) RAIN = 1 IF (TT.GT.2732 .AND. WW.GE.40 .AND. WW.LE.42) RAIN = 1 IF (TT.GT.2732 .AND. WW.GE.85 .AND. WW.LE.87) RAIN = 1 IF (TT.GT.2732 .AND. WW .EQ. 92) RAIN = 1 IF (TT.GT.2732 .AND. WW .EQ. 95) RAIN = 1 IF (TT.GT.2682 .AND. WW .EQ. 23) RAIN = 1 IF (TT.GT.2682 .AND. WW .GE. 25 .AND. WW .LE. 26) RAIN = 1 IF (TT.GT.2682 .AND. WW .GE. 43 .AND. WW .LE. 44) RAIN = 1 IF (TT.GT.2682 .AND. WW .GE. 47 .AND. WW .LE. 48) RAIN = 1 IF (TT.GT.2682 .AND. WW .GE. 50 .AND. WW .LE. 68) RAIN = 1 IF (TT.GT.2682 .AND. WW .GE. 80 .AND. WW .LE. 84) RAIN = 1 IF (TT.GT.2682 .AND. WW .EQ. 90) RAIN = 1 IF (TT.GT.2682 .AND. WW .EQ. 93) RAIN = 1 IF (TT.GT.2682 .AND. WW .EQ. 96) RAIN = 1 IF (TT.LE.2732 .AND. WW.GE.21 .AND. WW.LE.22) SNOW = 1 IF (TT.LE.2732 .AND. WW.GE.40 .AND. WW.LE.42) SNOW = 1 IF (TT.LE.2732 .AND. WW.GE.85 .AND. WW.LE.87) SNOW = 1 IF (TT.LE.2732 .AND. WW .EQ. 92) SNOW = 1 IF (TT.LE.2732 .AND. WW .EQ. 95) SNOW = 1 IF (TT.LE.2782 .AND. WW .EQ. 24) SNOW = 1 IF (TT.LE.2782 .AND. WW .GE. 45 .AND. WW .LE. 46) SNOW = 1 IF (TT.LE.2782 .AND. WW .GE. 67 .AND. WW .LE. 68) SNOW = 1 IF (TT.LE.2782 .AND. WW .GE. 70 .AND. WW .LE. 76) SNOW = 1 IF (WW .GE. 90 .AND. WW .LE. 96) THNDER = 1 IF (WW .EQ. 26) THNDER = 1 IF (WW .EQ. 93) HAIL = 1 IF (WW .EQ. 96) HAIL = 1 IF (TT.GT.2732 .AND. WW .EQ. 99) TORN = 1 GO TO 2100 ! END OF AWDATA PROCESSING 2021 AY1DATA = ADDL1 (B:E); GO TO 2100 2022 AY2DATA = ADDL1 (B:E); GO TO 2100 2023 AZ1DATA = ADDL1 (B:E); GO TO 2100 2024 AZ2DATA = ADDL1 (B:E); GO TO 2100 2025 ED1DATA = ADDL1 (B:E); GO TO 2100 2026 GA1DATA = ADDL1 (B:E); GO TO 2100 2027 GA2DATA = ADDL1 (B:E); GO TO 2100 2028 GA3DATA = ADDL1 (B:E); GO TO 2100 2029 GA4DATA = ADDL1 (B:E); GO TO 2100 2030 GA5DATA = ADDL1 (B:E); GO TO 2100 2031 GA6DATA = ADDL1 (B:E); GO TO 2100 2032 GF1DATA = ADDL1 (B:E); GO TO 2100 2033 GD1DATA = ADDL1 (B:E); GO TO 2100 2034 GD2DATA = ADDL1 (B:E); GO TO 2100 2035 GD3DATA = ADDL1 (B:E); GO TO 2100 2036 GD4DATA = ADDL1 (B:E); GO TO 2100 2037 GG1DATA = ADDL1 (B:E); GO TO 2100 2038 GG2DATA = ADDL1 (B:E); GO TO 2100 2039 GG3DATA = ADDL1 (B:E); GO TO 2100 2040 GG4DATA = ADDL1 (B:E); GO TO 2100 2041 GG5DATA = ADDL1 (B:E); GO TO 2100 2042 GG6DATA = ADDL1 (B:E); GO TO 2100 2043 GJ1DATA = ADDL1 (B:E); GO TO 2100 2044 IA1DATA = ADDL1 (B:E); GO TO 2100 *** 2045 IA2DATA = ADDL1 (B:E); GO TO 2100 *** *** MAX/MIN TEMP DATA: *** 2046 IF (DATAID .EQ. 'KA1') THEN KA1DATA = ADDL1 (B:E) IF (KA1DATA (4:4) == 'M') THEN MAX = KA1DATA(5:9) !wz READ (766,MAX) MAX2 read (KA1DATA(5:9),'(i5)') max2 max2=max2+2732 MXCHK = MAX2 - TT IF (MXCHK .GE. 0 .AND. MXCHK .LE. 250) THEN MAXTMP = (MAX2 - 2732) * .18 + 32. ELSE END IF ELSE IF (KA1DATA (4:4) == 'N') THEN MIN = KA1DATA(5:9) !wz READ (766,MIN) MIN2 read (KA1DATA(5:9),'(i5)') min2 min2=min2+2732 MNCHK = MIN2 - TT IF (MNCHK .LE. 0 .AND. MNCHK .GE. -250) THEN MINTMP = (MIN2 - 2732) * .18 + 32. ELSE END IF ELSE END IF END IF GO TO 2100 2047 KA2DATA = ADDL1 (B:E) IF (KA2DATA (4:4) == 'M') THEN read (KA1DATA(5:9),'(i5)') max2 max2=max2+2732 MXCHK = MAX2 - TT IF (MXCHK .GE. 0 .AND. MXCHK .LE. 250) THEN MAXTMP = (MAX2 - 2732) * .18 + 32. END IF ELSE IF (KA2DATA (4:4) == 'N') THEN read (KA2DATA(5:9),'(i5)') min2 min2=min2+2732 MNCHK = MIN2 - TT IF (MNCHK .LE. 0 .AND. MNCHK .GE. -250) THEN MINTMP = (MIN2 - 2732) * .18 + 32. END IF END IF GO TO 2100 *** *** STATION PRESSURE AND ALTIMETER SETTING: *** 2048 MA1DATA = ADDL1 (B:E) READ (MA1DATA, FMT=755) JUNK6, STPC ! STPC = MA1DATA(7:11) 755 FORMAT (A6,I5) IF (STPC .LE. 10800 .AND. STPC .GE. 6000) THEN STPMB = STPC * .1 !FLOAT (STPC) IF (STNELV.LT.3000 .AND. STPMB.LT.650.0) STPMB = 9999.9 IF (STNELV.LT.2000 .AND. STPMB.LT.750.0) STPMB = 9999.9 IF (STNELV.LT.1500 .AND. STPMB.LT.800.0) STPMB = 9999.9 IF (STNELV.LT.1000 .AND. STPMB.LT.850.0) STPMB = 9999.9 IF (STNELV.LT. 500 .AND. STPMB.LT.900.0) STPMB = 9999.9 ELSE END IF GO TO 2100 2049 MD1DATA = ADDL1 (B:E); GO TO 2100 2050 ME1DATA = ADDL1 (B:E); GO TO 2100 *** *** WIND GUST DATA: *** 2051 OA1DATA = ADDL1 (B:E) READ (OA1DATA(1:7),'(I1,I2,I4)') IDOA, IPDOA, GUSTI IF (GUSTI .LT. 800 .AND. IDOA .GE. 3 .AND. IDOA .LE. 6) - GUSTK2 = GUSTI * .19425 C IF (IDOA .GE. 3 .AND. IDOA .LE. 4) IGSTCK=1 GO TO 2100 2052 OA2DATA = ADDL1 (B:E) C IF (IGSTCK .EQ. 1) GO TO 2100 READ (OA2DATA(1:7),'(I1,I2,I4)') IDOA, IPDOA, GUSTI2 IF (GUSTI .LT. 800 .AND. IDOA .GE. 3 .AND. IDOA .LE. 6 - .AND. GUSTI2 .GT. GUSTI) GUSTK2 = GUSTI2 * .19425 GO TO 2100 2053 OA3DATA = ADDL1 (B:E) READ (OA3DATA(1:7),'(I1,I2,I4)') IDOA, IPDOA, GUSTI3 IF (GUSTI .LT. 800 .AND. IDOA .GE. 3 .AND. IDOA .LE. 6 - .AND.GUSTI3.GT.GUSTI.AND.GUSTI3.GT.GUSTI2) GUSTK2=GUSTI3*.19425 GO TO 2100 2054 OC1DATA = ADDL1 (B:E) read(oc1data,'(i4)') gusti IF (GUSTI .LT. 800) GUSTK = GUSTI * .19425 GO TO 2100 *** 2055 SA1DATA = ADDL1 (B:E); GO TO 2100 2056 UA1DATA = ADDL1 (B:E); GO TO 2100 2057 UG1DATA = ADDL1 (B:E); GO TO 2100 2058 UG2DATA = ADDL1 (B:E); GO TO 2100 2059 WA1DATA = ADDL1 (B:E); GO TO 2100 2060 WG1DATA = ADDL1 (B:E); GO TO 2100 2061 WD1DATA = ADDL1 (B:E); GO TO 2100 2062 MV1DATA = ADDL1 (B:E); GO TO 2100 2063 MV2DATA = ADDL1 (B:E); GO TO 2100 2064 MV3DATA = ADDL1 (B:E); GO TO 2100 2065 MV4DATA = ADDL1 (B:E); GO TO 2100 2066 MV5DATA = ADDL1 (B:E); GO TO 2100 2067 MV6DATA = ADDL1 (B:E); GO TO 2100 2068 MV7DATA = ADDL1 (B:E); GO TO 2100 2100 E=B+W(I)-1 B=E+1 IF (B .GT. C_RECLEN ) THEN ! END OF ADDITIONAL DATA GO TO 2999 ELSE GO TO 1000 ENDIF 2999 CONTINUE ! READ NEXT RECORD @ BEGINNING OF READ LOOP (LABEL 2) RETURN END