无法识别的令牌'&'在固定的Fortran延续行中

时间:2018-05-24 22:52:30

标签: visual-studio visual-studio-2013 fortran intel-fortran

我正在编辑一个使用固定格式 Fortran并使用 IVF编译器进行编译的旧项目。我目前的问题是在列表中使用延续行

format(//,  10x,'*******************************************',/, &
     10x,'* DIAGONALS OF THE RESIDUAL COV. MATRIX   *',/,  &
     10x,'*******************************************',//,  &
     2x,'MEASUREMENT',7X,'  RESIDUAL COVARIANCE', /)

出于某种原因,&符不适合我,我一直收到错误:

  

无法识别的令牌'&'跳过

对于较小的线条,增加固定的线条长度并使两条线条起作用,但有些情况下线条太大。该代码大约15年前编写,并以固定形式Fortran编写,但我不熟悉Fortran以及新编译器和设置如何影响代码。

转换为自由格式会导致一系列错误与其他格式化,代码似乎没有被破坏,所以我不认为转换为自由格式是必要的。我尝试了其他缩进方法,例如一行末尾的&符号和下一个开头的星号,以及斜杠其他论坛建议使用并产生错误:

  

错误#5082:语法错误,在期待一个时发现END-OF-STATEMENT   的:    )...

我缺少哪种格式,或者我可以编辑哪些设置来修复这些错误?

谢谢,加文

2 个答案:

答案 0 :(得分:1)

在固定格式的Fortran中,您将继续使用下一行第6列中任何字符的行,而不是&在第一行的末尾。尝试:

      format(//,  10x,'*******************************************',/,
     c  10x,'* DIAGONALS OF THE RESIDUAL COV. MATRIX   *',/,
     c  10x,'*******************************************',//,
     c  2x,'MEASUREMENT',7X,'  RESIDUAL COVARIANCE', /)

答案 1 :(得分:1)

或者使用编译器开关-free with .for或.f

或者使用编译器开关-fixed -132和.F90。

在你的情况下,我会将.f和cp保存到.F90然后显式让makefile编译.F90 ......

我通常使用-fixed -132和.F90,因为我经常在代码中保留-d-lines,但我无法获得-d-lines。使用-free。