【发布时间】:2015-07-24 18:01:17
【问题描述】:
我正在处理一段遗留的 F77 代码并尝试对其进行转换 到等效的 F90 代码。我在下面遇到了这些行,可以 有人建议我的转换是否正确?
Fortran 77 代码:
Subroutine area(x,y,z,d)
do 15 j=1,10
if (a.gt.b) go to 20
15 CONTINUE
20 Statement 1
Statement 2
Statement 3
end subroutine
我尝试将其转换为 F90,结果如下:
Subroutine area(x,y,z,d)
dloop: do j=1,10
if (a>b) then
statement 1
statement 2
statement 3
else
write(*,*) 'Exiting dloop'
exit dloop
end if
end do dloop
end subroutine
谁能告诉我这种方法是否正确?在我的结果中,我没有得到我期望的结果。所以我的逻辑可能有问题。
【问题讨论】:
-
如果你努力使一些代码现代化,请使用一些缩进,否则我看不出翻译有什么意义。
-
还有一点值得注意:已经是F90码了。
-
为确保没有遗漏,您应该提及修改
a或b的语句,以使if语句最终得到.true.;您可以在示例代码中插入类似do some computations的内容
标签: if-statement fortran fortran90 fortran77 do-loops