gpt4 book ai didi

fortran - Fortran 中 write(*,*) 和 write(6,*) 的区别

转载 作者:行者123 更新时间:2023-12-04 02:21:33 30 4
gpt4 key购买 nike

我知道这听起来像是一个愚蠢的问题:

write(*,*)

write(6,*)

?我在我研究所的 super 计算机上运行一个复杂的代码,它通过一个不同于 6 的单元号输出一个数据文件,显然编译的 Fortran 代码唯一的区别是上面的代码给了我一个不同的数据文件(即数据做不匹配)。

我知道 (*,*) 格式进入标准输出,而 (6,*) 呈现在屏幕上,但是我真的很困惑为什么会这样对我的实际数据有任何影响。任何有关其工作原理的想法都将不胜感激!

最佳答案

* 表示的单位是“标准输出”(不是真正的 Fortran 标准术语)。它通常作为单元号 6 预先连接,但它可以连接到不同的单元 - 编译器选项控制它。您可以使用模块 iso_fortran_env

中的常量 OUTPUT_UNIT 进行检查
OUTPUT_UNIT:
Identifies the preconnected unit identified by the asterisk (*) in WRITE statement.

(来自 gfortran 文档)

大多数情况下,两者的结果是相同的。如果不是您的情况,则必须显示差异的样子。

如果您使用其他单元号并在自己的代码中自行打开它,则任何事情都可能发生。您必须检查打开文件时使用的选项,即 open 语句和适当的编译器选项。

关于fortran - Fortran 中 write(*,*) 和 write(6,*) 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28620899/

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