35 CALL status(lunit,lun,il,im)
40 DO WHILE ( .NOT. done )
42 IF ( ier .EQ. -1 )
THEN
52 ELSE IF ( ier .EQ. -2 )
THEN
78 IF ( (
ldxm + lmem ) .GT.
mxdxw )
GOTO 903
88 IF ( ict .GT. 0 )
THEN
94 IF ( iprt .GE. 2 )
THEN
95 CALL errwrt(
'+++++++++++++++++++++++++++++++++++++++++++++')
96 WRITE ( unit=errstr, fmt=
'(A,I3,A,I3,A)')
97 .
'BUFRLIB: CPDXMM - STORED NEW DX TABLE #',
ndxts,
98 .
' CONSISTING OF ', ict,
' MESSAGES'
100 CALL errwrt(
'+++++++++++++++++++++++++++++++++++++++++++++')
106 900
CALL bort(
'BUFRLIB: CPDXMM - MXDXTS OVERFLOW')
107 901
CALL bort(
'BUFRLIB: CPDXMM - UNEXPECTED READ ERROR')
108 902
CALL bort(
'BUFRLIB: CPDXMM - MXDXM OVERFLOW')
109 903
CALL bort(
'BUFRLIB: CPDXMM - MXDXW OVERFLOW')
subroutine bort(STR)
Log one error message and abort application program.
subroutine cpdxmm(LUNIT)
This subroutine reads an entire DX BUFR table from a specified file into internal arrays.
subroutine errwrt(STR)
This subroutine allows the user to specify a custom location for the logging of error and diagnostic ...
recursive function idxmsg(MESG)
Check whether a BUFR message contains DX BUFR tables information.
recursive function iupbs3(MBAY, S3MNEM)
This function returns a specified value from within Section 3 of a BUFR message.
Wrap C NCEPLIBS-bufr functions so they can be called from within the Fortran part of the library.
This module contains a declaration for an array used by various subroutines and functions to hold a t...
integer, dimension(:), allocatable mgwa
Temporary working copy of BUFR message.
This module contains array and variable declarations used to store the contents of one or more BUFR f...
integer, dimension(:), allocatable msgp
Pointers to the beginning of each message within msgs (up to a maximum of MAXMSG, and where array ele...
integer, dimension(:), allocatable ipmsgs
Pointers to first message within msgs for which each DX BUFR table applies.
integer, dimension(:), allocatable icdxts
Number of consecutive messages within mdx which constitute each DX BUFR table, beginning with the cor...
integer mxdxm
Maximum number of DX BUFR table messages that can be stored within mdx.
integer, dimension(:), allocatable ifdxts
Pointers to the beginning of each DX BUFR table within mdx.
integer ndxm
Number of DX BUFR table messages stored within mdx (up to a maximum of MXDXM).
integer ldxm
Number of array elements filled within mdx (up to a maximum of MXDXW).
integer ndxts
Number of DX BUFR tables represented by the messages within mdx (up to a maximum of MXDXTS).
integer, dimension(:), allocatable mdx
DX BUFR table messages read from one or more BUFR files, for use in decoding the messages in msgs.
integer mxdxw
Maximum number of entries that can be stored within mdx.
integer, dimension(:), allocatable ipdxm
Pointers to the beginning of each message within mdx.
This module declares and initializes the MXDXTS variable.
integer mxdxts
Maximum number of dictionary tables that can be stored for use with BUFR messages in internal memory.
recursive function nmwrd(MBAY)
Given an integer array containing Section 0 from a BUFR message, this function determines the array s...
subroutine rdmsgw(lunit, mesg, iret)
Read the next BUFR message from logical unit lunit as an array of integer words.
recursive subroutine status(LUNIT, LUN, IL, IM)
Check whether a specified Fortran logical unit number is currently connected to the NCEPLIBS-bufr sof...