1 SUBROUTINE UFBQCD (LUNIT, NEMO, QCD)
3 !$$$ SUBPROGRAM DOCUMENTATION BLOCK
6 ! PRGMMR: WOOLLEN ORG: NP20 DATE: 1994-01-06
8 ! ABSTRACT: THIS SUBROUTINE READS IN A MNEMONIC KNOWN TO BE IN THE BUFR
9 ! TABLE ASSOCIATED WITH THE BUFR FILE IN LOGICAL UNIT LUNIT, AND
10 ! RETURNS THE DESCRIPTOR ENTRY (Y) ASSOCIATED WITH IT WHEN THE FXY
11 ! DESCRIPTOR IS A SEQUENCE DESCRIPTOR (F=3) WITH TABLE D CATEGORY 63
12 ! (X=63). THIS ROUTINE WILL NOT WORK FOR ANY OTHER TYPE OF
13 ! DESCRIPTOR OR ANY OTHER SEQUENCE DESCRIPTOR TABLE D CATEGORY.
14 ! LUNIT MUST ALREADY BE OPENED FOR INPUT OR OUTPUT VIA A CALL TO
15 ! OPENBF. THIS ROUTINE IS ESPECIALLY USEFUL WHEN THE CALLING PROGRAM
16 ! IS WRITING "EVENTS" TO AN OUTPUT BUFR FILE (USUALLY THE "PREPBUFR"
17 ! FILE) USING THE SAME BUFR TABLE SINCE THE DESCRIPTOR ENTRY (Y) HERE
18 ! DEFINES THE EVENT PROGRAM CODE. THUS, THE CALLING PROGRAM CAN PASS
19 ! THE PROGRAM CODE INTO VARIOUS EVENTS WITHOUT ACTUALLY KNOWING ITS
20 ! VALUE AS LONG AS IT KNOWS THE MNEMONIC NAME ASSOCIATED WITH IT.
22 ! PROGRAM HISTORY LOG:
23 ! 1994-01-06 J. WOOLLEN -- ORIGINAL AUTHOR
24 ! 1998-07-08 J. WOOLLEN -- REPLACED CALL TO CRAY LIBRARY ROUTINE
25 ! "ABORT" WITH CALL TO NEW INTERNAL BUFRLIB
27 ! 2003-11-04 S. BENDER -- ADDED REMARKS/BUFRLIB ROUTINE
29 ! 2003-11-04 D. KEYSER -- UNIFIED/PORTABLE FOR WRF; ADDED
30 ! DOCUMENTATION (INCLUDING HISTORY); OUTPUTS
31 ! MORE COMPLETE DIAGNOSTIC INFO WHEN ROUTINE
32 ! TERMINATES ABNORMALLY
34 ! USAGE: CALL UFBQCD (LUNIT, NEMO, QCD)
35 ! INPUT ARGUMENT LIST:
36 ! LUNIT - INTEGER: FORTRAN LOGICAL UNIT NUMBER FOR BUFR FILE
37 ! (ASSOCIATED BUFR TABLE MAY BE INTERNAL OR EXTERNAL)
38 ! NEMO - CHARACTER*(*): MNEMONIC
40 ! OUTPUT ARGUMENT LIST:
41 ! QCD - REAL: SEQUENCE DESCRIPTOR ENTRY (I.E., EVENT PROGRAM
42 ! CODE) IN BUFR TABLE ASSOCIATED WITH NEMO (Y IN FXY
43 ! DESCRIPTOR, WHERE F=3 AND X=63)
46 ! THIS SUBROUTINE IS THE INVERSE OF BUFR ARCHIVE LIBRARY ROUTINE
49 ! THIS ROUTINE CALLS: ADN30 BORT NEMTAB STATUS
50 ! THIS ROUTINE IS CALLED BY: None
51 ! Normally called only by application
55 ! LANGUAGE: FORTRAN 77
56 ! MACHINE: PORTABLE TO ALL PLATFORMS
61 CHARACTER(128) BORT_STR
62 CHARACTER(6) FXY, ADN30
65 !-----------------------------------------------------------------------
66 !-----------------------------------------------------------------------
68 CALL STATUS (LUNIT, LUN, IL, IM)
71 CALL NEMTAB (LUN, NEMO, IDN, TAB, IRET)
72 IF (TAB.NE.'D') GOTO 901
75 IF (FXY (2:3) .NE.'63') GOTO 902
76 READ (FXY (4:6) , '(F3.0)', ERR = 903) QCD
82 900 CALL BORT ('BUFRLIB: UFBQCD - BUFR FILE IS CLOSED, IT MUST BE'//' &
84 901 WRITE (BORT_STR, '("BUFRLIB: UFBQCD - INPUT MNEMONIC ",A," NOT '//&
85 'DEFINED AS A SEQUENCE DESCRIPTOR IN BUFR TABLE")') NEMO
87 902 WRITE (BORT_STR, '("BUFRLIB: UFBQCD - BUFR TABLE SEQ. DESCRIPTOR '&
88 &//'ASSOC. WITH INPUT MNEMONIC ",A," HAS INVALID CATEGORY ",A," -'/&
89 &/' CATEGORY MUST BE 63")') NEMO, FXY (2:3)
91 903 WRITE (BORT_STR, '("BUFRLIB: UFBQCD - ERROR READING ENTRY '//'(PRO&
92 &GRAM CODE) FROM BUFR TBL SEQ. DESCRIPTOR ",A," ASSOC. '//'WITH INP&
93 &UT MNEM. ",A)') FXY, NEMO