餡子付゛録゛

ソフトウェア開発ツールの便利な使い方を紹介。

FortranのコードをRから呼び出す

Modern fortranでルンゲクッタ法」のFortranのコードをRから呼び出すようにしてみました。
RからFortranを呼び出す方法は前にまとめたものがあるのと、ソースコードはMercurialのリポジトリで公開しているので詳細は省きますが、

  • Rから呼び出すFortranのサブルーチンはモジュール外にないといけない
  • RからFortranのサブルーチンを呼び出すとき、戻り値と同じサイズの引数をつけておく必要がある(allocatable変数をallocateした値は戻せない)
  • Fortranのコードの計算結果は、戻り値とする配列に入れる必要がある
  • 終了時点と時刻の刻み幅よりも、配列のサイズや行番号を基準にした方がよい

ので、ちょっと書き換えました。なお、リポジトリをcloneしたあと、makeしてから、rk_Lorenz.Rを動かすと、Fortranのコードを計算して、Rでプロットします。

ローレンツ方程式