【发布时间】:2015-11-27 11:44:38
【问题描述】:
我在一些 CFD 代码中看到他们使用索引变量来访问不同的数组条目。下面是一个简短的例子:
integer :: i,j
integer :: im,ip
real,dimension(0:200,0:200) :: array
do i=1,199
ip = i+1
im = i-1
do j=0:200
var1(i) = 0.5 * ( array(ip,j) - array(i ,j) )
var2(i) = 0.5 * ( array(i ,j) - array(im,j) )
enddo
enddo
这样做有什么好处吗?关于运行时,如果我使用array(i+1,j) 而不是array(ip,j),会有区别吗?
【问题讨论】:
-
嗯,不确定——你的测量结果显示了什么?
-
@HighPerformanceMark 我不会在实际代码上尝试它,因为它有点长:),因此我想在更改之前先问一下。我会尝试一个虚拟程序,看看是否有改进!
-
我认为这只是为了让用户更清楚代码。查看代码的格式(所有内容如何对齐),这可能是唯一的目标
标签: arrays performance fortran mpi