cshift

`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 $1 \leq \text{DIM} \leq n)$ where $n$ 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.

Fortran 95 and later

Transformational function

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

`array`

- Shall be an array of any type.`shift`

- The type shall be`integer`

.`dim`

- The type shall be`integer`

.

Returns an array of same type and rank as the `array`

argument.

```
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