2016-03-21 480 views
0

我將FORTRAN代碼轉換爲C++。在瞭解FORTRAN代碼的同時,我遇到了FORTRAN中的以下代碼片段。FORTRAN中的DIMENSION語句

DIMENSION X(50),Y(50),PARA(6,9)          
DIMENSION AMPA(12),FCUR(20),VER(20),AMPS(20) 

我知道DIMENSION在FORTRAN中不需要任何數據類型。但我無法理解X,Y,PARA等默認數據類型。默認情況下它是整數嗎?

+0

非常感謝您的快速幫助。真的很感謝:) – Sudipto

回答

5

傳統上,名稱爲[I-N]的Fortran變量爲INTEGER,其他所有變量爲REAL。因此,C++中這些變量的最可能類型是float

float X[50], Y[50], PARA[6][9]; 
float AMPA[12], FCUR[20], VER[20], AMPS[20]; 

然而,隨着2D陣列,Fortran的使用column-major order其中C和C++使用行優先順序。您可能需要擔心二維數組的問題。您也可能決定將名稱轉換爲小寫。

+0

COMMON聲明也是這樣嗎? – Sudipto

+1

是的,對於函數參數等。也就是說,基於名稱的默認類型遵循相同的方案。 –

2

在Fortran中,變量的名字開始與漢字是從我到N字母表(記住Fortran語言是不區分大小寫)是implicitly integer, and everything else is implicitly real除非另有說明 - 這大概相當於intfloat在C++中。

即使早在FORTRAN 77中,這也被認爲是不好的做法,今天通常開始每個Fortran程序和模塊,其語句implicit none要求每個變量都用明確的類型聲明。