!----- Ex9_5: Cyclic Permutation ----- SUBROUTINE cyclic(q) INTEGER, pointer :: q(:) q = CSHIFT( q, 1) END SUBROUTINE ! PROGRAM main INTERFACE SUBROUTINE cyclic(q) INTEGER, POINTER :: q(:) END END INTERFACE ! INTEGER, POINTER :: p(:) INTEGER, TARGET :: x(1:5) = (/ 1, 2, 3, 4, 5 /) p => x CALL cyclic(p) PRINT*, x END