運動方程式(5)(6)を、プログラムのなかに、 コメントとして書いておくべきである。 たとえば次のように:
C 運動方程式 C (d/dt)theta = L … (5) C (d/dt)L = Torq = -sin(theta) … (6)
そして、変数名は、なるべく運動方程式に合わせる。
今の場合だと、
x や v や a ではなく、
theta と L と Torq を
用いるべきである。
どうしてもxを使いたい場合は、プログラムのなかに
「θ→ x とする」というコメント文を書いておく。
プログラム例4では、
「initial condition: θ,L =」と出力しておきながら、
xinitとvinitを
入力している (本来はth_initやLinitであるはず)。
このように、変数の名前が一致しないのは、バグのもとである。
ただ、メインルーチンの変数を変えるたびに 入力サブルーチンを書き直すのも面倒なので、 あるていど汎用的なサブルーチンを作っておくと あとが楽である。 たとえば get.f を ダウンロードしておいて、自分のプログラムでは次のように書く:
call get2r('initial condition: θ, L =', th_init, Linit)
call get2r('dt, tmax =', dt, tmax)
コンパイルするときは、次のようにすれば良い:
% g77 自分のプログラム.f get.f -o 自分のプログラム
ブラウザの「戻る」ボタンで戻ってください。
[講評一覧]