默认状态为"未知"在开放

时间:2014-12-07 08:23:13

标签: fortran gfortran intel-fortran

我经常看到人们在没有明确指定OPEN的情况下使用STATUS语句。在Fortran 90和2008标准中,关于STATUS

  

如果指定了UNKNOWN,则状态取决于处理器。如果省略此说明符,则默认值为UNKNOWN。

我将此解释为,如果省略STATUS,则可能会发生任何事情,具体取决于您正在使用的机器。

然而,通过做一些测试,似乎默认行为(省略STATUS时)是REPLACE。但是我无法在gfortran编译器手册中找到这种行为(来自https://gcc.gnu.org/onlinedocs/)。

问题:这个REPLACE确实是gfortran和ifort等热门编译器中的默认行为吗?如果是这样,这是否真的记录了(但我碰巧找不到它)?

2 个答案:

答案 0 :(得分:3)

在常见的编译器中,UNKNOWN在所有编译器中表现得非常相似。但它肯定不等同于REPLACE!该选择会覆盖您想要阅读的数据!

IBM XL Fortran手册指定了:

  

UNKNOWN,用于连接现有文件,或创建和连接新文件   文件。如果文件存在,则将其连接为OLD。如果文件没有   存在,它连接为新的。

答案 1 :(得分:0)

UNKNOWN表示创建文件(如果尚不存在),然后将其打开。