Bluepostech

プログラムとかはこっち

【python】fortranのnamelistで書かれた設定ファイルを読み込む(f90nml)

以前fortranのnamelistという機能を紹介した。

数字を羅列しただけの平文ファイルとちがってnamelistはfortran独自のものなので、ほかの言語で読み込む場合は何らかの工夫が必要になる。

fortranで計算した結果をpythonのmatplotlibでグラフ化したい」というような場合は多々あるだろう。pythonではそのために「f90nml」というライブラリが用意されている。

インストールについてはpipが使える環境であれば簡単にできる。またgit cloneしてインストールすることもできる。インストールについては以下を参照されたい。

f90nml 0.2.1 : Python Package Index

ただしこのドキュメントには1ヶ所間違いがある。管理者権限のないユーザでも--userをつければインストールできるとあるが、オプションをつける位置が間違っており、正しくは以下のようにする必要がある。

 python setup.py install --user

f90nmlではreadというメソッドでnamelistをリストとして読み込み、writeというメソッドで出力できる。

具体的な使い方として、前回の記事で使ったparams.inのhogeというリストのyyという要素を取得するには、次のようにする。

 import f90nml
params=f90nml.read('params.in')
yy=params['params']['yy']