【发布时间】:2023-03-24 20:35:01
【问题描述】:
假设我有一个矩阵声明为
double precision, dimension(100,50) :: a
是节
a(:,50:48:-1)
在内存中连续?
【问题讨论】:
标签: multidimensional-array indexing fortran
假设我有一个矩阵声明为
double precision, dimension(100,50) :: a
是节
a(:,50:48:-1)
在内存中连续?
【问题讨论】:
标签: multidimensional-array indexing fortran
不,子阵列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
【讨论】:
b)的元素不是简单的列优先顺序。