在Fortran>=90中,最好的方法是使用內部函數來指定所需的精度-這既保證了可移植性,也保證了所需的精度。例如,獲取整數i
和my_int
這將支持至少8個小數位數,您可以使用:
integer, parameter :: RegInt_K = selected_int_kind (8)
integer (kind=RegInt_K) :: i, my_int
已定義RegInt_K
(或您選擇的任何名稱)作為parameter
,您可以在整個代碼中使用它作為符號。這也使得更改精度變得容易。
請求8或9個小數位數通常會得到一個4字節的整數.
integer*4
是一個常見的擴展,可以追溯到舊的FORTRAN來指定一個4字節的整數。雖然,這個語法不是而且從來都不是標準的Fortran。
integer (4)
或integer (RegInt_K)
是縮寫integer (kind=4)
或integer (kind=RegInt_K)
. integer (4)
與integer*4
而且是不可移植的-語言標準沒有指定種類的數值。大多數編譯器使用kind=4
用于4字節整數-用于這些編譯器integer*4
和integer(4)
將提供相同的整數類型-但也有例外,因此integer(4)
是不可攜帶的,最好避免。
REALS的方法也是類似的。
更新:如果您不想按照所需的精度指定數字類型,而是通過它們將要使用的存儲來指定數字類型,則Fortran 2008提供了一個方法。reals和整數可以由后面的存儲位數指定。use
使.ISO_FORTRAN_ENV
模塊,例如,對于一個4字節(32位)整數:
use ISO_FORTRAN_ENV
integer (int32) :: MyInt
gfortran手冊在“內部模塊”下有文檔。