NAG Library Manual, Mark 28.5
```    Program g01ddfe

!     G01DDF Example Program Text

!     Mark 28.5 Release. NAG Copyright 2022.

!     .. Use Statements ..
Use nag_library, Only: g01ddf, m01caf, nag_wp
!     .. Implicit None Statement ..
Implicit None
!     .. Parameters ..
Integer, Parameter               :: nin = 5, nout = 6
!     .. Local Scalars ..
Real (Kind=nag_wp)               :: pw, w
Integer                          :: ifail, j, n, pn
Logical                          :: calwts
!     .. Local Arrays ..
Real (Kind=nag_wp), Allocatable  :: a(:), x(:)
!     .. Intrinsic Procedures ..
Intrinsic                        :: allocated
!     .. Executable Statements ..
Write (nout,*) 'G01DDF Example Program Results'
Write (nout,*)

!     Skip heading in data file

pn = 0
j = 0
d_lp: Do
!       Read in the problem size
If (ifail/=0) Then
Exit d_lp
End If

If (pn/=n) Then
If (allocated(x)) Then
Deallocate (x)
Deallocate (a)
End If
Allocate (a(n),x(n))

!         Need to re-calculate the weights
calwts = .True.
Else
!         Use the previously calculated weights
calwts = .False.
End If
pn = n

!       Sort the data
ifail = 0
Call m01caf(x,1,n,'A',ifail)

!       Calculate the test statistic
ifail = 0
Call g01ddf(x,n,calwts,a,w,pw,ifail)

j = j + 1

!       Display results
Write (nout,99999) 'For sample number ', j,                            &
', value of W statistic = ', w
Write (nout,99998) '                     Significance level is ', pw
Write (nout,*)
End Do d_lp

99999 Format (1X,A,I1,A,F7.4)
99998 Format (1X,A,F8.4)
End Program g01ddfe
```