  subroutine acousticmode_2d_exp(                    &
    & pyz_VelXN, xyr_VelZN,                          & !(IN)
    & xyz_ExnerN,                                    & !(IN)
    & xyz_VelDivN,                                   & !(OUT)
    & pyz_PGrad, pyz_SWF                             & !(OUT)
    & )
    
    ! モジュール呼び出し
    !
    use gridset,   only : imin,            &! x 方向の配列の下限
      &                   imax,            &! x 方向の配列の上限
      &                   jmin,            &! y 方向の配列の下限
      &                   jmax,            &! y 方向の配列の上限
      &                   kmin,            &! z 方向の配列の下限
      &                   kmax,            &! z 方向の配列の上限
      &                   nx, ny, nz
    use axesset,   only : dx, dz            ! 格子間隔
    use constants, only : CpDry             ! 乾燥成分の比熱
    use basicset,  only : pyz_VPTempBZ 

    ! 暗黙の型宣言禁止
    !
    implicit none
    
    ! 変数の宣言
    !
    real(DP), intent(in)  :: pyz_VelXN(imin:imax,jmin:jmax,kmin:kmax)
    real(DP), intent(in)  :: xyr_VelZN(imin:imax,jmin:jmax,kmin:kmax)
    real(DP), intent(in)  :: xyz_ExnerN(imin:imax,jmin:jmax,kmin:kmax)
    real(DP), intent(out) :: xyz_VelDivN(imin:imax,jmin:jmax,kmin:kmax)
    real(DP), intent(out) :: pyz_PGrad(1:nx,1:ny,1:nz)
    real(DP), intent(out) :: pyz_SWF(1:nx,1:ny,1:nz)
    
    integer               :: i, k
    integer, parameter    :: j = 1
    
    !------------------------------------------------------------------
    ! 速度の収束を計算
    !
    do k = kmin + 1, kmax 
        do i = imin + 1, imax 

          xyz_VelDivN(i,j,k) =         &
            & + (                      &
            &     pyz_VelXN(i,   j, k) &
            &   - pyz_VelXN(i-1, j, k) &
            &   ) / dx                 &
            & + (                      &
            &     xyr_VelZN(i, j, k)   &
            &   - xyr_VelZN(i, j, k-1) &
            &   ) / dz
        
        end do
    end do

    ! 値を確定させる
    !
    xyz_VelDivN(imin,:,:) = 1.0d10
    xyz_VelDivN(:,:,kmin) = 1.0d10

    !------------------------------------------------------------------
    ! X 方向
    
    do k = 1, nz
        do i = 1, nx
        
          ! 音波減衰項
          !            
          pyz_SWF(i,j,k) =                 &
            &   AlphaH                     &
            &   * (                        &
            &       xyz_VelDivN(i+1, j, k) &
            &     - xyz_VelDivN(i,   j, k) &
            &     ) / dx
          
          ! 圧力傾度力
          !
          pyz_PGrad(i,j,k) =                &
            & - CpDry * pyz_VPTempBZ(i,j,k) &
            &   * (                         &
            &       xyz_ExnerN(i+1, j, k)   &
            &     - xyz_ExnerN(i,   j, k)   &
            &     ) / dx
          
        end do
    end do
    
  end subroutine Acousticmode_2d_exp

!!!------------------------------------------------------------!!!
