これを計算するためのプログラムは以下のようになる。
function minmod0(x,y:real):real; begin if (x*y<=0) then result:=0 else if (abs(x)<abs(y)) then result:=x else result:=y end; kappa:=0; B:=(3-kappa)/(1-kappa); for j:=1 to jm-1 do // uL only f[j]:=u[j]+0.25*((1-kappa)*minmod0(u[j]-u[j-1],B*(u[j+1]-u[j])) +(1+kappa)*minmod0(u[j+1]-u[j],B*(u[j]-u[j-1]))); f[0]:=f[1]; for j:=1 to jm-1 do u[j]:=u[j]-nu*(f[j]-f[j-1]);advectionの標準問題をクーラン数で50ステップ、100ステップ といて得られる構造を図2.4にしめした。
Figure 2.4: MUSCL法でadvectionの標準問題を解いた結果。
クーラン数で、50ステップ後と100ステップ後の解を示している。