29 COMMON /msgptr/ nby0,nby1,nby2,nby3,nby4,nby5
50 . ((ibyt.GT.65530).AND.(
nsub(lun).GT.0)))
THEN
69 CALL errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
70 WRITE ( unit=errstr, fmt=
'(A,A,I7,A)')
71 .
'BUFRLIB: MSGUPD - SUBSET LONGER THAN ANY POSSIBLE MESSAGE ',
72 .
'{MAXIMUM MESSAGE LENGTH = ',
maxbyt,
'}'
74 CALL errwrt(
'>>>>>>>OVERLARGE SUBSET DISCARDED FROM FILE<<<<<<<<')
75 CALL errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
101 lbit = (nby0+nby1+nby2+4)*8
104 lbyt = nby0+nby1+nby2+nby3
107 CALL pkb(nbyt+ibyt,24,
mbay(1,lun),lbit)
126 IF(ibyt.GT.65530)
THEN
128 CALL errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
129 WRITE ( unit=errstr, fmt=
'(A,I7,A,A)')
130 .
'BUFRLIB: MSGUPD - SUBSET HAS BYTE COUNT = ',ibyt,
' > UPPER ',
133 CALL errwrt(
'>>>>>>>WILL BE WRITTEN INTO ITS OWN MESSAGE<<<<<<<<')
134 CALL errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
subroutine errwrt(STR)
This subroutine allows the user to specify a custom location for the logging of error and diagnostic ...
recursive function iupb(MBAY, NBYT, NBIT)
Decode an integer value from an integer array.
subroutine msgini(LUN)
This subroutine initializes, within the internal arrays, a new uncompressed BUFR message for output.
subroutine msgupd(LUNIT, LUN)
This subroutine packs up the current subset within memory (array ibay in module moda_bitbuf) and then...
subroutine msgwrt(LUNIT, MESG, MGBYT)
Perform final checks and updates on a BUFR message before writing it to a specified Fortran logical u...
subroutine mvb(IB1, NB1, IB2, NB2, NBM)
This subroutine copies a specified number of bytes from one packed binary array to another.
This module contains array and variable declarations used to store BUFR messages internally for multi...
integer, dimension(:), allocatable ibay
Current data subset.
integer ibit
Bit pointer within IBAY.
integer, dimension(:,:), allocatable mbay
Current BUFR message for each internal I/O stream.
integer, dimension(:), allocatable mbyt
Length (in bytes) of current BUFR message for each internal I/O stream.
integer maxbyt
Maximum length of an output BUFR message.
This module contains array and variable declarations needed to store long character strings (greater ...
integer nh4wlc
Number of long character strings being stored.
character *14, dimension(:), allocatable sth4wlc
Table B mnemonics associated with long character strings.
integer, dimension(:), allocatable luh4wlc
I/O stream index into internal arrays for associated output file.
character *120, dimension(:), allocatable chh4wlc
Long character strings.
This module contains declarations for arrays used to store information about the current BUFR message...
integer, dimension(:), allocatable nsub
Current subset pointer within message.
subroutine pad(IBAY, IBIT, IBYT, IPADB)
This subroutine first packs the value for the number of bits being "padded" (we'll get to that later)...
subroutine pkb(NVAL, NBITS, IBAY, IBIT)
This subroutine encodes an integer value within a specified number of bits of an integer array,...
subroutine usrtpl(LUN, INVN, NBMP)
Store the subset template into internal arrays.
recursive subroutine writlc(LUNIT, CHR, STR)
Write a long character string (greater than 8 bytes) to a data subset.