gfortran延续线的最大数量

Qua*_*Dot 3 fortran limits gfortran

我需要一点帮助:根据这个网站,延续线的最大数量是有限制的.

所以我决定测试一下.我写了一个巨型FUNCTION,它计算了在陈述中分成17,146个延续线的巨大代数公式.

!test.f90  1.6 MB file
DOUBLE COMPLEX FUNCTION myfunction(a, b)

  DOUBLE COMPLEX, INTENT(IN) :: a
  DOUBLE COMPLEX, INTENT(IN) :: b

  myfunction = gd0/16.d0)*a*b*((a+b)**2)*((32.d0*DCONJG(f(4)))+(12&
&8.d0*DCONJG(f(11)))+(160.d0*DCONJG(f(24)))+(64.d0*DCONJG(f(46)))+(32.d0*DCONJG(f(3)))+(256.d0*DCON&
&JG(f(10)))+(480.d0*DCONJG(f(23)))+(256.d0*DCONJG(f(45)))+(32.d0*DCONJG(g(9)))+(128.d0*DCONJG(f(&
&9)))+(480.d0*DCONJG(f(22)))+(384.d0*DCONJG(f(44)))+(96.d0*DCONJG(g(21)))+(160.d0*DCONJG(f(21)))+(2&
&56.d0*DCONJG(f(43)))+(64.d0*DCONJG(g(42)))+(64.d0*DCONJG(f(42)))+(64.d0*DCONJG(f(8)))+(192.d0*DCON&
& (64.d0*DCONJG(g(42)) ! and so on and so forth...

END FUNCTION
Run Code Online (Sandbox Code Playgroud)

我编译了这个gfortran -c test.f90令人厌恶的东西,它test.o在5分钟后返回了一个11.4MB的文件,没有任何错误或警告.我跑了,它返回了正确的结果.

为什么不gfortran观察最大延续线规则?

Vla*_*r F 5

为什么gfortran不遵守最大延续线规则?

此规则不是约束,标准允许编译器提供更大的限制作为扩展,标准设置最大连续行数的最小值.编译器可能会报告超出标准最小值,但它不是必需的,可能需要一个标志.