应该在现代fortran代码中使用stop语句吗?

时间:2016-05-29 19:39:42

标签: fortran

我的代码是这样的,我正在考虑使用stop语句。在特定的do循环中,如果发现条件为true,则程序应该写入错误消息并返回调用主程序,跳过下面的所有循环。

subroutine abc
.....statements, loops, etc.
  do !fifth do loop
...
...
    if (condition is true) then
        write error message and 
        completely get out of subroutine to caller program
    end if
..more if statements
....

  end do

expressions
....
more do loops 

end subroutine abc

GNU fortran编译器根据https://gcc.gnu.org/onlinedocs/gfortran/Fortran-2008-status.html支持stoperror stop语句。

然而,Chapman的书(fortran 95/2003 for science and engineers,3rd ed。,pp 323)强烈建议不要在任何子程序中使用STOP语句。

另一方面,使用a标志来检查剩余的每个do循环的执行可能更糟。如果将错误标志传递给调用程序并允许后续执行代码,那将毫无意义。

更新:如果代码有并行部分怎么办? 有什么建议吗?

0 个答案:

没有答案