PROGRAM m01eafe ! M01EAF Example Program Text ! Mark 23 Release. NAG Copyright 2011. ! .. Use Statements .. USE nag_library, ONLY : m01daf, m01eaf, nag_wp ! .. Implicit None Statement .. IMPLICIT NONE ! .. Parameters .. INTEGER, PARAMETER :: nin = 5, nout = 6 ! .. Local Scalars .. INTEGER :: i, ifail, j, k, m1, m2, n ! .. Local Arrays .. REAL (KIND=nag_wp), ALLOCATABLE :: rm(:,:) INTEGER, ALLOCATABLE :: irank(:) ! .. Executable Statements .. WRITE (nout,*) 'M01EAF Example Program Results' ! Skip heading in data file READ (nin,*) READ (nin,*) m2, n, k IF (k<1 .OR. k>n) THEN GO TO 20 END IF ALLOCATE (rm(m2,n),irank(m2)) m1 = 1 DO i = m1, m2 READ (nin,*) (rm(i,j),j=1,n) END DO ifail = 0 CALL m01daf(rm(1,k),m1,m2,'Ascending',irank,ifail) DO j = 1, n ifail = 0 CALL m01eaf(rm(m1,j),m1,m2,irank,ifail) END DO WRITE (nout,*) WRITE (nout,99999) 'Matrix sorted on column', k WRITE (nout,*) DO i = m1, m2 WRITE (nout,99998) (rm(i,j),j=1,n) END DO 20 CONTINUE 99999 FORMAT (1X,A,I3) 99998 FORMAT (1X,3F7.1) END PROGRAM m01eafe