编译旧 Fortran 代码的语法错误
Syntax error compiling old Fortran code
我正在尝试使用 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 中有效。
我正在尝试使用 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 中有效。