
- Fortran 教程
- Fortran - 首頁
- Fortran - 概述
- Fortran - 環境設定
- Fortran - 基本語法
- Fortran - 資料型別
- Fortran - 變數
- Fortran - 常量
- Fortran - 運算子
- Fortran - 決策語句
- Fortran - 迴圈語句
- Fortran - 數字
- Fortran - 字元
- Fortran - 字串
- Fortran - 陣列
- Fortran - 動態陣列
- Fortran - 派生資料型別
- Fortran - 指標
- Fortran - 基本輸入輸出
- Fortran - 檔案輸入輸出
- Fortran - 過程
- Fortran - 模組
- Fortran - 內建函式
- Fortran - 數值精度
- Fortran - 程式庫
- Fortran - 程式設計風格
- Fortran - 程式除錯
- Fortran 資源
- Fortran - 快速指南
- Fortran - 有用資源
- Fortran - 討論
Fortran - 資料型別
Fortran 提供五種內建資料型別,但是您也可以派生自己的資料型別。這五種內建型別是:
- 整數型別
- 實數型別
- 複數型別
- 邏輯型別
- 字元型別
整數型別
整數型別只能儲存整數值。下面的例子提取了通常的四位元組整數中可以儲存的最大值:
program testingInt implicit none integer :: largeval print *, huge(largeval) end program testingInt
編譯並執行上述程式後,將產生以下結果:
2147483647
請注意,**huge()** 函式給出特定整數資料型別可以儲存的最大數字。您也可以使用 **kind** 說明符指定位元組數。下面的例子演示了這一點:
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 等。
傳統上,有兩種不同的實數型別,預設的 **real** 型別和 **double precision** 型別。
然而,Fortran 90/95 透過 **kind** 說明符提供了對實數和整數資料型別精度的更多控制,我們將在“數字”一章中學習。
下面的例子展示了實數型別的用法:
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、j、k、l、m 或 n 開頭的變數名被認為是整數變數,其他變數是實數變數。但是,您必須宣告所有變數,因為這是良好的程式設計習慣。為此,您需要在程式開頭使用以下語句:
implicit none
此語句關閉隱式型別宣告。