编译旧Fortran代码的语法错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译旧Fortran代码的语法错误相关的知识,希望对你有一定的参考价值。

我正在尝试用fort77编译遗留的Fortran代码。命令:

fort77 -c leg_code.f leg_code.o

失败了:

Error on line XXX: syntax error

线XXX读取:

CHARACTER(LEN=10) TREE(2,MAXF)

其中MAXF定义为上面的一些行:

  INTEGER MAXF, MAXC
  PARAMETER (MAXF=400, MAXC=20)

如果我删除(LEN=10),代码编译没有问题。

有谁知道这个错误的原因?

答案

如评论中所述,声明声明

CHARACTER(LEN=10) TREE(2,MAXF)

在Fortran 77版本中,此形式声明了长度为10的rank-2字符数组,已在Fortran 90修订版中引入标准Fortran。

在Fortran 77中声明这样一个变量的替代形式

CHARACTER*10 TREE(2,MAXF)

要么

CHARACTER TREE(2,MAXF)*10

将是必需的。只需删除(len=10),如

CHARACTER TREE(2,MAXF)

将变量声明为长度为1的字符数组,但这在Fortran 77中有效。

以上是关于编译旧Fortran代码的语法错误的主要内容,如果未能解决你的问题,请参考以下文章

Fortran语言在线代码运行编译工具推荐

在文件上写入编译错误日志 - Fortran 77

MPI Fortran编译器优化错误[重复]

gfortran编译错误错误:[关闭]的不可分类声明

本机 C 和 Fortran 代码的 Java 内存泄漏

在下面的代码片段中的剩余 ='passthrough' 处的代码中出现语法错误