2013-10-24 142 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編譯器完全不同的概念。 –