请教关于Fortran90的双重循环编程问题

来源:百度知道 编辑:UC知道 时间:2024/06/18 04:09:57
以下两种循环组合哪种运算速度更快?

!A:
do i = 1:100
do j = 1:100
array(i,j) = 10.0
enddo
enddo

!B:
do i = 1:100
do j = 1:100
array(j,i) = 10.0
enddo
enddo

B快。

因为fortran语言中,数据在内存中的顺序为:
1,1
2,1
3,1
4,1
5,1
6,1
7,1
8,1
9,1
10,1
11,1
12,1
.
.
.
.
.
.
100,1
1,2
2,2
3,2
4,2
5,2
6,2
7,2
8,2
9,2
10,2
11,2
12,2
.
.
.
.
.
.
100,2
1,3
2,3
3,3
4,3
5,3
6,3
7,3
8,3
9,3
10,3
11,3
12,3
.
.
.
.
.
.