37 RECURSIVE SUBROUTINE ufbrms(IMSG,ISUB,USR,I1,I2,IRET,STR)
47 CHARACTER*128 bort_str,errstr
60 CALL x84(imsg,my_imsg,1)
61 CALL x84(isub,my_isub,1)
64 CALL ufbrms(my_imsg,my_isub,usr,my_i1,my_i2,iret,str)
74 CALL errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
75 errstr = .LE.
'BUFRLIB: UFBRMS - 4th ARG. (INPUT) IS 0, ' //
76 .
'SO RETURN WITH 6th ARG. (IRET) = 0; 7th ARG. (STR) ='
79 CALL errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
85 CALL errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
86 errstr = .LE.
'BUFRLIB: UFBRMS - 5th ARG. (INPUT) IS 0, ' //
87 .
'SO RETURN WITH 6th ARG. (IRET) = 0; 7th ARG. (STR) ='
90 CALL errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
99 CALL rdmemm(imsg,subset,jdate,iret)
100 IF(iret.LT.0)
GOTO 900
102 IF(iret.NE.0)
GOTO 901
110 900
IF(imsg.GT.0)
THEN
111 WRITE(bort_str,
'("BUFRLIB: UFBRMS - REQUESTED MEMORY MESSAGE '//
112 .
'NUMBER TO READ IN (",I5,") EXCEEDS THE NUMBER OF MESSAGES IN '//
113 .
'MEMORY (",I5,")")') imsg,
msgp(0)
115 WRITE(bort_str,
'("BUFRLIB: UFBRMS - REQUESTED MEMORY MESSAGE '//
116 .
'NUMBER TO READ IN IS ZERO - THIS IS NOT VALID")')
120 WRITE(bort_str,
'("BUFRLIB: UFBRMS - REQ. SUBSET NUMBER TO READ '//
121 .
'IN (",I3,") EXCEEDS THE NUMBER OF SUBSETS (",I3,") IN THE '//
122 .
'REQ. MEMORY MESSAGE (",I5,")")') isub,
msub(lun),imsg
subroutine bort(STR)
Log one error message and abort application program.
subroutine errwrt(STR)
This subroutine allows the user to specify a custom location for the logging of error and diagnostic ...
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.
This module contains array and variable declarations used to store the contents of one or more BUFR f...
integer, dimension(:), allocatable msgp
Pointers to the beginning of each message within msgs (up to a maximum of MAXMSG, and where array ele...
integer munit
Fortran logical unit number for use in accessing contents of BUFR files within internal memory.
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 rdmemm(IMSG, SUBSET, JDATE, IRET)
This subroutine reads a specified BUFR message from internal arrays in memory, so that it is now in s...
recursive subroutine rdmems(ISUB, IRET)
This subroutine reads a specified data subset from the BUFR message that was most recently read via a...
recursive subroutine status(LUNIT, LUN, IL, IM)
Check whether a specified Fortran logical unit number is currently connected to the NCEPLIBS-bufr sof...
recursive subroutine ufbint(LUNIN, USR, I1, I2, IRET, STR)
Read/write one or more data values from/to a data subset.
recursive subroutine ufbrms(IMSG, ISUB, USR, I1, I2, IRET, STR)
Read one or more data values from a data subset in internal arrays.
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.