Fortran

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は、科学技術計算や数値シミュレーションに特化したプログラミング言語であり、高い計算性能を持っています。長年にわたって進化を続けており、スーパーコンピュータや科学研究の分野では今も重要な役割を果たしています。