NCEPLIBS-bufr  12.0.0
ufbmex.f File Reference

Connect a new 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

recursive subroutine ufbmex (LUNIT, LUNDX, INEW, IRET, MESG)
 Connect a new file to the BUFRLIB software for input operations, then read 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 file. More...
 

Detailed Description

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

Author
J. Woollen
Date
2012-01-26

Definition in file ufbmex.f.

Function/Subroutine Documentation

◆ ufbmex()

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

Connect a new file to the BUFRLIB software for input operations, then read 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 file.

This subroutine is similar to subroutine ufbmem(), except that instead of a file status it returns an array of message types that were read in. Furthermore, this subroutine doesn't process any embedded DX BUFR tables contained within the file; instead, it provides an additional call argument LUNDX to allow for specification of the necessary DX BUFR table information associated with the messages in the file.

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

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.
Author
J. Woollen
Date
2012-01-26

Definition at line 39 of file ufbmex.f.

References bort(), closbf(), errwrt(), modv_im8b::im8b, moda_msgmem::ipmsgs, iupbs01(), moda_msgmem::ldxm, moda_msgmem::ldxts, modv_maxmem::maxmem, modv_maxmsg::maxmsg, moda_mgwa::mgwa, moda_msgmem::mlast, moda_msgmem::msgp, moda_msgmem::msgs, moda_msgmem::munit, moda_msgmem::ndxm, moda_msgmem::ndxts, nmwrd(), openbf(), rdmsgw(), x48(), and x84().