f

2014-08-08

Summary of Fortran 77 to 90 converter

Fortran77の 古い形式で書かれたプログラムを使うことがある。しかし,実行がうまくいかなかったり,パラメーターを変えたりする必要もあり,結局は中身に手を付ける必要がある。このときに,古い形式だと苦労する。

今後のメンテナンスを楽にするために,Fortran 77を90に更新したい。手作業でやるとしんどいのでコンバーターを探した。Fortran 77から90への変換は以下が大事だ。

Fortran 77から90への変換時のポイント
  • 日本語対応
  • コメント文の開始文字の変換
  • do文の終わりのcontinueをend doへの変換
  • 継続行の処理
  • インデント処理

これを踏まえて既存のF77からf90へのコンバーターを調査した。合計7個のツールがみつかった。以下の表にまとめた。

f77からf90へ のコンバーター一覧
名前言語評価日本語コメント
fixcon Fortran 90 × 元ファイルの文字コードがutf-8でないと日本語は化ける。doのcontinueが消えない。
to_f90 Fortran 90 × × うまくいかないときがある。実行中にエラー。
fixed2free Python × 普通。doのcontinueが消えない。utf-8でないと文字が化ける。
F77_TO_F90 Fortran 90 × 実行途中でエラー。
convert Fortran 90 × F77_TO_F90とほぼ同じ。動かない。
preconvert Fortran 90 × ? 入力ファイルの拡張子を.forにしないといけない。動作しなかった。
f2f perl かなりいい。オプションでインデントの幅を指定できる。

評価は○△×の3段階となっている。まともに動作したのは,fixcon,fixed2free,f2fの3個。 この中では,f2f.plが ダントツでよかった。f2f.plはperlで書かれている。最初に上げた条件をすべて満たしている。オプションもついており、使い勝手がよい。開発も盛んである。

もし,Fortranの ソースコードを新しいものにしたりリファクタリングしたければ,f2f.plを使うとよい。

使い方は以下の通り。

f2f.pl [inputfile [outputfile]]

詳細はf2f.pl --helpとするか配布元を見るのがよい。

参考:

0 件のコメント:

コメントを投稿