do i=1,64
do j=1,64
B(i,j,1,1)=A11(i,j)
B(i,j,1,2)=A12(i,j)
B(i,j,2,1)=A21(i,j)
B(i,j,2,2)=A22(i,j)
enddo
enddo
vvt 发表于 2019-11-14 19:32
Fortran是矢量化的语言,所以很多操作不需要循环
如果数组的大小是一样的,都是64的话。
real :: B(64,64,2 ...
program ex_fcode
implicit none
integer :: i,j
real*8 A11(64,64),A12(64,64),A21(64,64),A22(64,64),B(64,64,2,2)
A11=0.0d0
A12=0.0d0
A21=0.0d0
A22=0.0d0
do i=1,64
do j=1,64
B(i,j,1,1)=A11(i,j)
B(i,j,1,2)=A12(i,j)
B(i,j,2,1)=A21(i,j)
B(i,j,2,2)=A22(i,j)
enddo
enddo
pause
endprogram ex_fcode
GuihangShao 发表于 2019-11-16 13:06
按照楼主代码,在vs2012+ivf2013环境下并没有报错。
代码:
欢迎光临 Fortran Coder (http://bbs.fcode.cn/) | Powered by Discuz! X3.2 |