gpt4 book ai didi

fortran - 总是用 STOP 语句结束 FORTRAN 程序是一种好习惯吗?

转载 作者:行者123 更新时间:2023-12-04 17:46:32 24 4
gpt4 key购买 nike

正如标题所说,真的。

有什么反对不使用停止,像这样:

PROGRAM myprog
.
. < do stuff >
.
END PROGRAM myprog

而不是使用显式停止,如下所示:
PROGRAM myprog
.
. < do stuff >
.
STOP
END PROGRAM myprog

我看到很多旧的 Fortran 代码都有 STOP之前 END PROGRAM声明,但那里真的需要它吗?

在我们的 Cray 机器上,有一个 STOP程序最后的stament将字符串“STOP”写入STDERR,有点烦人……

最佳答案

编码

stop
end program

就现代 Fortran 中的程序返回值而言,这是多余的。 A stop如果支持退出代码,没有整数或字符的停止代码应向操作系统返回 0 退出代码。如 end program遇到行为是相同的,向操作系统返回 0。

差异出现在程序输出中。正如您所指出的, stop产生输出。标准(Fortran 2008 cl. 8.4)说

When an image is terminated by a STOP or ERROR STOP statement, its stop code, if any, is made available in a processor-dependent manner. If any exception (14) is signaling on that image, the processor shall issue a warning indicating which exceptions are signaling; this warning shall be on the unit identified by the named constant ERROR UNIT (13.8.2.8). It is recommended that the stop code is made available by formatted output to the same unit.



这建议停止代码可用于标准错误,这是您的 STOP输出来自。如果您已将停止代码提供给 stop ,它会被输出 STOP .此外,如果有浮点异常信号,您将获得详细说明该条件的标准错误的额外输出。

如果您不希望来自 stop 的额外输出并且不使用它向操作系统返回非零错误代码,您可以从程序中省略它。
stop 可能有历史原因, end主程序结束,但我对 FORTRAN66 手册的简短浏览并没有启发我。

关于fortran - 总是用 STOP 语句结束 FORTRAN 程序是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32995276/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com