2017-06-09 60 views
1

我写这需要许多连续行(千)哪个选项可以删除英特尔Fortran中延续线的限制?

我发现gfortran可以毫无问题编译Fortran代码,但是,ifort会抱怨

catastrophic error: Statement too long

和编译中止。

有没有一个选项可以让ifort忽略延续线限制?

+1

为什么你需要这么多延续线? – IanH

+0

仅仅因为我自己的好奇心,数学或物理学的哪个分支会产生如此长的表情?我知道它们是由一些代数系统或类似的东西自动生成的。 –

+0

@VladimirF它是一个由mathematica生成的大型矩阵表达式,我懒惰地将其转换为稀疏样式,并希望将其嵌入到一个单独的步骤中。 – user15964

回答

2

标准中延续线的数量有限制。处理器可能不那么严格,但仍然会有限制。我认为你不能改变这个硬性限制。

根据http://fortranwiki.org/fortran/show/Continuation+lines

The Intel Fortran compiler allows up to 511 lines by default, or 255 with -stand f95. The warning message is:

warning #5199: Too many continuation lines

警告是指255个以上,但少于512个,所以你无关。

这从2007年的线程也证实511是一个硬性限制https://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/268739

你可以做的就是用很长的线,超过Fortran标准的132个字符的限制(其它编译器可能需要一个标志,让这个)。这是该线程中@SteveLionel的建议。

+0

-extend-source仅适用于固定格式源,并将行长度从72更改为132.使用自由格式,ifort允许单行更长,如果我正确记忆,最多可达4000个字符。 –

+0

好的,所以它是默认的。我知道gfortran和Cray的这些选项,但找不到英特尔的选择。 –

相关问题