gfortran连续行的最大数目

gfortran连续行的最大数目,fortran,gfortran,limits,Fortran,Gfortran,Limits,我需要一点帮助:根据,延续行的最大数量是有限制的 !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(

我需要一点帮助:根据,延续行的最大数量是有限制的

!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
所以我决定测试一下。我编写了一个jumbo
函数
,其中它计算了一个巨大的代数公式,该公式在语句中被拆分为17146行

!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
我用
gfortran-c test.f90
编译了这个讨厌的东西,5分钟后它返回了一个11.4MB
test.o
文件,没有任何错误或警告。我运行了它,它返回了正确的结果

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

为什么gfortran不遵守最大续行规则


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

我认为即使使用-std=f95这样的选项,也不需要对其进行诊断-pedantic@tim18我很抱歉;我不明白你的意思。你们是说我的问题不适合这个网站吗?他是说,即使有可能并没有警告信息。我个人不知道。那么,你是在抱怨
gfortran
允许你按照规范做你不能做的事情?这种许可是否会以任何方式影响您的程序?如果您希望编译器警告您潜在的不可移植代码,这是一个问题。Ok。既然我打算编写我想与他人共享的代码,那么是否有一个测试程序可以告诉我,我的源代码与其他编译器最大限度地兼容?谢谢我什么都不知道。