129 SUBROUTINE ufbevn(LUNIT,USR,I1,I2,I3,IRET,STR)
135 COMMON /usrstr/ nnod,ncon,nods(20),nodc(10),ivls(10),kons(10)
136 COMMON /ufbn3c/ maxevn
153 CALL
status(lunit,lun,il,im)
157 IF(inode(lun).NE.inv(1,lun)) goto 903
161 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
162 errstr = .LE.
'BUFRLIB: UFBEVN - 3rd ARG. (INPUT) IS 0, ' //
163 .
'SO RETURN WITH 6th ARG. (IRET) = 0; 7th ARG. (STR) ='
166 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
172 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
173 errstr = .LE.
'BUFRLIB: UFBEVN - 4th ARG. (INPUT) IS 0, ' //
174 .
'SO RETURN WITH 6th ARG. (IRET) = 0; 7th ARG. (STR) ='
177 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
183 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
184 errstr = .LE.
'BUFRLIB: UFBEVN - 5th ARG. (INPUT) IS 0, ' //
185 .
'SO RETURN WITH 6th ARG. (IRET) = 0; 7th ARG. (STR) ='
188 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
216 1 CALL
conwin(lun,inc1,inc2)
220 ELSEIF(inc1.EQ.0)
THEN
224 IF(nods(i).GT.0)
THEN
226 CALL
getwin(nods(i),lun,ins1,ins2)
227 IF(ins1.EQ.0) goto 100
241 IF(nods(i).GT.0)
THEN
242 nnvn =
nvnwin(nods(i),lun,ins1,ins2,invn,i3)
243 maxevn = max(nnvn,maxevn)
245 usr(i,iret,n) = val(invn(n),lun)
254 CALL
nxtwin(lun,ins1,ins2)
255 IF(ins1.GT.0 .AND. ins1.LT.inc2) goto 2
260 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
261 errstr =
'BUFRLIB: UFBEVN - NO SPECIFIED VALUES READ IN, ' //
262 .
'SO RETURN WITH 6th ARG. (IRET) = 0; 7th ARG. (STR) ='
265 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
274 900 CALL
bort(
'BUFRLIB: UFBEVN - INPUT BUFR FILE IS CLOSED, IT MUST'//
275 .
' BE OPEN FOR INPUT')
276 901 CALL
bort(
'BUFRLIB: UFBEVN - INPUT BUFR FILE IS OPEN FOR OUTPUT'//
277 .
', IT MUST BE OPEN FOR INPUT')
278 902 CALL
bort(
'BUFRLIB: UFBEVN - A MESSAGE MUST BE OPEN IN INPUT '//
279 .
'BUFR FILE, NONE ARE')
280 903 CALL
bort(
'BUFRLIB: UFBEVN - LOCATION OF INTERNAL TABLE FOR '//
281 .
'INPUT BUFR FILE DOES NOT AGREE WITH EXPECTED LOCATION IN '//
282 .
'INTERNAL SUBSET ARRAY')
subroutine nxtwin(LUN, IWIN, JWIN)
GIVEN INDICES WITHIN THE INTERNAL JUMP/LINK TABLE WHICH POINT TO THE START AND END OF AN "RPC" WINDOW...
subroutine getwin(NODE, LUN, IWIN, JWIN)
GIVEN A NODE INDEX WITHIN THE INTERNAL JUMP/LINK TABLE, THIS SUBROUTINE LOOKS WITHIN THE CURRENT SUBS...
This module declares and initializes the BMISS variable.
subroutine conwin(LUN, INC1, INC2)
THIS SUBROUTINE SEARCHES CONSECUTIVE SUBSET BUFFER SEGMENTS FOR AN ELEMENT IDENTIFIED IN THE USER STR...
subroutine string(STR, LUN, I1, IO)
THIS SUBROUTINE CHECKS TO SEE IF A USER-SPECIFIED CHARACTER STRING IS IN THE STRING CACHE (ARRAYS IN ...
function nvnwin(NODE, LUN, INV1, INV2, INVN, NMAX)
THIS FUNCTION LOOKS FOR AND RETURNS ALL OCCURRENCES OF A SPECIFIED NODE WITHIN THE PORTION OF THE CUR...
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 ufbevn(LUNIT, USR, I1, I2, I3, IRET, STR)
THIS SUBROUTINE READS SPECIFIED VALUES FROM THE CURRENT BUFR DATA SUBSET WITHIN INTERNAL ARRAYS...
subroutine bort(STR)
This subroutine calls subroutine errwrt() to log an error message, then calls subroutine bort_exit() ...