105 SUBROUTINE ufbin3(LUNIT,USR,I1,I2,I3,IRET,JRET,STR)
111 COMMON /usrstr/ nnod,ncon,nods(20),nodc(10),ivls(10),kons(10)
127 CALL
status(lunit,lun,il,im)
131 IF(inode(lun).NE.inv(1,lun)) goto 903
135 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
136 errstr = .LE.
'BUFRLIB: UFBIN3 - 3rd ARG. (INPUT) IS 0, ' //
137 .
'SO RETURN WITH 6th AND 7th ARGS. (IRET, JRET) = 0; ' //
141 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
147 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
148 errstr = .LE.
'BUFRLIB: UFBIN3 - 4th ARG. (INPUT) IS 0, ' //
149 .
'SO RETURN WITH 6th AND 7th ARGS. (IRET, JRET) = 0; ' //
153 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
159 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
160 errstr = .LE.
'BUFRLIB: UFBIN3 - 5th ARG. (INPUT) IS 0, ' //
161 .
'SO RETURN WITH 6th AND 7th ARGS. (IRET, JRET) = 0; ' //
165 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
193 1 CALL
conwin(lun,inc1,inc2)
197 ELSEIF(inc1.EQ.0)
THEN
201 IF(nods(i).GT.0)
THEN
203 CALL
getwin(nods(i),lun,ins1,ins2)
204 IF(ins1.EQ.0) goto 100
218 nnvn =
nevn(nods(i),lun,ins1,ins2,i1,i2,i3,usr(i,iret,1))
219 jret = max(jret,nnvn)
226 CALL
nxtwin(lun,ins1,ins2)
227 IF(ins1.GT.0 .AND. ins1.LT.inc2) goto 2
230 IF(iret.EQ.0 .OR. jret.EQ.0)
THEN
232 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
233 errstr =
'BUFRLIB: UFBIN3 - NO SPECIFIED VALUES READ IN, ' //
234 .
'SO RETURN WITH 6th AND/OR 7th ARGS. (IRET, JRET) = 0; ' //
238 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
247 900 CALL
bort(
'BUFRLIB: UFBIN3 - INPUT BUFR FILE IS CLOSED, IT MUST'//
248 .
' BE OPEN FOR INPUT')
249 901 CALL
bort(
'BUFRLIB: UFBIN3 - INPUT BUFR FILE IS OPEN FOR OUTPUT'//
250 .
', IT MUST BE OPEN FOR INPUT')
251 902 CALL
bort(
'BUFRLIB: UFBIN3 - A MESSAGE MUST BE OPEN IN INPUT '//
252 .
'BUFR FILE, NONE ARE')
253 903 CALL
bort(
'BUFRLIB: UFBIN3 - LOCATION OF INTERNAL TABLE FOR '//
254 .
'INPUT BUFR FILE DOES NOT AGREE WITH EXPECTED LOCATION IN '//
255 .
'INTERNAL SUBSET ARRAY')
function nevn(NODE, LUN, INV1, INV2, I1, I2, I3, USR)
THIS FUNCTION LOOKS FOR ALL STACKED DATA EVENTS FOR A SPECIFIED DATA VALUE AND LEVEL WITHIN THE PORTI...
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 ufbin3(LUNIT, USR, I1, I2, I3, IRET, JRET, STR)
THIS SUBROUTINE READS SPECIFIED VALUES FROM THE CURRENT BUFR DATA SUBSET WITHIN INTERNAL ARRAYS...
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 ...
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() ...