Fortran Do循环 do 3 m=m00+iz*(mz-1),m00+iz*(mz-1)+iy*(my-2),iydo 1 n=m,m+ix*(mx-2),ix1 bz(n)=bz(n)+.5*c*(ex(n+iy)-ex(n)-ey(n+ix)+ey(n))cdir$ ivdepdo 3 n=m+ix,m+ix*(mx-2),ix3 bx(n)=bx(n)+rs*(bx(n-iz)-bx(n)+s*(bz(n)-bz(n-ix)))-os*(&ez(n+iy)-ez(n))-(o
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/25 16:06:12
Fortran Do循环 do 3 m=m00+iz*(mz-1),m00+iz*(mz-1)+iy*(my-2),iydo 1 n=m,m+ix*(mx-2),ix1 bz(n)=bz(n)+.5*c*(ex(n+iy)-ex(n)-ey(n+ix)+ey(n))cdir$ ivdepdo 3 n=m+ix,m+ix*(mx-2),ix3 bx(n)=bx(n)+rs*(bx(n-iz)-bx(n)+s*(bz(n)-bz(n-ix)))-os*(&ez(n+iy)-ez(n))-(o
Fortran Do循环
do 3 m=m00+iz*(mz-1),m00+iz*(mz-1)+iy*(my-2),iy
do 1 n=m,m+ix*(mx-2),ix
1 bz(n)=bz(n)+.5*c*(ex(n+iy)-ex(n)-ey(n+ix)+ey(n))
cdir$ ivdep
do 3 n=m+ix,m+ix*(mx-2),ix
3 bx(n)=bx(n)+rs*(bx(n-iz)-bx(n)+s*(bz(n)-bz(n-ix)))-os*(
&ez(n+iy)-ez(n))-(os-c)*(ez(n+iy-iz)-ez(n-iz))-c*(ey(n)-ey(n-iz))
do 2 m=m00+iz*(mz-1),m00+iz*(mz-1)+ix*(mx-2),ix
cdir$ ivdep
do 4 n=m+iy,m+iy*(my-2),iy
4 by(n)=by(n)+rs*(by(n-iz)-by(n)+s*(bz(n)-bz(n-iy)))+os*(
&ez(n+ix)-ez(n))+(os-c)*(ez(n+ix-iz)-ez(n-iz))+c*(ex(n)-ex(n-iz))
do 2 n=m,m+iy*(my-2),iy
2 bz(n)=bz(n)+.5*c*(ex(n+iy)-ex(n)-ey(n+ix)+ey(n))
最近在移植一段fortran代码遇到的 fortran77,普通的do循环我查了资料也成功移植了,这一段完全看不懂怎么循环的,嵌套很奇怪啊.
Fortran Do循环 do 3 m=m00+iz*(mz-1),m00+iz*(mz-1)+iy*(my-2),iydo 1 n=m,m+ix*(mx-2),ix1 bz(n)=bz(n)+.5*c*(ex(n+iy)-ex(n)-ey(n+ix)+ey(n))cdir$ ivdepdo 3 n=m+ix,m+ix*(mx-2),ix3 bx(n)=bx(n)+rs*(bx(n-iz)-bx(n)+s*(bz(n)-bz(n-ix)))-os*(&ez(n+iy)-ez(n))-(o
do 3 m=.
do 1 n=.
1 bz(n)=...
do 3 n=.
3 bx(n)=...
可改成:
do 3 m=...
do 1 n=.
bz(n)=...
1 continue
do 31 n=.
bx(n)=...
31 continue
3 continue