PROGRAM g08ajfe ! G08AJF Example Program Text ! Mark 23 Release. NAG Copyright 2011. ! .. Use Statements .. USE nag_library, ONLY : g08ahf, g08ajf, nag_wp ! .. Implicit None Statement .. IMPLICIT NONE ! .. Parameters .. INTEGER, PARAMETER :: nin = 5, nout = 6 ! .. Local Scalars .. REAL (KIND=nag_wp) :: p, pexact, u, unor INTEGER :: ifail, lwrk, lwrk1, lwrk2, n1, n2, & nsum LOGICAL :: ties CHARACTER (1) :: tail ! .. Local Arrays .. REAL (KIND=nag_wp), ALLOCATABLE :: ranks(:), wrk(:), x(:), y(:) ! .. Intrinsic Functions .. INTRINSIC int, max ! .. Executable Statements .. WRITE (nout,*) 'G08AJF Example Program Results' WRITE (nout,*) ! Skip heading in data file READ (nin,*) ! Read in problem size READ (nin,*) n1, n2, tail ! Calculate sizes of various workspaces nsum = n1 + n2 ! Workspace for G08AHF lwrk1 = nsum ! Workspace for G08AJF lwrk2 = int(n1*n2/2) + 1 lwrk = max(lwrk1,lwrk2) ALLOCATE (x(n1),y(n2),ranks(nsum),wrk(lwrk)) ! Read in data READ (nin,*) x(1:n1) READ (nin,*) y(1:n2) ! Display title WRITE (nout,*) 'Mann-Whitney U test' WRITE (nout,*) ! Display input data WRITE (nout,99999) 'Sample size of group 1 = ', n1 WRITE (nout,99999) 'Sample size of group 2 = ', n2 WRITE (nout,*) WRITE (nout,*) 'Data values' WRITE (nout,*) WRITE (nout,99998) ' Group 1 ', x(1:n1) WRITE (nout,*) WRITE (nout,99998) ' Group 2 ', y(1:n2) ! Perform test ifail = 0 CALL g08ahf(n1,x,n2,y,tail,u,unor,p,ties,ranks,wrk,ifail) ! Calculate exact probababilities IF ( .NOT. ties) THEN ifail = 0 CALL g08ajf(n1,n2,tail,u,pexact,wrk,lwrk,ifail) END IF ! Display results WRITE (nout,*) WRITE (nout,99997) 'Test statistic = ', u WRITE (nout,99997) 'Normal statistic = ', unor WRITE (nout,99997) 'Tail probability = ', p WRITE (nout,*) IF ( .NOT. ties) THEN WRITE (nout,99997) 'Exact tail probability = ', pexact ELSE WRITE (nout,*) & 'There are ties in the pooled sample so G08AJF was not called.' END IF 99999 FORMAT (1X,A,I5) 99998 FORMAT (1X,A,8F5.1,2(/14X,8F5.1)) 99997 FORMAT (1X,A,F10.4) END PROGRAM g08ajfe