90 RECURSIVE SUBROUTINE writsa(LUNXX,LMSGT,MSGT,MSGL)
111 CALL x84 ( lunxx, my_lunxx, 1 )
112 CALL x84 ( lmsgt, my_lmsgt, 1 )
113 CALL writsa ( my_lunxx, my_lmsgt*2, msgt, msgl )
115 CALL x48 ( msgl, msgl, 1 )
126 CALL status(lunit,lun,il,im)
134 IF(lunxx.LT.0)
CALL closmg(lunit)
140 IF(
msglen(lun).GT.lmsgt)
GOTO 904
150 IF(lunxx.LT.0)
GOTO 100
156 IF( ccmf.EQ.
'Y' )
THEN
175 IF( (
msglen(lun).GT.0) .AND. (msgl+
msglen(lun).LE.lmsgt) )
THEN
177 msgt(msgl+n) =
msgtxt(n,lun)
187 900
CALL bort(
'BUFRLIB: WRITSA - OUTPUT BUFR FILE IS CLOSED, IT '//
188 .
'MUST BE OPEN FOR OUTPUT')
189 901
CALL bort(
'BUFRLIB: WRITSA - OUTPUT BUFR FILE IS OPEN FOR '//
190 .
'INPUT, IT MUST BE OPEN FOR OUTPUT')
191 902
CALL bort(
'BUFRLIB: WRITSA - A MESSAGE MUST BE OPEN IN OUTPUT '//
192 .
'BUFR FILE, NONE ARE')
193 904
CALL bort(
'BUFRLIB: WRITSA - OVERFLOW OF OUTPUT BUFR MESSAGE '//
194 .
'ARRAY; TRY A LARGER DIMENSION FOR THIS ARRAY')
subroutine bort(STR)
Log one error message and abort application program.
recursive subroutine closmg(LUNIN)
This subroutine closes the BUFR message that is currently open for writing within internal arrays ass...
subroutine msgupd(LUNIT, LUN)
This subroutine packs up the current subset within memory (array ibay in module moda_bitbuf) and then...
This module contains arrays used to store, for each output I/O stream, a copy of the BUFR message tha...
integer, dimension(:), allocatable msglen
Length (in integers) of BUFR message most recently written to each output I/O stream.
integer, dimension(:,:), allocatable msgtxt
BUFR message most recently written to each output 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 ...
recursive subroutine status(LUNIT, LUN, IL, IM)
Check whether a specified Fortran logical unit number is currently connected to the NCEPLIBS-bufr sof...
subroutine wrcmps(LUNIX)
This subroutine packs up the current subset within memory (array ibay in module moda_bitbuf),...
recursive subroutine writsa(LUNXX, LMSGT, MSGT, MSGL)
Write a data subset into a BUFR message, and return each completed message within a memory array.
subroutine wrtree(LUN)
Pack a BUFR data subset.
subroutine x48(IIN4, IOUT8, NVAL)
Encode one or more 4-byte integer values as 8-byte integer values.
subroutine x84(IIN8, IOUT4, NVAL)
Encode one or more 8-byte integer values as 4-byte integer values.