*     S21BGF Example Program Text
*     Mark 22 Release. NAG Copyright 2006.
*     .. Parameters ..
      INTEGER          NOUT
      PARAMETER        (NOUT=6)
*     .. Local Scalars ..
      DOUBLE PRECISION DM, DN, F, PHI, PI
      INTEGER          IFAIL, IX
*     .. External Functions ..
      DOUBLE PRECISION S21BGF, X01AAF
      EXTERNAL         S21BGF, X01AAF
*     .. Executable Statements ..
      WRITE (NOUT,*) 'S21BGF Example Program Results'
      WRITE (NOUT,*)
      WRITE (NOUT,*) '    DN     PHI    DM      S21BGF   IFAIL'
      WRITE (NOUT,*)
*
      PI = X01AAF(1.0D0)
*
      DO 20 IX = 1, 3
         PHI = IX*PI/6.0D0
         DM = IX*0.25D0
         DN = ((-1.0D0)**(IX+1))*IX*0.1D0
         IFAIL = 1
*
         F = S21BGF(DN,PHI,DM,IFAIL)
*
         IF (IFAIL.GE.0) THEN
            WRITE (NOUT,99999) DN, PHI, DM, F, IFAIL
         ELSE
            WRITE (NOUT,99998) IFAIL
            GO TO 40
         END IF
   20 CONTINUE
*
   40 CONTINUE
*
99999 FORMAT (1X,3F7.2,F12.4,I5)
99998 FORMAT (1X,' ** S21BGF returned with IFAIL = ',I5)
      END
