NCEPLIBS-bufr  11.6.0
 All Data Structures Files Functions Variables Pages
ufbmex.f File Reference

Connect a new system file to the BUFRLIB software, and read the entire file contents into internal arrays. More...

Go to the source code of this file.

Functions/Subroutines

subroutine ufbmex (LUNIT, LUNDX, INEW, IRET, MESG)
 This subroutine connects a new system file to the BUFRLIB software for input operations, then reads the entire file contents into internal arrays so that any of the individual BUFR messages can later be accessed from memory, instead of having to read them one at a time sequentially from the system file. More...
 

Detailed Description

Connect a new system file to the BUFRLIB software, and read the entire file contents into internal arrays.

Definition in file ufbmex.f.

Function/Subroutine Documentation

subroutine ufbmex (   LUNIT,
  LUNDX,
  INEW,
  IRET,
integer, dimension(*)  MESG 
)

This subroutine connects a new system file to the BUFRLIB software for input operations, then reads the entire file contents into internal arrays so that any of the individual BUFR messages can later be accessed from memory, instead of having to read them one at a time sequentially from the system file.

This subroutine is similar to subroutine ufbmem(), except that after reading in all of the messages, it then sorts them according to their message types and returns a corresponding list of these types. Furthermore, it does not process any embedded DX BUFR tables contained within the system file, since these tables are no longer relevant once the messages have been sorted and re-ordered from their original positions in the file. Instead, this subroutine provides an additional call argument LUNDX to allow for specification of the necessary DX BUFR table information associated with the messages in the file.

Author
J. Woollen
Date
2012-01-26
Parameters
[in]LUNIT– integer: Fortran logical unit number for BUFR file
[in]LUNDX– integer: Fortran logical unit number containing DX BUFR table information associated with BUFR messages in LUNIT
[in]INEW– integer: Processing option
  • 0 = Initialize the internal arrays, then read all BUFR messages from LUNIT into internal arrays
  • Otherwise, read all BUFR messages from LUNIT and append them to the existing messages within the internal arrays
[out]IRET– integer: Number of BUFR messages that were read from LUNIT and stored into internal arrays
[out]MESG– integer(*): Types of BUFR messages that were read from LUNIT and stored into internal arrays

Logical unit numbers LUNIT and LUNDX must already be associated with actual filenames on the local system, typically via a Fortran "OPEN" statement.

Program history log:

Date Programmer Comments
2012-01-26 J. Woollen Original author
2014-12-10 J. Ator Use modules instead of COMMON blocks
2015-09-24 D. Stokes Fix missing declaration of COMMON /QUIET/

Definition at line 53 of file ufbmex.f.

References bort(), closbf(), errwrt(), iupbs01(), nmwrd(), openbf(), and rdmsgw().