text:       FUNCTION NEVN(NODE,LUN,INV1,INV2,I1,I2,I3,USR)
  
  C$$$  SUBPROGRAM DOCUMENTATION BLOCK
  C
  C SUBPROGRAM:    NEVN
  C   PRGMMR: WOOLLEN          ORG: NP20       DATE: 2003-11-04
  C
  C ABSTRACT: THIS FUNCTION LOOKS FOR ALL STACKED DATA EVENTS FOR A
  C   SPECIFIED DATA VALUE AND LEVEL WITHIN THE PORTION OF THE CURRENT
  C   SUBSET BUFFER BOUNDED BY THE INDICES INV1 AND INV2.  ALL SUCH
  C   EVENTS ARE ACCUMULATED AND RETURNED TO THE CALLING PROGRAM WITHIN
  C   ARRAY USR.  THE VALUE OF THE FUNCTION ITSELF IS THE TOTAL NUMBER
  C   OF EVENTS FOUND.
  C
  C PROGRAM HISTORY LOG:
  C 2003-11-04  J. WOOLLEN -- ORIGINAL AUTHOR (WAS IN VERIFICATION
  C                           VERSION)
  C 2003-11-04  D. KEYSER  -- UNIFIED/PORTABLE FOR WRF; ADDED
  C                           DOCUMENTATION (INCLUDING HISTORY); OUTPUTS
  C                           MORE COMPLETE DIAGNOSTIC INFO WHEN ROUTINE
  C                           TERMINATES ABNORMALLY
  C 2009-03-31  J. WOOLLEN -- ADDED ADDITIONAL DOCUMENTATION
  C
  C USAGE:    NEVN (NODE, LUN, INV1, INV2, I1, I2, I3, USR)
  C   INPUT ARGUMENT LIST:
  C     NODE     - INTEGER: JUMP/LINK TABLE INDEX OF NODE TO RETURN
  C                STACKED VALUES FOR
  C     LUN      - INTEGER: I/O STREAM INDEX INTO INTERNAL MEMORY ARRAYS
  C     INV1     - INTEGER: STARTING INDEX OF THE PORTION OF THE SUBSET
  C                BUFFER IN WHICH TO LOOK FOR STACK VALUES
  C     INV2     - INTEGER: ENDING INDEX OF THE PORTION OF THE SUBSET
  C                BUFFER IN WHICH TO LOOK FOR STACK VALUES
  C     I1       - INTEGER: LENGTH OF FIRST DIMENSION OF USR
  C     I2       - INTEGER: LENGTH OF SECOND DIMENSION OF USR
  C     I3       - INTEGER: LENGTH OF THIRD DIMENSION OF USR
  C
  C   OUTPUT ARGUMENT LIST:
  C     USR      - REAL*8:(I1,I2,I3) STARTING ADDRESS OF DATA VALUES READ
  C                FROM DATA SUBSET, EVENTS ARE RETURNED IN THE THIRD
  C                DIMENSION FOR A PARTICULAR DATA VALUE AND LEVEL IN THE
  C                FIRST AND SECOND DIMENSIONS
  C     NEVN     - INTEGER: NUMBER OF EVENTS IN STACK (MUST BE LESS THAN
  C                OR EQUAL TO I3)
  C
  C REMARKS:
  C    IMPORTANT: THIS ROUTINE SHOULD ONLY BE CALLED BY ROUTINE UFBIN3,
  C               WHICH, ITSELF, IS CALLED ONLY BY VERIFICATION
  C               APPLICATION PROGRAM GRIDTOBS, WHERE IT WAS PREVIOUSLY
  C               AN IN-LINE SUBROUTINE.  IN GENERAL, NEVN DOES NOT WORK
  C               PROPERLY IN OTHER APPLICATION PROGRAMS AT THIS TIME.
  C
  C    THIS ROUTINE CALLS:        BORT     INVWIN   LSTJPB
  C    THIS ROUTINE IS CALLED BY: UFBIN3
  C                               Should NOT be called by any
  C                               application programs!!!
  C
  C ATTRIBUTES:
  C   LANGUAGE: FORTRAN 77
  C   MACHINE:  PORTABLE TO ALL PLATFORMS
  C
  C$$$
  
        INCLUDE 'bufrlib.prm'
  
        COMMON /USRINT/ NVAL(NFILES),INV(MAXSS,NFILES),VAL(MAXSS,NFILES)
  
        CHARACTER*128 BORT_STR
        DIMENSION     USR(I1,I2,I3)
        REAL*8        VAL,USR
  
  C----------------------------------------------------------------------
  C----------------------------------------------------------------------
  
        NEVN = 0
  
  C  FIND THE ENCLOSING EVENT STACK DESCRIPTOR
  C  -----------------------------------------
  
        NDRS = LSTJPB(NODE,LUN,'DRS')
        IF(NDRS.LE.0) GOTO 100
  
        INVN = INVWIN(NDRS,LUN,INV1,INV2)
        IF(INVN.EQ.0) GOTO 900
  
        NEVN = VAL(INVN,LUN)
        IF(NEVN.GT.I3) GOTO 901
  
  C  SEARCH EACH STACK LEVEL FOR THE REQUESTED NODE AND COPY THE VALUE
  C  -----------------------------------------------------------------
  
        N2 = INVN + 1
  
        DO L=1,NEVN
          N1 = N2
          N2 = N2 + VAL(N1,LUN)
          DO N=N1,N2
          IF(INV(N,LUN).EQ.NODE) USR(1,1,L) = VAL(N,LUN)
          ENDDO
        ENDDO
  
  C  EXITS
  C  -----
  
  100   RETURN
  900   CALL BORT('BUFRLIB: NEVN - CAN''T FIND THE EVENT STACK!!!!!!')
  901   WRITE(BORT_STR,'("BUFRLIB: NEVN - THE NO. OF EVENTS FOR THE '//
       . 'REQUESTED STACK (",I3,") EXCEEDS THE VALUE OF THE 3RD DIM. OF'//
       . ' THE USR ARRAY (",I3,")")') NEVN,I3
        CALL BORT(BORT_STR)
        END
  