Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在从Watcom Fortran迁移到gfortran,但不理解此错误_Fortran_Gfortran - Fatal编程技术网

正在从Watcom Fortran迁移到gfortran,但不理解此错误

正在从Watcom Fortran迁移到gfortran,但不理解此错误,fortran,gfortran,Fortran,Gfortran,我正在尝试将工作代码从Watcom Fortran迁移到gfortran。我有一个公开声明: OPEN (UNIT = oufile, * FILE = OUPATH, * ACTION = 'WRITE', * ACCESS = 'SEQUENTIAL', * STATUS = 'UNKNOWN', * CARRIAGECONTROL = 'YES', * BLOCKSIZE = 80, *

我正在尝试将工作代码从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.

我被弄糊涂了,为什么它会吐在逗号上。非常感谢您的帮助。

careecontrol不是OPEN的标准关键字,BLOCKSIZE也不是。先把这两个都去掉,看看能得到什么。然后阅读gfortran文档,查看是否有合适的替代品。BLOCKSIZE您可能不需要—我不确定gfortran如何处理传统的Fortran回车控件(特别是因为这是一个已删除的功能)。

CarineControl不是OPEN的标准关键字,BLOCKSIZE也不是。先把这两个都去掉,看看能得到什么。然后阅读gfortran文档,查看是否有合适的替代品。块大小您可能不需要-我不确定gfortran如何处理传统的Fortran回车控制(特别是因为这是一个已删除的功能)

您是否需要与任何旧数据文件兼容?您是否需要与任何旧数据文件兼容?最近gfortran添加了带编译器选项的CARECARECONTROL支持-FDEC CARECARECONTROL和BLOCKSIZE都是DEC heritage编译器(DEC/Compaq/Intel)识别的关键字(,但“是”不是那些编译器接受的CAREADCONTROL值。请尝试CAREADCONTROL='FORTRAN',并使用上面提到的@tim18选项。我应该注意到,gfortran抱怨的不是逗号,而是后面的逗号。我确实需要CAREADCONTROL来工作。我知道使用输出文件的软件,我是由于某些愚蠢的原因,BLOCKSIZE肯定会成为一个问题。感谢@tim18的编译器选项。最近gfortran添加了带有编译器选项的CARECARDCONTROL支持-FDECCARECONTROL和BLOCKSIZE都是DEC heritage编译器(DEC/Compaq/Intel)识别的关键字(,但“是”不是那些编译器接受的CAREADCONTROL值。请尝试CAREADCONTROL='FORTRAN',并使用上面提到的@tim18选项。我应该注意到,gfortran抱怨的不是逗号,而是后面的逗号。我确实需要CAREADCONTROL来工作。我知道使用输出文件的软件,我是当然,由于某些愚蠢的原因,块大小也会成为一个问题。谢谢@tim18的编译器选项。