2013-10-24 156 views
0

我有一个旧代码,有很多子程序,它们都在Fortran 77中,所以现在我想更新一个子程序,我需要根据Fortran 90/95代码,有什么办法将它转换为77?Fortran 90/95转换器软件到Fortran 77

+1

您正在使用哪种编译器?通常你可以混合使用Fortran 90/95和FORTRAN 77 ... –

+6

不要,只是不要。在最新版本的语言标准下,FORTRAN77很少有效。您应该在Fortran 2003中编写新的代码,并将整个代码编译在一起。 –

+0

@AlexanderVogt我使用ifort。 – alabanas

回答

0

我不完全确定你想要做什么。但正如评论中指出的那样,您可以混合使用Fortran 90/95和Fortran 77(但当然不在同一文件中)。用ifort你可以例如写一个包含主程序file_1.f90的f90文件和包含一些名为file_2.f77的主文件中调用的子程序的另一个f77文件。一起编译它们:

ifort -c file_1.f90 
ifort -c file_2.f77 
ifort file_1.o file_2.o -o file_1 

在您创建目标文件(*的.o),然后您可以链接在一起创建目标文件中的前两行(这里file_1)。如果你需要更多的库,你可以在最后一行中以通常的方式链接它们。希望这可以帮助你。

+0

请注意,虽然Fortran 90+在调用Fortran 77代码时没有问题,但反过来并不总是如此。例如,一个采用假设形状数组的F90子程序(例如'INTEGER,DIMENSION(:) :: ARR')不能从F77调用,因为这些参数通常作为描述符传递(这就是为什么F90需要此类子程序的显式接口) - 与F77编译器完全不同的概念。 –