64 SUBROUTINE ufbovr(LUNIT,USR,I1,I2,IRET,STR)
71 CHARACTER*128 bort_str1,bort_str2,errstr
75 DATA ifirst1/0/,ifirst2/0/
87 CALL
status(lunit,lun,il,im)
91 IF(inode(lun).NE.inv(1,lun)) goto 903
98 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
99 errstr = .LE.
'BUFRLIB: UFBOVR - 3rd ARG. (INPUT) IS 0, ' //
100 .
'SO RETURN WITH 5th ARG. (IRET) = 0; 6th ARG. (STR) ='
103 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
108 IF(iprt.EQ.-1) ifirst1 = 1
109 IF(io.EQ.0 .OR. ifirst1.EQ.0 .OR. iprt.GE.1)
THEN
110 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
111 errstr = .LE.
'BUFRLIB: UFBOVR - 4th ARG. (INPUT) IS 0, ' //
112 .
'SO RETURN WITH 5th ARG. (IRET) = 0; 6th ARG. (STR) ='
115 IF(iprt.EQ.0 .AND. io.EQ.1)
THEN
116 errstr =
'Note: Only the first occurrence of this WARNING ' //
117 .
'message is printed, there may be more. To output all ' //
120 errstr =
'modify your application program to add ' //
121 .
'"CALL OPENBF(0,''QUIET'',1)" prior to the first call ' //
122 .
'to a BUFRLIB routine.'
125 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
135 CALL
string(str,lun,i1,io)
136 CALL
trybump(lunit,lun,usr,i1,i2,io,iret)
138 IF(io.EQ.1 .AND. iret.NE.i2) goto 904
141 IF(iprt.EQ.-1) ifirst2 = 1
142 IF(ifirst2.EQ.0 .OR. iprt.GE.1)
THEN
143 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
144 errstr =
'BUFRLIB: UFBOVR - NO SPECIFIED VALUES WRITTEN OUT, ' //
145 .
'SO RETURN WITH 5th ARG. (IRET) = 0; 6th ARG. (STR) ='
148 CALL
errwrt(
'MAY NOT BE IN THE BUFR TABLE(?)')
150 errstr =
'Note: Only the first occurrence of this WARNING ' //
151 .
'message is printed, there may be more. To output all ' //
154 errstr =
'modify your application program to add ' //
155 .
'"CALL OPENBF(0,''QUIET'',1)" prior to the first call ' //
156 .
'to a BUFRLIB routine.'
159 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
169 900 CALL
bort(
'BUFRLIB: UFBOVR - OUTPUT BUFR FILE IS CLOSED, IT '//
170 .
'MUST BE OPEN FOR OUTPUT')
171 901 CALL
bort(
'BUFRLIB: UFBOVR - OUTPUT BUFR FILE IS OPEN FOR '//
172 .
'INPUT, IT MUST BE OPEN FOR OUTPUT')
173 902 CALL
bort(
'BUFRLIB: UFBOVR - A MESSAGE MUST BE OPEN IN OUTPUT '//
174 .
'BUFR FILE, NONE ARE')
175 903 CALL
bort(
'BUFRLIB: UFBOVR - LOCATION OF INTERNAL TABLE FOR '//
176 .
'OUTPUT BUFR FILE DOES NOT AGREE WITH EXPECTED LOCATION IN '//
177 .
'INTERNAL SUBSET ARRAY')
178 904
WRITE(bort_str1,
'("BUFRLIB: UFBOVR - MNEMONIC STRING READ IN IS'//
180 WRITE(bort_str2,
'(18X,"THE NUMBER OF ''LEVELS'' ACTUALLY '//
181 .
'WRITTEN (",I3,") DOES NOT EQUAL THE NUMBER REQUESTED (",I3,")'//
182 .
' - INCOMPLETE WRITE")') iret,i2
183 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(...
subroutine ufbovr(LUNIT, USR, I1, I2, IRET, STR)
THIS SUBROUTINE WRITES OVER SPECIFIED VALUES WHICH EXIST IN CURRENT INTERNAL BUFR SUBSET ARRAYS IN A ...
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 trybump(LUNIT, LUN, USR, I1, I2, IO, IRET)
THIS SUBROUTINE CHECKS THE FIRST NODE ASSOCIATED WITH A CHARACTER STRING (PARSED INTO ARRAYS IN COMMO...
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() ...