66 COMMON /tnkrcp/ itryr,itrmo,itrdy,itrhr,itrmi,ctrt
92 CALL pkb(mbyt,24,iec0,ibit)
94 DO ii = 1,
nmwrd(iec0)
105 IF(cmnem(i).EQ.
'BEN')
THEN
106 IF(ivmnem(i).EQ.4)
THEN
111 CALL pkb(mbyt,24,mgwa,ibit)
121 DO ii = 1,
nmwrd(mgwb)
129 CALL pkbs1(ivmnem(i),mgwa,cmnem(i))
138 IF ( ( csmf.EQ.
'Y' ) .AND. (
idxmsg(mgwa).NE.1 ) )
THEN
145 CALL pkb(mbyt,24,mgwa,ibit)
147 CALL pkc(sevn,4,mgwa,ibit)
157 DO ii = 1,
nmwrd(mgwb)
166 IF ( ( ctrt.EQ.
'Y' ) .AND. (
idxmsg(mgwa).NE.1 ) )
THEN
171 CALL pkb(mbyt,24,mgwa,ibit)
181 DO ii = 1,
nmwrd(mgwb)
188 CALL getlens(mgwa,4,len0,len1,len2,len3,len4,l5)
193 IF(
iupbs01(mgwa,
'BEN').LT.4)
THEN
194 IF(mod(len1,2).NE.0)
GOTO 901
195 IF(mod(len2,2).NE.0)
GOTO 902
196 IF(mod(len3,2).NE.0)
GOTO 903
197 IF(mod(len4,2).NE.0)
THEN
202 iad4 = len0+len1+len2+len3
206 CALL pkb(len4,24,mgwa,ibit)
208 CALL pkb(0,8,mgwa,ibit)
217 CALL pkc(bufr, 4,mgwa,ibit)
218 CALL pkb(mbyt,24,mgwa,ibit)
221 CALL pkc(sevn, 4,mgwa,kbit)
237 CALL status(lunit,lun,il,im)
238 IF(null(lun).EQ.0)
THEN
244 CALL errwrt(
'++++++++++++++BUFR ARCHIVE LIBRARY+++++++++++++++++')
245 WRITE ( unit=errstr, fmt=
'(A,I4,A,I7)')
246 .
'BUFRLIB: MSGWRT: LUNIT =', lunit,
', BYTES =', mbyt+npbyt
248 CALL errwrt(
'++++++++++++++BUFR ARCHIVE LIBRARY+++++++++++++++++')
255 IF(
idxmsg(mgwa).NE.1)
THEN
263 msgtxt(i,lun) = mgwa(i)
272 . (
'BUFRLIB: MSGWRT - LENGTH OF SECTION 1 IS NOT A MULTIPLE OF 2')
274 . (
'BUFRLIB: MSGWRT - LENGTH OF SECTION 2 IS NOT A MULTIPLE OF 2')
276 . (
'BUFRLIB: MSGWRT - LENGTH OF SECTION 3 IS NOT A MULTIPLE OF 2')
subroutine atrcpt(MSGIN, LMSGOT, MSGOT)
This subroutine reads an input message and outputs an equivalent BUFR message with a tank receipt tim...
subroutine blocks(MBAY, MWRD)
This subroutine encapsulates a BUFR message with IEEE Fortran control words as specified via the most...
subroutine bort(STR)
This subroutine calls subroutine errwrt() to log an error message, then calls subroutine bort_exit() ...
subroutine cnved4(MSGIN, LMSGOT, MSGOT)
This subroutine reads an input BUFR message encoded using BUFR edition 3 and outputs an equivalent BU...
void cwrbufr(f77int *nfile, f77int *bufr, f77int *nwrd)
This subroutine writes a BUFR message into a file that was previously opened for writing.
subroutine errwrt(STR)
This subroutine allows the user to specify a custom location for the logging of error and diagnostic ...
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,...
function idxmsg(MESG)
This function determines whether a given BUFR message contains DX BUFR tables information that was ge...
function iupbs01(MBAY, S01MNEM)
This function returns a specified value from within Section 0 or Section 1 of a BUFR message.
subroutine msgwrt(LUNIT, MESG, MGBYT)
This subroutine performs final checks and updates on a BUFR message before writing it to a specified ...
This module declares and initializes the MXMSGL variable.
integer mxmsgld4
The value of mxmsgl divided by 4.
function nmwrd(MBAY)
GIVEN AN INTEGER ARRAY CONTAINING SECTION ZERO FROM A BUFR MESSAGE, THIS FUNCTION DETERMINES A COUNT ...
subroutine padmsg(MESG, LMESG, NPBYT)
THIS SUBROUTINE PADS A BUFR MESSAGE WITH ZEROED-OUT BYTES FROM THE END OF THE MESSAGE UP TO THE NEXT ...
subroutine pkb(NVAL, NBITS, IBAY, IBIT)
This subroutine encodes an integer value within a specified number of bits of an integer array,...
subroutine pkbs1(IVAL, MBAY, S1MNEM)
This subroutines writes a specified value into a specified location within Section 1 of a BUFR messag...
subroutine pkc(CHR, NCHR, IBAY, IBIT)
This subroutine encodes a character string within a specified number of bits of an integer array,...
subroutine status(LUNIT, LUN, IL, IM)
This subroutine checks whether a specified Fortran logical unit number is currently connected to the ...
subroutine stndrd(LUNIT, MSGIN, LMSGOT, MSGOT)
This subroutine performs the same function as subroutine stdmsg(), except that it operates on a BUFR ...