Fortran中写入(*,*)和写入(6,*)之间的差异

Fortran中写入(*,*)和写入(6,*)之间的差异,fortran,fortran90,Fortran,Fortran90,我知道这听起来像个愚蠢的问题:两者之间有什么区别吗 write(*,*) 及 ?? 我在我的研究所的超级计算机上运行一个复杂的代码,它通过不同于6的单元号输出一个数据文件,显然编译的Fortran代码的唯一区别是上面的代码给了我一个不同的数据文件(即,数据不匹配) 我知道(*,*)格式会变成标准输出,而(6,*)会呈现在屏幕上,但是我真的很困惑为什么这会对我的实际数据产生任何影响。如果您有任何关于此工作原理的想法,我们将不胜感激 用*表示的单位是“标准输出”(不是真正的Fortran标准术语)

我知道这听起来像个愚蠢的问题:两者之间有什么区别吗

write(*,*)

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


我知道
(*,*)
格式会变成标准输出,而
(6,*)
会呈现在屏幕上,但是我真的很困惑为什么这会对我的实际数据产生任何影响。如果您有任何关于此工作原理的想法,我们将不胜感激

*
表示的单位是“标准输出”(不是真正的Fortran标准术语)。它通常预先连接为单元号6,但它可以连接到另一个单独的编译器选项控件。您可以使用模块
iso\u fortran\u env

OUTPUT_UNIT:
    Identifies the preconnected unit identified by the asterisk (*) in WRITE statement. 
(来自gfortran文档)

大多数情况下,这两种方法的结果都是一样的。如果不是你的情况,你必须展示出不同之处


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

如果有人想更改它们,可以在
OUTPUT_UNIT:
    Identifies the preconnected unit identified by the asterisk (*) in WRITE statement.