運動方程式(5)(6)を、プログラムのなかに、 コメントとして書いておくべきである。 たとえば次のように:

C  運動方程式
C  (d/dt)theta  =  L                    … (5)
C  (d/dt)L      =  Torq = -sin(theta)   … (6)

そして、変数名は、なるべく運動方程式に合わせる。 今の場合だと、 xva ではなく、 thetaLTorq を 用いるべきである。

どうしてもxを使いたい場合は、プログラムのなかに 「θ→ x とする」というコメント文を書いておく。


プログラム例4では、 「initial condition: θ,L =」と出力しておきながら、 xinitvinitを 入力している (本来はth_initLinitであるはず)。 このように、変数の名前が一致しないのは、バグのもとである。

ただ、メインルーチンの変数を変えるたびに 入力サブルーチンを書き直すのも面倒なので、 あるていど汎用的なサブルーチンを作っておくと あとが楽である。 たとえば get.f を ダウンロードしておいて、自分のプログラムでは次のように書く:

call get2r('initial condition: θ, L =', th_init, Linit)
call get2r('dt, tmax =', dt, tmax)

コンパイルするときは、次のようにすれば良い:

% g77 自分のプログラム.f get.f -o 自分のプログラム

ブラウザの「戻る」ボタンで戻ってください。


[講評一覧]