| Class | differentiate_center2 | 
| In: | util/differentiate_center2.f90 | 
2 次精度の微分演算を行うための関数群をまとめたパッケージ型モジュール 水平 Arakawa-C, 鉛直 Lorentz グリッドでの微分計算
| Function : | |||
| pr_dx_xr(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8) 
 | ||
| xr_var(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8), intent(in) 
 | 
格子点上での x 方向 2 次精度微分演算
  function pr_dx_xr( xr_var ) 
    !
    ! 格子点上での x 方向 2 次精度微分演算
    !
    !暗黙の型宣言禁止
    implicit none
    !変数定義
    real(8), intent(in) :: xr_var(DimXMin:DimXMax, DimZMin:DimZMax)
                                     !微分演算の対象となる変数
    real(8)             :: pr_dx_xr(DimXMin:DimXMax, DimZMin:DimZMax)
                                     !微分値
    
    pr_dx_xr = 1.0d-16 
    pr_dx_xr(DimXMin:DimXMax-1,DimZMin:DimZMax) = ( xr_var(DimXMin+1:DimXMax,DimZMin:DimZMax) -  xr_var(DimXMin:DimXMax-1,DimZMin:DimZMax) ) / DelX
  end function pr_dx_xr
          | Function : | |||
| pr_dz_pz(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8) 
 | ||
| pz_var(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8), intent(in) 
 | 
格子点上での z 方向 2 次精度微分演算
  function pr_dz_pz( pz_var ) 
    !
    ! 格子点上での z 方向 2 次精度微分演算
    !
    !暗黙の型宣言禁止
    implicit none
    
    !変数定義
    real(8), intent(in) :: pz_var(DimXMin:DimXMax, DimZMin:DimZMax)
                                     !微分演算の対象となる変数
    real(8)             :: pr_dz_pz(DimXMin:DimXMax, DimZMin:DimZMax)
                                     !微分値    
    pr_dz_pz = 1.0d-16 
    pr_dz_pz(DimXMin:DimXMax,DimZMin:DimZMax-1) = ( pz_var(DimXMin:DimXMax,DimZMin+1:DimZMax) -  pz_var(DimXMin:DimXMax,DimZMin:DimZMax-1) ) / DelZ
  end function pr_dz_pz
          | Function : | |||
| pz_dx_xz(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8) 
 | ||
| xz_var(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8), intent(in) 
 | 
z 方向に半格子ずれた点での x 方向 2 次精度微分演算
  function pz_dx_xz( xz_var ) 
    !
    ! z 方向に半格子ずれた点での x 方向 2 次精度微分演算
    !
    !暗黙の型宣言禁止
    implicit none
    !変数定義    
    real(8), intent(in) :: xz_var(DimXMin:DimXMax, DimZMin:DimZMax)
                                     !微分演算の対象となる変数
    real(8)             :: pz_dx_xz(DimXMin:DimXMax, DimZMin:DimZMax)
                                     !微分値    
    pz_dx_xz = 1.0d-16
    pz_dx_xz(DimXMin:DimXMax-1,DimZMin:DimZMax) = ( xz_var(DimXMin+1:DimXMax,DimZMin:DimZMax) - xz_var(DimXMin:DimXMax-1,DimZMin:DimZMax) ) / DelX
  end function pz_dx_xz
          | Function : | |
| pz_dz_pr(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8) | 
| pr_var(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8), intent(in) | 
z 方向に半格子ずれた点での z 方向 2 次精度微分演算
  function pz_dz_pr( pr_var ) 
    !
    ! z 方向に半格子ずれた点での z 方向 2 次精度微分演算
    !
    !暗黙の型宣言禁止
    implicit none
  
    real(8), intent(in) :: pr_var(DimXMin:DimXMax, DimZMin:DimZMax)
    real(8)             :: pz_dz_pr(DimXMin:DimXMax, DimZMin:DimZMax)
    
    pz_dz_pr = 1.0d-16 
    pz_dz_pr(DimXMin:DimXMax,DimZMin+1:DimZMax) = ( pr_var(DimXMin:DimXMax,DimZMin+1:DimZMax) -  pr_var(DimXMin:DimXMax,DimZMin:DimZMax-1) ) / DelZ
  end function pz_dz_pr
          | Function : | |||
| xr_dx_pr(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8) 
 | ||
| pr_var(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8), intent(in) 
 | 
x 方向に半格子ずれた点での x 方向 2 次精度微分演算
  function xr_dx_pr( pr_var ) 
    !
    ! x 方向に半格子ずれた点での x 方向 2 次精度微分演算
    !
    !暗黙の型宣言禁止
    implicit none
    !変数定義
    real(8), intent(in) :: pr_var(DimXMin:DimXMax, DimZMin:DimZMax)
                                     !微分演算の対象となる変数
    real(8)             :: xr_dx_pr(DimXMin:DimXMax, DimZMin:DimZMax)
                                     !微分値    
    xr_dx_pr = 1.0d-16 
    xr_dx_pr(DimXMin+1:DimXMax,DimZMin:DimZMax) = ( pr_var(DimXMin+1:DimXMax,DimZMin:DimZMax) -  pr_var(DimXMin:DimXMax-1,DimZMin:DimZMax) ) / DelX
  end function xr_dx_pr
          | Function : | |||
| xr_dz_xz(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8) 
 | ||
| xz_var(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8), intent(in) 
 | 
x 方向に半格子ずれた点での z 方向 2 次精度微分演算
  function xr_dz_xz( xz_var ) 
    !
    ! x 方向に半格子ずれた点での z 方向 2 次精度微分演算
    !
    !暗黙の型宣言禁止
    implicit none
    !変数定義
    real(8), intent(in) :: xz_var(DimXMin:DimXMax, DimZMin:DimZMax)
                                     !微分演算の対象となる変数
    real(8)             :: xr_dz_xz(DimXMin:DimXMax, DimZMin:DimZMax)
                                     !微分値
    xr_dz_xz = 1.0d-16 
    xr_dz_xz(DimXMin:DimXMax,DimZMin:DimZMax-1) = ( xz_var(DimXMin:DimXMax,DimZMin+1:DimZMax) - xz_var(DimXMin:DimXMax,DimZMin:DimZMax-1) ) / DelZ
  end function xr_dz_xz
          | Function : | |||
| xz_dx_pz(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8) 
 | ||
| pz_var(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8), intent(in) 
 | 
x, z 方向に半格子ずれた点での x 方向 2 次精度微分演算
  function xz_dx_pz( pz_var ) 
    !
    ! x, z 方向に半格子ずれた点での x 方向 2 次精度微分演算
    !
    !暗黙の型宣言禁止
    implicit none
    !変数定義
    real(8), intent(in) :: pz_var(DimXMin:DimXMax, DimZMin:DimZMax)
                                     !微分演算の対象となる変数
    real(8)             :: xz_dx_pz(DimXMin:DimXMax, DimZMin:DimZMax)
                                     !微分値
    
    xz_dx_pz = 1.0d-16 
    xz_dx_pz(DimXMin+1 : DimXMax, DimZMin : DimZMax) = ( pz_var(DimXMin+1 : DimXMax, DimZMin : DimZMax) - pz_var(DimXMin   : DimXMax-1, DimZMin : DimZMax) ) / DelX
  end function xz_dx_pz
          | Function : | |||
| xz_dz_xr(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8) 
 | ||
| xr_var(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8), intent(in) 
 | 
x, z 方向に半格子ずれた点での z 方向 2 次精度微分演算
  function xz_dz_xr(xr_var) 
    !
    ! x, z 方向に半格子ずれた点での z 方向 2 次精度微分演算
    !
    !暗黙の型宣言禁止
    implicit none
    !変数定義
    real(8), intent(in) :: xr_var(DimXMin:DimXMax, DimZMin:DimZMax)
                                     !微分演算の対象となる変数
    real(8)             :: xz_dz_xr(DimXMin:DimXMax, DimZMin:DimZMax)
                                     !微分値
    
    xz_dz_xr = 1.0d-16 
    xz_dz_xr(DimXMin:DimXMax,DimZMin+1:DimZMax) = ( xr_var(DimXMin:DimXMax,DimZMin+1:DimZMax) - xr_var(DimXMin:DimXMax,DimZMin:DimZMax-1) ) / DelZ
  end function xz_dz_xr