ソース・プログラム
program shift
implicit none
integer, parameter :: n = 3
integer :: ia(n, n)
integer :: i, j
character(len = 30) :: fmt
write(fmt, *) '(', n, 'i5)'
forall(i = 1:n, j = 1:n) ia(i, j) = i - 1 + 10 * (j - 1)
print fmt, ia
print *, '------------------'
print fmt, cshift(ia, shift = -[0, 1, 2], dim = 2)
print *, '------------------'
print fmt, eoshift(ia, shift = 2, boundary = [999, 888, 777], dim = 1)
stop
end program shift
実行結果
0 1 2
10 11 12
20 21 22
------------------
0 21 12
10 1 22
20 11 2
------------------
2 999 999
12 888 888
22 777 777
続行するには何かキーを押してください . . .