固定 Fortran 连续行中无法识别的标记“&”
Unrecognized token '&' in Fixed Fortran continuation lines
我正在编辑一个旧项目,该项目使用 固定形式 Fortran 并使用 IVF 编译器 进行编译。我目前遇到的问题是 continuation lines in a list:
format(//, 10x,'*******************************************',/, &
10x,'* DIAGONALS OF THE RESIDUAL COV. MATRIX *',/, &
10x,'*******************************************',//, &
2x,'MEASUREMENT',7X,' RESIDUAL COVARIANCE', /)
出于某种原因,& 符号对我不起作用,我不断收到错误消息:
unrecognized token '&' skipped
对于较小的线条,增加固定形式的线条长度并使两条线条一起工作,但有些情况下线条对于此来说太大了。代码是大约 15 年前以固定形式的 Fortran 编写的,但我不熟悉 Fortran 以及新的编译器和设置如何影响代码。
转换为自由格式会导致其他格式出现一系列错误,而且代码似乎没有损坏,所以我认为没有必要转换为自由格式。我尝试过其他缩进方法,例如行尾和行首的 ampersand,星号,以及其他论坛建议使用的斜线,但它们产生了错误:
error #5082: Syntax error, found END-OF-STATEMENT when expecting one
of: <HOLLERITH_CONSTANT> <CHAR_CON_KIND_PARAM> <CHAR_NAM_KIND_PARAM>
<CHARACTER_CONSTANT> ) ...
是否缺少某种格式,或者是否有任何我可以编辑的设置来修复这些错误?
在固定形式的 Fortran 中,您可以在下一行的第 6 列中使用任何字符继续一行,而不是第一行末尾的 &。尝试:
format(//, 10x,'*******************************************',/,
c 10x,'* DIAGONALS OF THE RESIDUAL COV. MATRIX *',/,
c 10x,'*******************************************',//,
c 2x,'MEASUREMENT',7X,' RESIDUAL COVARIANCE', /)
或者将编译器开关 -free 与 .for 或 .f 一起使用
或者使用带有 .F90 的编译器开关 -fixed -132。
在你的情况下,我会将 .f 和 cp 保留为 .F90,然后明确让 makefile 编译 .F90 ...
我通常将 -fixed -132 与 .F90 一起使用,因为我经常在代码中保留 -d 行,但我无法获得 -d 行。使用 -free.
我正在编辑一个旧项目,该项目使用 固定形式 Fortran 并使用 IVF 编译器 进行编译。我目前遇到的问题是 continuation lines in a list:
format(//, 10x,'*******************************************',/, &
10x,'* DIAGONALS OF THE RESIDUAL COV. MATRIX *',/, &
10x,'*******************************************',//, &
2x,'MEASUREMENT',7X,' RESIDUAL COVARIANCE', /)
出于某种原因,& 符号对我不起作用,我不断收到错误消息:
unrecognized token '&' skipped
对于较小的线条,增加固定形式的线条长度并使两条线条一起工作,但有些情况下线条对于此来说太大了。代码是大约 15 年前以固定形式的 Fortran 编写的,但我不熟悉 Fortran 以及新的编译器和设置如何影响代码。
转换为自由格式会导致其他格式出现一系列错误,而且代码似乎没有损坏,所以我认为没有必要转换为自由格式。我尝试过其他缩进方法,例如行尾和行首的 ampersand,星号,以及其他论坛建议使用的斜线,但它们产生了错误:
error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: <HOLLERITH_CONSTANT> <CHAR_CON_KIND_PARAM> <CHAR_NAM_KIND_PARAM> <CHARACTER_CONSTANT> ) ...
是否缺少某种格式,或者是否有任何我可以编辑的设置来修复这些错误?
在固定形式的 Fortran 中,您可以在下一行的第 6 列中使用任何字符继续一行,而不是第一行末尾的 &。尝试:
format(//, 10x,'*******************************************',/,
c 10x,'* DIAGONALS OF THE RESIDUAL COV. MATRIX *',/,
c 10x,'*******************************************',//,
c 2x,'MEASUREMENT',7X,' RESIDUAL COVARIANCE', /)
或者将编译器开关 -free 与 .for 或 .f 一起使用
或者使用带有 .F90 的编译器开关 -fixed -132。
在你的情况下,我会将 .f 和 cp 保留为 .F90,然后明确让 makefile 编译 .F90 ...
我通常将 -fixed -132 与 .F90 一起使用,因为我经常在代码中保留 -d 行,但我无法获得 -d 行。使用 -free.