32 RECURSIVE SUBROUTINE readsb(LUNIT,IRET)
41 CHARACTER*128 bort_str
52 CALL x84(lunit,my_lunit,1)
65 CALL status(lunit,lun,il,im)
101 ELSEIF(
msgunp(lun).EQ.1)
THEN
110 ELSEIF(
msgunp(lun).EQ.2)
THEN
113 if (
iscodes(lun) .ne. 0) iret = -1
122 900
CALL bort(
'BUFRLIB: READSB - INPUT BUFR FILE IS CLOSED, IT MUST'//
123 .
' BE OPEN FOR INPUT')
124 901
CALL bort(
'BUFRLIB: READSB - INPUT BUFR FILE IS OPEN FOR OUTPUT'//
125 .
', IT MUST BE OPEN FOR INPUT')
126 902
WRITE(bort_str,
'("BUFRLIB: READSB - MESSAGE UNPACK TYPE",I3,"IS'//
127 .
' NOT RECOGNIZED")')
msgunp
subroutine bort(STR)
Log one error message and abort application program.
This module contains array and variable declarations used to store BUFR messages internally for multi...
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.
This module contains array and variable declarations used to store bitmaps internally within a data s...
integer lstnod
Most recent jump/link table entry that was processed by function igetrfel() and whose corresponding v...
integer nbtm
Number of stored bitmaps for the current data subset (up to a maximum of MXBTM).
integer lstnodct
Current count of consecutive occurrences of lstnod.
logical linbtm
true if a bitmap is in the process of being read for the current data subset; false otherwise.
This module contains declarations for arrays used to store information about the current BUFR message...
integer, dimension(:), allocatable msub
Total number of data subsets in message.
integer, dimension(:), allocatable nsub
Current subset pointer within message.
This module contains an array declaration used to store a status code for each internal I/O stream in...
integer, dimension(:), allocatable iscodes
Abnormal status codes.
This module contains an array declaration used to store, for each I/O stream index from which a BUFR ...
integer, dimension(:), allocatable msgunp
Flag indicating how to unpack data subsets from BUFR message:
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 rdcmps(LUN)
Read the next compressed BUFR data subset into internal arrays.
subroutine rdtree(LUN, IRET)
This subroutine unpacks the next subset from the internal uncompressed message buffer (array mbay in ...
recursive subroutine readsb(LUNIT, IRET)
Read the next data subset from a BUFR message.
recursive subroutine status(LUNIT, LUN, IL, IM)
Check whether a specified Fortran logical unit number is currently connected to the NCEPLIBS-bufr sof...
subroutine upb(NVAL, NBITS, IBAY, IBIT)
This subroutine decodes an integer value from within a specified number of bits of an integer array,...
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.