*     G08AKF Example Program Text
*     Mark 14 Release. NAG Copyright 1989.
*     .. Parameters ..
      INTEGER          NIN, NOUT
      PARAMETER        (NIN=5,NOUT=6)
      INTEGER          MAXN1, MAXN2, MAXL, MAXIW
      PARAMETER        (MAXN1=25,MAXN2=25,MAXL=8000,MAXIW=100)
*     .. Local Scalars ..
      DOUBLE PRECISION P, PEXACT, U, UNOR
      INTEGER          I, IFAIL, LWRK, N, N1, N2, NSUM
      LOGICAL          TIES
*     .. Local Arrays ..
      DOUBLE PRECISION RANKS(MAXN1+MAXN2), WRK(MAXL), X(MAXN1), Y(MAXN2)
      INTEGER          IWRK(MAXIW)
*     .. External Subroutines ..
      EXTERNAL         G08AHF, G08AKF
*     .. Intrinsic Functions ..
      INTRINSIC        MIN
*     .. Executable Statements ..
      WRITE (NOUT,*) 'G08AKF Example Program Results'
*     Skip heading in data file
      READ (NIN,*)
      READ (NIN,*) N1, N2
      WRITE (NOUT,*)
      IF ((N1.LE.MAXN1) .AND. (N2.LE.MAXN2)) THEN
         WRITE (NOUT,99999) 'Sample size of group 1 = ', N1
         WRITE (NOUT,99999) 'Sample size of group 2 = ', N2
         WRITE (NOUT,*)
         READ (NIN,*) (X(I),I=1,N1)
         WRITE (NOUT,*) 'Mann-Whitney U test'
         WRITE (NOUT,*)
         WRITE (NOUT,*) 'Data values'
         WRITE (NOUT,*)
         WRITE (NOUT,99998) '    Group 1  ', (X(I),I=1,N1)
         READ (NIN,*) (Y(I),I=1,N2)
         WRITE (NOUT,*)
         WRITE (NOUT,99998) '    Group 2  ', (Y(I),I=1,N2)
         IFAIL = 0
*
         CALL G08AHF(N1,X,N2,Y,'Lower-tail',U,UNOR,P,TIES,RANKS,WRK,
     +               IFAIL)
*
         WRITE (NOUT,*)
         WRITE (NOUT,99997) 'Test statistic     = ', U
         WRITE (NOUT,99997) 'Normal statistic   = ', UNOR
         WRITE (NOUT,99997) 'Tail probability   = ', P
         WRITE (NOUT,*)
         IF (TIES) THEN
            NSUM = N1 + N2
            WRITE (NOUT,*)
            WRITE (NOUT,*) 'Ranks'
            WRITE (NOUT,*)
            WRITE (NOUT,99998) '    Group 1  ', (RANKS(I),I=1,N1)
            WRITE (NOUT,*)
            WRITE (NOUT,99998) '    Group 2  ', (RANKS(I),I=N1+1,NSUM)
            N = MIN(N1,N2)
            LWRK = N + N*(N+1)*NSUM - N*(N+1)*(2*N+1)/3 + 1
            WRITE (NOUT,*)
            WRITE (NOUT,99996)
     +        'The length of the workspace is calculated as ', LWRK
            IFAIL = 0
*
            CALL G08AKF(N1,N2,'Lower-tail',RANKS,U,PEXACT,WRK,LWRK,IWRK,
     +                  IFAIL)
*
            WRITE (NOUT,*)
            WRITE (NOUT,99997) 'Exact tail probability = ', PEXACT
         ELSE
            WRITE (NOUT,*)
     +'There are no ties in the pooled sample so G08AKF was not called.'
         END IF
      ELSE
         WRITE (NOUT,*) 'Either N or M is out of range :'
         WRITE (NOUT,99995) 'N1 = ', N1, ' AND N2 = ', N2
      END IF
*
99999 FORMAT (1X,A,I5)
99998 FORMAT (1X,A,8F5.1,2(/14X,8F5.1))
99997 FORMAT (1X,A,F10.4)
99996 FORMAT (1X,A,I10)
99995 FORMAT (1X,A,I16,A,I16)
      END
