386 SUBROUTINE w3unpk77(IDATE,IHE,IHL,LUNIT,RDATA,IRET)
388 INTEGER IDATE(4),LSDATE(4),jdate(8),IDATA(1200)
390 REAL RDATA(*),RDATX(1200)
391 COMMON /pk77bb/kdate(8),ldate(8),iprint
393 COMMON /pk77dd/lshe,lshl,icdate(5),iddate(5)
394 COMMON /pk77ff/ifov(3),kntsat(250:260)
398 equivalence(rdatx,idata)
399 DATA itm/0/,lunitl/-99/,kount/0/
401 IF(iret.LT.0) iprint = iabs(iret)
413 CALL w3fi04(iendn,ichtp,lw)
414 print 2213, lw, ichtp, iendn
415 2213
FORMAT(/
' ---> W3UNPK77: CALL TO W3FI04 RETURNS: LW = ',i3,
416 $
', ICHTP = ',i3,
', IENDN = ',i3/)
420 217
FORMAT(
' *** W3UNPK77 ERROR: CHARACTERS ON THIS MACHINE ',
421 $
'ARE NEITHER ASCII NOR EBCDIC - STOP 22'/)
426 IF(lunit.NE.lunitl)
THEN
435 101
FORMAT(//
' ---> W3UNPK77: VERSION 03/05/2002: JBUFR DATA SET ',
436 $
'READ FROM UNIT ',i4/)
447 IF(idate(i).NE.lsdate(i))
GO TO 88
449 IF(ihe.NE.lshe.OR.ihl.NE.lshl)
GO TO 88
456 6680
FORMAT(/
' JRET = 1 - REWIND DATA FILE & SET-UP TO DO DATE CHECK'/)
476 READ(lunit,
END=9999,ERR=9999) cbufr
477 IF(cbufr.NE.
'BUFR')
GO TO 9999
481 CALL dumpbf(lunit,icdate,iddate)
483 print *,
'CENTER DATE (ICDATE) = ',icdate
484 print *,
'DUMP DATE (IDDATE) = ',iddate
487 if(icdate(1).le.0)
then
490 print *,
' *** W3UNPK77 ERROR: CENTER DATE COULD NOT BE ',
491 $
'OBTAINED FROM INPUT FILE ON UNIT ',lunit
494 if(iddate(1).le.0)
then
497 print *,
' *** W3UNPK77 ERROR: DUMP DATE COULD NOT BE ',
498 $
'OBTAINED FROM INPUT FILE ON UNIT ',lunit
501 IF(icdate(1).LT.100)
THEN
510 print *,
'##W3UNPK77 - THE FOLLOWING SHOULD NEVER ',
512 print *,
'##W3UNPK77 - 2-DIGIT YEAR IN ICDATE(1) ',
513 $
'RETURNED FROM DUMPBF (ICDATE IS: ',icdate,
') - USE ',
514 $
'WINDOWING TECHNIQUE TO OBTAIN 4-DIGIT YEAR'
515 IF(icdate(1).GT.20)
THEN
516 icdate(1) = 1900 + icdate(1)
518 icdate(1) = 2000 + icdate(1)
520 print *,
'##WW3UNPK77 - CORRECTED ICDATE(1) WITH 4-DIGIT ',
521 $
'YEAR, ICDATE NOW IS: ',icdate
524 IF(iddate(1).LT.100)
THEN
533 print *,
'##W3UNPK77 - THE FOLLOWING SHOULD NEVER ',
535 print *,
'##W3UNPK77 - 2-DIGIT YEAR IN IDDATE(1) ',
536 $
'RETURNED FROM DUMPBF (IDDATE IS: ',iddate,
') - USE ',
537 $
'WINDOWING TECHNIQUE TO OBTAIN 4-DIGIT YEAR'
538 IF(iddate(1).GT.20)
THEN
539 iddate(1) = 1900 + iddate(1)
541 iddate(1) = 2000 + iddate(1)
543 print *,
'##W3UNPK77 - CORRECTED IDDATE(1) WITH 4-DIGIT ',
544 $
'YEAR, IDDATE NOW IS: ',iddate
549 CALL openbf(lunit,
'IN',lunit)
551 100
FORMAT(/5x,
'===> BUFR DATA SET IN UNIT',i3,
' SUCCESSFULLY ',
552 $
'OPENED FOR INPUT; DCTNY MESSAGES CONTAIN BUFR TABLES A,B,D'/)
555 jdate(1:3) = idate(1:3)
560 6681
FORMAT(/
' %%% REQUESTED "CENTRAL" DATE IS :',i5,3i3,
' 0'/)
562 call w3movdat((/0.,real(ihe),0.,0.,0./),jdate,kdate)
563 print 6682, (kdate(i),i=1,3),kdate(5),kdate(6)
564 6682
FORMAT(/
' --> EARLIEST DATE FOR ACCEPTING BUFR MSGS IS:',i5,4i3/)
567 xminl = (ihl * 60) + 59
569 xminl = ((ihl + 1) * 60) - 1
571 call w3movdat((/0.,0.,xminl,0.,0./),jdate,ldate)
572 print 6683, (ldate(i),i=1,3),ldate(5),ldate(6)
573 6683
FORMAT(/
' --> LATEST DATE FOR ACCEPTING BUFR MSGS IS:',i5,4i3/)
575 IF(rinc(3).LT.0)
THEN
577 104
FORMAT(
' *** W3UNPK77 ERROR: DATES SPECIFIED INCORRECTLY -',
584 CALL unpk7701(lunit,itp,iret)
594 8101
FORMAT(/
' ---> W3UNPK77: SUMMARY OF GOES REPORT COUNTS GROUPED',
595 $
' BY F-O-V NO. (PRIOR TO ANY FILTERING BY CALLING PROGRAM)'/15x,
596 $
'# WITH F-O-V NO. 00 TO 02:',i6,
' - GET "BAD" Q.MARK'/15x,
597 $
'# WITH F-O-V NO. 03 TO 09:',i6,
' - GET "SUSPECT" Q.MARK'/15x,
598 $
'# WITH F-O-V NO. 10 TO 25:',i6,
' - GET "NEUTRAL" Q.MARK'/20x,
599 $
'(NOTE: RADIANCES ALWAYS HAVE NEUTRAL Q.MARK)'/)
601 8102
FORMAT(/
' ---> W3UNPK77: SUMMARY OF GOES REPORT COUNTS GROUPED',
602 $
' BY SATELLITE ID (PRIOR TO ANY FILTERING BY CALLING PROGRAM)'/)
604 IF(kntsat(idsat).GT.0) print 8103, idsat,kntsat(idsat)
606 8103
FORMAT(15x,
'NUMBER FROM SAT. ID',i4,4x,
':',i6)
607 IF(kntsat(260).GT.0) print 8104
608 8104
FORMAT(15x,
'NUMBER FROM UNKNOWN SAT. ID:',i6)
617 CALL unpk7702(rdata,itp)
623 CALL unpk7703(lunit,rdata,iret)
625 IF(iret.GE.2)
GO TO 99
627 CALL unpk7704(lunit,rdata)
629 CALL unpk7705(lunit,rdata)
630 rdatx(1:1200) = rdata(1:1200)
631 IF(idata(35)+idata(37).EQ.0) iret = 5
632 ELSE IF(itp.EQ.2)
THEN
637 CALL unpk7708(lunit,rdata,kount,iret)
639 IF(iret.GE.2)
GO TO 99
641 CALL unpk7709(lunit,rdata,iret)
642 ELSE IF(itp.EQ.3)
THEN
647 CALL unpk7706(lunit,rdata,iret)
649 IF(iret.GE.2)
GO TO 99
651 CALL unpk7707(lunit,rdata,iret)
663 print *,
' *** W3UNPK77 ERROR: INPUT FILE IN UNIT ',lunit,
' IS ',
664 $
'EITHER A NULL OR NON-BUFR FILE'
706 SUBROUTINE unpk7701(LUNIT,ITP,IRET)
708 integer mdate(4),ndate(8)
710 COMMON /pk77bb/kdate(8),ldate(8),iprint
712 COMMON /pk77dd/lshe,lshl,icdate(5),iddate(5)
724 CALL readmg(lunit,subset,ibdate,jret)
728 101
FORMAT(
' ---> W3UNPK77: ALL BUFR MESSAGES READ IN AND DECODED'/)
733 if(ibdate.lt.100000000)
then
737 print *,
'##W3UNP777/UNPK7701 - A 10-digit Sect. 1 BUFR ',
738 $
'message date was not returned in unit ',lunit,
' - ',
739 $
'problem with BUFR file - ier = 1'
743 CALL ufbcnt(lunit,irec,isub)
744 mdate(1) = ibdate/1000000
745 mdate(2) = mod((ibdate/10000),100)
746 mdate(3) = mod((ibdate/100),100)
747 mdate(4) = mod(ibdate,100)
749 ndate(1:3) = mdate(1:3)
754 print *,
'HAVE SUCCESSFULLY READ IN A BUFR MESSAGE'
756 103
FORMAT(
' BUFR FOUND BEGINNING AT BYTE 1 OF MESSAGE')
757 print 105, irec,mdate,subset
758 105
FORMAT(8x,
'HAVE READ IN A BUFR MESSAGE NO.',i3,
', DATE: ',
759 $ i6,3i4,
' 0; TABLE A ENTRY = ',a8,
' AND EDIT. NO. = 2'/)
761 IF(subset.EQ.
'NC002007')
THEN
762 IF(iprint.GE.1) print *,
'THIS MESSAGE CONTAINS WIND ',
765 ELSE IF(subset.EQ.
'NC002008')
THEN
766 IF(iprint.GE.1) print *,
'THIS MESSAGE CONTAINS NEXRAD ',
767 $
'(VAD) WIND REPORTS'
769 ELSE IF(subset.EQ.
'NC003001')
THEN
770 IF(iprint.GE.1) print *,
'THIS MESSAGE CONTAINS GOES ',
771 $
'SOUNDING/RADIANCE REPORTS'
775 107
FORMAT(
' *** W3UNPK77 WARNING: BUFR MESSAGE NO.',i3,
' CONTAINS ',
776 $
'REPORTS THAT CANNOT BE DECODED BY W3UNPK77, TRY READING NEXT ',
786 if((kmin.gt.0.or.lmin.lt.0).AND.irec.GT.2)
then
787 print 106, irec,mdate
788 106
FORMAT(
' BUFR MESSAGE NO.',i3,
' WITH DATE:',i5,3i3,
' 0 NOT W/I',
789 $
' REQ. TIME RANGE, TRY READING NEXT MSG'/)
797 IF(iprint.GT.1) print *,
'CALL READSB'
798 CALL readsb(lunit,jret)
799 IF(iprint.GT.1) print *,
'BACK FROM READSB'
806 IF(iprint.GT.1) print *,
'ALL REPORTS IN THIS MESSAGE ',
807 $
'DECODED, GO ON TO NEXT MESSAGE'
816 4567
FORMAT(/
'===> BUFR MESSAGE NO. 1 IS A DUMMY MESSAGE CONTAINING ',
817 $
'ONLY CENTER DATE (',i5,4i3,
') - NO DATA - GO ON TO NEXT ',
819 ELSE IF(irec.EQ.2)
THEN
821 4568
FORMAT(/
'===> BUFR MESSAGE NO. 2 IS A DUMMY MESSAGE CONTAINING ',
822 $
'ONLY DUMP DATE (',i5,4i3,
') - NO DATA - GO ON TO NEXT ',
825 print 4569, irec,mdate
826 4569
FORMAT(/
'===> BUFR MESSAGE NO.',i3,
' (DATE:',i5,3i3,
' 0) ',
827 $
'CONTAINS ZERO REPORTS FOR SOME UNEXPLAINED REASON - GO ON TO ',
835 IF(iprint.GT.1) print *,
'READY TO PROCESS NEW DECODED REPORT'
840 IF(iprint.GE.1) print *,
'WORKING WITH SUBSET NUMBER ',index
869 SUBROUTINE unpk7702(RDATA,ITP)
870 REAL RDATA(*),RDATX(1200)
871 INTEGER IDATA(1200),IRTYP(3)
876 equivalence(rdatx,idata),(cob,iob)
877 DATA xmsg/99999./,imsg/99999/,irtyp/71,61,72/
888 idata(9) = irtyp(itp)
900 rdatx(43:1200) = xmsg
906 idata(53:1200:11) = imsg
907 idata(55:1200:11) = imsg
908 idata(56:1200:11) = imsg
909 idata(60:1200:11) = imsg
910 ELSE IF(itp.EQ.2)
THEN
917 idata(49:392:7) = iob
924 idata(395:419:3) = iob
931 idata(420:599:3) = imsg
932 idata(422:599:3) = iob
933 ELSE IF(itp.EQ.3)
THEN
940 idata(46:1200:4) = iob
942 rdata(1:1200) = rdatx(1:1200)
987 SUBROUTINE unpk7703(LUNIT,RDATA,IRET)
990 CHARACTER*35 HDR1,HDR2
993 REAL HDR(16),RDATA(*),RDATX(1200)
994 COMMON /pk77bb/kdate(8),ldate(8),iprint
998 equivalence(rdatx,idata),(cob,iob)
999 DATA xmsg/99999./,imsg/99999/
1000 DATA hdr1/
'CLAT CLON TSIG SELV NPSM TPSE WMOB '/
1001 DATA hdr2/
'WMOS YEAR MNTH DAYS HOUR MINU TPMI '/
1002 rdatx(1:1200) = rdata(1:1200)
1004 CALL ufbint(lunit,hdr_8,16,1,nlev,hdr1//hdr2);hdr=hdr_8
1010 217
FORMAT(/
' ##W3UNPK77: THE NUMBER OF DECODED "LEVELS" (=',i5,
') ',
1011 $
'IS NOT WHAT IS EXPECTED (1) - IRET = 6'/)
1020 IF(iprint.GT.1) print 199, hdr(1),m
1021 199
FORMAT(5x,
'HDR HERE IS: ',f17.4,
'; INDEX IS: ',i3)
1022 IF(hdr(1).LT.xmsg)
THEN
1023 rdatx(1) = nint(hdr(1) * 100.)
1025 IF(iprint.GT.1) print 198, nnnnn,rdatx(nnnnn)
1026 198
FORMAT(5x,
'DATA(',i5,
') STORED AS: ',f10.2)
1030 102
FORMAT(
' *** W3UNPK77 ERROR: LAT MISSING FOR WIND PROFILER ',
1038 IF(iprint.GT.1) print 199, hdr(2),m
1039 IF(hdr(2).LT.xmsg)
THEN
1040 rdatx(2) = nint(mod((36000.-(hdr(2)*100.)),36000.))
1042 IF(iprint.GT.1) print 198, nnnnn,rdatx(nnnnn)
1046 104
FORMAT(
' *** W3UNPK77 ERROR: LON MISSING FOR WIND PROFILER ',
1054 IF(iprint.GT.1) print 199, hdr(3),m
1055 IF(hdr(3).LT.xmsg) idata(3) = nint(hdr(3))
1057 IF(iprint.GT.1) print 197, nnnnn,idata(nnnnn)
1058 197
FORMAT(5x,
'IDATA(',i5,
') STORED AS: ',i10)
1064 IF(iprint.GT.1) print 199, hdr(4),m
1065 IF(hdr(4).LT.xmsg) rdatx(7) = nint(hdr(4))
1067 IF(iprint.GT.1) print 198, nnnnn,rdatx(nnnnn)
1077 idata(8) = (3 * 10) + iedtn
1078 IF(iprint.GT.1) print 199, hdr(5),m
1079 IF(hdr(5).LT.xmsg) idata(8) = (nint(hdr(5)) * 10) + iedtn
1081 IF(iprint.GT.1) print 197, nnnnn,idata(nnnnn)
1089 IF(iprint.GT.1) print 199, hdr(6),m
1090 IF(iprint.GT.1) print 199, hdr(14),m
1091 IF(hdr(6).LT.xmsg)
THEN
1092 idata(10) = nint(hdr(6)/60.)
1093 ELSE IF(hdr(14).LT.xmsg)
THEN
1094 idata(10) = nint(hdr(14))
1097 IF(iprint.GT.1) print 197, nnnnn,idata(nnnnn)
1108 IF(iprint.GT.1) print 199, hdr(7),m
1109 IF(hdr(7).LT.xmsg)
WRITE(stnid(1:2),
'(I2.2)') nint(hdr(7))
1114 IF(iprint.GT.1) print 199, hdr(8),m
1115 IF(hdr(8).LT.xmsg)
WRITE(stnid(3:5),
'(I3.3)') nint(hdr(8))
1116 cob(1:4) = stnid(1:4)
1119 IF(iprint.GT.1) print 196, nnnnn,cob(1:4)
1120 196
FORMAT(5x,
'IDATA(',i5,
') STORED IN CHARACTER AS: "',a4,
'"')
1121 cob(1:4) = stnid(5:6)//
' '
1124 IF(iprint.GT.1) print 196, nnnnn,cob(1:4)
1131 IF(iprint.GT.1) print 199, hdr(9),m
1133 IF(hdr(9).LT.xmsg) iyear = nint(hdr(9))
1135 IF(iprint.GT.1) print 199, hdr(10),m
1136 IF(hdr(10).LT.xmsg.AND.iyear.LT.imsg)
THEN
1138 iyear = mod(iyear,100)
1140 iyear = nint(hdr(10)) + (iyear * 100)
1143 WRITE(cob,
'(I4.4,4X)') iyear
1147 IF(iprint.GT.1) print 9196, nnnnn,cob(1:6)
1148 9196
FORMAT(5x,
'IDATA(',i5,
') STORED IN CHARACTER AS: "',a6,
'"')
1157 IF(iprint.GT.1) print 199, hdr(11),m
1159 IF(hdr(11).LT.xmsg) iday = nint(hdr(11))
1161 IF(iprint.GT.1) print 199, hdr(12),m
1162 IF(hdr(12).LT.xmsg.AND.iday.LT.imsg)
THEN
1163 ihrt = nint(hdr(12))
1165 IF(iprint.GT.1) print 199, hdr(13),m
1166 IF(hdr(13).GE.xmsg)
GO TO 30
1168 rdatx(4) = nint((ihrt * 100.) + (rmnt * 100.)/60.)
1170 IF(iprint.GT.1) print 198, nnnnn,rdatx(nnnnn)
1171 ihrt = ihrt + (iday * 100)
1172 WRITE(cob(1:4),
'(I4.4)') ihrt
1175 IF(iprint.GT.1) print 196, nnnnn,cob(1:4)
1179 rdata(1:1200) = rdatx(1:1200)
1230 SUBROUTINE unpk7704(LUNIT,RDATA)
1234 REAL SFC(8),RDATA(*),RDATX(1200)
1235 COMMON /pk77bb/kdate(8),ldate(8),iprint
1239 equivalence(rdatx,idata)
1241 DATA srfc/
'PMSL WDIR1 WSPD1 TMDB REHU REQV '/
1242 rdatx(1:1200) = rdata(1:1200)
1244 CALL ufbint(lunit,sfc_8,8,1,nlev,srfc);sfc=sfc_8
1249 217
FORMAT(/
' ##W3UNPK77: THE NUMBER OF DECODED "LEVELS" (=',i5,
') ',
1250 $
'IS NOT WHAT IS EXPECTED (1) - NO SFC DATA PROCESSED'/)
1258 IF(iprint.GT.1) print 199, sfc(1),m
1259 199
FORMAT(5x,
'SFC HERE IS: ',f17.4,
'; INDEX IS: ',i3)
1260 IF((sfc(1)*0.1).LT.xmsg) rdatx(43) = nint(sfc(1) * 0.1)
1262 IF(iprint.GT.1) print 198, nnnnn,rdatx(43)
1263 198
FORMAT(5x,
'RDATA(',i5,
') STORED AS: ',f10.2)
1268 IF(iprint.GT.1) print 199, sfc(2),m
1269 IF(sfc(2).LT.xmsg) rdatx(43+2) = nint(sfc(2))
1271 IF(iprint.GT.1) print 198, nnnnn,rdatx(43+2)
1276 IF(iprint.GT.1) print 199, sfc(3),m
1277 IF(sfc(3).LT.xmsg) rdatx(43+3) = nint(sfc(3) * 10.)
1279 IF(iprint.GT.1) print 198, nnnnn,rdatx(43+3)
1284 IF(iprint.GT.1) print 199, sfc(4),m
1285 IF(sfc(4).LT.xmsg) rdatx(43+4) = nint(sfc(4) * 10.)
1287 IF(iprint.GT.1) print 198, nnnnn,rdatx(43+4)
1292 IF(iprint.GT.1) print 199, sfc(5),m
1293 IF(sfc(5).LT.xmsg) rdatx(43+5) = nint(sfc(5))
1295 IF(iprint.GT.1) print 198, nnnnn,rdatx(43+5)
1300 IF(iprint.GT.1) print 199, sfc(6),m
1301 IF(sfc(6).LT.xmsg) rdatx(43+6) = nint(sfc(6) * 1.e7)
1303 IF(iprint.GT.1) print 198, nnnnn,rdatx(43+6)
1310 IF(iprint.GT.1) print *,
'IDATA(35)=',idata(35),
'; IDATA(36)=',
1312 rdata(1:1200) = rdatx(1:1200)
1361 SUBROUTINE unpk7705(LUNIT,RDATA)
1362 CHARACTER*31 UAIR1,UAIR2
1365 REAL(8) UAIR_8(16,255)
1366 REAL UAIR(16,255),RDATA(*),RDATX(1200)
1367 COMMON /pk77bb/kdate(8),ldate(8),iprint
1371 equivalence(rdatx,idata)
1373 DATA uair1/
'HEIT WDIR WSPD NPQC WCMP ACAVH '/
1374 DATA uair2/
'ACAVV SPP0 SDHS SDVS NPHL '/
1375 DATA uair3/
'HAST ACAV1 ACAV2'/
1376 rdatx(1:1200) = rdata(1:1200)
1381 IF(iprint.GT.1) print 1078, ilc,ilvl
1382 1078
FORMAT(
' ATTEMPTING 1ST (SFC) LVL WITH ILC =',i5,
'; NO. LEVELS ',
1383 $
'PROCESSED TO NOW =',i5)
1384 rdatx(50+ilc) = rdatx(7)
1385 IF(iprint.GT.1) print 198, 50+ilc,rdatx(50+ilc)
1386 198
FORMAT(5x,
'RDATA(',i5,
') STORED AS: ',f10.2)
1387 IF(rdatx(50+ilc).LT.xmsg) nsfc = 1
1388 IF(idata(35).GE.1)
THEN
1389 rdatx(50+ilc+1) = rdatx(idata(36)+2)
1390 rdatx(50+ilc+2) = rdatx(idata(36)+3)
1392 IF(iprint.GT.1) print 198, 50+ilc+1,rdatx(50+ilc+1)
1393 IF(rdatx(50+ilc+1).LT.xmsg) nsfc = 1
1394 IF(iprint.GT.1) print 198, 50+ilc+2,rdatx(50+ilc+2)
1395 IF(rdatx(50+ilc+2).LT.xmsg) nsfc = 1
1398 IF(iprint.GT.1) print *,
'HAVE COMPLETED LEVEL ',ilvl,
' WITH ',
1399 $
'NSFC=',nsfc,
'; GOING INTO NEXT LEVEL WITH ILC=',ilc
1401 CALL ufbint(lunit,uair_8,16,255,nlev,uair1//uair2//uair3)
1409 217
FORMAT(/
' ##W3UNPK77: NO UPPER-AIR DATA PROCESSED FOR THIS',
1410 $
' REPORT -- NLEV = 0 AND NSFC = 0'/)
1415 218
FORMAT(/
' ##W3UNPK77: NO UPPER-AIR DATA ABOVE FIRST (SURFACE) ',
1416 $
'LEVEL PROCESSED FOR THIS REPORT -- NLEV = 0 AND NSFC > 0'/)
1421 IF(iprint.GT.1) print 1068, nlev
1422 1068
FORMAT(
' THIS REPORT CONTAINS ',i3,
' LEVELS OF DATA (NOT ',
1423 $
'INCLUDING BOTTOM -SURFACE- LEVEL)')
1425 IF(iprint.GT.1) print 1079, ilc,ilvl
1426 1079
FORMAT(
' ATTEMPTING NEW LEVEL WITH ILC =',i5,
'; NO. LEVELS ',
1427 $
'PROCESSED TO NOW =',i5)
1438 IF(uair(1,i).LT.xmsg)
THEN
1440 IF(iprint.GT.1) print 199, uair(1,i),m
1441 199
FORMAT(5x,
'UAIR HERE IS: ',f17.4,
'; INDEX IS: ',i3)
1442 rdatx(50+ilc) = nint(uair(1,i))
1445 IF(iprint.GT.1) print 199, uair(12,i),m
1446 IF(uair(12,i).LT.xmsg) rdatx(50+ilc) = nint(uair(12,i))
1448 IF(iprint.GT.1) print 198, 50+ilc,rdatx(50+ilc)
1454 IF(iprint.GT.1) print 199, uair(2,i),m
1455 IF(uair(2,i).LT.xmsg) rdatx(50+ilc+1) = nint(uair(2,i))
1456 IF(iprint.GT.1) print 198, 50+ilc+1,rdatx(50+ilc+1)
1461 IF(iprint.GT.1) print 199, uair(3,i),m
1462 IF(uair(3,i).LT.xmsg) rdatx(50+ilc+2) =nint(uair(3,i) * 10.)
1463 IF(iprint.GT.1) print 198, 50+ilc+2,rdatx(50+ilc+2)
1468 IF(iprint.GT.1) print 199, uair(4,i),m
1469 IF(uair(4,i).LT.xmsg) idata(50+ilc+3) = nint(uair(4,i))
1470 IF(iprint.GT.1) print 197, 50+ilc+3,idata(50+ilc+3)
1471 197
FORMAT(5x,
'IDATA(',i5,
') STORED AS: ',i10)
1476 IF(iprint.GT.1) print 199, uair(5,i),m
1477 IF(uair(5,i).LT.xmsg) rdatx(50+ilc+4) = nint(uair(5,i) * 100.)
1478 IF(iprint.GT.1) print 198, 50+ilc+4,rdatx(50+ilc+4)
1491 IF(iprint.GT.1) print 199, uair(6,i),m
1492 IF(iprint.GT.1) print 199, uair(13,i),m
1493 IF(uair(6,i).LT.xmsg)
THEN
1495 idata(50+ilc+5) = nint(uair(6,i))
1498 IF(uair(13,i).LT.xmsg) idata(50+ilc+5) = nint(uair(13,i))
1500 IF(iprint.GT.1) print 197, 50+ilc+5,idata(50+ilc+5)
1513 IF(iprint.GT.1) print 199, uair(7,i),m
1514 IF(iprint.GT.1) print 199, uair(14,i),m
1515 IF(uair(7,i).LT.xmsg)
THEN
1517 idata(50+ilc+6) = nint(uair(7,i))
1520 IF(uair(14,i).LT.xmsg) idata(50+ilc+6) = nint(uair(14,i))
1522 IF(iprint.GT.1) print 197, 50+ilc+6,idata(50+ilc+6)
1529 IF(iprint.GT.1) print 199, uair(8,i),m
1530 IF(uair(8,i).LT.xmsg) rdatx(50+ilc+7) = nint(uair(8,i))
1531 IF(iprint.GT.1) print 198, 50+ilc+7,rdatx(50+ilc+7)
1536 IF(iprint.GT.1) print 199, uair(9,i),m
1537 IF(uair(9,i).LT.xmsg) rdatx(50+ilc+8)=nint(uair(9,i) * 10.)
1538 IF(iprint.GT.1) print 198, 50+ilc+8,rdatx(50+ilc+8)
1543 IF(iprint.GT.1) print 199, uair(10,i),m
1544 IF(uair(10,i).LT.xmsg) rdatx(50+ilc+9) =nint(uair(10,i) * 10.)
1545 IF(iprint.GT.1) print 198, 50+ilc+9,rdatx(50+ilc+9)
1551 IF(iprint.GT.1) print 199, uair(11,i),m
1552 IF(uair(11,i).LT.xmsg) idata(50+ilc+10) = nint(uair(11,i))
1553 IF(iprint.GT.1) print 197, 50+ilc+10,idata(50+ilc+10)
1556 IF(iprint.GT.1) print *,
'HAVE COMPLETED LEVEL ',ilvl,
1557 $
'; GOING INTO NEXT LEVEL WITH ILC=',ilc
1566 IF(iprint.GT.1) print *,
'NSFC=',nsfc,
'; IDATA(37)=',idata(37),
1567 $
'; IDATA(38)=',idata(38)
1568 rdata(1:1200) = rdatx(1:1200)
1607 SUBROUTINE unpk7706(LUNIT,RDATA,IRET)
1608 CHARACTER*8 STNID,COB
1612 REAL HDR(9),RDATA(*),RDATX(1200)
1613 COMMON /pk77bb/kdate(8),ldate(8),iprint
1617 equivalence(rdatx,idata),(stnid,hdr_8(4)),(cob,iob)
1618 DATA xmsg/99999./,imsg/99999/
1619 DATA hdr1/
'CLAT CLON SELV RPID YEAR MNTH DAYS HOUR MINU '/
1620 rdatx(1:1200) = rdata(1:1200)
1622 CALL ufbint(lunit,hdr_8,9,1,nlev,hdr1);hdr=hdr_8
1628 217
FORMAT(/
' ##W3UNPK77: THE NUMBER OF DECODED "LEVELS" (=',i5,
') ',
1629 $
'IS NOT WHAT IS EXPECTED (1) - IRET = 6'/)
1638 IF(iprint.GT.1) print 199, hdr(1),m
1639 199
FORMAT(5x,
'HDR HERE IS: ',f17.4,
'; INDEX IS: ',i3)
1640 IF(hdr(1).LT.xmsg)
THEN
1641 rdatx(1) = nint(hdr(1) * 100.)
1643 IF(iprint.GT.1) print 198, nnnnn,rdatx(nnnnn)
1644 198
FORMAT(5x,
'RDATA(',i5,
') STORED AS: ',f10.2)
1648 102
FORMAT(
' *** W3UNPK77 ERROR: LAT MISSING FOR VAD WIND REPORT'/)
1655 IF(iprint.GT.1) print 199, hdr(2),m
1656 IF(hdr(2).LT.xmsg)
THEN
1657 rdatx(2) = nint(mod((36000.-(hdr(2)*100.)),36000.))
1659 IF(iprint.GT.1) print 198, nnnnn,rdatx(nnnnn)
1663 104
FORMAT(
' *** W3UNPK77 ERROR: LON MISSING FOR VAD WIND REPORT'/)
1671 IF(iprint.GT.1) print 199, hdr(3),m
1672 IF(hdr(3).LT.xmsg) rdatx(7) = nint(hdr(3))
1674 IF(iprint.GT.1) print 198, nnnnn,rdatx(nnnnn)
1680 IF(iprint.GT.1) print 299, stnid,m
1681 299
FORMAT(5x,
'HDR HERE IS: ',9x,a8,
'; INDEX IS: ',i3)
1682 cob(1:4) =
'99'//stnid(2:3)
1685 IF(iprint.GT.1) print 196, nnnnn,cob(1:4)
1686 196
FORMAT(5x,
'IDATA(',i5,
') STORED IN CHARACTER AS: "',a4,
'"')
1687 cob(1:4) = stnid(4:4)//
' '
1690 IF(iprint.GT.1) print 196, nnnnn,cob(1:4)
1697 IF(iprint.GT.1) print 199, hdr(5),m
1699 IF(hdr(5).LT.xmsg) iyear = nint(hdr(5))
1701 IF(iprint.GT.1) print 199, hdr(6),m
1702 IF(hdr(6).LT.xmsg.AND.iyear.LT.imsg)
THEN
1704 iyear = mod(iyear,100)
1706 iyear = nint(hdr(6)) + (iyear * 100)
1709 WRITE(cob,
'(I4.4,4X)') iyear
1713 IF(iprint.GT.1) print 9196, nnnnn,cob(1:6)
1714 9196
FORMAT(5x,
'IDATA(',i5,
') STORED IN CHARACTER AS: "',a6,
'"')
1723 IF(iprint.GT.1) print 199, hdr(7),m
1725 IF(hdr(7).LT.xmsg) iday = nint(hdr(7))
1727 IF(iprint.GT.1) print 199, hdr(8),m
1728 IF(hdr(8).LT.xmsg.AND.iday.LT.imsg)
THEN
1731 IF(iprint.GT.1) print 199, hdr(9),m
1732 IF(hdr(9).GE.xmsg)
GO TO 30
1734 rdatx(4) = nint((ihrt * 100.) + (rmnt * 100.)/60.)
1736 IF(iprint.GT.1) print 198, nnnnn,rdatx(nnnnn)
1737 ihrt = ihrt + (iday * 100)
1738 WRITE(cob(1:4),
'(I4.4)') ihrt
1741 IF(iprint.GT.1) print 196, nnnnn,cob(1:4)
1745 rdata(1:1200) = rdatx(1:1200)
1789 SUBROUTINE unpk7707(LUNIT,RDATA,IRET)
1790 CHARACTER*1 CRMS(0:12)
1794 REAL(8) UAIR_8(5,255)
1795 REAL UAIR(5,255),RDATA(*),RDATX(1200)
1796 COMMON /pk77bb/kdate(8),ldate(8),iprint
1800 equivalence(rdatx,idata),(cob,iob)
1802 DATA uair1/
'HEIT WDIR WSPD RMSW QMWN '/
1803 DATA crms/
' ',
'A',
' ',
'B',
' ',
'C',
' ',
'D',
' ',
'E',
' ',
'F',
' '/
1804 rdatx(1:1200) = rdata(1:1200)
1809 IF(iprint.GT.1) print 1078, ilc,ilvl
1810 1078
FORMAT(
' ATTEMPTING 1ST (SFC) LVL WITH ILC =',i5,
'; NO. LEVELS ',
1811 $
'PROCESSED TO NOW =',i5)
1812 rdatx(43+ilc) = rdatx(7)
1813 IF(iprint.GT.1) print 198, 43+ilc,rdatx(43+ilc)
1814 198
FORMAT(5x,
'RDATA(',i5,
') STORED AS: ',f10.2)
1815 IF(rdatx(43+ilc).LT.xmsg) nsfc = 1
1823 idata(43+ilc+3) = iob
1826 IF(iprint.GT.1) print *,
'HAVE COMPLETED LEVEL ',ilvl,
' WITH ',
1827 $
'NSFC=',nsfc,
'; GOING INTO NEXT LEVEL WITH ILC=',ilc
1829 CALL ufbint(lunit,uair_8,5,255,nlev,uair1);uair=uair_8
1836 217
FORMAT(/
' ##W3UNPK77: NO UPPER-AIR DATA PROCESSED FOR THIS',
1837 $
' REPORT -- NLEV = 0 AND NSFC = 0'/)
1842 218
FORMAT(/
' ##W3UNPK77: NO UPPER-AIR DATA ABOVE FIRST (SURFACE) ',
1843 $
'LEVEL PROCESSED FOR THIS REPORT -- NLEV = 0 AND NSFC > 0'/)
1848 IF(iprint.GT.1) print 1068, nlev
1849 1068
FORMAT(
' THIS REPORT CONTAINS ',i3,
' LEVELS OF DATA (NOT ',
1850 $
'INCLUDING BOTTOM -SURFACE- LEVEL)')
1852 IF(iprint.GT.1) print 1079, ilc,ilvl
1853 1079
FORMAT(
' ATTEMPTING NEW LEVEL WITH ILC =',i5,
'; NO. LEVELS ',
1854 $
'PROCESSED TO NOW =',i5)
1859 IF(iprint.GT.1) print 199, uair(1,i),m
1860 199
FORMAT(5x,
'UAIR HERE IS: ',f17.4,
'; INDEX IS: ',i3)
1861 IF(uair(1,i).LT.xmsg)
THEN
1862 rdatx(43+ilc) = nint(uair(1,i))
1872 IF(iprint.GT.1) print *,
'HEIGHT MISSING ON INPUT ',
1873 $
' LEVEL ',i,
', ALL OTHER DATA SET TO MSG ON THIS LEVEL'
1876 IF(iprint.GT.1) print 198, 43+ilc,rdatx(43+ilc)
1881 IF(iprint.GT.1) print 199, uair(2,i),m
1882 IF(uair(2,i).LT.xmsg) rdatx(43+ilc+1) = nint(uair(2,i))
1883 IF(iprint.GT.1) print 198, 43+ilc+1,rdatx(43+ilc+1)
1890 IF(iprint.GT.1) print 199, uair(3,i),m
1891 IF(uair(3,i).LT.xmsg) rdatx(43+ilc+2) =nint(uair(3,i) * 10.)
1892 IF(iprint.GT.1) print 198, 43+ilc+2,rdatx(43+ilc+2)
1901 IF(iprint.GT.1) print 199, uair(4,i),m
1902 IF(uair(4,i).LT.xmsg)
THEN
1907 krms = int(1.9425 * uair(4,i))
1910 cob(4:4) = crms(krms)
1914 idata(43+ilc+3) = iob
1916 IF(iprint.GT.1) print 196, 43+ilc+3,cob(1:4)
1917 196
FORMAT(5x,
'IDATA(',i5,
') STORED IN CHARACTER AS: "',a4,
'"')
1922 IF(iprint.GT.1) print 199, uair(5,i),m
1925 IF(iprint.GT.1) print *,
'HAVE COMPLETED LEVEL ',ilvl,
1926 $
'; GOING INTO NEXT LEVEL WITH ILC=',ilc
1936 IF(idata(19).EQ.0)
THEN
1942 IF(iprint.GT.1) print *,
'NSFC=',nsfc,
'; IDATA(37)=',idata(37),
1943 $
'; IDATA(38)=',idata(38)
1944 rdata(1:1200) = rdatx(1:1200)
1988 SUBROUTINE unpk7708(LUNIT,RDATA,KOUNT,IRET)
1989 CHARACTER*1 C6TAG(3,0:3)
1990 CHARACTER*8 STNID,COB
1991 CHARACTER*35 HDR1,HDR2
1994 REAL HDR(12),RDATA(*),RDATX(1200)
1995 COMMON /pk77bb/kdate(8),ldate(8),iprint
1996 COMMON /pk77ff/ifov(3),kntsat(250:260)
2000 equivalence(rdatx,idata),(cob,iob)
2001 DATA xmsg/99999./,imsg/99999/
2002 DATA hdr1/
'CLAT CLON ACAV GSDP QMRK SAID YEAR '/
2003 DATA hdr2/
'MNTH DAYS HOUR MINU SECO '/
2018 DATA c6tag/
'I',
'J',
'?',
'L',
'M',
'?',
'O',
'P',
'?',
'Q',
'R',
'?' /
2020 rdatx(1:1200) = rdata(1:1200)
2022 CALL ufbint(lunit,hdr_8,12,1,nlev,hdr1//hdr2);hdr=hdr_8
2028 217
FORMAT(/
' ##W3UNPK77: THE NUMBER OF DECODED "LEVELS" (=',i5,
') ',
2029 $
'IS NOT WHAT IS EXPECTED (1) - IRET = 6'/)
2038 IF(iprint.GT.1) print 199, hdr(1),m
2039 199
FORMAT(5x,
'HDR HERE IS: ',f17.4,
'; INDEX IS: ',i3)
2040 IF(hdr(1).LT.xmsg)
THEN
2041 rdatx(1) = nint(hdr(1) * 100.)
2043 IF(iprint.GT.1) print 198, nnnnn,rdatx(nnnnn)
2044 198
FORMAT(5x,
'RDATA(',i5,
') STORED AS: ',f10.2)
2048 102
FORMAT(
' *** W3UNPK77 ERROR: LAT MISSING FOR GOES SOUNDING'/)
2055 IF(iprint.GT.1) print 199, hdr(2),m
2056 IF(hdr(2).LT.xmsg)
THEN
2057 rdatx(2) = nint(mod((36000.-(hdr(2)*100.)),36000.))
2059 IF(iprint.GT.1) print 198, nnnnn,rdatx(nnnnn)
2063 104
FORMAT(
' *** W3UNPK77 ERROR: LON MISSING FOR GOES SOUNDING'/)
2070 IF(iprint.GT.1) print 199, hdr(3),m
2071 IF(hdr(3).LT.xmsg) idata(3) = nint(hdr(3))
2073 IF(iprint.GT.1) print 197, nnnnn,idata(nnnnn)
2074 197
FORMAT(5x,
'IDATA(',i5,
') STORED AS: ',i10)
2084 IF(iprint.GT.1) print 199, hdr(4),m
2085 IF(hdr(4).LT.xmsg) idata(8) = nint(hdr(4))
2087 IF(idata(8).EQ.21)
THEN
2089 ELSE IF(idata(8).EQ.23)
THEN
2093 IF(iprint.GT.1) print 197, nnnnn,idata(nnnnn)
2098 IF(iprint.GT.1) print 199, hdr(5),m
2099 IF(hdr(5).LT.xmsg) idata(10) = nint(hdr(5))
2101 IF(iprint.GT.1) print 197, nnnnn,idata(nnnnn)
2107 WRITE(stnid(1:5),
'(I5.5)') min(kount,99999)
2113 IF(iprint.GT.1) print 199, hdr(6),m
2114 IF(hdr(6).LT.xmsg)
THEN
2115 idsat = mod(nint(hdr(6)),4)
2116 IF(nint(hdr(6)).GT.249.AND.nint(hdr(6)).LT.260)
THEN
2117 kntsat(nint(hdr(6))) = kntsat(nint(hdr(6))) + 1
2119 kntsat(260) = kntsat(260) + 1
2122 IF(iprint.GT.1) print 2197, idsat,irtyp
2123 2197
FORMAT(5x,
'IDSAT IS: ',i10,
', IRTYP IS: ',i10)
2124 stnid(6:6) = c6tag(irtyp,idsat)
2125 cob(1:4) = stnid(1:4)
2128 IF(iprint.GT.1) print 196, nnnnn,cob(1:4)
2129 196
FORMAT(5x,
'IDATA(',i5,
') STORED IN CHARACTER AS: "',a4,
'"')
2130 cob(1:4) = stnid(5:6)//
' '
2133 IF(iprint.GT.1) print 196, nnnnn,cob(1:4)
2140 IF(iprint.GT.1) print 199, hdr(7),m
2142 IF(hdr(7).LT.xmsg) iyear = nint(hdr(7))
2144 IF(iprint.GT.1) print 199, hdr(8),m
2145 IF(hdr(8).LT.xmsg.AND.iyear.LT.imsg)
THEN
2147 iyear = mod(iyear,100)
2149 iyear = nint(hdr(8)) + (iyear * 100)
2152 WRITE(cob,
'(I4.4,4X)') iyear
2156 IF(iprint.GT.1) print 9196, nnnnn,cob(1:6)
2157 9196
FORMAT(5x,
'IDATA(',i5,
') STORED IN CHARACTER AS: "',a6,
'"')
2166 IF(iprint.GT.1) print 199, hdr(9),m
2168 IF(iprint.GT.1) print 199, hdr(10),m
2169 IF(hdr(10).LT.xmsg.AND.hdr(9).LT.imsg)
THEN
2171 IF(iprint.GT.1) print 199, hdr(11),m
2172 IF(hdr(11).GE.xmsg)
GO TO 30
2174 IF(iprint.GT.1) print 199, hdr(12),m
2175 IF(hdr(12).GE.xmsg)
GO TO 30
2176 rdatx(4) = nint(((hdr(10) + ((hdr(11) * 60.) + hdr(12))/3600.)
2177 $ * 100.) + 0.0000000001)
2179 IF(iprint.GT.1) print 198, nnnnn,rdatx(nnnnn)
2180 idayhr = nint(hdr(10)) + (nint(hdr(9)) * 100)
2181 WRITE(cob(1:4),
'(I4.4)') idayhr
2184 IF(iprint.GT.1) print 196, nnnnn,cob(1:4)
2188 rdata(1:1200) = rdatx(1:1200)
2233 SUBROUTINE unpk7709(LUNIT,RDATA,IRET)
2236 CHARACTER*37 CAT8A,CAT8B
2237 CHARACTER*48 UAIR1,RAD1
2238 INTEGER IDATA(1200),ICDFG(12)
2239 REAL(8) UAIR_8(4,255),CAT8_8(12),RTCSF_8,RAD_8(2,255)
2240 REAL UAIR(4,255),CAT8(12),RDATA(*),RDATX(1200),SC8(12),RAD(2,255)
2241 COMMON /pk77bb/kdate(8),ldate(8),iprint
2242 COMMON /pk77ff/ifov(3),kntsat(250:260)
2246 equivalence(rdatx,idata),(cob,iob)
2247 DATA xmsg/99999./,ymsg/99999.8/
2248 DATA uair1/
'PRLC HGHT TMDB TMDP '/
2249 DATA rad1 /
'CHNM TMBR '/
2250 DATA cat8a/
'GLFTI PH2O PH2O19 PH2O97 PH2O73 TMSK '/
2251 DATA cat8b/
'GCDTT CDTP CLAM SIDU SOEL ELEV '/
2252 DATA icdfg/ 50 , 51 , 52 , 53 , 54 , 55 , 56 ,57 ,58,59, 60 , 61 /
2253 DATA sc8/100.,100.,100.,100.,100.,100.,100.,10.,1.,1.,100.,100./
2254 rdatx(1:1200) = rdata(1:1200)
2261 IF(idata(3).LT.3)
THEN
2263 ifov(1) = ifov(1) + 1
2264 ELSE IF(idata(3).LT.10.OR.idata(10).EQ.1)
THEN
2266 IF(idata(3).LT.10) ifov(2) = ifov(2) + 1
2268 IF(idata(3).GT.9) ifov(3) = ifov(3) + 1
2277 CALL ufbint(lunit,uair_8,4,255,nlev,uair1);uair=uair_8
2282 217
FORMAT(/
' ##W3UNPK77: NO UPPER-AIR (SOUNDING) DATA PROCESSED ',
2283 $
'FOR THIS REPORT -- NLEV = 0'/)
2285 ELSE IF(nlev.GT.50)
THEN
2289 218
FORMAT(/
' ##W3UNPK77: NO UPPER-AIR (SOUNDING) DATA PROCESSED ',
2290 $
'FOR THIS REPORT -- NLEV > 50'/)
2294 IF(iprint.GT.1) print 1068, nlev
2295 1068
FORMAT(
' THIS REPORT CONTAINS',i4,
' INPUT LEVELS OF SOUNDING ',
2298 IF(iprint.GT.1) print 1079, i,ilc,ilvl
2299 1079
FORMAT(
' ATTEMPTING NEW CAT. 12 INPUT LEVEL NUMBER',i4,
' WITH ',
2300 $
'ILC =',i5,
'; NO. LEVELS PROCESSED TO NOW =',i5)
2305 IF(iprint.GT.1) print 199, uair(1,i),m
2306 199
FORMAT(5x,
'UAIR HERE IS: ',f17.4,
'; INDEX IS: ',i3)
2308 psfc = uair(1,i) * 0.1
2309 ELSE IF(uair(1,i)*0.1.GE.ymsg)
THEN
2312 IF(iprint.GT.1) print *,
'PRESSURE MISSING ON INPUT',
2313 $
' LEVEL ',i,
', SKIP THE PROCESSING OF THIS LEVEL'
2315 ELSE IF(uair(1,i)*0.1.GE.psfc)
THEN
2318 IF(iprint.GT.1) print *,
'PRESSURE ON INPUT LEVEL ',i,
2319 $
' IS BELOW GROUND, SKIP THE PROCESSING OF THIS LEVEL'
2325 IF(uair(1,i)*0.1.LT.xmsg) rdatx(43+ilc) = nint(uair(1,i)*0.1)
2327 IF(iprint.GT.1) print 198, 43+ilc,rdatx(43+ilc)
2328 198
FORMAT(5x,
'RDATA(',i5,
') STORED AS: ',f10.2)
2333 IF(iprint.GT.1) print 199, uair(2,i),m
2334 IF(uair(2,i).LT.xmsg) rdatx(43+ilc+1) = nint(uair(2,i))
2335 IF(iprint.GT.1) print 198, 43+ilc+1,rdatx(43+ilc+1)
2337 IF(iprint.GT.1) print *,
'THIS IS SURFACE LEVEL, SO ',
2338 $
'STORE HEIGHT ALSO AS ELEVATION IN HEADER'
2339 IF(uair(2,1).LT.xmsg) rdatx(7) = nint(uair(2,1))
2341 IF(iprint.GT.1) print 198, nnnnn,rdatx(nnnnn)
2347 IF(iprint.GT.1) print 199, uair(3,i),m
2348 itmp = nint(uair(3,i)*100.)
2349 IF(uair(3,i).LT.xmsg)
2350 $ rdatx(43+ilc+2) = nint((itmp - 27315) * 0.1)
2351 IF(iprint.GT.1) print 198, 43+ilc+2,rdatx(43+ilc+2)
2356 IF(iprint.GT.1) print 199, uair(4,i),m
2357 itmp = nint(uair(4,i)*100.)
2358 IF(uair(4,i).LT.xmsg)
2359 $ rdatx(43+ilc+3) = nint((itmp - 27315) * 0.1)
2360 IF(iprint.GT.1) print 198, 43+ilc+3,rdatx(43+ilc+3)
2364 cob = cqmflg//cqmflg//cqmflg//
' '
2365 idata(43+ilc+6) = iob
2366 IF(iprint.GT.1) print 196, 43+ilc+6,cob(1:4)
2367 196
FORMAT(5x,
'IDATA(',i5,
') STORED IN CHARACTER AS: "',a4,
'"')
2370 IF(i+1.LE.nlev.AND.iprint.GT.1) print *,
'HAVE COMPLETED ',
2371 $
'LEVEL ',ilvl,
'; GOING INTO NEXT LEVEL WITH ILC=',ilc
2380 IF(iprint.GT.1) print *, idata(39),
' CAT. 12 LEVELS PROCESSED'
2381 IF(idata(39).GT.0) idata(40) = 43
2406 CALL ufbint(lunit,cat8_8,12,1,nlev8,cat8a//cat8b);cat8=cat8_8
2412 318
FORMAT(/
' ##W3UNPK77: NO ADDITIONAL (CAT. 8) DATA PROCESSED FOR ',
2413 $
'THIS REPORT -- NLEV8 = 0'/)
2421 219
FORMAT(/
' ##W3UNPK77: THE NUMBER OF DECODED "LEVELS" (=',i5,
') ',
2422 $
'IS NOT WHAT IS EXPECTED (1) - IRET = 7'/)
2433 CALL ufbint(lunit,rtcsf_8,1,1,nlev0,
'TCSF');rtcsf=rtcsf_8
2436 IF(iprint.GT.1) print 299, rtcsf,m
2437 299
FORMAT(5x,
'RTCSF HERE IS: ',f17.4,
'; INDEX IS: ',i3)
2438 IF(rtcsf.LT.xmsg) itcsf = nint(rtcsf)
2439 IF(iprint.GT.1) print 1798, itcsf
2440 1798
FORMAT(5x,
'ITCSF IS: ',i10)
2445 IF(iprint.GT.1) print 6079, m,ilc,ilvl
2446 6079
FORMAT(
' ATTEMPTING MISCEL. INPUT',i5,
' WITH ILC =',i5,
'; NO. ',
2447 $
'OUTPUT CAT. 8 LVLS PROCESSED TO NOW =',i5)
2448 IF(iprint.GT.1) print 399, cat8(m),m
2449 399
FORMAT(5x,
'CAT8 HERE IS: ',f17.4,
'; INDEX IS: ',i3)
2450 IF(cat8(m).LT.xmsg)
THEN
2458 rdatx(393+ilc) = nint(cat8(m) * sc8(m))
2459 IF(iprint.GT.1) print 198, 393+ilc,rdatx(393+ilc)
2463 rdatx(393+ilc+1) = real(200+icdfg(m))
2464 IF(iprint.GT.1) print 198, 393+ilc+1,rdatx(393+ilc+1)
2473 IF(m.EQ.6.AND.itcsf.NE.0) cob(1:1) =
'F'
2474 idata(393+ilc+2) = iob
2475 IF(iprint.GT.1) print 196, 393+ilc+2,cob(1:4)
2477 IF(m.LT.12.AND.iprint.GT.1) print *,
'HAVE COMPLETED OUTPUT',
2478 $
' LVL',ilvl,
'; GOING INTO NEXT INPUT DATUM WITH ILC=',ilc
2480 IF(iprint.GT.1) print *,
'DATUM MISSING ON INPUT ',m,
2481 $
', GO ON TO NEXT INPUT DATUM (NO. LVLS PROCESSED SO ',
2482 $
'FAR=',ilvl,
'; ILC=',ilc,
')'
2490 IF(iprint.GT.1) print *, idata(27),
' CAT. 08 LEVELS PROCESSED'
2491 IF(idata(27).GT.0) idata(28) = 393
2500 CALL ufbint(lunit,rad_8,2,255,nlev13,rad1);rad=rad_8
2501 IF(nlev13.EQ.0)
THEN
2505 417
FORMAT(/
' ##W3UNPK77: NO RADIANCE DATA PROCESSED FOR THIS ',
2506 $
'REPORT -- NLEV13 = 0'/)
2508 ELSE IF(nlev13.GT.60)
THEN
2512 418
FORMAT(/
' ##W3UNPK77: NO RADIANCE DATA PROCESSED FOR THIS ',
2513 $
'REPORT -- NLEV13 > 60'/)
2517 IF(iprint.GT.1) print 2068, nlev13
2518 2068
FORMAT(
' THIS REPORT CONTAINS',i4,
' INPUT LEVELS (CHANNELS) OF ',
2521 IF(iprint.GT.1) print 2079, i,ilc,ilvl
2522 2079
FORMAT(
' ATTEMPTING NEW CAT. 13 INPUT "LEVEL" NUMBER',i4,
' WITH ',
2523 $
'ILC =',i5,
'; NO. LEVELS (CHANNELS) PROCESSED TO NOW =',i5)
2528 IF(iprint.GT.1) print 499, rad(1,i),m
2529 499
FORMAT(5x,
'RAD HERE IS: ',f17.4,
'; INDEX IS: ',i3)
2530 IF(rad(1,i).GE.ymsg)
THEN
2533 IF(iprint.GT.1) print *,
'CHANNEL NUMBER MISSING ON INPUT',
2534 $
' LEVEL ',i,
', SKIP THE PROCESSING OF THIS LEVEL'
2540 idata(429+ilc) = nint(rad(1,i))
2542 IF(iprint.GT.1) print 197, 429+ilc,idata(429+ilc)
2543 197
FORMAT(5x,
'IDATA(',i5,
') STORED AS: ',i10)
2548 IF(iprint.GT.1) print 499, rad(2,i),m
2549 IF(rad(2,i).LT.xmsg) rdatx(429+ilc+1) = nint(rad(2,i) * 100.)
2550 IF(iprint.GT.1) print 198, 429+ilc+1,rdatx(429+ilc+1)
2555 idata(429+ilc+2) = iob
2556 IF(iprint.GT.1) print 196, 429+ilc+2,cob(1:4)
2559 IF(i+1.LE.nlev13.AND.iprint.GT.1) print *,
'HAVE COMPLETED ',
2560 $
'LEVEL ',ilvl,
'; GOING INTO NEXT LEVEL WITH ILC=',ilc
2569 IF(iprint.GT.1) print *, idata(41),
' CAT. 13 LEVELS PROCESSED'
2570 IF(idata(41).GT.0) idata(42) = 429
2572 IF(idata(27)+idata(39)+idata(41).EQ.0) iret = 5
2574 IF(iprint.GT.1) print *,
'IDATA(39)=',idata(39),
'; IDATA(40)=',
2575 $ idata(40),
'; IDATA(27)=',idata(27),
'; IDATA(28)=',idata(28),
2576 $
'; IDATA(41)=',idata(41),
'; IDATA(42)=',idata(42)
2578 rdata(1:1200) = rdatx(1:1200)