*     D03MAF Example Program Text
*     Mark 14 Revised. NAG Copyright 1989.
*     .. Parameters ..
      INTEGER          SDINDX, SDDIST
      PARAMETER        (SDINDX=100,SDDIST=20)
      INTEGER          NOUT
      PARAMETER        (NOUT=6)
*     .. Local Scalars ..
      DOUBLE PRECISION H
      INTEGER          I, IFAIL, J, M, N, NB, NPTS
*     .. Local Arrays ..
      DOUBLE PRECISION DIST(4,SDDIST), PLACES(2,SDINDX)
      INTEGER          INDX(4,SDINDX)
*     .. External Functions ..
      INTEGER          ISIN
      EXTERNAL         ISIN
*     .. External Subroutines ..
      EXTERNAL         D03MAF
*     .. Executable Statements ..
      WRITE (NOUT,*) 'D03MAF Example Program Results'
      WRITE (NOUT,*)
      H = 4.0D0
      M = 3
      N = 5
      NB = 10
      IFAIL = 1
*
      CALL D03MAF(H,M,N,NB,NPTS,PLACES,INDX,SDINDX,ISIN,DIST,SDDIST,
     +            IFAIL)
*
      IF (IFAIL.EQ.0) THEN
         WRITE (NOUT,*) '  I    X(I)      Y(I)'
         DO 20 I = 1, NPTS
            WRITE (NOUT,99999) I, PLACES(1,I), PLACES(2,I)
   20    CONTINUE
         WRITE (NOUT,*)
         WRITE (NOUT,*) 'INDX'
         DO 40 I = 1, NPTS
            WRITE (NOUT,99998) (INDX(J,I),J=1,4)
   40    CONTINUE
      ELSE
         WRITE (NOUT,99997) IFAIL
      END IF
*
99999 FORMAT (1X,I3,2F10.6)
99998 FORMAT (1X,4I5)
99997 FORMAT (1X,' ** D03MAF returned with IFAIL = ',I5)
      END
*
      INTEGER FUNCTION ISIN(X,Y)
*     Circular domain
*     .. Scalar Arguments ..
      DOUBLE PRECISION X, Y
*     .. Executable Statements ..
      IF ((X-7.0D0)**2+(Y-7.0D0)**2.LE.36.0D0) THEN
         ISIN = 1
      ELSE
         ISIN = 0
      END IF
      RETURN
      END
