我正在尝试编译一款Fortran 77编写的软件。我应该指出,我对Fortran并不了解,真的不想修改此软件的代码,特别是因为我不确定软件的许可证,并且不知道是否能够重新分发我修改后的版本。
在OS X和Windows上,使用g77编译器编译代码很顺利(这些系统都可以相对容易地获得该编译器)。但是,在我的Ubuntu系统上,我无法获取到g77,并且如果我尝试安装它的旧版本,似乎会破坏我的整个GCC安装。我已经尝试使用gfortran和g95编译代码,但两者都无法正常工作,具体原因如下:
代码使用实数变量作为循环索引(是的,我知道,这是个坏主意)。 g95支持使用
代码使用实数变量来索引数组,gfortran将支持此功能(并发出警告),但g95将不支持。
有人能否建议一种方法,使用像g95或gfortran这样的现代且易于获取的编译器来编译带有这两个“问题”功能的代码?
在OS X和Windows上,使用g77编译器编译代码很顺利(这些系统都可以相对容易地获得该编译器)。但是,在我的Ubuntu系统上,我无法获取到g77,并且如果我尝试安装它的旧版本,似乎会破坏我的整个GCC安装。我已经尝试使用gfortran和g95编译代码,但两者都无法正常工作,具体原因如下:
代码使用实数变量作为循环索引(是的,我知道,这是个坏主意)。 g95支持使用
-freal-loops
选项实现此功能,但gfortran不支持。代码使用实数变量来索引数组,gfortran将支持此功能(并发出警告),但g95将不支持。
有人能否建议一种方法,使用像g95或gfortran这样的现代且易于获取的编译器来编译带有这两个“问题”功能的代码?
[0, 2^24-1]
,小于32位int
的完整范围(还有其他能够精确表示的整数超出了该范围,但它们不是连续的)。使用双精度可以将该范围扩展到[0, 2^53-1]
,仍然小于long
的完整范围。 - Hristo Iliev