! This gives incorrect results when compiled with
! the intel and pgf90 compilers
Program Strange

 Implicit None

 Type Link
 Integer, Dimension(2) :: Next
 End Type Link

 Integer, Parameter :: N = 2
 Integer, dimension (2, 4) :: results
 Integer :: i, j

 Type(Link), Dimension(:,:), Pointer :: Perm
 Integer, Dimension(2) :: Current

 Allocate (Perm(N,N))

! Print*, 'Spanned by indices'
 Do i = 1, N**2
    Perm(mod(i-1,N)+1, (i-1)/N+1)%Next = (/ Mod(i,N) + 1, Mod(i/N+1,N)+1/)
!    Write(*,100) mod(i-1,N)+1, (i-1)/N+1, Perm(mod(i-1,N)+1, (i-1)/N+1)%Next
! Expected output:
!  Spanned by indices
!  1 1---> 2 2
!  2 1---> 1 1
!  1 2---> 2 1
!  2 2---> 1 2
 End Do

! Print*, 'Spanned as a cycle'
 Current = (/1,1/) 
 Do i = 1, n**2
   results (:, i) = Perm(Current(1), Current(2))%Next
!    Write(*,100) Current, Perm(Current(1), Current(2))%Next 
! Expected output:
!  1 1---> 2 2
!  2 2---> 1 2
!  1 2---> 2 1
!  2 1---> 1 1
   Current = Perm(Current(1), Current(2))%Next
 End Do

 if (any(results .ne. reshape ((/2,2,1,2,2,1,1,1/), (/2, 4/)))) STOP 1

! 100 Format( 2I3, '--->', 2I3)
 DeAllocate (Perm)

End Program Strange
