1 ! Test cshift0 for character arrays.
5 integer, parameter :: n1 = 2, n2 = 3, n3 = 4, slen = 3
6 character (len = slen), dimension (n1, n2, n3) :: a
7 integer (kind = 1) :: shift1 = 3
8 integer (kind = 2) :: shift2 = 4
9 integer (kind = 4) :: shift3 = 5
10 integer (kind = 8) :: shift4 = 6
16 a (i1, i2, i3) = 'ab'(i1:i1) // 'cde'(i2:i2) // 'fghi'(i3:i3)
21 call test (cshift (a, shift1, 1), int (shift1), 0, 0)
22 call test (cshift (a, shift2, 2), 0, int (shift2), 0)
23 call test (cshift (a, shift3, 3), 0, 0, int (shift3))
24 call test (cshift (a, shift4, 3), 0, 0, int (shift4))
26 subroutine test (b, d1, d2, d3)
27 character (len = slen), dimension (n1, n2, n3) :: b
33 if (b (i1, i2, i3) .ne. a (mod (d1 + i1 - 1, n1) + 1, &
34 mod (d2 + i2 - 1, n2) + 1, &
35 mod (d3 + i3 - 1, n3) + 1)) call abort