从 Watcom Fortran 迁移到 gfortran 并且不理解这个错误
Migrating from Watcom Fortran to gfortran and do not understand this error
我正在尝试将工作代码从 Watcom Fortran 迁移到 gfortran。我有一个公开声明:
OPEN (UNIT = oufile,
* FILE = OUPATH,
* ACTION = 'WRITE',
* ACCESS = 'SEQUENTIAL',
* STATUS = 'UNKNOWN',
* CARRIAGECONTROL = 'YES',
* BLOCKSIZE = 80,
* FORM = 'FORMATTED',
* IOSTAT = OPERR,
* ERR = 400)
没错,就是F77风格。这东西是恐龙。 * 是连续字符。当我使用 gfortran 编译并出现此错误时:
* STATUS = 'UNKNOWN',
1
Error: Syntax error in OPEN statement at (1)
.f(158,32): error : Syntax error in OPEN statement.
我不明白为什么它在逗号上呕吐。感谢您的帮助。
CARRIAGECONTROL 不是 OPEN 的标准关键字,BLOCKSIZE 也不是。删除这两个开始,看看你得到了什么。然后阅读 gfortran 文档,看看是否有合适的替代品。 BLOCKSIZE 你可能不需要 - 我不确定 gfortran 如何处理传统的 Fortran 回车控制(特别是因为这是一个已删除的功能。)
我正在尝试将工作代码从 Watcom Fortran 迁移到 gfortran。我有一个公开声明:
OPEN (UNIT = oufile,
* FILE = OUPATH,
* ACTION = 'WRITE',
* ACCESS = 'SEQUENTIAL',
* STATUS = 'UNKNOWN',
* CARRIAGECONTROL = 'YES',
* BLOCKSIZE = 80,
* FORM = 'FORMATTED',
* IOSTAT = OPERR,
* ERR = 400)
没错,就是F77风格。这东西是恐龙。 * 是连续字符。当我使用 gfortran 编译并出现此错误时:
* STATUS = 'UNKNOWN',
1
Error: Syntax error in OPEN statement at (1)
.f(158,32): error : Syntax error in OPEN statement.
我不明白为什么它在逗号上呕吐。感谢您的帮助。
CARRIAGECONTROL 不是 OPEN 的标准关键字,BLOCKSIZE 也不是。删除这两个开始,看看你得到了什么。然后阅读 gfortran 文档,看看是否有合适的替代品。 BLOCKSIZE 你可能不需要 - 我不确定 gfortran 如何处理传统的 Fortran 回车控制(特别是因为这是一个已删除的功能。)