2012-08-02 62 views
3

我有一段Fortran代碼,並且我的Fortran編輯器(Force 2.0.9)無法理解該代碼中的以下行。Fortran中的變量類型

real(kr8) :: rnum 

我找不到任何關於這種類型的變量聲明。 (kr8)是什麼意思?如果有人能向我解釋,我真的很感激嗎?

+2

'Force 2.0.9'有不同的編譯器有幾個[download options](http://lepsch.blogspot.de/2009/05/downloads.html)。我建議你用'gfortran'獲得一個,並且從FORTRAN 77的世界轉移到Fortran 90+的更好的世界。 – 2012-08-03 08:23:25

回答

6

這是短爲:

real(kind=kr8) :: rnum 

在這種情況下,變量或參數kr8在代碼的其他地方指定 - 這條線以上,如果在相同的步驟,或以不同的文件,如果它是通過訪問一個模塊。從它的名字,可以假設kr8是這樣定義的,它有一種雙精度浮點數(8字節大小)的某種編譯器。

請參閱Fortran編譯器文檔,瞭解kind參數對於各種精度和範圍的整數和實數變量可以採用的值。如果你使用強制,你的編譯器是gfortran,g95或g77。參數kind是引入到Fortran 90的一項功能,如果您的編譯器爲g77,則可能無法使用此參數進行編譯。

對這個SO問題的回答也將有助於閱讀:Fortran 90 kind parameter

+2

'g77'支持'TYPE(KIND = kind)'作爲FORTRAN 77的擴展。但它不理解Fortran 90的_type-declaration-stmt_中的'::'分隔符。 – 2012-08-03 08:21:17

+0

@HristoIliev謝謝,我不知道這個擴展。 – milancurcic 2012-08-03 15:05:16