🔬 Fortran

科学技術計算に特化した高性能プログラミング言語

Fortranについて

Fortran(Formula Translation)は1957年にIBMのJohn Backusによって開発された、世界初の高水準プログラミング言語の一つです。科学技術計算に特化しており、現在でも気象予報、宇宙開発、原子力シミュレーションなどの分野で広く使用されています。

特徴

  • 数値計算に最適化された設計
  • 配列操作の優秀なサポート
  • 並列処理機能
  • 高い計算精度
  • 長年にわたる安定性

主な用途

  • 気象・気候シミュレーション
  • 原子力・核融合計算
  • 宇宙物理学計算
  • 流体力学シミュレーション
  • 構造解析・有限要素法

現代のFortran

  • Fortran 90/95 - モダン化の始まり
  • Fortran 2003 - オブジェクト指向
  • Fortran 2008 - 並列処理強化
  • Fortran 2018 - 最新標準
  • Fortran 202X - 開発中

バージョンの歴史

  • FORTRAN I (1957) - 世界初の高水準言語
  • FORTRAN IV (1962) - 業界標準となる
  • FORTRAN 77 (1978) - 構造化プログラミング
  • Fortran 90 (1991) - 大幅な機能拡張
  • Fortran 95 (1997) - 高性能Fortran統合
  • Fortran 2003 (2004) - オブジェクト指向機能
  • Fortran 2008 (2010) - 並列処理機能
  • Fortran 2018 (2018) - 現在の最新標準

サンプルコード

Fortranの基本的な例をいくつか紹介します:

Hello World (Modern Fortran)

program hello implicit none print *, 'Hello, World!' end program hello

配列操作

program array_example implicit none integer, parameter :: n = 5 real :: a(n), b(n), c(n) integer :: i ! 配列の初期化 a = [1.0, 2.0, 3.0, 4.0, 5.0] b = [2.0, 4.0, 6.0, 8.0, 10.0] ! 配列の要素ごとの操作 c = a + b ! 結果の出力 do i = 1, n print *, 'c(', i, ') = ', c(i) end do end program array_example

関数とサブルーチン

program math_functions implicit none real :: radius, area, volume radius = 5.0 area = circle_area(radius) volume = sphere_volume(radius) print *, '半径:', radius print *, '円の面積:', area print *, '球の体積:', volume end program math_functions ! 円の面積を計算する関数 real function circle_area(r) implicit none real, intent(in) :: r real, parameter :: pi = 3.14159265359 circle_area = pi * r * r end function circle_area ! 球の体積を計算する関数 real function sphere_volume(r) implicit none real, intent(in) :: r real, parameter :: pi = 3.14159265359 sphere_volume = (4.0/3.0) * pi * r**3 end function sphere_volume

なぜFortranが科学計算で使われるのか?

性能面の優位性

  • 数値計算に最適化されたコンパイラ
  • 効率的な配列処理
  • 並列処理の優秀なサポート
  • メモリ効率の良さ

科学計算への適合性

  • 数学的表現に近い構文
  • 豊富な数値計算ライブラリ
  • 長年蓄積されたコード資産
  • 信頼性の高さ

学習リソース