为什么Inquire pos在Fortran 90中返回0

时间:2014-05-08 16:38:12

标签: fortran fortran90 intrinsics

我正在Fortran 90中读取二进制文件,直接访问,我正试图找出指针位置。为此,我使用:

inquire(unitvector, pos=cur_pos)

但是当我打印cur_pos它总是0时,即使我已经阅读了大量的文件。为什么是0?

编译我使用:

$ ifort -warn all -traceback -free util.F fold2Bloch.f90 -o fold2Bloch

1 个答案:

答案 0 :(得分:1)

用于POS=说明符的变量仅针对与 stream 访问连接的文件而不是所选的直接访问权限进行定义。在这种情况下,0可能会产生结果。

通过直接访问,这个位置可能并没有太大的普遍价值:这种连接的关键是随机访问。

draft standard,第9.10.2.22节(我的重点):

  

为POS =说明符中的 scalar-int-variable 分配紧随为流访问而连接的文件的当前位置后的文件存储单元的编号。 [..] 如果 [..] 该文件未连接以进行流访问 [..] 变量未定义