28 SUBROUTINE cpyupd(LUNIT,LIN,LUN,IBYT)
33 COMMON /msgptr/ nby0,nby1,nby2,nby3,nby4,nby5
37 CHARACTER*128 BORT_STR, ERRSTR
50 . ((ibyt.GT.65530).AND.(
nsub(lun).GT.0)))
THEN
83 lbit = (nby0+nby1+nby2+4)*8
86 lbyt = nby0+nby1+nby2+nby3
89 CALL pkb(nbyt+ibyt,24,
mbay(1,lun),lbit)
97 IF(ibyt.GT.65530)
THEN
99 CALL errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
100 WRITE ( unit=errstr, fmt=
'(A,I7,A,A)')
101 .
'BUFRLIB: CPYUPD - SUBSET HAS BYTE COUNT = ',ibyt,
' > UPPER ',
104 CALL errwrt(
'>>>>>>>WILL BE COPIED INTO ITS OWN MESSAGE<<<<<<<<')
105 CALL errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
116 900
WRITE(bort_str,
'("BUFRLIB: CPYUPD - THE LENGTH OF THIS SUBSET '//
117 .
'EXCEEDS THE MAXIMUM MESSAGE LENGTH (",I6,")")')
maxbyt
subroutine bort(STR)
Log one error message and abort application program.
subroutine cpyupd(LUNIT, LIN, LUN, IBYT)
This subroutine copies a BUFR data subset from one unit to another within internal memory and resets ...
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 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 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 declarations for arrays used to store information about the current BUFR message...
integer, dimension(:), allocatable nsub
Current subset pointer within message.
subroutine pkb(NVAL, NBITS, IBAY, IBIT)
This subroutine encodes an integer value within a specified number of bits of an integer array,...