Fortran

目次
Fortranとは
Fortran(Formula Translation)は、1957年にIBMによって開発された、数値計算や科学技術計算に特化したプログラミング言語です。高い計算効率を持ち、物理学、気象学、工学、計算科学などの分野で広く使用されています。
Fortranの特徴
Fortranは、以下のような特徴を持つプログラミング言語です。
- 科学技術計算に特化: 数値解析、シミュレーション、線形代数計算に優れている。
- 高い計算性能: ハードウェアに最適化されやすく、C言語と並ぶ高速処理が可能。
- 手続き型プログラミング: 古くからの手続き型言語として、関数やサブルーチンを利用。
- 大規模データ処理に適している: 行列演算やベクトル処理を効率的に扱える。
- 進化し続けている: Fortran 90、95、2003、2008、2018と、長年にわたって改良が続けられている。
Fortranの基本構造
以下に、Fortranプログラムの基本構造を示します。
基本的なFortranプログラムの例
PROGRAM HelloWorld
PRINT *, "Hello, World!"
END PROGRAM HelloWorld
Fortranの基本構文
1. 変数とデータ型
Fortranでは、変数の型を明示的に指定する必要があります。
データ型の例
データ型 | 意味 | 例 |
---|---|---|
INTEGER | 整数型 | INTEGER :: x = 10 |
REAL | 浮動小数点数型(単精度) | REAL :: pi = 3.1415 |
DOUBLE PRECISION | 倍精度浮動小数点数型 | DOUBLE PRECISION :: large = 123.456 |
CHARACTER | 文字列型 | CHARACTER(LEN=10) :: name = "Taro" |
LOGICAL | 真偽値型 | LOGICAL :: isActive = .TRUE. |
2. 条件分岐(IF文)
FortranのIF文を使用すると、条件によって異なる処理を実行できます。
PROGRAM CheckNumber
INTEGER :: num
PRINT *, "Enter a number:"
READ *, num
IF (num > 0) THEN
PRINT *, "Positive number"
ELSE IF (num == 0) THEN
PRINT *, "Zero"
ELSE
PRINT *, "Negative number"
END IF
END PROGRAM CheckNumber
3. 繰り返し処理(DOループ)
Fortranでは、DOループを使用して繰り返し処理を行うことができます。
DO ループの例
PROGRAM LoopExample
INTEGER :: i
DO i = 1, 5
PRINT *, "i =", i
END DO
END PROGRAM LoopExample
WHILE ループの例
PROGRAM WhileExample
INTEGER :: i
i = 0
DO WHILE (i < 5)
PRINT *, "i =", i
i = i + 1
END DO
END PROGRAM WhileExample
4. 関数とサブルーチン
Fortranでは、関数(FUNCTION)やサブルーチン(SUBROUTINE)を利用してコードの再利用を行えます。
関数の例
PROGRAM FunctionExample
REAL :: a, b, result
PRINT *, "Enter two numbers:"
READ *, a, b
result = AddNumbers(a, b)
PRINT *, "Sum:", result
END PROGRAM FunctionExample
FUNCTION AddNumbers(x, y)
REAL :: x, y, AddNumbers
AddNumbers = x + y
END FUNCTION AddNumbers
サブルーチンの例
PROGRAM SubroutineExample
REAL :: a, b, result
PRINT *, "Enter two numbers:"
READ *, a, b
CALL AddNumbers(a, b, result)
PRINT *, "Sum:", result
END PROGRAM SubroutineExample
SUBROUTINE AddNumbers(x, y, sum)
REAL, INTENT(IN) :: x, y
REAL, INTENT(OUT) :: sum
sum = x + y
END SUBROUTINE AddNumbers
Fortranの用途
Fortranは、以下のような分野で広く利用されています。
- 科学技術計算: 数値解析、線形代数、微分方程式の解法。
- 気象シミュレーション: 気象予測、気候モデリング。
- 物理シミュレーション: 量子力学、流体力学、天体物理学の計算。
- エンジニアリング: 航空宇宙、機械工学、構造解析。
- スーパーコンピュータ: 高性能計算(HPC)分野での大規模シミュレーション。
Fortranのメリット
- 高い計算性能: 科学技術計算に最適化されている。
- コードの可読性: 数式に近い表現で記述可能。
- 安定性と信頼性: 何十年も使われている実績があり、信頼性が高い。
- ベクトル化と並列計算: 大規模計算に適している。
Fortranのデメリット
- 汎用性が低い: 科学技術計算以外の用途には向いていない。
- 最新技術との互換性が低い: Web開発やモダンなソフトウェア開発には適していない。
- ライブラリの選択肢が少ない: 他の言語(Python、C++)と比較するとエコシステムが小さい。
まとめ
Fortranは、科学技術計算や数値シミュレーションに特化したプログラミング言語であり、高い計算性能を持っています。長年にわたって進化を続けており、スーパーコンピュータや科学研究の分野では今も重要な役割を果たしています。