7. ソースコード例: 渦度方程式の時間積分

リープフロッグスキームを用いた場合


    w_Zeta_A =  w_Zeta_B + 2 * dt * & 				! 渦度方程式
        ( - w_Div_xy_xy( ( xy_Coli + xy_w(w_Zeta) ) * xy_GradLon_w(w_Chi) / R0,	     &
                          ( xy_Coli + xy_w(w_Zeta) ) * xy_GradLat_w(w_Chi) / R0 ) / R0 &
          + w_Jacobian_w_w( w_xy( xy_Coli + xy_w(w_Zeta) ), w_Psi ) / R0**2 )

    w_D_A = w_D_B + 2 * dt * & 					! 発散方程式
        ( + w_Div_xy_xy( ( xy_Coli + xy_w(w_Zeta) ) * xy_GradLon_w(w_Psi) / R0,	   &
                         ( xy_Coli + xy_w(w_Zeta) ) * xy_GradLat_w(w_Psi) / R0 ) / R0 &
          + w_Jacobian_w_w( w_xy(  xy_Coli + xy_w(w_Zeta) ), w_Chi ) / R0**2	   &
          - w_Lapla_w( Grav*w_H + w_E  ) / R0**2 )  

    w_H_A =  w_H_B + 2 * dt * & 					! 質量保存の式
        ( - w_Div_xy_xy( xy_w(w_H) * xy_GradLon_w(w_Chi) / R0,                       &
                        xy_w(w_H) * xy_GradLat_w(w_Chi) / R0 ) / R0                  &
          + w_Jacobian_w_w( w_H, w_Psi ) / R0**2 )