! test_permute.f90 test generating all permutations of vector program test_permute implicit none integer, parameter :: sz = 10 double precision, dimension(sz,sz) :: A integer, dimension(sz) :: vector, permuter integer :: last integer :: i, j, k, n interface function permute(n, vector, permuter) result(last) integer, intent(in) :: n ! number of items to permute integer, dimension(1:*), intent(inout) :: vector, permuter integer :: last end function permute end interface print *, 'test_permute.f90' n = 1 do while(n .lt. 5) print *, 'initializing, n=',n do i=1,n vector(i) = i permuter(i) = n+1 end do ! i print *, ' ' print *, 'permutations for n=',n last = 0 do while(last .eq.0) last = permute(n, vector, permuter) do i=1,n print *, 'Vector(',i,')=', vector(i),' , per=',permuter(i) end do ! i end do ! while n=n+1 end do ! while print *, 'finished test_permute.f90' end program test_permute