假设我有一个矩阵声明为
double precision, dimension(100,50) :: a
是section
a(:,50:48:-1)
在内存中连续吗?
不,子阵列a(:,50:48:-1)
不是连续的,尽管它占用连续存储。在许多情况下需要创建临时数组。
real, dimension(100,50) :: a
call sub(a(:,50:48:-1))
contains
subroutine sub(b)
real :: b(:,:)
print *, is_contiguous(b)
end subroutine
end
和
> ifort contig.f90
> ./a.out
F