私個人の話で恐縮ですが、「ギークハウス新宿」というエンジニア中心のシェアハウスの運営に関わっています。
勉強会・懇親会等のイベントを開催しております。内見等興味ある方はお気軽にこちらまでご連絡ください。
JupyterLabでlFortranを使ってインタラクティブにFortran開発を始めよう
はじめに
Fortranは科学技術計算の分野で長年使われている言語ですが,従来のワークフローではコンパイル・実行のサイクルが必要で,試行錯誤が少し面倒でした.lFortranとJupyterLabを組み合わせることで,PythonのようにインタラクティブにFortranのコードを実行できる環境を構築できます.
この記事では,lFortranをJupyterLabで使用するための環境構築から基本的な使い方まで,実践的なガイドを提供します.
lFortranとは?
lFortranは現代的なオープンソースのFortranコンパイラで,以下の特徴があります:
- インタラクティブなFortran実行環境(REPL)を提供
- LLVMをコンパイラ基盤として利用することでJITコンパイルによって実現
- Jupyter対応のカーネルを搭載
- モダンなFortran機能をサポート
- 高速なコンパイルと実行
環境構築
ここでは,JupyterLabを使ってlFortranを動作させる方法について説明します.
(lFortranをインストールすればVSCodeのJupyter拡張機能をつかって,VSCode上でも動作させることが可能なはずです.)
必要なツール
以下のツールを準備します。
- JupyterLab: インタラクティブなノートブック環境
- lFortran: Fortranのインタラクティブ実行を可能にするオープンソースのコンパイラ
- mambaまたはconda: 環境構築と依存関係の管理ツール
手順
lFortranをJupyterLabで使えるようにする手順を説明します.
1. mamba/condaのインストール
まず,condaをインストールします.Miniforgeを使うのがおすすめです.
インストール手順に従ってMiniforgeをインストールします.
# UNIX系の場合
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
bash Miniforge3-$(uname)-$(uname -m).sh
# Homebrewの場合
brew install miniforge
インストール後、以下のコマンドでmambaが正しくインストールされていることを確認します。
mamba --version
2. 新しい環境の作成
次に、JupyterLabとlFortran用の環境を作成します。
mamba create -n lf jupyter lfortran -c conda-forge
このコマンドは以下を行います.
-
lf
という名前の新しい仮想環境を作成 - JupyterとlFortranをインストール
- lFortranをインストールすると自動的にlFortranカーネルがJupyterに登録される
-
conda-forge
チャンネルから必要なパッケージを取得
環境を有効化します。
mamba activate lf
3. JupyterLabの起動
以下のコマンドでJupyterLabを起動します。
jupyter lab
ブラウザが自動的に開き、JupyterLabのLauncherページが表示されます。
問題なくiFortranカーネルが登録されていれば,下図のようにFortran(lFortran)のノートブックが選択できるようになっているはずです.
これでFortranコードをインタラクティブに実行できる環境が整いました.
Fortranコードの実行例
以下に,簡単なFortranコードを実行する例を示します.
基本的な計算
以下のコードをノートブックのセルに入力し,実行します.
print *, "Hello, Fortran!"
end
出力:
Hello, Fortran!
配列操作
次に,配列の操作を試します.
program array_example
implicit none
integer, dimension(5) :: array
integer :: i
! 配列に値を代入
do i = 1, 5
array(i) = i * i
end do
! 配列の内容を表示
print *, "Array values:", array
end program array_example
出力:
Array values: 1 4 9 16 25
数値計算
次の例では数値積分を計算します.
program integration_example
implicit none
real :: result
result = 0.0
result = result + (1.0 / 3.0) ! Integral of x^2 from 0 to 1
print *, "Integral of x^2 from 0 to 1:", result
end program integration_example
出力:
Integral of x^2 from 0 to 1: 0.33333334
トラブルシューティング
lFortranカーネルが見つからない場合は下記の点を確認してみてください.
-
conda
環境が正しく有効化されている。 -
jupyter --paths
を実行して、カーネルのディレクトリにlfortran
が含まれていることを確認。
まとめ
この記事では,JupyterLabでlFortranを使ってFortranコードをインタラクティブに実行する方法を解説しました.この環境を利用することで,Fortranのコードを効率的に試行錯誤したり,科学技術計算に応用することが可能になります.Fortranの学習やプロトタイピングにぜひ活用してみてください.