127 SUBROUTINE ufbstp(LUNIN,USR,I1,I2,IRET,STR)
136 CHARACTER*128 bort_str1,bort_str2,errstr
139 DATA ifirst1/0/,ifirst2/0/
141 SAVE ifirst1, ifirst2
152 CALL
status(lunit,lun,il,im)
155 IF(inode(lun).NE.inv(1,lun)) goto 902
157 io = min(max(0,il),1)
158 IF(lunin.NE.lunit) io = 0
162 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
163 errstr = .LE.
'BUFRLIB: UFBSTP - 3rd ARG. (INPUT) IS 0, ' //
164 .
'SO RETURN WITH 5th ARG. (IRET) = 0; 6th ARG. (STR) ='
167 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
172 IF(iprt.EQ.-1) ifirst1 = 1
173 IF(io.EQ.0 .OR. ifirst1.EQ.0 .OR. iprt.GE.1)
THEN
174 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
175 errstr = .LE.
'BUFRLIB: UFBSTP - 4th ARG. (INPUT) IS 0, ' //
176 .
'SO RETURN WITH 5th ARG. (IRET) = 0; 6th ARG. (STR) ='
179 IF(iprt.EQ.0 .AND. io.EQ.1)
THEN
180 errstr =
'Note: Only the first occurrence of this WARNING ' //
181 .
'message is printed, there may be more. To output all ' //
184 errstr =
'modify your application program to add ' //
185 .
'"CALL OPENBF(0,''QUIET'',1)" prior to the first call ' //
186 .
'to a BUFRLIB routine.'
189 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
210 CALL
string(str,lun,i1,io)
215 CALL
ufbsp(lun,usr,i1,i2,io,iret)
217 IF(io.EQ.1 .AND. iret.NE.i2) goto 903
222 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
223 errstr =
'BUFRLIB: UFBSTP - NO SPECIFIED VALUES READ IN, ' //
224 .
'SO RETURN WITH 5th ARG. (IRET) = 0; 6th ARG. (STR) ='
227 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
231 IF(iprt.EQ.-1) ifirst2 = 1
232 IF(ifirst2.EQ.0 .OR. iprt.GE.1)
THEN
233 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
234 errstr =
'BUFRLIB: UFBSTP - NO SPECIFIED VALUES WRITTEN OUT, ' //
235 .
'SO RETURN WITH 5th ARG. (IRET) = 0; 6th ARG. (STR) ='
238 CALL
errwrt(
'MAY NOT BE IN THE BUFR TABLE(?)')
240 errstr =
'Note: Only the first occurrence of this WARNING ' //
241 .
'message is printed, there may be more. To output all ' //
244 errstr =
'modify your application program to add ' //
245 .
'"CALL OPENBF(0,''QUIET'',1)" prior to the first call ' //
246 .
'to a BUFRLIB routine.'
249 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
260 900 CALL
bort(
'BUFRLIB: UFBSTP - BUFR FILE IS CLOSED, IT MUST BE'//
262 901 CALL
bort(
'BUFRLIB: UFBSTP - A MESSAGE MUST BE OPEN IN BUFR '//
264 902 CALL
bort(
'BUFRLIB: UFBSTP - LOCATION OF INTERNAL TABLE FOR '//
265 .
'BUFR FILE DOES NOT AGREE WITH EXPECTED LOCATION IN INTERNAL '//
267 903
WRITE(bort_str1,
'("BUFRLIB: UFBSTP - MNEMONIC STRING READ IN IS'//
269 WRITE(bort_str2,
'(18X,"THE NUMBER OF ''LEVELS'' ACTUALLY '//
270 .
'WRITTEN (",I3,") DOES NOT EQUAL THE NUMBER REQUESTED (",I3,")'//
271 .
' - INCOMPLETE WRITE")') iret,i2
272 CALL
bort2(bort_str1,bort_str2)
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 ufbsp(LUN, USR, I1, I2, IO, IRET)
THIS SUBROUTINE WRITES OR READS SPECIFIED VALUES TO OR FROM THE CURRENT BUFR DATA SUBSET WITHIN INTER...
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 ufbstp(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 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() ...