FTN4
      SUBROUTINE ITEQU(ITN,KBUF), 92903-16315 REV.1805  770722
C 
C     SOURCE 92903-18315
C 
C 
C 
C     **************************************************************
C     * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978.  ALL RIGHTS    *
C     * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- *
C     * PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH-  *
C     * OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.  *
C     **************************************************************
C 
C 
C 
C*********************************************************************
C*                                                                   *
C*                 THIS SUBROUTINE IS USED TO SEARCH ALL THE KEY     *
C*   ITEMS # WHICH CORRESPONDS TO THE SAME KEY IN AN IMAGE DATA      *
C*   BASE                                                            *
C*                 ITN IS THE KEY ITEM # IN THE        DATA SET      *
C*                 KBUF IS A 5 WORDS LONG BUFFER CONTAINING THE      *
C*           ITEM #'S EQUIVALENTS                                    *
C*                                                                   *
C*                 IF AN ERROR IS DETECTED KBUF(1)=-1 ON RETURN      *
C*                                                                   *
C*********************************************************************
C 
      DIMENSION KBUF(1),IBUF(12)
C 
C 
C   INITIALISE KBUF 
C 
      DO 100 I=1,5
100   KBUF(I)=0 
C 
C  PERFORM CHECKS  - ITEM IS A KEY
C 
      CALL DBINF(2HI ,2,ITN,IBUF) 
      IF(IBUF.NE.0) GO TO 130 
      IF(IAND(IBUF(5),177400B).EQ.0) GO TO 130
      CALL DBINF(2HS ,2,IBUF(9),IBUF) 
      IF(IBUF.NE.0) GO TO 130 
C 
C  CHECKS OK NOW BUILD KBUF 
C 
      J=1 
      IF(IGET1(IBUF,10).NE.1HD) GO TO 110 
C 
C SEARCH MASTER KEY ITEM # LINKED 
C 
      CALL DBINF(2HS ,4,ITN,IBUF) 
      IF(IBUF.NE.0) GO TO 130 
      IF(IBUF(2).EQ.0) GO TO 125
      KBUF(J)=IBUF(4) 
      J=J+1 
      IBUF=IBUF(4)
      GO TO 115 
C 
C  SEARCH IN DETAIL D.S LINKED
C 
110   IBUF=ITN
115   CALL DBINF(2HS ,4,IBUF,IBUF)
      IF(IBUF.NE.0) GO TO 130 
      IF(IBUF(2).EQ.0) GO TO 125
      DO 120 I=1,IBUF(2)
      IF(IBUF(2*I+2).EQ.ITN) GO TO 120
      KBUF(J)=IBUF(2*I+2) 
      J=J+1 
120   CONTINUE
C 
C  NORMAL RETURN
C 
125   RETURN
C 
C  ERROR RETURN 
C 
130   KBUF=-1 
      RETURN
C 
      END 
      END$
                                                                                        