*     S17ALF Example Program Text
*     Mark 20 Release. NAG Copyright 2001.
*     .. Parameters ..
      INTEGER          NIN, NOUT
      PARAMETER        (NIN=5,NOUT=6)
      INTEGER          NMAX
      PARAMETER        (NMAX=100)
      DOUBLE PRECISION ZERO
      PARAMETER        (ZERO=0.0D+0)
*     .. Local Scalars ..
      DOUBLE PRECISION A, REL
      INTEGER          I, IFAIL, MODE, N
*     .. Local Arrays ..
      DOUBLE PRECISION X(NMAX)
*     .. External Functions ..
      DOUBLE PRECISION X02AJF
      EXTERNAL         X02AJF
*     .. External Subroutines ..
      EXTERNAL         S17ALF
*     .. Intrinsic Functions ..
      INTRINSIC        SQRT
*     .. Executable Statements ..
      WRITE (NOUT,*) 'S17ALF Example Program Results'
*     Skip heading in data file
      READ (NIN,*)
      WRITE (NOUT,*)
      REL = SQRT(X02AJF())
      READ (NIN,*) A, N, MODE
      IFAIL = 1
*
      CALL S17ALF(A,N,MODE,REL,X,IFAIL)
*
      IF (IFAIL.GE.0) THEN
         WRITE (NOUT,*) '   A   N   MODE   IFAIL          REL'
         WRITE (NOUT,*) '                          (machine-dependent)'
         WRITE (NOUT,*)
         WRITE (NOUT,99999) A, N, MODE, IFAIL, REL
         WRITE (NOUT,*)
         IF (MODE.EQ.1) THEN
            WRITE (NOUT,*) 'Leading N positive zeros of J'
         ELSE IF (MODE.EQ.2) THEN
            WRITE (NOUT,*) 'Leading N positive zeros of Y'
         ELSE IF (MODE.EQ.3) THEN
            IF (A.EQ.ZERO) THEN
               WRITE (NOUT,*) 'Leading N non-negative zeros of J'''
            ELSE
               WRITE (NOUT,*) 'Leading N positive zeros of J'''
            END IF
         ELSE IF (MODE.EQ.4) THEN
            WRITE (NOUT,*) 'Leading N positive zeros of Y'''
         END IF
         WRITE (NOUT,*)
         DO 20 I = 1, N
            WRITE (NOUT,99998) X(I)
   20    CONTINUE
         WRITE (NOUT,*)
      ELSE
         WRITE (NOUT,99997) IFAIL
      END IF
*
99999 FORMAT (1X,F4.1,I4,I7,I8,6X,1P,E9.1)
99998 FORMAT (' x = ',1P,E12.4)
99997 FORMAT (1X,' ** S17ALF returned with IFAIL = ',I5)
      END
