Fortran數據類型

Fortran語言提供了五種內在數據類型,但是,也可以得到自己的數據類型。這五個固有的類型有:

  • 整型
  • 實型
  • 複雜類型
  • 邏輯類型
  • 字符類型

整型

整數類型只能容納整數值。下面的示例中提取,可以在通常爲4字節整數保存最大值:

program testingInt implicit none

integer :: largeval print *, huge(largeval) end program testingInt

當編譯並執行上述程序也將產生以下結果:

2147483647

需要注意的是huge()函數,可以通過特定的整數數據類型可以保持的最大數目。還可以指定使用的字節數。下面的例子說明了這一點:

program testingInt implicit none !two byte integer
integer(kind=2) :: shortval !four byte integer
integer(kind=4) :: longval !eight byte integer
integer(kind=8) :: verylongval !sixteen byte integer
integer(kind=16) :: veryverylongval !default integer
integer :: defval print *, huge(shortval) print *, huge(longval) print *, huge(verylongval) print *, huge(veryverylongval) print *, huge(defval) end program testingInt

當編譯並執行上述程序,它會產生以下結果:

32767
2147483647
9223372036854775807
170141183460469231731687303715884105727
2147483647

實型

它存儲的浮點數,例如2.0,3.1415,-100.876等

傳統上有兩種不同的實際類型,默認實型和雙精度型。

然而,Fortran語言90/95提供了更多的控制權實數和整數數據類型,通過種類說明,我們將在對數的章節研究精度。

下面的例子展示瞭如何使用實數類型:

program division implicit none ! Define real variables
real :: p, q, realRes ! Define integer variables
integer :: i, j, intRes ! Assigning values
p = 2.0 q = 3.0 i = 2 j = 3 ! floating point division
realRes = p/q
intRes = i/j print *, realRes print *, intRes end program division

當編譯並執行上述程序也將產生以下結果:

0.666666687
0

複雜類型

這被用於存儲複數。一個複雜的數字有兩部分,實數部分和虛數部分。兩個連續的數字存儲單元存儲兩個部分。

例如,該複數(3.0,-5.0)等於3.0 - 5.0i

我們將更詳細地討論複雜類型,在數字章節。

邏輯類型

只有兩個邏輯值:.true. 和.false

字符類型

字符類型存儲字符和字符串。字符串的長度可以通過len個符來指定。如果沒有指定長度,它是1。

例如,

character (len=40) :: name
name = 「Zara Ali」

表達式name(1:4)將得到的子串「Zara」。

隱式類型

Fortran語言的舊版本允許一個叫做隱式類型,也就是說,不必在使用前聲明變量的功能。如果一個變量沒有聲明,則其名稱爲第一個字母,將確定其類型。

其中i的變量名以 i, j, k, l, m, 或 n 開始,被認爲是爲整數變量,其餘都是實型變量。但是,必須聲明所有的變量,因爲它是良好的編程習慣。開始程序如下:

implicit none

這條語句將關閉隱式類型。