これをFortranプログラムで書くと、第1段は
do j=1,jm rho_h(j)=0.5d0*(rho(j)+rho(j+1)) * -0.5d0*dt/dx*(px(j+1)-px(j)) px_h(j)=0.5d0*(px(j)+px(j+1)) * -0.5d0*dt/dx*(p(j+1)-p(j)+px(j+1)*v(j+1)-px(j)*v(j)) e_h(j)=0.5d0*(e(j)+e(j+1)) * -0.5d0*dt/dx*((e(j+1)+p(j+1))*v(j+1) * -(e(j)+p(j))*v(j)) end doここでhのついた量は
do j=1,jm v(j)=px_h(j)/rho_h(j) p(j)=(gamma-1)*(e_h(j)-0.5d0*px_h(j)**2/rho_h(j)) end doこれらの量は、もう
第2段は、
do j=2,jm rho(j)=rho(j)-dt/dx*(px_h(j)-px_h(j-1)) px(j)=px(j)-dt/dx*(p(j)-p(j-1)+px_h(j)*v(j)-px_h(j-1)*v(j-1)) e(j)=e(j)-dt/dx*((e_h(j)+p(j))*v(j)-(e_h(j-1)+p(j-1))*v(j-1)) end doの様にして計算される。 これから、
do j=2,jm v(j)=px(j)/rho(j) p(j)=(gamma-1)*(e(j)-0.5d0*px(j)**2/rho(j)) end doこれを必要な回数繰り返すことによって時間経過が計算される。