PC パソコン

Fortran入門|できること・できないこと・Windows/Mac/Linuxへのインストール

  1. Fortran入門|できること・できないこと・Windows/Mac/Linuxへのインストール
  2. Fortranとは
  3. Fortranは現在も使われている?
  4. Fortranでできること
    1. 数値計算
    2. 配列・行列を使った計算
    3. 条件分岐や繰り返し処理
    4. ファイルの読み書き
    5. 関数やサブルーチンを作る
    6. 科学技術計算・シミュレーション
  5. Fortran単独ではできないこと
  6. Fortranを無料で使うには
  7. インストール手順で出てくる用語を先に確認
    1. ターミナルとは
    2. コンパイラとは
    3. パッケージ管理ツールとは
  8. Windowsにgfortranをインストールする
    1. 1.MSYS2公式サイトを開く
    2. 2.ダウンロードしたMSYS2をインストールする
    3. 3.UCRT64とは
    4. 4.MSYS2のソフトウェア情報を更新する
    5. 5.gfortranをインストールする
    6. 6.gfortranが使えるか確認する
  9. Macにgfortranをインストールする
    1. 1.Macの「ターミナル」を開く
    2. 2.Homebrewが入っているか確認する
    3. 3.Homebrewをインストールする
    4. 4.Homebrewが利用できるか確認する
    5. 5.GCCとgfortranをインストールする
    6. 6.gfortranが使えるか確認する
  10. Linuxにgfortranをインストールする
    1. 1.ターミナルを開く
    2. 2.インストールできるソフトウェアの情報を更新する
    3. 3.gfortranをインストールする
    4. 4.gfortranが使えるか確認する
    5. Fedoraなどを使っている場合
  11. Windows・Mac・Linuxの違いを整理
  12. 最初のFortranプログラムを作ってみる
  13. コンパイルする
  14. プログラムを実行する
    1. Mac・Linux
    2. Windows(MSYS2)
  15. ソースコードと実行ファイルの違い
  16. Fortranを学ぶのに高性能なパソコンは必要?
  17. Fortranはどんな人に向いている?
  18. Fortranがあまり向いていない用途
  19. 昔のFortranコードも現在の環境で使える?
  20. まとめ
  21. 参考資料

Fortran入門|できること・できないこと・Windows/Mac/Linuxへのインストール

Fortran(フォートラン)は、科学技術計算や数値計算を得意とするプログラミング言語です。
1950年代に登場した非常に歴史の長い言語ですが、現在も開発・標準化が続いており、
2023年には「Fortran 2023」が国際規格として公開されています。

古い言語という印象を持たれやすいFortranですが、
現在でも数値解析、物理シミュレーション、流体力学、気象・気候計算、
構造解析、天文学など、計算量の多い分野で利用されています。

この記事では、Fortranを初めて学ぶ人向けに、
Fortranでできること・できないことを整理したうえで、
Windows、Mac、Linuxに無料のFortranコンパイラ「gfortran」を導入する方法を紹介します。

Fortranとは

Fortranは「FORmula TRANslation」に由来する名称で、
数式や数値計算をコンピュータで処理することを目的として発展してきた言語です。

現在のFortranは、昔のFORTRAN 77などと比べると文法が大きく整理されており、
自由形式のソースコード、モジュール、動的配列、派生型など、
現代的なプログラミングに必要な機能も備えています。

Fortranには、
Fortran 90、Fortran 95、Fortran 2003、Fortran 2008、
Fortran 2018、Fortran 2023などの規格があります。
古いFortranコードとの互換性も比較的重視されており、
現在のコンパイラで過去のコードを扱える場合も多くあります。

Fortranは現在も使われている?

Fortranは現在も現役のプログラミング言語です。
特に、大量の数値を高速に処理する必要がある科学技術計算では、
長年蓄積されたプログラム資産と高い計算性能を背景に利用が続いています。

代表的な利用分野として、次のようなものがあります。

  • 物理シミュレーション
  • 流体力学・CFD
  • 気象・気候モデル
  • 構造解析
  • 有限要素法
  • 数値解析
  • 行列計算
  • 分子動力学
  • 天文学・宇宙科学
  • 地球科学
  • スーパーコンピュータを利用した大規模計算

一方、一般的なプログラミング入門ではPythonなどが使われることが増えており、
Fortranを最初に学ぶ機会は以前より少なくなっています。
そのため、現在のFortranは「何でも作るための汎用言語」というよりも、
数値計算や科学技術計算に強みを持つ専門性の高い言語と考えると分かりやすいでしょう。

Fortranでできること

数値計算

Fortranが最も得意とする分野です。
整数・実数を使った計算だけでなく、三角関数、指数関数、平方根などの数学関数も利用できます。

program calculation
    implicit none
    real :: x, y

    x = 10.0
    y = sqrt(x)

    print *, y
end program calculation

配列・行列を使った計算

Fortranは配列を扱いやすく設計されています。
大量の数値データをまとめて計算する処理に向いています。

program array_example
    implicit none
    real :: a(3), b(3), c(3)

    a = [1.0, 2.0, 3.0]
    b = [4.0, 5.0, 6.0]

    c = a + b

    print *, c
end program array_example

条件分岐や繰り返し処理

IF文による条件分岐や、DO文による繰り返し処理も利用できます。
一般的なプログラミング言語と同様に、
入力された値によって処理を変更したり、同じ計算を何度も繰り返したりできます。

ファイルの読み書き

計算結果をファイルに保存したり、
外部ファイルから数値データを読み込んだりすることもできます。
大量の実験データやシミュレーション結果を処理する場合にも利用できます。

関数やサブルーチンを作る

処理を関数やサブルーチンとして分割できます。
大きなプログラムでも、処理ごとに整理して作成できます。

科学技術計算・シミュレーション

Fortranでは、微分方程式、数値積分、行列計算、
熱伝導、振動、流体などの科学技術計算をプログラムとして実装できます。

Fortran単独ではできないこと

Fortranを学ぶときに注意したいのが、
Fortranは数値計算を中心に設計された言語であり、
画面表示やマルチメディア機能を標準機能として備えているわけではない点です。

ここでいう「できない」とは、
標準Fortranだけを使った場合を意味します。
外部ライブラリや他言語との連携を利用すれば実現できるものもあります。

機能 標準Fortran単独
文字・数値を画面に表示 可能
キーボードから入力 可能
数値計算 可能
ファイルの読み書き 可能
配列・行列計算 可能
グラフ描画 標準機能にはない
GUIウィンドウの作成 標準機能にはない
ボタンやメニューの表示 標準機能にはない
画像表示 標準機能にはない
音声再生 標準機能にはない
動画再生 標準機能にはない
地図表示 標準機能にはない
スマートフォン向けGUI 標準機能にはない

そのため、Fortranだけでプログラムを作る場合、
基本的にはターミナルやコマンドプロンプト上で入力と結果表示を行う
「コンソールプログラム」が中心になります。

グラフ描画、GUI、画像表示などが必要な場合は、
外部ライブラリを利用する方法があります。
外部ライブラリの使い方は別の記事で詳しく紹介します。

Fortranを無料で使うには

個人のパソコンでFortranを学ぶ場合、
有料の開発環境を用意する必要はありません。

代表的な無料コンパイラがGNU Fortran(gfortran)です。
gfortranはGNU Compiler Collection(GCC)のFortranコンパイラで、
Windows、macOS、Linuxで利用できます。

Fortranのソースコードは、そのままではコンピュータが実行できません。
gfortranを使って「コンパイル」し、
実行可能なプログラムに変換してから実行します。

インストール手順で出てくる用語を先に確認

プログラミングを初めて行う場合、
「ターミナル」「コマンド」「パッケージ管理」など、
普段パソコンを使っているだけでは見かけない言葉が出てきます。
ここでは、インストールを始める前に最低限の意味を確認しておきます。

ターミナルとは

ターミナルとは、
文字を入力してパソコンに命令を出すための画面です。

普段はマウスでアイコンやボタンをクリックしてパソコンを操作しますが、
ターミナルでは、例えば次のような文字列を入力して操作します。

gfortran --version

このようにターミナルへ入力する命令をコマンドと呼びます。
難しそうに見えますが、この記事では入力するコマンドをそのまま掲載するので、
基本的にはコピーして貼り付けて実行すれば大丈夫です。

コンパイラとは

Fortranで書いたプログラムを、
パソコンが実行できる形式へ変換するソフトウェアをコンパイラと呼びます。
この記事では、無料で利用できるgfortranを使用します。

パッケージ管理ツールとは

プログラミング用のソフトウェアを、
コマンドを使ってインストール・更新・削除する仕組みを
パッケージ管理ツールと呼びます。

WindowsではMSYS2の「pacman」、
Macでは「Homebrew」、
UbuntuなどのLinuxでは「apt」などが使われます。

Windowsにgfortranをインストールする

Windowsでは、MSYS2という無料のソフトウェア環境を利用して
gfortranをインストールする方法を紹介します。

MSYS2は、Windows上で
FortranコンパイラをはじめとするGNU系の開発ツールを利用しやすくするための環境です。
Fortranそのものではなく、
Windowsにgfortranなどの開発用ソフトを入れて利用するための土台
と考えると分かりやすいでしょう。

現在のMSYS2公式インストーラーは、
64bit版Windows 10(バージョン1809以降)または、
それより新しいWindowsを対象としています。
通常のWindows 11パソコンであれば、この条件を満たします。

1.MSYS2公式サイトを開く

WebブラウザでMSYS2公式サイトを開き、
Windows用のインストーラーをダウンロードします。

一般的なIntelまたはAMD製CPUを搭載したWindowsパソコンでは、
ファイル名にx86_64と書かれたインストーラーを使用します。
ARM版Windowsを使用している場合はARM64版を選択します。

自分のパソコンがどちらか分からない場合は、
一般的なWindowsパソコンの多くはx86_64版です。
Windowsの「設定」→「システム」→「バージョン情報」から
「システムの種類」を確認することもできます。

2.ダウンロードしたMSYS2をインストールする

ダウンロードした「msys2-~.exe」というファイルをダブルクリックして起動します。

インストール先などを特に変更する必要がなければ、
基本的には初期設定のまま画面の案内に従って進めて構いません。

インストールが完了すると、
MSYS2のターミナル画面が起動します。
黒い画面や文字だけの画面が表示されても異常ではありません。
この画面にコマンドを入力してgfortranをインストールしていきます。

3.UCRT64とは

MSYS2には、用途の異なる複数の実行環境があります。
その中の一つがUCRT64です。

初めて使う場合、細かな違いを覚える必要はありません。
MSYS2公式ドキュメントでも、どれを選ぶか分からない場合は
UCRT64を利用することが案内されています。

この記事ではMSYS2 UCRT64を使用します。
スタートメニューで「MSYS2」と検索すると複数の項目が表示されることがありますが、
その中からMSYS2 UCRT64を選んで起動してください。

起動すると、文字を入力できるウィンドウが表示されます。
これがMSYS2のターミナルです。
以降のWindows向けコマンドは、この画面へ入力します。

4.MSYS2のソフトウェア情報を更新する

まず、MSYS2で利用するソフトウェアの情報を最新の状態にします。
UCRT64の画面に次のコマンドを入力し、
Enterキーを押します。

pacman -Syu

ここで使っているpacmanは、
MSYS2でソフトウェアのインストールや更新を行うためのパッケージ管理ツールです。

確認のために「Proceed with installation? [Y/n]」などと表示された場合は、
Yを入力してEnterキーを押すと処理を続けられます。

更新の途中でターミナルを閉じるよう表示された場合は、
いったんウィンドウを閉じ、
スタートメニューから再びMSYS2 UCRT64を起動します。
その後、必要に応じてもう一度次のコマンドを実行します。

pacman -Syu

5.gfortranをインストールする

MSYS2 UCRT64の画面で次のコマンドを入力し、
Enterキーを押します。

pacman -S mingw-w64-ucrt-x86_64-gcc-fortran

この長い名前のパッケージに、
UCRT64環境で使用するGNU Fortranコンパイラが含まれています。

インストールの確認が表示された場合は、
内容を確認してYを入力し、Enterキーを押します。

6.gfortranが使えるか確認する

インストールが終わったら、
同じMSYS2 UCRT64の画面で次のコマンドを入力します。

gfortran --version

「GNU Fortran」やバージョン番号などが表示されれば、
gfortranのインストールは成功です。

「command not found」などと表示された場合は、
UCRT64ではないMSYS2環境を開いていないか、
gfortranのインストールが完了しているかを確認してください。

Macにgfortranをインストールする

Macでは、Homebrewというパッケージ管理ツールを利用して
gfortranを導入する方法を紹介します。

Homebrewは、Macに標準では入っていない開発用ソフトウェアなどを、
コマンドで簡単にインストールできるようにする無料の仕組みです。
gfortranはGCC(GNU Compiler Collection)の一部として導入できます。

1.Macの「ターミナル」を開く

Macには、最初からターミナルというアプリが入っています。
追加でインストールする必要はありません。

開き方はいくつかありますが、
初めての場合は次の方法が簡単です。

  1. キーボードで「command(⌘)+スペース」を押してSpotlight検索を開く
  2. 「ターミナル」と入力する
  3. 表示された「ターミナル」アプリをクリックする

文字を入力できるウィンドウが表示されれば準備完了です。
これ以降のコマンドは、このターミナルへ入力してEnterキーを押して実行します。

2.Homebrewが入っているか確認する

以前にHomebrewを使用したことがある場合は、
すでにインストールされている可能性があります。
次のコマンドを入力します。

brew --version

Homebrewのバージョン番号が表示された場合は、
すでにインストールされています。
次の「GCCをインストールする」へ進んでください。

「command not found: brew」などと表示された場合は、
Homebrewをインストールします。

3.Homebrewをインストールする

Homebrew公式サイトを開くと、
現在使用するインストールコマンドが掲載されています。
そのコマンドをコピーしてMacのターミナルへ貼り付け、
Enterキーを押して実行します。

インストール中にMacのログインパスワードの入力を求められることがあります。
ターミナルではパスワードを入力しても、
画面に文字や「●」が表示されないことがありますが正常です。
パスワードを入力してEnterキーを押してください。

インストール終了時に、
Homebrewを利用できるようにするための追加コマンドが画面に表示された場合は、
その案内に従ってコマンドを実行します。

Homebrewのインストール方法は更新されることがあるため、
記事に固定した古いインストールコマンドを使うのではなく、
Homebrew公式サイトに現在表示されているコマンドを使用するのが安全です。

4.Homebrewが利用できるか確認する

もう一度、次のコマンドを実行します。

brew --version

バージョン番号が表示されればHomebrewの準備は完了です。

5.GCCとgfortranをインストールする

次のコマンドをターミナルへ入力します。

brew install gcc

gccという名前ですが、
HomebrewのGCCパッケージにはGNU Fortranコンパイラも含まれています。
ダウンロードとインストールが終わるまで、
ターミナルを閉じずにそのまま待ちます。

6.gfortranが使えるか確認する

インストール終了後、次のコマンドを入力します。

gfortran --version

GNU Fortranの名前とバージョン番号が表示されれば成功です。

Macの環境やHomebrewのGCCパッケージの状態によっては、
「gfortran-15」のようにバージョン番号が付いたコマンド名が
用意される場合があります。
「gfortran」が見つからない場合は、
Homebrewがインストール終了時に表示した案内を確認してください。

Linuxにgfortranをインストールする

Linuxでは、多くの場合、
OSに標準で備わっているパッケージ管理ツールを使ってgfortranを導入できます。

ただし「Linux」は一つのOS製品名ではなく、
Ubuntu、Debian、Fedoraなど複数の種類があります。
この種類の違いをディストリビューションと呼びます。

ディストリビューションによってソフトウェアのインストールコマンドが異なるため、
ここでは初学者にも利用者が多いUbuntu・Debian系を中心に説明します。

1.ターミナルを開く

Ubuntuなどでは、
アプリ一覧から「Terminal」または「端末」を探して起動します。
UbuntuではCtrl+Alt+Tでターミナルを開ける環境もあります。

文字を入力できる画面が開いたら、
そこへ以下のコマンドを入力します。

2.インストールできるソフトウェアの情報を更新する

Ubuntu・Debian系では、まず次のコマンドを実行します。

sudo apt update

aptはUbuntuやDebian系Linuxで使われるパッケージ管理ツールです。

先頭に付いているsudoは、
管理者権限でコマンドを実行するための仕組みです。
実行するとログインパスワードの入力を求められることがあります。

Macのターミナルと同様に、
パスワードを入力しても画面上に文字が表示されない場合がありますが正常です。
入力後にEnterキーを押します。

3.gfortranをインストールする

次のコマンドを入力します。

sudo apt install gfortran

「続行しますか?」などの確認が表示された場合は、
画面の案内に従ってインストールを進めます。

4.gfortranが使えるか確認する

インストールが終わったら次のコマンドを実行します。

gfortran --version

GNU Fortranの名前とバージョン番号が表示されれば成功です。

Fedoraなどを使っている場合

FedoraなどUbuntu・Debian系以外のLinuxでは、
aptとは異なるパッケージ管理ツールを使用します。

その場合でも、
「ターミナルを開く → パッケージ管理ツールでgfortranをインストールする →
gfortran –versionで確認する」という基本的な流れは同じです。

自分が使用しているLinuxの種類が分からない場合は、
「設定」のシステム情報画面などでUbuntu、Debian、Fedoraといった名称を確認してから、
そのディストリビューション向けのgfortran導入方法を確認してください。

Windows・Mac・Linuxの違いを整理

OS 主に使うもの gfortran導入の考え方
Windows MSYS2 UCRT64 MSYS2を入れ、その中のpacmanでgfortranを追加する
Mac ターミナル+Homebrew Homebrewを入れ、brewでGCC(gfortranを含む)を追加する
Ubuntu・Debian系Linux ターミナル+apt OS標準のaptでgfortranを追加する

どのOSでも、最終的には
「gfortran –version」と入力してバージョン情報が表示される状態にする
ことが目的です。
ここまでできれば、Fortranのプログラムをコンパイルする準備が整っています。

最初のFortranプログラムを作ってみる

インストールできたら、簡単なプログラムを使って動作確認をしてみましょう。
テキストエディタで次のコードを入力します。

program hello
    implicit none

    print *, "Hello, Fortran!"

end program hello

ファイル名をhello.f90として保存します。

拡張子「.f90」は、現在の自由形式Fortranソースコードでよく使われる拡張子です。

コンパイルする

ターミナルまたはMSYS2で、
hello.f90を保存したフォルダへ移動して次のコマンドを実行します。

gfortran hello.f90 -o hello

このコマンドでは、
hello.f90というFortranソースコードをコンパイルし、
helloという実行ファイルを作成しています。

プログラムを実行する

Mac・Linux

./hello

Windows(MSYS2)

./hello.exe

次のように表示されれば成功です。

Hello, Fortran!

ソースコードと実行ファイルの違い

初めてコンパイル型言語を学ぶ場合、
「ソースコード」と「実行ファイル」の違いを理解しておくと分かりやすくなります。

hello.f90は、人が読み書きするFortranのソースコードです。
このファイルをgfortranでコンパイルすると、
コンピュータが実行できる形式のファイルが作成されます。

hello.f90
    ↓
gfortranでコンパイル
    ↓
実行ファイル
    ↓
プログラムを実行

Pythonなどのインタプリタ型言語を先に学んだ人にとっては、
この「コンパイル」という作業がFortranの特徴の一つに見えるかもしれません。

Fortranを学ぶのに高性能なパソコンは必要?

基本的なFortranプログラミングを学ぶだけなら、
高性能なパソコンは必要ありません。

四則演算、条件分岐、繰り返し処理、配列、
簡単な数値計算などであれば、
一般的なWindows、Mac、Linuxパソコンで十分に学習できます。

高い計算性能が必要になるのは、
非常に大きな行列を扱う場合や、
大規模な物理シミュレーション、気象計算、流体解析などを行う場合です。

Fortranはどんな人に向いている?

Fortranは、特に次のような人と相性のよい言語です。

  • 科学技術計算に興味がある人
  • 物理・化学・工学の数値計算をプログラムしたい人
  • 大学や研究室でFortranコードを扱う人
  • 昔Fortran 77やFortran 90/95を学び、もう一度使ってみたい人
  • 既存の科学計算プログラムを読みたい人
  • コンパイル型言語の基本を学びたい人

Fortranがあまり向いていない用途

次のようなものを最初の目的としている場合は、
Fortran以外の言語の方が適していることが多いでしょう。

  • Webサイトの画面を作る
  • スマートフォンアプリの画面を作る
  • 画像や動画を中心としたアプリを作る
  • 地図アプリを作る
  • 一般的なGUIデスクトップアプリを作る
  • 資格試験アプリのようなボタン中心の画面を作る

Fortranは「何でも作れること」を目指した言語というより、
数値を効率よく計算することに強みを持つ言語と考えると理解しやすくなります。

昔のFortranコードも現在の環境で使える?

gfortranは、Fortran 90/95を含む過去のFortranコードも広く扱うことができます。
そのため、以前作成したFortranコードを現在のパソコンで再びコンパイルできる場合があります。

ただし、非常に古いFORTRAN 66やFORTRAN 77のコードでは、
現在の規格から削除された構文や、
固定形式と呼ばれる古い記述方法が使われている場合があります。
そのようなコードでは、一部修正が必要になる場合があります。

Fortran 77、Fortran 90/95、現在のFortranのコードの違いについては、
別の記事で同じ処理を実際に書き比べながら解説します。

まとめ

Fortranは1950年代に誕生した歴史の長いプログラミング言語ですが、
現在も規格の開発が続いており、科学技術計算を中心に利用されています。

Windows、Mac、Linuxのいずれでも、
無料のGNU Fortran(gfortran)を利用して個人のパソコンで学習できます。

標準Fortranは数値計算、配列処理、ファイル入出力などを得意とする一方で、
グラフ描画、GUI、画像、音声、動画などは標準機能として持っていません。
この違いを理解しておくと、
Fortranがどのような用途に向いている言語なのか分かりやすくなります。

次のステップでは、
Hello Worldから始めて、変数、四則演算、READ・PRINT・WRITE、
IF文、DO文、配列など、Fortranの基本文法を実際のコードを使って学んでいきます。

参考資料