「Modern fortranでルンゲクッタ法」のFortranのコードをRから呼び出すようにしてみました。
RからFortranを呼び出す方法は前にまとめたものがあるのと、ソースコードはMercurialのリポジトリで公開しているので詳細は省きますが、
- Rから呼び出すFortranのサブルーチンはモジュール外にないといけない
- RからFortranのサブルーチンを呼び出すとき、戻り値と同じサイズの引数をつけておく必要がある(allocatable変数をallocateした値は戻せない)
- Fortranのコードの計算結果は、戻り値とする配列に入れる必要がある
- 終了時点と時刻の刻み幅よりも、配列のサイズや行番号を基準にした方がよい
ので、ちょっと書き換えました。なお、リポジトリをcloneしたあと、makeしてから、rk_Lorenz.Rを動かすと、Fortranのコードを計算して、Rでプロットします。