LoginSignup
11
12

More than 1 year has passed since last update.

Fortranで利用可能なライブラリ(2021年版)

Last updated at Posted at 2021-12-01

この記事で何を書いているか

2019年初頭に、Fortranから利用可能なライブラリを列挙したQiita記事を書いた。この記事は、著者が利用する範囲で当時知っていたライブラリを列挙したものであるが、2年を経る間に、海外を中心にFortranを取り巻く環境が劇的に変化していることから、2021年末時点の情報として改めて情報を整理した。

2019年〜2021年にかけてのFortranを取り巻く変化

Fotranは netlib などの膨大な過去の資産があるとはいえ、長らく標準ライブラリやパッケージマネージャの整備がなされておらず、近年人気を博しているPythonと比較すると、新規学習者にとって取り組みやすさの点で見劣りする状況であったと思う。しかし、2019年になって、下記のような新たな取り組みが Sympy 開発者の一人である Ondřej Čertík 氏らによって開始された。

  • fortran-lang : Fortranコミュニティが立ち上がり、fortranに関する最新の情報が集約されるページができた。
  • stdlib : Fortranのデファクトスタンダードを目指した標準ライブラリの開発がコミュニティ主導で始まった。実装予定機能は下記の通り。

    • ユーティリティ(文字列処理、ファイル処理、OSと実行環境の統合、ユニットテスト、ロギング、...)
    • アルゴリズム(サーチ&ソート、マージ、...)
    • 数学(線形代数、疎行列、特殊関数、高速フーリエ変換、乱数、統計、常微分方程式、数値積分、最適化、...)
  • fpm : Fortran用パッケージマネージャであり、オープンソースソフトウェアを利用したFortranによる開発プロジェクトの立ち上げが容易になった。

オープンソースのコンパイラとしてはgfortranが広く利用されていると思われるが、新しくLFortranの選択肢が増えた。LFortranは開発途上であり、2021年時点ではまだf2003以上の機能を十分に実装できていないものの、jupyterカーネルとして動作させることで、Python, Julia, Rのように、インタラクティブにFortranを実行できる点が特長の一つである。

また、国際学会 FortranCon2021が開催されるなど、ここ2年間のFortranを取り巻く環境は、従来と比べて非常に活発になっている。これらの取り組みの甲斐あってか、Fortranの人気はTIOBEインデックスで20位以内に上昇してきた。

Fortranで利用可能なライブラリ

fortran-lang(packages)では多数の興味深いライブラリが紹介されている。この中で、個人的に気になるライブラリを下記にピックアップして列挙する。なお、Qiita記事(2019年版) で記載したライブラリはf77やf90のものが多いが、本記事ではf2003以降の記法を用いたものが多い。

ファイルIO

  • h5fortran : HDF5ファイルの入出力が非常に簡単になる。
  • fortran-csv-module : CSVファイルの読み書きを行う。
  • NPY-for-Fortran : Fortranの配列を、Numpyで利用可能なデータ形式で書き出し。

データの描画

  • ogpf : fortranからgnuplotを使う。アニメーションも可。
  • pyplot-fortran : fortranからpython(matplotlib)のpyplotを使う。
  • VTKFortran : VTKファイルの取り扱い。

数学・数値解析

  • bspline-fortran : Bスプライン関数の取り扱い。
  • FOODIE : 常微分方程式の初期値問題解法。
  • NumDiff : 数値微分。

その他

  • FLAP : コマンドラインパーサ。
  • FORD : ドキュメント生成ツール。

おわりに

fortranの最新情報が欲しければ、fortran-lang を見れば良いという状況になってきている。また、fortranの利用方法も、Pythonのライブラリやパッケージシステムのように、洗練されて使いやすいものへと変貌しつつある。コミュニティーを通したfortran界隈の今後の発展に期待が持てそうだ。

11
12
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
12