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)
78 mbyt(lun) = mbyt(lun) + nbyt
79 nsub(lun) = nsub(lun) + 1
83 IF(iret.NE.0) goto 902
89 900
WRITE(bort_str,
'("BUFRLIB: RDMGSB - ERROR READING MESSAGE '//
90 .
'(RECORD) NUMBER",I5," IN INPUT BUFR FILE CONNECTED TO UNIT",'//
93 901
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
97 902
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 upb(NVAL, NBITS, IBAY, IBIT)
THIS SUBROUTINE UNPACKS AND RETURNS A BINARY INTEGER CONTAINED WITHIN NBITS BITS OF IBAY...
subroutine status(LUNIT, LUN, IL, IM)
This subroutine checks whether a specified Fortran logical unit number is currently connected to the ...
subroutine openbf(LUNIT, IO, LUNDX)
This subroutine connects a new file to the BUFRLIB software for input or output operations.
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...
subroutine readmg(LUNXX, SUBSET, JDATE, IRET)
This subroutine reads the next BUFR message from logical unit ABS(LUNXX) into internal arrays...
subroutine rdmgsb(LUNIT, IMSG, ISUB)
THIS SUBROUTINE OPENS A BUFR FILE IN LOGICAL UNIT LUNIT FOR INPUT OPERATIONS, THEN READS A PARTICULAR...
subroutine readsb(LUNIT, IRET)
This subroutine reads the next data subset from a BUFR message into internal arrays.