繁体   English   中英

Fortran OPEN(25,“ file.txt”,iostat = stat)中的语法错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM