[Fortranのはじめ方] Part2: 開発環境の構築(gfortran, Intel Fortranなど)

Fortran

Fortranでプログラムを作成し、動かすためには「コンパイラ」と呼ばれる翻訳機が必要です 💻。このページでは、代表的なFortranコンパイラとそのインストール方法、簡単な使い方を紹介します。

Fortranで書かれたプログラム(ソースコード)は、人間が読み書きしやすい形式になっています。しかし、コンピュータはそのままでは理解できません。そこで、ソースコードをコンピュータが実行できる形式(機械語や実行可能ファイル)に変換するソフトウェアが必要になります。これがコンパイラです。

主要なFortranコンパイラには、無料で利用できるオープンソースのものや、高性能な計算向けに最適化された商用のものがあります。ここでは、代表的な2つのコンパイラ、gfortranIntel Fortran (ifort/ifx) を中心に見ていきましょう。

gfortran (GNU Fortran)

gfortranは、GNU Compiler Collection (GCC) の一部として開発されている、無料でオープンソースのFortranコンパイラです。多くのLinuxディストリビューションやmacOSで標準的に利用でき、Windowsでも利用可能です。最新のFortran標準にも積極的に対応しており、学習用途から研究開発まで幅広く使われています。

インストール方法

お使いのOSに合わせてインストール方法が異なります。

Linux (Debian/Ubuntu系)

ターミナルを開き、以下のコマンドを実行します。

sudo apt update
sudo apt install gfortran

Linux (Red Hat/Fedora/CentOS系)

ターミナルを開き、以下のコマンドを実行します。

sudo dnf update
sudo dnf install gcc-gfortran

(古いシステムでは `yum` を使う場合もあります)

macOS

macOSでは、パッケージマネージャーの Homebrew を使うのが一般的です。Homebrewがインストールされていない場合は、まずHomebrewをインストールしてください。

ターミナルを開き、以下のコマンドを実行します。

brew update
brew install gcc

HomebrewでインストールされるGCCにはgfortranが含まれています。

macOSには標準でCommand Line Toolsの一部として `gfortran` コマンドがインストールされる場合もありますが、Homebrewで最新版のGCCをインストールする方が推奨されます。

Windows

Windowsでgfortranを使うには、いくつかの方法があります。

  • MSYS2 / MinGW-w64: Unixライクな環境をWindows上に構築するMSYS2をインストールし、その中のパッケージマネージャー (pacman) を使ってgfortranをインストールする方法です。
    pacman -Syu
    pacman -S mingw-w64-x86_64-gcc-fortran
  • Windows Subsystem for Linux (WSL): Windows上でLinux環境を動作させるWSLをインストールし、そのLinux環境内で上記のLinux向けコマンドを実行する方法です。

どちらの方法でも、WindowsのコマンドプロンプトやPowerShellから直接gfortranを使う設定も可能ですが、少し手順が複雑になります。初学者のうちは、MSYS2ターミナルやWSLターミナル内で作業するのが簡単でしょう。

簡単な使い方 (コンパイル)

例えば、`hello.f90` という名前のFortranソースファイルを作成したとします。これをコンパイルして `hello` という名前の実行可能ファイルを作成するには、ターミナルで以下のコマンドを実行します。

gfortran hello.f90 -o hello

エラーが出なければ、カレントディレクトリに `hello` (Windowsの場合は `hello.exe`) というファイルが生成されます。実行するには、以下のようにします。

./hello

(WindowsのコマンドプロンプトやPowerShellでは `.\hello.exe` または `hello.exe`)

参考情報

Intel Fortran Compiler (ifort / ifx)

Intel Fortran Compilerは、Intel社が開発・提供している高性能なFortranコンパイラです。特にIntel製のCPUでの実行性能を最大限に引き出すための最適化機能が強力です 💪。科学技術計算やハイパフォーマンスコンピューティング (HPC) の分野で広く利用されています。

現在は、Intel oneAPI HPC Toolkit の一部として提供されています。このツールキットには、従来のコンパイラ `ifort` (Intel Fortran Compiler Classic) と、新しいLLVMベースのコンパイラ `ifx` (Intel Fortran Compiler) の両方が含まれています。`ifx` は最新のFortran標準への対応や、GPUオフロード機能などが強化されています。

Intel oneAPI Toolkitは、個人学習や小規模な開発、オープンソースプロジェクトなどに対しては無料で利用できます。商用利用やサポートが必要な場合は有償ライセンスが必要です。

インストール方法

Intel Fortran Compilerは、Intel oneAPI Base ToolkitIntel oneAPI HPC Toolkit の両方をインストールする必要があります。以下の公式サイトから、お使いのOS (Linux, macOS, Windows) に合ったインストーラーをダウンロードし、手順に従ってインストールしてください。

Intel oneAPI HPC Toolkit ダウンロード

インストール後、環境変数を設定するためのスクリプトを実行する必要がある場合があります(通常はインストール時に設定されますが、ターミナルを開き直したり、指定されたスクリプトを実行したりします)。

# Linux/macOS の例 (インストール先によってパスは異なります)
source /opt/intel/oneapi/setvars.sh
# Windows PowerShell の例 (インストール先によってパスは異なります)
& 'C:\Program Files (x86)\Intel\oneAPI\setvars.bat'

簡単な使い方 (コンパイル)

基本的な使い方は gfortran と似ています。`hello.f90` をコンパイルするには、ターミナルで以下のコマンドを実行します。

新しい `ifx` コンパイラを使う場合:

ifx hello.f90 -o hello

従来の `ifort` コンパイラを使う場合:

ifort hello.f90 -o hello

実行方法は gfortran と同じです。

./hello

参考情報

その他の選択肢とIDE

上記以外にも、以下のようなFortranコンパイラが存在します。

  • NVIDIA HPC SDK (nvfortran): NVIDIA GPU向けの機能が強化されたコンパイラ。
  • LFortran: モダンで対話的な実行も可能な新しいオープンソースコンパイラ(開発中)。
  • その他、商用コンパイラ(NAG Fortran Compilerなど)。

統合開発環境 (IDE)

コードの記述、コンパイル、デバッグなどを効率的に行うために、統合開発環境 (IDE) を利用するのも良いでしょう。特定のFortran専用IDEは多くありませんが、汎用の高機能テキストエディタに拡張機能を追加することで、快適な開発環境を構築できます。

  • Visual Studio Code (VS Code): 無料で高機能なエディタ。Fortran向けの拡張機能 (例: `fortran-lang.language-server`) をインストールすることで、シンタックスハイライト、コード補完、デバッグ支援などが利用可能になります。✨

    Visual Studio Code Modern Fortran Extension

  • Intel oneAPI に含まれるIDE連携: Visual Studio (Windows) や Eclipse (Linux, macOS) との連携機能が提供されています。

まずはシンプルなテキストエディタとコマンドラインでのコンパイルに慣れることから始めるのがおすすめです。

まとめ

これでFortranプログラムを作成し、実行するための準備が整いました! 🎉

まずは gfortran をインストールして試してみるのが手軽でおすすめです。もし高性能計算に興味がある場合や、将来的にIntel CPUでの最適化を視野に入れるなら、Intel Fortran Compiler (ifx/ifort) の導入も検討してみてください。

次のステップでは、いよいよ最初のFortranプログラム「Hello World」を作成してみましょう!

コメント

タイトルとURLをコピーしました