はじめに
これから、今でも数値計算の分野において現役で使用されている Fortran (正確には Fortran 90/95) について、いくつかの記事にわたって紹介していきたいと思います。
Fortran で書かれたプログラムは、そのままでは実行することができません。「コンパイル」を実行して、実行ファイルを作成する必要があります。今回は、このコンパイルを実行するためのソフトウェアであるコンパイラをインストールし、実際にコンパイルし、プログラムを実行をしてみましょう。
本記事では、macOSのコンピュータを対象としています。Windowsをお使いの方は、こちらの記事をご参照ください。
macOS Monterey Version 12.7.4, Homebrew 4.2.6
Pythonで学ぶ偏微分方程式の数値シミュレーションの技術書を販売中
計算方法、グラフやアニメーションの作成方法、計算ログの残し方を惜しみなく解説しています!
理論と実装の溝を埋めてくれる良書です!
Fortran とは
Fortran とは formula translator から取られたもので、その名の通り数値計算に強い、静的型付けのコンパイル言語です。1950年代に登場し、初期の頃はパンチカードにコーディング (パンチング?)し、カードの束を計算機センターに持ち込んで計算していたそうです。
古くからあるため、豊富なライブラリの蓄積があります。そのため、いまでも科学計算の分野で使用されているプログラミング言語です。
コンパイラとは
Python や Perl、JavaScript のように、エディタでコーディングしただけでは実行することができません。コンパイラというソフトウェアを使用して、ソースファイルをコンパイルし、コンピュータに実行させるための実行ファイルを作成する必要があります。
いくつかのコンパイラがありますが、この記事では、オープンソースのコンパイラである GNU Fortran (gfortran) をインストールする方法を紹介します。
gfortran のインストール方法
ご自身の mac を Homebrew で環境構築している場合には、brew
でインストールできます。
$ brew install gcc
確認は、次のコマンドを入力して
$ gfortran -v
なにやら色々と情報が返ってくればOKです(インストールが失敗している場合は、command not found が返ってきます。)。
その他のパッケージマネージャ (FinkやMacPorts) を使用している場合や、そもそもパッケージマネージャを使用していない場合には、こちらのリンクを参考に、インストールしてみてください (パッケージマネージャを使っていない方は、この機会にいずれかをインストールすることをおすすめします。筆者は、Fink → MacPorts → Homebrew と渡り歩いてきました。個人的には、インターネット上にたくさん情報がある (ような印象がある) Homebrew が、初めての場合には、使いやすいかなと思います。パッケージマネージャを比較した記事もインターネット上にありますのでぜひ探してみてください。)。
初めてのプログラム Hello, World! の出力
コンパイラのインストールが終わったら、実際に Fortran プログラムを書いてコンパイルし、できた実行ファイルを実行してみましょう。 作成するプログラムは、定番の標準出力(ターミナル)に「Hello, World!」を出力するものです。 エディタで次のようなファイルを作成し、適当な場所(~/Desktop/LabCode/fortran/01_hello-world
とします)に適当な名前(ここでは、hello.f90とします)で保存してください。
program main
write(*, *) "Hello, World!"
stop
end program main
コンパイル
保存したら、実際にコンパイルしてみましょう。
まず、プログラムを保存した場所へ移動します:
$ cd ~/Desktop/LabCode/fortran/01_hello-world
続いて、ソースファイルをコンパイルします。次のように打ち込んでください。
$ gfortran hello.f90 -o hello
コンパイルが正常に終了すると、実行ファイル hello ができているはずです!
プログラムの実行
あとは、実行ファイルを走らせてみましょう。走らせるには、次のように入力します:
./hello
標準出力 (ターミナル上) にHello, World!と出力されれば成功です!

ソースプログラムを修正したときは
ソースプログラムを修正した場合には、再度コンパイルし、実行ファイルに修正を反映させる必要があります。
解説
コンパイル時と実行時にターミナルに入力したコマンドについて、補足説明をします。
コンパイル時のコマンドは、以下のようなものでした:
$ gfortran hello.f90 -o hello
これは、「「hello.f90」というソースファイルをコンパイルして、「hello」という名前の実行ファイルを作成せよ」という指示です。
「-o」の後に、コンパイルしてできる任意の実行ファイル名を指定できます。このオプションは省略することができて、指定しなければ、私の環境の場合には a.out という実行ファイルができます。
実行時には、
./hello
と入力しました。これは、初めての場合よくわからない文字列を入力していると思ってしまいますが、PCに実行したいプログラムのありかを教えて、実行しているだけです。 「./
」は現在のディレクトリを表すもので、「~/Desktop/LabCode/fortran/01_hello-world
」と同じです。実際、フルパスを与えても動作します(更にいうと、PATHが通っているフォルダに置けば、hello だけでもプログラムは走ります)。
最後に
今回は、Fortran のコンパイラである gfortran のインストールと、ソースファイルのコンパイル、実行ファイルを実行して、「Hello, World!」を表示するところまでを紹介しました。次回から、数値計算等のプログラミングを通して、Fortran プログラミングを紹介していきたいと思います。
参考
本記事を執筆するに当たり、以下のウェブサイト、書籍を参考にしました。有益な情報の公開に感謝します。