我对打开文件中使用“iostat”参数感到困惑。如上所述,当 open 命令成功时,“iostat”的值为 0。
open(unit=99, file='vel_zcor22.txt', status='old', iostat=ierr, err=100)
100 if(ierr .ne. 0) then
print*, 'open file error'
endif
print*, ierr
为什么不使用“iostat”而不是“ierr”来告诉状态。根据我对赋值运算符的理解,“ierr”将其值转移到“iostat”。那么“ierr”在此过程中扮演什么角色呢?
In an open
声明,iostat=ierr
正在使用iostat=
as a 说明符。这不是一个赋值,转移的是值ierr
到变量iostat
.
很像在子例程或函数引用中使用关键字时(其中call sub(a=x)
关联实际参数x
与虚拟参数a
),发生的事情更多的是:
使用变量ierr
存储语句的结果状态。
所以,当“iostat
得到值为 0" 真正发生的是变量ierr
被定义。
您可以使用任何变量名称来代替ierr
,并且通常人们经常使用iostat
:
open(..., iostat=iostat, ...)
同样,您看到的其他部分也不是作业。那是:
open(unit=99, file='vel_zcor22.txt', status='old', iostat=ierr, err=100)
可能看起来像作业,但它仍然说:
在单元 99 上打开该文件,并显示状态'old'
,将控制传递给标记为的语句100
如果有错误。
它没有设置变量unit
至 99 等
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)