25 RECURSIVE SUBROUTINE wrdxtb(LUNDX,LUNOT)
31 COMMON /dxtab / maxdx,idxv,nxstr(10),ldxa(10),ldxb(10),ldxd(10),
48 CALL x84(lundx,my_lundx,1)
49 CALL x84(lunot,my_lunot,1)
50 CALL wrdxtb(my_lundx,my_lunot)
59 CALL status(lunot,lot,il,im)
63 CALL status(lundx,ldx,il,im)
70 IF(lundx.NE.lunot)
CALL cpbfdx(ldx,lot)
125 nseq =
iupm(
tabd(i,lot)(ldd+1:ldd+1),8)
126 lend = ldd+1 + l30*nseq
127 IF(
msgfull(mbyt,lend,maxdx).OR.
159 mbit = (len0+len1+len2+4)*8
167 900
CALL bort(
'BUFRLIB: WRDXTB - OUTPUT BUFR FILE IS CLOSED, IT '//
168 .
'MUST BE OPEN FOR OUTPUT')
169 901
CALL bort(
'BUFRLIB: WRDXTB - OUTPUT BUFR FILE IS OPEN FOR '//
170 .
'INPUT, IT MUST BE OPEN FOR OUTPUT')
171 902
CALL bort(
'BUFRLIB: WRDXTB - DX TABLE FILE IS CLOSED, IT '//
character *(*) function adn30(IDN, L30)
Convert a WMO bit-wise representation of an FXY value to a character string of length 5 or 6.
subroutine bort(STR)
Log one error message and abort application program.
subroutine cpbfdx(LUD, LUN)
This subroutine copies all of the DX BUFR table information from one unit to another within internal ...
subroutine dxmini(MBAY, MBYT, MB4, MBA, MBB, MBD)
This subroutine initializes a DX BUFR tables (dictionary) message, writing all the preliminary inform...
recursive subroutine getlens(MBAY, LL, LEN0, LEN1, LEN2, LEN3, LEN4, LEN5)
This subroutine reads the lengths of all of the individual sections of a given BUFR message,...
recursive function iupb(MBAY, NBYT, NBIT)
Decode an integer value from an integer array.
recursive function iupm(CBAY, NBITS)
Decode an integer value from a character string.
logical function msgfull(MSIZ, ITOADD, MXSIZ)
This function determines whether the current data subset in the internal arrays will fit within the c...
subroutine msgwrt(LUNIT, MESG, MGBYT)
Perform final checks and updates on a BUFR message before writing it to a specified Fortran logical u...
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 DX BUFR tables internally for mult...
integer, dimension(:), allocatable ntba
Number of Table A entries for each internal I/O stream (up to a maximum of MAXTBA,...
character *600, dimension(:,:), allocatable tabd
Table D entries for each internal I/O stream.
character *128, dimension(:,:), allocatable taba
Table A entries for each internal I/O stream.
integer, dimension(:), allocatable ntbd
Number of Table D entries for each internal I/O stream (up to a maximum of MAXTBD,...
integer, dimension(:), allocatable ntbb
Number of Table B entries for each internal I/O stream (up to a maximum of MAXTBB,...
character *128, dimension(:,:), allocatable tabb
Table B entries for each internal I/O stream.
This module declares and initializes the IM8B variable.
logical, public im8b
Status indicator to keep track of whether all future calls to BUFRLIB subroutines and functions from ...
subroutine pkb(NVAL, NBITS, IBAY, IBIT)
This subroutine encodes an integer value within a specified number of bits of an integer array,...
subroutine pkc(CHR, NCHR, IBAY, IBIT)
Encode a character string within an integer array.
recursive subroutine status(LUNIT, LUN, IL, IM)
Check whether a specified Fortran logical unit number is currently connected to the NCEPLIBS-bufr sof...
recursive subroutine wrdxtb(LUNDX, LUNOT)
This subroutine generates one or more BUFR messages from the DX BUFR tables information associated wi...
subroutine x84(IIN8, IOUT4, NVAL)
Encode one or more 8-byte integer values as 4-byte integer values.