编译旧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代码的语法错误的主要内容,如果未能解决你的问题,请参考以下文章