Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于严格遵守Fortran 77的gfortran编译器标志_Fortran_Gfortran_Fortran77 - Fatal编程技术网

用于严格遵守Fortran 77的gfortran编译器标志

用于严格遵守Fortran 77的gfortran编译器标志,fortran,gfortran,fortran77,Fortran,Gfortran,Fortran77,有没有办法让gfortran拒绝Fortran 77中添加的Fortran 95 我尝试过使用-std=legacy标志,但这似乎只会删除f77程序中的弃用警告;f95增强功能仍然可以正常工作。您可以使用设置固定格式 gfortran -ffixed-form -ffixed-line-length-none [sourcefiles] 这实际上可以带来不同(我这里有一个程序,它可以改变输出!) 我敢肯定,至少有一些选项可以禁用f95的大部分功能。我还可以尝试使用几个gfortran编译器标志

有没有办法让gfortran拒绝Fortran 77中添加的Fortran 95


我尝试过使用
-std=legacy
标志,但这似乎只会删除f77程序中的弃用警告;f95增强功能仍然可以正常工作。

您可以使用设置固定格式

gfortran -ffixed-form -ffixed-line-length-none [sourcefiles]
这实际上可以带来不同(我这里有一个程序,它可以改变输出!)


我敢肯定,至少有一些选项可以禁用f95的大部分功能。

我还可以尝试使用几个gfortran编译器标志

如果您可以灵活地使用其他库,那么除了f77之外还有另一个Fortran 77编译器。 它从Concurrent被称为cf77。它是一个包含一些实时库的编译器。在这里你可以找到

我记得还有许可费。但是这个编译器支持纯f77,并且仍然包含旧的库


另一个选择可能是使用77国集团的编译器,并最终降级您的可用库。这是77国集团编译器的一个例子。

对于gfortran,
gnu
legacy
应该是Fortran 95的超集。
-std
下的选项为95及以后的版本(参见手册)。为什么你想限制自己使用FORTRAN 77?@M.S.B.有几个原因;我在遗留上下文中使用了很多f77库,我只是希望所有东西都是一致的……我觉得这样更好。也许这是一个显而易见的答案,但如果你想强迫自己使用f77,为什么不在代码中使用F90+附加项呢?为什么不试试g77而不是gfortran呢。这样,你就不必担心以后的版本了。我看不出有什么好的理由让f77在IBM VS Fortran等大型机的利基平台之外保持兼容。特别要注意的是,许多所谓的FORTRAN 77程序不遵守标准,并且包含许多可能未被潜在的验证工具检测到的专有扩展。固定格式并没有真正的区别。固定格式在Fortran 2018中是完全合法的(即使已经过时)。你说的“真的”是什么意思?当然,这是合法的,但按照现代标准,它可以有不同的解释(因为这是我在一个项目中得到的)。但别相信我的话,试试看。我确实参与了一个项目,它带来了不同,但这是很久以前的事了,在过去的3年里我没有写过任何Fortran,所以我已经完全脱离了循环,我不能再重复检查了。不,源表单无法改变输出,除非您的行对于固定输出来说太长,并且以某种不幸的方式将其截断。但是
-ffixed表单
会阻止它,而不是修复它!此外,您必须将文件命名为
.f90
,才能选择执行任何操作。该选项对
.f
.for
文件没有任何作用。据我在回顾编译器文档时了解,
-ffix form
-ffix line length none
一起切换为固定格式,同时允许使用长行。我无法再检查后缀是什么,所以可能是由于文件命名错误而导致的自由形式假设。g77实际上支持许多非标准扩展,甚至支持一些Fortran 90功能。但是有了一些特定的标志(可能是
-pedantic
),它可能会更严格。