* M01NBF Example Program Test * NAG COPYRIGHT 2008. IMPLICIT NONE * .. Parameters .. INTEGER NIN, NOUT PARAMETER (NIN=5,NOUT=6) INTEGER IVMAX PARAMETER (IVMAX=100) * .. Local Scalars .. INTEGER I, IFAIL, INDEX, ITEM, LENIV LOGICAL FIRST * .. Local Arrays .. INTEGER IV(IVMAX) * .. External Functions .. INTEGER M01NBF EXTERNAL M01NBF * .. Executable Statements .. WRITE (NOUT,*) 'M01NBF Example Program Results' WRITE (NOUT,*) * * Read in Reference Vector IV READ (NIN,*) READ (NIN,*) LENIV IF (LENIV.LE.IVMAX) THEN READ (NIN,*) (IV(I),I=1,LENIV) * * Read items sought in the reference vector FIRST = .TRUE. 20 READ (NIN,*,END=40) ITEM * IFAIL = 1 INDEX = M01NBF(FIRST,IV,1,16,ITEM,IFAIL) * IF (IFAIL.EQ.0) THEN IF (FIRST) THEN * Print the reference vector WRITE (NOUT,*) 'Reference Vector is:' WRITE (NOUT,99999) (IV(I),I=1,LENIV) FIRST = .FALSE. END IF * WRITE (NOUT,*) WRITE (NOUT,99998) ITEM, INDEX GO TO 20 ELSE WRITE (NOUT,99997) IFAIL END IF ELSE WRITE (NOUT,99996) IVMAX, LENIV END IF 40 CONTINUE * 99999 FORMAT (1X,8I5) 99998 FORMAT (1X,'Search for item ',I5,' returned index: ',I4) 99997 FORMAT (1X,'** M01NBF returned with IFAIL = ',I5) 99996 FORMAT (1X,'** Length of reference vector = ',I4,' but must not ', + 'exceed ',I3) END