我將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等默認數據類型。默認情況下它是整數嗎?
我將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等默認數據類型。默認情況下它是整數嗎?
傳統上,名稱爲[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++使用行優先順序。您可能需要擔心二維數組的問題。您也可能決定將名稱轉換爲小寫。
COMMON聲明也是這樣嗎? – Sudipto
是的,對於函數參數等。也就是說,基於名稱的默認類型遵循相同的方案。 –
在Fortran中,變量的名字開始與漢字是從我到N字母表(記住Fortran語言是不區分大小寫)是implicitly integer
, and everything else is implicitly real
除非另有說明 - 這大概相當於int
和float
在C++中。
即使早在FORTRAN 77中,這也被認爲是不好的做法,今天通常開始每個Fortran程序和模塊,其語句implicit none
要求每個變量都用明確的類型聲明。
非常感謝您的快速幫助。真的很感謝:) – Sudipto