NCEPLIBS-bufr
11.7.0
|
Open a new message for output in a BUFR file that was previously opened for writing. More...
Go to the source code of this file.
Functions/Subroutines | |
subroutine | openmb (LUNIT, SUBSET, JDATE) |
This subroutine opens and initializes a new BUFR message within internal arrays, for eventual output to logical unit LUNIT. More... | |
Open a new message for output in a BUFR file that was previously opened for writing.
Definition in file openmb.f.
subroutine openmb | ( | LUNIT, | |
character*(*) | SUBSET, | ||
JDATE | |||
) |
This subroutine opens and initializes a new BUFR message within internal arrays, for eventual output to logical unit LUNIT.
[in] | LUNIT | – integer: Fortran logical unit number for BUFR file |
[in] | SUBSET | – character*(*): Table A mnemonic for type of BUFR message to be opened (see DX BUFR Tables for further information about Table A mnemonics) |
[in] | JDATE | – integer: Date-time to be stored within Section 1 of BUFR message being opened, in format of either YYMMDDHH or YYYYMMDDHH |
Logical unit LUNIT should have already been opened for output operations via a previous call to subroutine openbf().
This subroutine is similar to subroutine openmg(), except that it will only open a new message if either SUBSET or JDATE has changed since the previous call to this subroutine. Otherwise, it will leave the existing internal message unchanged so that the next data subset can be written into the same internal message, thereby improving overall storage efficiency by allowing the maximum number of data subsets to be stored within each output BUFR message. For this reason, openmb() is much more widely used than openmg().
If this subroutine does need to open and initialize a new BUFR message for output (e.g. if the value of SUBSET or JDATE has changed since the previous call to this subroutine), then any existing message within the internal arrays will be automatically flushed and written to logical unit LUNIT via an internal call to subroutine closmg(). In this case, the behavior of this subroutine then becomes exactly like that of subroutine openmg().
Program history log:
Date | Programmer | Comments |
---|---|---|
1994-01-06 | J. Woollen | Original author |
1998-07-08 | J. Woollen | Replaced call to Cray library routine "ABORT" with call to new internal routine bort(); modified to make Y2K compliant |
1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to 32 |
2003-11-04 | J. Ator | Added documentation |
2003-11-04 | S. Bender | Added remarks and routine interdependencies |
2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally |
2014-12-10 | J. Ator | Use modules instead of COMMON blocks |
Definition at line 52 of file openmb.f.
References bort(), closmg(), i4dy(), msgini(), nemtba(), status(), usrtpl(), and wtstat().