50 CHARACTER*128 BORT_STR
59 CALL openbf(lunit,
'IN',lunit)
60 CALL status(lunit,lun,il,im)
67 CALL readmg(lunit,subset,jdate,iret)
68 IF(iret.LT.0)
GOTO 901
75 IF(nsub(lun).GT.msub(lun))
GOTO 902
77 CALL upb(nbyt,16,
mbay(1,lun),ibit)
79 nsub(lun) = nsub(lun) + 1
83 IF(iret.NE.0)
GOTO 902
89900
WRITE(bort_str,
'("BUFRLIB: RDMGSB - ERROR READING MESSAGE '//
90 .
'(RECORD) NUMBER",I5," IN INPUT BUFR FILE CONNECTED TO UNIT",'//
93901
WRITE(bort_str,
'("BUFRLIB: RDMGSB - HIT END OF FILE BEFORE '//
94 .
'READING REQUESTED MESSAGE NO.",I5," IN BUFR FILE CONNECTED TO'//
95 .
' UNIT",I4)') imsg,lunit
97902
WRITE(bort_str,
'("BUFRLIB: RDMGSB - ALL SUBSETS READ BEFORE '//
98 .
'READING REQ. SUBSET NO.",I3," IN REQ. MSG NO.",I5," IN BUFR '//
99 .
'FILE CONNECTED TO UNIT",I4)') isub,imsg,lunit
subroutine bort(STR)
This subroutine calls subroutine errwrt() to log an error message, then calls subroutine bort_exit() ...
This module contains array and variable declarations used to store BUFR messages internally for multi...
integer, dimension(:), allocatable mbyt
Length (in bytes) of current BUFR message for each internal I/O stream.
integer, dimension(:,:), allocatable mbay
Current BUFR message for each internal I/O stream.
subroutine openbf(LUNIT, IO, LUNDX)
This subroutine connects a new file to the BUFRLIB software for input or output operations.
subroutine rdmgsb(LUNIT, IMSG, ISUB)
THIS SUBROUTINE OPENS A BUFR FILE IN LOGICAL UNIT LUNIT FOR INPUT OPERATIONS, THEN READS A PARTICULAR...
subroutine readmg(LUNXX, SUBSET, JDATE, IRET)
This subroutine reads the next BUFR message from logical unit ABS(LUNXX) into internal arrays.
subroutine readsb(LUNIT, IRET)
This subroutine reads the next data subset from a BUFR message into internal arrays.
subroutine status(LUNIT, LUN, IL, IM)
This subroutine checks whether a specified Fortran logical unit number is currently connected to the ...
subroutine upb(NVAL, NBITS, IBAY, IBIT)
THIS SUBROUTINE UNPACKS AND RETURNS A BINARY INTEGER CONTAINED WITHIN NBITS BITS OF IBAY,...