      SUBROUTINE RECGET(NFL,KIND,NSTEP,NAME,LEVEL,IBUF,MAXPK,OK)
C 
C     * JAN 25/92 - M.LAZARE. - REPLACE CALL TO BUFFER IN BY FORTRAN
C     *                         INTERFACE TO "C" ROUTINE (TRANSPORTABLE).
C
C     * FEB 11/81 - J.D.HENDERSON 
C
C     * SCANS FILE NF FOR A RECORD WHOSE FIRST FOUR LABEL WORDS ARE...
C     *  1) KIND = 4 CHARACTER FIELD TYPE (4HSPEC,4HGRID,ETC).
C     *  2) NSTEP = TIMESTEP NUMBER.
C     *  3) NAME = 4 CHARACTER NAME.
C     *  4) LEVEL = LEVEL NUMBER. 
C 
C     * THEY ARE NOT CHECKED IF THEY ARE SET TO -1. 
C     *  ORDER OF PRIORITY IN THAT CASE IS KIND,NAME,NSTEP,LEVEL. 
C     * IF NAME IS 0 OR 4HNEXT THE NEXT FIELD OF THE REQUESTED KIND 
C     *  IS READ AND NSTEP ,LEVEL ARE NOT CHECKED.
C     * MAXPK = INPUT BUFFER LENGTH FOR (PACKED) FIELDS.
C 
C     * IF NFL IS NEGATIVE THE FILE IS REWOUND FIRST. 
C     * UPON RETURNING IBUF CONTAINS THE 8 WORD LABEL 
C     *  FOLLOWED BY THE DATA (WHICH MAY BE PACKED).
C 
      INTEGER IBUF(9) 
      LOGICAL OK
C---------------------------------------------------------------------
      OK=.FALSE.
      LHEAD=8 
      MAXRL=LHEAD+MAXPK 
      NF=ABS(NFL)
      IF(NFL.LT.0) REWIND NF
C 
C     * READ THE NEXT RECORD FROM FILE NF INTO IBUF.
C     * IF END-OF-FILE ENCOUNTERED, RETURN WITH OK=.FALSE.
C 
  160 CALL FBUFFIN(NF,IBUF,MAXRL,K,LENREC) 
      IF(K.EQ.0) RETURN
      IF( KIND.NE.-1 .AND.  KIND.NE.IBUF(1)) GO TO 160
      IF(NAME.EQ.0 .OR. NAME.EQ.4HNEXT) GO TO 190 
C 
      IF((NAME.NE.-1 .AND.  NAME.NE.4H  -1) 
     1               .AND.  NAME.NE.IBUF(3)) GO TO 160
      IF(NSTEP.NE.-1 .AND. NSTEP.NE.IBUF(2)) GO TO 160
      IF(LEVEL.NE.-1 .AND. LEVEL.NE.IBUF(4)) GO TO 160
C 
C     * RETURN WITH OK=.TRUE. WHEN REQUESTED RECORD IS FOUND. 
C     * STOP IF THE RECORD FOUND IS TOO LARGE FOR THE BUFFER. 
C 
  190 CALL LBLCHK(LEN,NWDS,NPACK,IBUF)
      IF(LEN-LHEAD.GT.MAXPK) WRITE(6,6026)(IBUF(I),I=1,8),MAXPK 
      IF(LEN-LHEAD.GT.MAXPK) CALL XIT('RECGET',-1)
      OK=.TRUE. 
      RETURN
C---------------------------------------------------------------------
 6026 FORMAT('0',A4,I10,2X,A4,5I6,5X,' BUFFER IS TOO SMALL',I6)
      END 
