在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手冊在“內部模塊”下有文檔。