はじめに
これから、今でも数値計算の分野において現役で使用されている Fortran (正確には Fortran 90/95) について、いくつかの記事にわたって紹介していきたいと思います。
Fortran で書かれたプログラムは、そのままでは実行することができません。「コンパイル」を実行して、実行ファイルを作成する必要があります。今回は、このコンパイルを実行するためのソフトウェアであるコンパイラをインストールし、実際にコンパイルし、プログラムを実行してみましょう。
本記事では、Windowsのコンピュータを対象としています。macOSをお使いの方は、こちらの記事をご参照ください。
Windows 11 Pro Version 23H2
Pythonで学ぶ偏微分方程式の数値シミュレーションの技術書を販売中
計算方法、グラフやアニメーションの作成方法、計算ログの残し方を惜しみなく解説しています!
理論と実装の溝を埋めてくれる良書です!
Fortran とは
Fortran とは formula translator から取られたもので、その名の通り数値計算に強い、静的型付けのコンパイル言語です。1950年代に登場し、初期の頃はパンチカードにコーディング (パンチング?)し、カードの束を計算機センターに持ち込んで計算していたそうです。
古くからあるため、豊富なライブラリの蓄積があります。そのため、いまでも科学計算の分野で使用されているプログラミング言語です。
コンパイラとは
Python や Perl、JavaScript のように、エディタでコーディングしただけでは実行することができません。コンパイラというソフトウェアを使用して、ソースファイルをコンパイルし、コンピュータに実行させるための実行ファイルを作成する必要があります。
いくつかのコンパイラがありますが、この記事では、オープンソースのコンパイラである GNU Fortran (gfortran) をインストールする方法を紹介します。
gfortran のインストール方法
MinGW-w64 のインストール
いくつかの方法がありますが、ここでは MinGW-w64 をインストールして、gfortran を使うという方法を紹介します (2024/05/05 現在の情報です) 。
MinGW-w64 は、こちらのリンクからダウンロードできます。色々と選択肢がありますが、筆者は Mingw-builds からインストールしました。
リンク先に飛ぶと、下の画像のよう名ページに飛びます。ここでも、選択肢が多数ありますが、Windows11を使用しているので必然的に「x86_64」から始まるものを選んで圧縮ファイルをダウンロードします(後ろに続く、mcfやwin32やposix、ucrtやmsvcurtはそれぞれ、スレッドモデル、Cランタイムと呼ばれるオプションですが、あまり気にしなくてよいです)。筆者は、x86_64-13.2.0-release-posix-seh-ucrt-rt_v11-rev1.7z を選びました。
ダウンロードされた圧縮ファイルを展開すると、直下に mingw64 フォルダがあるので、これを適当なフォルダ(筆者は、C:¥Program Files (x86)
)に置きます (ファイルをドラッグアンドドロップ。管理者権限が必要な場合があります。その場合はパスワードを入力するか、管理者に問い合わせてください。) 。
mingw64 フォルダの直下には bin フォルダがあり、中に gfortran.exe があることが確認できると思います。
PATHを通す
このままでは、コマンドプロンプトで gfortran を使う場合フルパスを入力しなければならず不便なので、PATHを通します。
まず、設定アプリを開き、左側の検索窓に「環境変数」と入力します。すると、候補に「システム環境変数の編集」が現れるのでクリックします。
システムのプロパティが開くので、下の「環境変数 (N)」 をクリック、「Path」選んで「編集 (I)」をクリックし、「新規 (N)」で先程確認した gfortran.exe があるフォルダ(C:¥Program Files (x86)¥mingw64¥bin
)を追加します。
コマンドプロンプトを開き、
> gfortran -v
でなにやら色々と情報が返ってくればOKです(PATHが通ってない場合には、「プログラムの名前として認識されません」などとのエラーが返ってきます。)。
初めてのプログラム Hello, World! の出力
コンパイラのインストールが終わったら、実際に Fortran プログラムを書いてコンパイルし、できた実行ファイルを実行してみましょう。 作成するプログラムは、定番の標準出力(PowerShellまたはコマンドプロンプト)に「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.exe ができているはずです!
プログラムの実行
> .\hello.exe
標準出力(ターミナル又はコマンドプロンプトの画面)に、「Hello, World!」と出力されれば成功です!
解説
コンパイル時と実行時にコマンドプロンプトに入力したコマンドについて、補足説明をします。
コンパイル時のコマンドは、以下のようなものでした:
> gfortran hello.f90 -o hello
これは、「「hello.f90」というソースファイルをコンパイルして、「hello.exe」という名前の実行ファイルを作成せよ」という指示です。
「-o」の後に、コンパイルしてできる任意の実行ファイル名を指定できます。このオプションは省略することができて、指定しなければ、私の環境の場合には a.exe という実行ファイルができます。
実行時には、
.\hello.exe
と入力しました。これは、初めての場合よくわからない文字列を入力していると思ってしまいますが、PCに実行したいログラムのありかを教えて、実行しているだけです。 「.\
」は現在のディレクトリを表すもので、「~\Desktop\LabCode\fortran\01_hello-world
」と同じです。実際、フルパスを与えても動作します(更にいうと、PATHが通っているフォルダ に置けば、hello.exe だけでもプログラムは走ります)。
最後に
今回は、Fortran のコンパイラである gfortran のインストールと、ソースファイルのコンパイル、実行ファイルを実行して、「Hello, World!」を表示するところまでを紹介しました。次回から、数値計算等のプログラミングを通して、Fortran プログラミングを紹介していきたいと思います。
参考
本記事を執筆するに当たり、以下のウェブサイト、書籍を参考にしました。有益な情報の公開に感謝します。
- https://fortran-lang.org/
- https://www.nag-j.co.jp/fortran/FI_1.html
- https://amanotk.github.io/fortran-resume-public
Pythonで学ぶ偏微分方程式の数値シミュレーションの技術書を販売中
計算方法、グラフやアニメーションの作成方法、計算ログの残し方を惜しみなく解説しています!
理論と実装の溝を埋めてくれる良書です!