反向索引是否导致连续内存



假设我有一个矩阵声明为

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

相关内容

  • 没有找到相关文章

最新更新