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

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