153 SUBROUTINE ufbrep(LUNIN,USR,I1,I2,IRET,STR)
163 CHARACTER*128 bort_str1,bort_str2,errstr
166 DATA ifirst1/0/,ifirst2/0/
168 SAVE ifirst1, ifirst2
179 CALL
status(lunit,lun,il,im)
182 IF(inode(lun).NE.inv(1,lun)) goto 902
184 io = min(max(0,il),1)
185 IF(lunin.NE.lunit) io = 0
189 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
190 errstr = .LE.
'BUFRLIB: UFBREP - 3rd ARG. (INPUT) IS 0, ' //
191 .
'SO RETURN WITH 5th ARG. (IRET) = 0; 6th ARG. (STR) ='
194 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
199 IF(iprt.EQ.-1) ifirst1 = 1
200 IF(io.EQ.0 .OR. ifirst1.EQ.0 .OR. iprt.GE.1)
THEN
201 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
202 errstr = .LE.
'BUFRLIB: UFBREP - 4th ARG. (INPUT) IS 0, ' //
203 .
'SO RETURN WITH 5th ARG. (IRET) = 0; 6th ARG. (STR) ='
206 IF(iprt.EQ.0 .AND. io.EQ.1)
THEN
207 errstr =
'Note: Only the first occurrence of this WARNING ' //
208 .
'message is printed, there may be more. To output all ' //
211 errstr =
'modify your application program to add ' //
212 .
'"CALL OPENBF(0,''QUIET'',1)" prior to the first call ' //
213 .
'to a BUFRLIB routine.'
216 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
239 CALL
string(str,lun,i1,io)
244 CALL
ufbrp(lun,usr,i1,i2,io,iret)
247 IF(io.EQ.1 .AND. iret.LT.i2) goto 903
252 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
253 errstr =
'BUFRLIB: UFBREP - NO SPECIFIED VALUES READ IN, ' //
254 .
'SO RETURN WITH 5th ARG. (IRET) = 0; 6th ARG. (STR) ='
257 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
261 IF(iprt.EQ.-1) ifirst2 = 1
262 IF(ifirst2.EQ.0 .OR. iprt.GE.1)
THEN
263 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
264 errstr =
'BUFRLIB: UFBREP - NO SPECIFIED VALUES WRITTEN OUT, ' //
265 .
'SO RETURN WITH 5th ARG. (IRET) = 0; 6th ARG. (STR) ='
268 CALL
errwrt(
'MAY NOT BE IN THE BUFR TABLE(?)')
270 errstr =
'Note: Only the first occurrence of this WARNING ' //
271 .
'message is printed, there may be more. To output all ' //
274 errstr =
'modify your application program to add ' //
275 .
'"CALL OPENBF(0,''QUIET'',1)" prior to the first call ' //
276 .
'to a BUFRLIB routine.'
279 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
290 900 CALL
bort(
'BUFRLIB: UFBREP - BUFR FILE IS CLOSED, IT MUST BE'//
292 901 CALL
bort(
'BUFRLIB: UFBREP - A MESSAGE MUST BE OPEN IN BUFR '//
294 902 CALL
bort(
'BUFRLIB: UFBREP - LOCATION OF INTERNAL TABLE FOR '//
295 .
'BUFR FILE DOES NOT AGREE WITH EXPECTED LOCATION IN INTERNAL '//
297 903
WRITE(bort_str1,
'("BUFRLIB: UFBREP - MNEMONIC STRING READ IN IS'//
299 WRITE(bort_str2,
'(18X,"THE NUMBER OF ''LEVELS'' ACTUALLY '//
300 .
'WRITTEN (",I3,") LESS THAN THE NUMBER REQUESTED (",I3,") - '//
301 .
'INCOMPLETE WRITE")') iret,i2
302 CALL
bort2(bort_str1,bort_str2)
subroutine ufbrep(LUNIN, USR, I1, I2, IRET, STR)
This subroutine reads or writes one or more data values from or to the BUFR data subset that is curre...
subroutine bort2(STR1, STR2)
This subroutine calls subroutine errwrt() to log two error messages, then calls subroutine bort_exit(...
This module declares and initializes the BMISS variable.
subroutine string(STR, LUN, I1, IO)
THIS SUBROUTINE CHECKS TO SEE IF A USER-SPECIFIED CHARACTER STRING IS IN THE STRING CACHE (ARRAYS IN ...
subroutine ufbrp(LUN, USR, I1, I2, IO, IRET)
THIS SUBROUTINE WRITES OR READS SPECIFIED VALUES TO OR FROM THE CURRENT BUFR DATA SUBSET WITHIN INTER...
subroutine status(LUNIT, LUN, IL, IM)
This subroutine checks whether a specified Fortran logical unit number is currently connected to the ...
subroutine errwrt(STR)
This subroutine allows the user to specify a custom location for the logging of error and diagnostic ...
subroutine bort(STR)
This subroutine calls subroutine errwrt() to log an error message, then calls subroutine bort_exit() ...