[英]Syntax error in Fortran OPEN(25,“file.txt”,iostat=stat)
在Fortran(代码:块IDE)中执行以下代码时,编译时错误。
PROGRAM file
IMPLICIT NONE
INTEGER stat
OPEN(25,"file.dat",iostat=stat)
IF(stat==0) THEN
print *, "File read complete"
ELSE
PRINT *, "Err.."
END IF
END PROGRAM file
输出:
/home/file.f90|7|Error: Syntax error in OPEN statement
该声明:
OPEN(25,"file.dat",iostat=stat)
不正确,应显示为: OPEN(25,FILE="file.dat",iostat=stat)
从标准:
Syntax of the OPEN statement
R1204 open-stmt is OPEN ( connect-spec-list )
R1205 connect-spec is [ UNIT = ] file-unit-number
or ACCESS = scalar-default-char-expr
or ACTION = scalar-default-char-expr
or ASYNCHRONOUS = scalar-default-char-expr
or BLANK = scalar-default-char-expr
or DECIMAL = scalar-default-char-expr
or DELIM = scalar-default-char-expr
or ENCODING = scalar-default-char-expr
or ERR = label
or FILE = file-name-expr
or FORM = scalar-default-char-expr
or IOMSG = iomsg-variable
or IOSTAT = stat-variable
or NEWUNIT = scalar-int-variable
or PAD = scalar-default-char-expr
or POSITION = scalar-default-char-expr
or RECL = scalar-int-expr
or ROUND = scalar-default-char-expr
or SIGN = scalar-default-char-expr
or STATUS = scalar-default-char-expr
在open
声明中,控制是通过指定符进行的 。 在问题说明中,我们尝试提供三种方法:连接到的单元,文件名和iostatus。
对于除单位以外的所有说明符,必须以SPECIFIER=...
的形式提供。 如果单位是列表中的第一个unit=
,则unit=
是可选的。
因此,在这种情况下,我们必须
OPEN(20,file="file.txt",iostat=stat) ! Optionally, (unit=20, ...)
尽管open语句的控制列表看起来像由关键字指定的过程参数,但它们是完全不同的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.