Fortran Wiki
cshift

Description

cshift(array, shift [, dim]) performs a circular shift on elements of array along the dimension of dim. If dim is omitted it is taken to be 1. dim is a scaler of type integer in the range of 1DIMn)1 \leq \text{DIM} \leq n) where nn is the rank of array. If the rank of array is one, then all elements of array are shifted by shift places. If rank is greater than one, then all complete rank one sections of array along the given dimension are shifted. Elements shifted out one end of each rank one section are shifted back in the other end.

Standard

Fortran 95 and later

Class

Transformational function

Syntax

result = cshift(array, shift [, dim])

Arguments

  • array - Shall be an array of any type.
  • shift - The type shall be integer.
  • dim - The type shall be integer.

Return value

Returns an array of same type and rank as the array argument.

Example

program test_cshift
    integer, dimension(3,3) :: a
    a = reshape( (/ 1, 2, 3, 4, 5, 6, 7, 8, 9 /), (/ 3, 3 /))
    print '(3i3)', a(1,:)
    print '(3i3)', a(2,:)
    print '(3i3)', a(3,:)
    a = cshift(a, SHIFT=(/1, 2, -1/), DIM=2)
    print *
    print '(3i3)', a(1,:)
    print '(3i3)', a(2,:)
    print '(3i3)', a(3,:)
end program test_cshift

category: intrinsics