反向索引会导致连续内存吗?

时间:2014-06-30 17:19:15

标签: multidimensional-array indexing fortran

说我有一个声明为

的矩阵
double precision, dimension(100,50) :: a

部分
a(:,50:48:-1)

在记忆中是连续的吗?

1 个答案:

答案 0 :(得分:4)

不,子引用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