打开时默认状态为“未知”

box*_*lk1 5 fortran gfortran intel-fortran

我经常看到人们使用该OPEN语句而不明确指定STATUS. 在 Fortran 90 和 2008 标准中,这样说STATUS

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

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

然而,从进行一些测试来看,默认行为(当STATUS省略时)似乎是REPLACE. 但我找不到 gfortran 编译器手册(来自https://gcc.gnu.org/onlinedocs/)中记录的这种行为。

问题:这REPLACE确实是 gfortran 和 ifort 等流行编译器的默认行为吗?如果是这样,这实际上有记录吗(但我只是碰巧没有找到它)?

Vla*_*r F 3

在常见的编译器中,UNKNOWN所有编译器的行为都非常相似。但绝对不等于REPLACE!该选择将覆盖您想要读取的数据!

IBM XL Fortran 手册指定了这一点:

未知,连接现有文件,或创建并连接新文件。如果文件存在,则将其作为 OLD 连接。如果该文件不存在,则将其作为新文件连接。