84 CHARACTER * 8 KNAME(9)
85 CHARACTER * 8 KNAME1(3)
86 CHARACTER * 324 KTITLE
87 CHARACTER * 8 KWRITE(3)
94 CHARACTER * 6 QNAME(166)
96 CHARACTER * 4 SNAME(18)
97 CHARACTER * 20 VUNIT(2)
105 INTEGER C1,C2,E1,E2,S1,S2,Q,M,G
106 INTEGER YY,MM,DD,HH,F1,F2,JT,JN
110 DATA shfmsk( 1)/z
'20020100'/
111 DATA shfmsk( 2)/z
'28020400'/
112 DATA shfmsk( 3)/z
'30020400'/
113 DATA shfmsk( 4)/z
'38020400'/
114 DATA shfmsk( 5)/z
'08050100'/
115 DATA shfmsk( 6)/z
'00020100'/
116 DATA shfmsk( 7)/z
'08050200'/
117 DATA shfmsk( 8)/z
'00020200'/
118 DATA shfmsk( 9)/z
'3C010200'/
119 DATA shfmsk(10)/z
'28030100'/
120 DATA shfmsk(11)/z
'28030200'/
121 DATA shfmsk(12)/z
'34030100'/
122 DATA shfmsk(13)/z
'20020400'/
123 DATA shfmsk(14)/z
'30020400'/
124 DATA shfmsk(15)/z
'1C010100'/
125 DATA shfmsk(16)/z
'1C010200'/
126 DATA shfmsk(17)/z
'20020200'/
150 DATA sname( 1)/
' GPM'/
151 DATA sname( 2)/
' PA '/
152 DATA sname( 3)/
' M '/
153 DATA sname( 4)/
' M '/
154 DATA sname( 5)/
' MB '/
155 DATA sname( 6)/
' DEG'/
156 DATA sname( 7)/
' POT'/
157 DATA sname( 8)/
' MSL'/
158 DATA sname( 9)/
' SFC'/
159 DATA sname(10)/
' TRO'/
160 DATA sname(11)/
' BDY'/
161 DATA sname(12)/
' TRS'/
162 DATA sname(13)/
' STS'/
163 DATA sname(14)/
' QCP'/
164 DATA sname(15)/
' SIG'/
165 DATA sname(16)/
'MWSL'/
166 DATA sname(17)/
'PLYR'/
340 DATA qname( 1)/
' HGT '/
341 DATA qname( 2)/
' P ALT'/
342 DATA qname( 3)/
' DIST '/
343 DATA qname( 4)/
' PRES '/
344 DATA qname( 5)/
' TMP '/
345 DATA qname( 6)/
' DPT '/
346 DATA qname( 7)/
' DEPR '/
347 DATA qname( 8)/
' POT '/
348 DATA qname( 9)/
' T MAX'/
349 DATA qname(10)/
' T MIN'/
350 DATA qname(11)/
' V VEL'/
351 DATA qname(12)/
' NETVD'/
352 DATA qname(13)/
' DZDT '/
353 DATA qname(14)/
' OROW '/
354 DATA qname(15)/
' FRCVV'/
355 DATA qname(16)/
' U GRD'/
356 DATA qname(17)/
' V GRD'/
357 DATA qname(18)/
' WIND '/
358 DATA qname(19)/
' T WND'/
359 DATA qname(20)/
' VW SH'/
360 DATA qname(21)/
' U DIV'/
361 DATA qname(22)/
' V DIV'/
362 DATA qname(23)/
' WDIR '/
363 DATA qname(24)/
' WWND '/
364 DATA qname(25)/
' SWND '/
365 DATA qname(26)/
' RATS '/
366 DATA qname(27)/
' VECW '/
367 DATA qname(28)/
' SFAC '/
368 DATA qname(29)/
' ABS V'/
369 DATA qname(30)/
' REL V'/
370 DATA qname(31)/
' DIV '/
371 DATA qname(32)/
' STRM '/
372 DATA qname(33)/
' V POT'/
373 DATA qname(34)/
' R H '/
374 DATA qname(35)/
' P WAT'/
375 DATA qname(36)/
' A PCP'/
376 DATA qname(37)/
' P O P'/
377 DATA qname(38)/
' P O Z'/
378 DATA qname(39)/
' SNO D'/
379 DATA qname(40)/
' ACPCP'/
380 DATA qname(41)/
' SPF H'/
381 DATA qname(42)/
' L H2O'/
382 DATA qname(43)/
' LFT X'/
383 DATA qname(44)/
' TOTOS'/
384 DATA qname(45)/
' K X '/
385 DATA qname(46)/
' C INS'/
386 DATA qname(47)/
' L WAV'/
387 DATA qname(48)/
' S WAV'/
388 DATA qname(49)/
' DRAG '/
389 DATA qname(50)/
' LAND '/
390 DATA qname(51)/
' KFACT'/
391 DATA qname(52)/
' 10TSL'/
392 DATA qname(53)/
' 7TSL '/
393 DATA qname(54)/
' RCPOP'/
394 DATA qname(55)/
' RCMT '/
395 DATA qname(56)/
' RCMP '/
396 DATA qname(57)/
' ORTHP'/
397 DATA qname(58)/
' ALBDO'/
398 DATA qname(59)/
' ENFLX'/
399 DATA qname(60)/
' TTHTG'/
400 DATA qname(61)/
' LAT '/
401 DATA qname(62)/
' LON '/
402 DATA qname(63)/
' RADIC'/
403 DATA qname(64)/
' PROB '/
404 DATA qname(65)/
' CPROB'/
405 DATA qname(66)/
' USTAR'/
406 DATA qname(67)/
' TSTAR'/
407 DATA qname(68)/
' MIXHT'/
408 DATA qname(69)/
' WTMP '/
409 DATA qname(70)/
' WVHGT'/
410 DATA qname(71)/
' SWELL'/
411 DATA qname(72)/
' WVSWL'/
412 DATA qname(73)/
' WVPER'/
413 DATA qname(74)/
' WVDIR'/
414 DATA qname(75)/
' SWPER'/
415 DATA qname(76)/
' SWDIR'/
416 DATA qname(77)/
' RRATE'/
417 DATA qname(78)/
' TSTM '/
418 DATA qname(79)/
' CSVR '/
419 DATA qname(80)/
' CTDR '/
420 DATA qname(81)/
' MIXR '/
421 DATA qname(82)/
' PSVR '/
422 DATA qname(83)/
' MCONV'/
423 DATA qname(84)/
' ENRGY'/
424 DATA qname(85)/
' RDNCE'/
425 DATA qname(86)/
' BRTMP'/
426 DATA qname(87)/
' TCOZ '/
427 DATA qname(88)/
' OZMR '/
428 DATA qname(89)/
' ICWAT'/
429 DATA qname(90)/
' DEPTH'/
430 DATA qname(91)/
' GUST '/
431 DATA qname(92)/
' VAPP '/
432 DATA qname(93)/
' TOTHF'/
433 DATA qname(94)/
' SPEHF'/
434 DATA qname(95)/
' SORAD'/
435 DATA qname(96)/
' UOGRD'/
436 DATA qname(97)/
' VOGRD'/
437 DATA qname(98)/
' HTSGW'/
438 DATA qname(99)/
' PERPW'/
439 DATA qname(100)/
' DIRPW'/
440 DATA qname(101)/
' PERSW'/
441 DATA qname(102)/
' DIRSW'/
442 DATA qname(103)/
' WCAPS'/
443 DATA qname(104)/
' PTEND'/
444 DATA qname(105)/
' NCPCP'/
445 DATA qname(106)/
' 4LFTX'/
446 DATA qname(107)/
' ICEAC'/
447 DATA qname(108)/
' NPRAT'/
448 DATA qname(109)/
' CPRAT'/
449 DATA qname(110)/
'CEILHT'/
450 DATA qname(111)/
' VISIB'/
451 DATA qname(112)/
'LIQPCP'/
452 DATA qname(113)/
'FREPCP'/
453 DATA qname(114)/
'FROPCP'/
454 DATA qname(115)/
' MIXLY'/
455 DATA qname(116)/
' DLRFL'/
456 DATA qname(117)/
' ULRFL'/
457 DATA qname(118)/
' DSRFL'/
458 DATA qname(119)/
' USRFL'/
459 DATA qname(120)/
' UTHFL'/
460 DATA qname(121)/
' UTWFL'/
461 DATA qname(122)/
' TTLWR'/
462 DATA qname(123)/
' TTSWR'/
463 DATA qname(124)/
' TTRAD'/
464 DATA qname(125)/
' MSTAV'/
465 DATA qname(126)/
' SWABS'/
466 DATA qname(127)/
' CDLYR'/
467 DATA qname(128)/
' CDCON'/
468 DATA qname(129)/
' PBCLY'/
469 DATA qname(130)/
' PTCLY'/
470 DATA qname(131)/
' PBCON'/
471 DATA qname(132)/
' PTCON'/
472 DATA qname(133)/
' SFEXC'/
473 DATA qname(134)/
' A EVP'/
474 DATA qname(135)/
' STCOF'/
475 DATA qname(136)/
' TSOIL'/
476 DATA qname(137)/
'D DUDT'/
477 DATA qname(138)/
'D DVDT'/
478 DATA qname(139)/
' U STR'/
479 DATA qname(140)/
' V STR'/
480 DATA qname(141)/
' TUVRD'/
481 DATA qname(142)/
' TVVRD'/
482 DATA qname(143)/
' TTLRG'/
483 DATA qname(144)/
' TTSHL'/
484 DATA qname(145)/
' TTDEP'/
485 DATA qname(146)/
' TTVDF'/
486 DATA qname(147)/
' ZSTAR'/
487 DATA qname(148)/
' TQDEP'/
488 DATA qname(149)/
' TQSHL'/
489 DATA qname(150)/
' TQVDF'/
490 DATA qname(151)/
'XGWSTR'/
491 DATA qname(152)/
'YGWSTR'/
492 DATA qname(153)/
' STDZG'/
493 DATA qname(154)/
' A LEV'/
494 DATA qname(155)/
' T AIL'/
495 DATA qname(156)/
' B AIL'/
496 DATA qname(157)/
' EPOT '/
497 DATA qname(158)/
' MSLSA'/
498 DATA qname(159)/
' MSLMA'/
499 DATA qname(160)/
'MGSTRM'/
500 DATA qname(161)/
' CONDP'/
501 DATA qname(162)/
' POT V'/
502 DATA qname(163)/
' CAPE '/
503 DATA qname(164)/
' CIN '/
504 DATA qname(165)/
' VTMP '/
505 DATA qname(166)/
' TKE '/
515 DATA kname/
' ECMWF',
' READING',
',UK. ',
516 &
' FNOC',
' MONTERE',
'Y, CA. ',
517 &
' AFGWC ',
'OFFUTT A',
'FB, NB. '/
518 DATA kname1/
' WMC N',
'MC WASHI',
'NGTON '/
520 DATA after /
' AFTER '/
522 DATA qname1/
' THCK '/
523 DATA qname2/
' THKDN'/
524 DATA qname3/
' PRSDN'/
526 DATA vunit(1)/
' 0-HR FCST VALID AT '/
527 DATA vunit(2)/
' ANALYSIS VALID AT '/
533 200
FORMAT (
' ',a7,a4,
' ',a7)
534 210
FORMAT ( a4,1x,a6,a5,f4.1,a4,a7,
535 & i2.2,a1,i2.2,a1,i2.2,1x,i2.2,
'Z',3a8)
537 230
FORMAT (
' Q IS AN ILLEGAL OFFICE NOTE 84 DATA TYPE, Q = ',
539 240
FORMAT ( a4,1x,a6,a20,
540 & i2.2,a1,i2.2,a1,i2.2,1x,i2.2,
'Z',3a8)
548 nshift = iand(ishft(itemp,-24),255)
549 nmask = iand(ishft(itemp,-16),255)
550 nid = iand(ishft(itemp,-8),255)
553 jkeep(n) = iand(itemp,ishft(ktemp,-nshift))
574 ks = iand(ishft(id(3),-40_8),255_8)
580 IF (q.EQ.ll(n))
GO TO 30
587 unit(1:4) = unit1(1:4)
589 aftbef(1:7) = after(1:7)
591 IF (e1.GT.128) e1 = -(jkeep(6)-128)
592 IF (e2.GT.128) e2 = -(jkeep(8)-128)
598 IF (s1.EQ.jlist(i))
THEN
609 IF (m.EQ.0.OR.m.EQ.8)
THEN
611 CALL value1(s1,c1,e1,inum1)
612 WRITE (ktitle(1:20),220) inum1
620 IF (s2.EQ.jlist(i))
THEN
631 CALL value1(s1,c1,e1,inum1)
632 CALL value1(s2,c2,e2,inum2)
633 WRITE (ktitle(1:20),200) inum1 , sname(k1) , inum2
638 IF (q.EQ.1 .AND. m.EQ.1.AND. s1.EQ.8) qwrite = qname1
639 IF (q.EQ.1 .AND. m.EQ.1.AND. s1.EQ.8.AND.ks.EQ.2) qwrite = qname2
640 IF (q.EQ.8 .AND. s1.EQ.128.AND.ks.EQ.2) qwrite = qname3
641 IF (jt.EQ.6) qwrite(5:6) = dn(1:2)
652 IF (jn.EQ.15.OR.jt.EQ.7)
THEN
667 IF (rf1.GT.72.0.OR.rf2.GT.72.0)
THEN
670 unit(1:4) = days(1:4)
681 CALL climo(cf1,cf2,unit,for,aftbef)
683 CALL setcl(cf2,unit,ktitle)
689 IF (g.EQ.kk(k))
GO TO 130
693 kwrite(l) = kname1(l)
699 kwrite(l) = kname( 3*(k-1) + l)
708 IF (f1.NE.0)
GO TO 160
709 IF (g.EQ.19.OR.g.EQ.22.OR.g.EQ.43.OR.g.EQ.44.OR.g.EQ.49.OR.
710 & g.EQ.55.OR.g.EQ.56.OR.g.EQ.64)
THEN
712 IF (m.EQ.8.OR.m.EQ.9.OR.m.EQ.10) iii = 1
717 WRITE (ktitle(21:88),240) sname(k2), qwrite, vunit(iii),
718 & yy, dash, mm, dash, dd, hh, (kwrite(l),l=1,3)
722 WRITE (ktitle(21:88),210) sname(k2), qwrite, for, rf1, unit,
723 & aftbef, yy, dash, mm, dash, dd, hh, (kwrite(l),l=1,3)
727 WRITE (ktitle(1:88),230) q
813 INTEGER(8) MASK32,MASKN
814 INTEGER(4) SHFMSK(17)
817 equivalence(irtemp,rtemp(1))
819 CHARACTER * 324 KTITLE
823 DATA maskn /z
'FFFFFFFFFFFF0000'/
824 DATA mask32/z
'00000000FFFFFFFF'/
825 DATA shfmsk( 1)/z
'3C010200'/
826 DATA shfmsk( 2)/z
'1C010100'/
827 DATA shfmsk( 3)/z
'1C010200'/
828 DATA shfmsk( 4)/z
'20020100'/
829 DATA shfmsk( 5)/z
'20020200'/
830 DATA shfmsk( 6)/z
'38020300'/
831 DATA shfmsk( 7)/z
'30020300'/
832 DATA shfmsk( 8)/z
'28020300'/
833 DATA shfmsk( 9)/z
'20020300'/
834 DATA shfmsk(10)/z
'3C010300'/
835 DATA shfmsk(11)/z
'18020400'/
836 DATA shfmsk(12)/z
'10020400'/
837 DATA shfmsk(13)/z
'00040400'/
838 DATA shfmsk(14)/z
'30040500'/
839 DATA shfmsk(15)/z
'00040500'/
840 DATA shfmsk(16)/z
'00080500'/
841 DATA shfmsk(17)/z
'20040600'/
843 100
FORMAT(
' M=',i2,
' T=',i2,
' N=',i2,
' F1=',i3,
' F2=',i3,
' CD=',i3,
844 1
' CM=',i3,
' KS=',i3,
' K=',i3,
' GES=',i2,
' R=',i3,
' G=',i3,
845 2
' J=',i5,
' B=',i5,
' Z=',i5,
' A=',e15.8,
' N=',i5,
' ')
851 nshift = iand(ishft(itemp,-24),255)
852 nmask = iand(ishft(itemp,-16),255)
853 nid = iand(ishft(itemp,-8),255)
856 ikeep(n) = iand(jtemp,ishft(ktemp,-nshift))
863 call q9ie32(rtemp(2),rtemp(1),1,istat)
868 IF (btest(ikeep(17),15_8))
THEN
869 ikeep(17) = ior(ikeep(17),maskn)
874 IF (ikeep(13).EQ.0)
THEN
875 ikeep(13) = iand(id(6),mask32)
878 WRITE (ktitle(89:216),100) (ikeep(i),i=1,15) , a , ikeep(17)