*     H02CBF Example Program Text
*     Mark 20 Revised. NAG Copyright 2001.
*     .. Parameters ..
      INTEGER          NIN, NOUT, LINTVR
      PARAMETER        (NIN=5,NOUT=6,LINTVR=1)
      INTEGER          NMAX, NCMAX
      PARAMETER        (NMAX=10,NCMAX=10)
      INTEGER          LDA, LDH
      PARAMETER        (LDA=NCMAX,LDH=NMAX)
      INTEGER          LIWORK, LWORK, MDEPTH
      PARAMETER        (LIWORK=1000,LWORK=10000,MDEPTH=30)
*     .. Local Scalars ..
      DOUBLE PRECISION OBJ
      INTEGER          I, IFAIL, J, N, NCLIN, STRTGY
*     .. Local Arrays ..
      DOUBLE PRECISION A(LDA,NMAX), AX(NCMAX), BL(NMAX+NCMAX),
     +                 BU(NMAX+NCMAX), CLAMDA(NMAX+NCMAX), CVEC(NMAX),
     +                 H(LDH,NMAX), WORK(LWORK), X(NMAX+NCMAX)
      INTEGER          INTVAR(LINTVR), ISTATE(NMAX+NCMAX), IWORK(LIWORK)
*     .. External Subroutines ..
      EXTERNAL         E04NFU, H02CBF, H02CBU, H02CDF
*     .. Executable Statements ..
      WRITE (NOUT,*) 'H02CBF Example Program Results'
*     Skip heading in data file
      READ (NIN,*)
      READ (NIN,*) N, NCLIN
      IF (N.LE.NMAX .AND. NCLIN.LE.NCMAX) THEN
*
*        Read CVEC, A, BL, BU, X and H from data file
*
         READ (NIN,*) (CVEC(I),I=1,N)
         READ (NIN,*) ((A(I,J),J=1,N),I=1,NCLIN)
         READ (NIN,*) (BL(I),I=1,N+NCLIN)
         READ (NIN,*) (BU(I),I=1,N+NCLIN)
         READ (NIN,*) (X(I),I=1,N)
         READ (NIN,*) ((H(I,J),J=1,N),I=1,N)
*
         STRTGY = 2
         INTVAR(1) = 4
*
         CALL H02CDF('Nolist')
         CALL H02CDF('Print Level = 0')
*
*        Solve the problem
*
         IFAIL = 0
*
         CALL H02CBF(N,NCLIN,A,LDA,BL,BU,CVEC,H,LDH,E04NFU,INTVAR,
     +               LINTVR,MDEPTH,ISTATE,X,OBJ,AX,CLAMDA,STRTGY,IWORK,
     +               LIWORK,WORK,LWORK,H02CBU,IFAIL)
*
*        Print out the best integer solution found
*
         WRITE (NOUT,99999) OBJ, (I,X(I),I=1,N)
*
      END IF
      STOP
*
99999 FORMAT (' Optimal Integer Value is = ',D20.8,/' Components are ',
     +       7(/' x(',I3,') = ',F15.8))
      END
