1 SUBROUTINE MESGBF (LUNIT, MESGTYP)
3 !$$$ SUBPROGRAM DOCUMENTATION BLOCK
6 ! PRGMMR: WOOLLEN ORG: NP20 DATE: 1994-01-06
8 ! ABSTRACT: THIS SUBROUTINE READS AND EXAMINES SECTION 1 OF MESSAGES
9 ! IN A BUFR FILE IN SEQUENCE UNTIL IT FINDS THE FIRST MESSAGE THAT
10 ! IS NOT A BUFR TABLE (DICTIONARY) (I.E., NOT MESSAGE TYPE 11). IT
11 ! THEN RETURNS THE MESSAGE TYPE FOR THIS FIRST NON-DICTIONARY MESSAGE.
12 ! THE BUFR FILE SHOULD NOT BE OPEN VIA BUFR ARCHIVE LIBRARY SUBROUTINE
13 ! OPENBF PRIOR TO CALLING THIS SUBROUTINE HOWEVER THE BUFR FILE MUST
14 ! BE CONNECTED TO UNIT LUNIT. THIS SUBROUTINE IS IDENTICAL TO BUFR
15 ! ARCHIVE LIBRARY SUBROUTINE MESGBC EXCEPT MESGBC RETURNS THE MESSAGE
16 ! TYPE FOR THE FIRST NON-DICTIONARY MESSAGE THAT ACTUALLY CONTAINS
17 ! REPORT DATA (WHEREAS MESGBF WOULD RETURN THE REPORT TYPE OF A DUMMY
18 ! MESSAGE CONTAINING THE CENTER TIME FOR DUMP FILES), AND MESGBC ALSO
19 ! INDICATES WHETHER OR NOT THE FIRST REPORT DATA MESSAGE CONTAINS
20 ! REPORT DATA IS BUFR COMPRESSED. (MESGBC ALSO HAS AN OPTION TO
21 ! OPERATE ON THE CURRENT BUFR STORED IN MEMORY, SOMETHING MESGBF
24 ! PROGRAM HISTORY LOG:
25 ! 1994-01-06 J. WOOLLEN -- ORIGINAL AUTHOR
26 ! 2000-09-19 J. WOOLLEN -- MAXIMUM MESSAGE LENGTH INCREASED FROM
27 ! 10,000 TO 20,000 BYTES
28 ! 2003-11-04 S. BENDER -- ADDED REMARKS/BUFRLIB ROUTINE
30 ! 2003-11-04 D. KEYSER -- UNIFIED/PORTABLE FOR WRF; ADDED
31 ! DOCUMENTATION (INCLUDING HISTORY)
32 ! 2004-08-09 J. ATOR -- MAXIMUM MESSAGE LENGTH INCREASED FROM
33 ! 20,000 TO 50,000 BYTES
34 ! 2005-11-29 J. ATOR -- USE IUPBS01 AND RDMSGW
36 ! USAGE: CALL MESGBF (LUNIT, MESGTYP)
37 ! INPUT ARGUMENT LIST:
38 ! LUNIT - INTEGER: FORTRAN LOGICAL UNIT NUMBER FOR BUFR FILE
40 ! OUTPUT ARGUMENT LIST:
41 ! MESGTYP - INTEGER: BUFR MESSAGE TYPE FOR FIRST NON-DICTIONARY
43 ! -1 = no messages read or error
44 ! 11 = if only BUFR table messages in BUFR file
47 ! UNIT "LUNIT" - BUFR FILE
50 ! THIS ROUTINE CALLS: IUPBS01 RDMSGW WRDLEN
51 ! THIS ROUTINE IS CALLED BY: None
52 ! Normally called only by application
56 ! LANGUAGE: FORTRAN 77
57 ! MACHINE: PORTABLE TO ALL PLATFORMS
63 DIMENSION MBAY (MXMSGLD4)
65 !-----------------------------------------------------------------------
66 !-----------------------------------------------------------------------
70 ! SINCE OPENBF HAS NOT YET BEEN CALLED, MUST CALL WRDLEN TO GET
71 ! MACHINE INFO NEEDED LATER
72 ! -------------------------------------------------------------
76 ! READ PAST ANY BUFR TABLES AND RETURN THE FIRST MESSAGE TYPE FOUND
77 ! -----------------------------------------------------------------
81 1 CALL RDMSGW (LUNIT, MBAY, IER)
82 IF (IER.LT.0) GOTO 100
84 MESGTYP = IUPBS01 (MBAY, 'MTYP')
85 IF (MESGTYP.EQ.11) GOTO 1