首页 > 解决方案 > f77 文件通过 ifort 编译但在使用 gfortran 时失败

问题描述

我正在尝试使用 gfortran编译 f77 文件( dfsynthe.for )。在此之前,我尝试使用 ifort by 对其进行编译ifort -double-size 64 -save -o dfsynthe.exe dfsynthe.for,并且成功了。但是,当我尝试使用 gfortran 时,gfortran -std=legacy -fdec -w -o dfsynthe.exe dfsynthe.for我遇到了一堆错误。我假设使用 gfortran 和 ifort 时语法存在一些差异,但我不知道它们到底是什么。

我的 ifort 版本是ifort (IFORT) 19.0.3.199 20190206,gfortran 版本是GNU Fortran (Ubuntu 8.3.0-6ubuntu1~18.10.1) 8.3.0.

我从 gfortran 得到的错误主要有五种:

dfsynthe.for:135:51:

       OPEN(UNIT=15,STATUS='NEW',FORM='UNFORMATTED',
                                                   1
Error: Syntax error in OPEN statement at (1)
dfsynthe.for:434:20:

       CLOSE(UNIT=12,DISP='DELETE')
                    1
Error: Syntax error in CLOSE statement at (1)
dfsynthe.for:475:11:

      2 3046.604,2238.320,1713.711,1354.044,1096.776,
           1
Error: Syntax error in DATA statement at (1)
dfsynthe.for:3225:29:

   969 IF(T.GE.5000.)GO TO 979
                             1
Error: Label 979 referenced at (1) is never defined
dfsynthe.for:2327:48:

       EQUIVALENCE (D(21),D5(1)),(D(26),D6(1)),(D(31),D7(1))
                                                1
Error: Rank mismatch in array reference at (1) (1/2)

这是dfsynthe.for和错误日志文件error.log的链接。

标签: fortrangfortran

解决方案


您在源文件中有一些选项卡。用空格替换它们,你会走得更远。


推荐阅读