| Class | xy_base_module | 
| In: | setup/xy_base_module.f90 | 
xy_base_module は, 2 次元 (xy 方向) 等間隔交互格子を用いた有限差分 法に基づく数値モデルのための, 基本的な Fortran90 副プログラムおよび 関数を提供する.
このモジュールは xy_module の下位モジュールである. 下請けモジュール として data_type, x_base_module, y_base_module モジュールを用いている.
| Function : | |||
| AvrXY_py : | real(DBKIND) 
 | ||
| py_Var(imin:imax,jmin:jmax) : | real(DBKIND), intent(in) 
 | 
py 格子上の配列に対し領域平均を行う
    function AvrXY_py(py_Var)
      ! py 格子上の配列に対し領域平均を行う
      real(DBKIND), intent(in) :: py_Var(imin:imax,jmin:jmax) ! 入力
      real(DBKIND)             :: AvrXY_py                    ! 出力
      AvrXY_py = IntXY_py(py_Var)/(sum(p_dx(1:im))*sum(y_dy(1:jm)))
    end function AvrXY_py
          | Function : | |||
| AvrXY_xq : | real(DBKIND) 
 | ||
| xq_Var(imin:imax,jmin:jmax) : | real(DBKIND), intent(in) 
 | 
xq 格子上の配列に対し領域平均を行う
    function AvrXY_xq(xq_Var)
      ! xq 格子上の配列に対し領域平均を行う
      real(DBKIND), intent(in) :: xq_Var(imin:imax,jmin:jmax) ! 入力
      real(DBKIND)             :: AvrXY_xq                    ! 出力
      AvrXY_xq = IntXY_xq(xq_Var)/(sum(x_dx(1:im))*sum(q_dy(1:jm)))
    end function AvrXY_xq
          | Function : | |||
| AvrXY_xy : | real(DBKIND) 
 | ||
| xy_Var(imin:imax,jmin:jmax) : | real(DBKIND), intent(in) 
 | 
xy 格子上の配列に対し領域平均を行う
    function AvrXY_xy(xy_Var)
      ! xy 格子上の配列に対し領域平均を行う
      real(DBKIND), intent(in) :: xy_Var(imin:imax,jmin:jmax) ! 入力
      real(DBKIND)             :: AvrXY_xy                    ! 出力
      AvrXY_xy = IntXY_xy(xy_Var)/(sum(x_dx(1:im))*sum(y_dy(1:jm)))
    end function AvrXY_xy
          | Function : | |||
| AvrX_p : | real(DBKIND) 
 | ||
| p_Var(imin:imax) : | real(DBKIND), intent(in) 
 | 
整数格子上の配列に対し x 方向の平均操作を行う
Original external subprogram is x_base_module#AvrX_p
| Function : | |||
| AvrX_x : | real(DBKIND) 
 | ||
| x_Var(imin:imax) : | real(DBKIND), intent(in) 
 | 
半整数格子上の配列に対し x 方向の平均操作を行う
Original external subprogram is x_base_module#AvrX_x
| Function : | |||
| AvrY_q : | real(DBKIND) 
 | ||
| q_Var(jmin:jmax) : | real(DBKIND), intent(in) 
 | 
整数格子上の配列に対し y 方向の平均操作を行う
Original external subprogram is y_base_module#AvrY_q
| Function : | |||
| AvrY_y : | real(DBKIND) 
 | ||
| y_Var(jmin:jmax) : | real(DBKIND), intent(in) 
 | 
半整数格子上の配列に対し y 方向の平均操作を行う
Original external subprogram is y_base_module#AvrY_y
| Function : | |||
| IntXY_py : | real(DBKIND) 
 | ||
| py_Var(imin:imax,jmin:jmax) : | real(DBKIND), intent(in) 
 | 
py 格子上の配列に対し領域積分を行う
    function IntXY_py(py_Var)
      ! py 格子上の配列に対し領域積分を行う
      real(DBKIND), intent(in) :: py_Var(imin:imax,jmin:jmax) ! 入力
      real(DBKIND)             :: IntXY_py                    ! 出力
      IntXY_py = IntY_y(y_IntX_py(py_Var))
    end function IntXY_py
          | Function : | |||
| IntXY_xq : | real(DBKIND) 
 | ||
| xq_Var(imin:imax,jmin:jmax) : | real(DBKIND), intent(in) 
 | 
xq 格子上の配列に対し領域積分を行う
    function IntXY_xq(xq_Var)
      ! xq 格子上の配列に対し領域積分を行う
      real(DBKIND), intent(in) :: xq_Var(imin:imax,jmin:jmax) ! 入力
      real(DBKIND)             :: IntXY_xq                    ! 出力
      IntXY_xq = IntY_q(a_IntX_xa(xq_Var))
    end function IntXY_xq
          | Function : | |||
| IntXY_xy : | real(DBKIND) 
 | ||
| xy_Var(imin:imax,jmin:jmax) : | real(DBKIND), intent(in) 
 | 
xy 格子上の配列に対し領域積分を行う
    function IntXY_xy(xy_Var)
      ! xy 格子上の配列に対し領域積分を行う
      real(DBKIND), intent(in) :: xy_Var(imin:imax,jmin:jmax) ! 入力
      real(DBKIND)             :: IntXY_xy                    ! 出力
      IntXY_xy = IntY_y(a_IntX_xa(xy_Var))
    end function IntXY_xy
          | Function : | |||
| IntX_p : | real(DBKIND) 
 | ||
| p_Var(imin:imax) : | real(DBKIND), intent(in) 
 | 
整数格子上の配列に対し x 方向に重み付きの積分を行う
Original external subprogram is x_base_module#IntX_p
| Function : | |||
| IntX_x : | real(DBKIND) 
 | ||
| x_Var(imin:imax) : | real(DBKIND), intent(in) 
 | 
半整数格子上の配列に対し x 方向に重み付きの積分を行う
Original external subprogram is x_base_module#IntX_x
| Function : | |||
| IntY_q : | real(DBKIND) 
 | ||
| q_Var(jmin:jmax) : | real(DBKIND), intent(in) 
 | 
整数格子上の配列に対し y 方向に重み付きの積分を行う
Original external subprogram is y_base_module#IntY_q
| Function : | |||
| IntY_y : | real(DBKIND) 
 | ||
| y_Var(jmin:jmax) : | real(DBKIND), intent(in) 
 | 
半整数格子上の配列に対し y 方向に重み付きの積分を行う
Original external subprogram is y_base_module#IntY_y
| Function : | |||
| a_AvrY_ay(imin:imax) : | real(DBKIND) 
 | ||
| ay_Var(imin:imax,jmin:jmax) : | real(DBKIND), intent(in) 
 | 
ay 格子上の配列に対し y 方向に平均を行う
    function a_AvrY_ay(ay_Var)
      ! ay 格子上の配列に対し y 方向に平均を行う
      real(DBKIND), intent(in) :: ay_Var(imin:imax,jmin:jmax) ! 入力
      real(DBKIND)             :: a_AvrY_ay(imin:imax)        ! 出力
      a_AvrY_ay = a_IntY_ay(ay_Var)/sum(y_dy(1:jm))
      
    end function a_AvrY_ay
          | Function : | |||
| a_IntY_ay(imin:imax) : | real(DBKIND) 
 | ||
| ay_Var(imin:imax,jmin:jmax) : | real(DBKIND), intent(in) 
 | 
ay 格子上の配列に対し y 方向に重み付きの積分を行う
    function a_IntY_ay(ay_Var)
      ! ay 格子上の配列に対し y 方向に重み付きの積分を行う
      real(DBKIND), intent(in) :: ay_Var(imin:imax,jmin:jmax) ! 入力
      real(DBKIND)             :: a_IntY_ay(imin:imax)        ! 出力
      integer                  :: ix                          ! ループ添字
      ! 初期化
      a_IntY_ay = 0.0d0
      ! 積分
      do ix = imin, imax
        a_IntY_ay(ix) = IntY_y(ay_Var(ix,:))
      end do
      
    end function a_IntY_ay
          | Variable : | |||
| p_X(:) : | real(DBKIND),allocatable 
 | 
Original external subprogram is x_base_module#p_X
| Function : | |||
| p_avr_x(imin:imax) : | real(DBKIND) 
 | ||
| x_Var(imin:imax) : | real(DBKIND),intent(in) 
 | 
平均操作を行い半整数格子点の配列値を整数格子点上へ返す
Original external subprogram is x_base_module#p_avr_x
| Variable : | |||
| p_dx(:) : | real(DBKIND),allocatable 
 | 
Original external subprogram is x_base_module#p_dx
| Function : | |||
| aq_avr_ay(imin:imax,jmin:jmax) : | real(DBKIND) 
 | ||
| ay_Var(imin:imax,jmin:jmax) : | real(DBKIND),intent(in) 
 | 
平均操作を行い半整数格子点の配列値を整数格子点上へ返す
    function aq_avr_ay(ay_Var)
      ! 平均操作を行い半整数格子点の配列値を整数格子点上へ返す
  
      real(DBKIND),intent(in) :: ay_Var(imin:imax,jmin:jmax)   ! 入力
      real(DBKIND)            :: aq_avr_ay(imin:imax,jmin:jmax) ! 出力
      integer                 :: ix                            ! ループ添字
      ! 初期化
      ! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
      !
      aq_avr_ay = 0.0d0
      ! 平均操作
      ! * 関数 q_y を用いて計算.
      ! 
      do ix = imin, imax
        aq_avr_ay(ix,:) = q_avr_y(ay_Var(ix,:))
      end do
    end function aq_avr_ay
          | Function : | |||
| pa_avr_xa(imin:imax,jmin:jmax) : | real(DBKIND) 
 | ||
| xa_Var(imin:imax,jmin:jmax) : | real(DBKIND),intent(in) 
 | 
平均操作を行い半整数格子点の配列値を整数格子点上へ返す
    function pa_avr_xa(xa_Var)
      ! 平均操作を行い半整数格子点の配列値を整数格子点上へ返す
  
      real(DBKIND),intent(in) :: xa_Var(imin:imax,jmin:jmax)   ! 入力
      real(DBKIND)            :: pa_avr_xa(imin:imax,jmin:jmax) ! 出力
      integer                 :: jy                            ! ループ添字
      ! 初期化
      ! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
      !
      pa_avr_xa = 0.0d0
      ! 平均操作
      ! * 関数 p_x を用いて計算
      !
      do jy = jmin, jmax
        pa_avr_xa(:,jy) = p_avr_x(xa_Var(:,jy))
      end do
    end function pa_avr_xa
          | Function : | |||
| ay_avr_aq(imin:imax,jmin:jmax) : | real(DBKIND) 
 | ||
| aq_Var(imin:imax,jmin:jmax) : | real(DBKIND),intent(in) 
 | 
平均操作を行い整数格子点の配列値を半整数格子点上へ返す
    function ay_avr_aq(aq_Var)
      ! 平均操作を行い整数格子点の配列値を半整数格子点上へ返す
  
      real(DBKIND),intent(in) :: aq_Var(imin:imax,jmin:jmax)   ! 入力
      real(DBKIND)            :: ay_avr_aq(imin:imax,jmin:jmax) ! 出力
      integer                 :: ix                            ! ループ添字
      ! 初期化
      ! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
      !
      ay_avr_aq = 0.0d0
      ! 平均操作
      ! * 関数 y_q を用いて計算
      !
      do ix = imin, imax
        ay_avr_aq(ix,:) = y_avr_q(aq_Var(ix,:))
      end do
    end function ay_avr_aq
          | Function : | |||
| pa_avr_xa(imin:imax,jmin:jmax) : | real(DBKIND) 
 | ||
| xa_Var(imin:imax,jmin:jmax) : | real(DBKIND),intent(in) 
 | 
平均操作を行い半整数格子点の配列値を整数格子点上へ返す
    function pa_avr_xa(xa_Var)
      ! 平均操作を行い半整数格子点の配列値を整数格子点上へ返す
  
      real(DBKIND),intent(in) :: xa_Var(imin:imax,jmin:jmax)   ! 入力
      real(DBKIND)            :: pa_avr_xa(imin:imax,jmin:jmax) ! 出力
      integer                 :: jy                            ! ループ添字
      ! 初期化
      ! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
      !
      pa_avr_xa = 0.0d0
      ! 平均操作
      ! * 関数 p_x を用いて計算
      !
      do jy = jmin, jmax
        pa_avr_xa(:,jy) = p_avr_x(xa_Var(:,jy))
      end do
    end function pa_avr_xa
          | Function : | |||
| a_AvrX_xa(jmin:jmax) : | real(DBKIND) 
 | ||
| xa_Var(imin:imax,jmin:jmax) : | real(DBKIND), intent(in) 
 | 
xa 格子上の配列に対し x 方向に平均を行う
    function a_AvrX_xa(xa_Var)
      ! xa 格子上の配列に対し x 方向に平均を行う
      real(DBKIND), intent(in) :: xa_Var(imin:imax,jmin:jmax) ! 入力
      real(DBKIND)             :: a_AvrX_xa(jmin:jmax)        ! 出力
      a_AvrX_xa = a_IntX_xa(xa_Var)/sum(x_dx(1:im))
      
    end function a_AvrX_xa
          | Function : | |||
| a_IntX_xa(jmin:jmax) : | real(DBKIND) 
 | ||
| xa_Var(imin:imax,jmin:jmax) : | real(DBKIND), intent(in) 
 | 
xa 格子上の配列に対し x 方向に重み付きの積分を行う
    function a_IntX_xa(xa_Var)
      ! xa 格子上の配列に対し x 方向に重み付きの積分を行う
      real(DBKIND), intent(in) :: xa_Var(imin:imax,jmin:jmax) ! 入力
      real(DBKIND)             :: a_IntX_xa(jmin:jmax)        ! 出力
      integer                  :: jy                          ! ループ添字
      ! 初期化
      a_IntX_xa = 0.0d0
      ! 積分
      do jy = jmin, jmax
        a_IntX_xa(jy) = IntX_x(xa_Var(:,jy))
      end do
      
    end function a_IntX_xa
          | Variable : | |||
| q_Y(:) : | real(DBKIND),allocatable 
 | 
Original external subprogram is y_base_module#q_Y
| Function : | |||
| q_avr_y(jmin:jmax) : | real(DBKIND) 
 | ||
| y_Var(jmin:jmax) : | real(DBKIND),intent(in) 
 | 
平均操作を行い半整数格子点の配列値を整数格子点上へ返す
Original external subprogram is y_base_module#q_avr_y
| Variable : | |||
| q_dy(:) : | real(DBKIND),allocatable 
 | 
Original external subprogram is y_base_module#q_dy
| Function : | |||
| x_AvrY_xq(imin:imax) : | real(DBKIND) 
 | ||
| xq_Var(imin:imax,jmin:jmax) : | real(DBKIND), intent(in) 
 | 
xq 格子上の配列に対し y 方向に平均を行う
    function x_AvrY_xq(xq_Var)
      ! xq 格子上の配列に対し y 方向に平均を行う
      real(DBKIND), intent(in) :: xq_Var(imin:imax,jmin:jmax) ! 入力
      real(DBKIND)             :: x_AvrY_xq(imin:imax)        ! 出力
      x_AvrY_xq = x_IntY_xq(xq_Var)/sum(q_dy(1:jm))
      
    end function x_AvrY_xq
          | Function : | |||
| a_AvrY_ay(imin:imax) : | real(DBKIND) 
 | ||
| ay_Var(imin:imax,jmin:jmax) : | real(DBKIND), intent(in) 
 | 
ay 格子上の配列に対し y 方向に平均を行う
    function a_AvrY_ay(ay_Var)
      ! ay 格子上の配列に対し y 方向に平均を行う
      real(DBKIND), intent(in) :: ay_Var(imin:imax,jmin:jmax) ! 入力
      real(DBKIND)             :: a_AvrY_ay(imin:imax)        ! 出力
      a_AvrY_ay = a_IntY_ay(ay_Var)/sum(y_dy(1:jm))
      
    end function a_AvrY_ay
          | Function : | |||
| x_IntY_xq(imin:imax) : | real(DBKIND) 
 | ||
| xq_Var(imin:imax,jmin:jmax) : | real(DBKIND), intent(in) 
 | 
ay 格子上の配列に対し y 方向に重み付きの積分を行う
    function x_IntY_xq(xq_Var)
      ! ay 格子上の配列に対し y 方向に重み付きの積分を行う
      real(DBKIND), intent(in) :: xq_Var(imin:imax,jmin:jmax) ! 入力
      real(DBKIND)             :: x_IntY_xq(imin:imax)        ! 出力
      integer                  :: ix                          ! ループ添字
      ! 初期化
      x_IntY_xq = 0.0d0
      ! 積分
      do ix = imin, imax
        x_IntY_xq(ix) = IntY_q(xq_Var(ix,:))
      end do
      
    end function x_IntY_xq
          | Function : | |||
| a_IntY_ay(imin:imax) : | real(DBKIND) 
 | ||
| ay_Var(imin:imax,jmin:jmax) : | real(DBKIND), intent(in) 
 | 
ay 格子上の配列に対し y 方向に重み付きの積分を行う
    function a_IntY_ay(ay_Var)
      ! ay 格子上の配列に対し y 方向に重み付きの積分を行う
      real(DBKIND), intent(in) :: ay_Var(imin:imax,jmin:jmax) ! 入力
      real(DBKIND)             :: a_IntY_ay(imin:imax)        ! 出力
      integer                  :: ix                          ! ループ添字
      ! 初期化
      a_IntY_ay = 0.0d0
      ! 積分
      do ix = imin, imax
        a_IntY_ay(ix) = IntY_y(ay_Var(ix,:))
      end do
      
    end function a_IntY_ay
          | Variable : | |||
| x_X(:) : | real(DBKIND),allocatable 
 | 
Original external subprogram is x_base_module#x_X
| Function : | |||
| x_avr_p(imin:imax) : | real(DBKIND) 
 | ||
| p_Var(imin:imax) : | real(DBKIND),intent(in) 
 | 
平均操作を行い整数格子点の配列値を半整数格子点上へ返す
Original external subprogram is x_base_module#x_avr_p
| Variable : | |||
| x_dx(:) : | real(DBKIND),allocatable 
 | 
Original external subprogram is x_base_module#x_dx
| Variable : | |||
| xmargin = 2 : | integer 
 | 
Original external subprogram is x_base_module#xmargin
| Function : | |||
| xa_avr_pa(imin:imax,jmin:jmax) : | real(DBKIND) 
 | ||
| pa_Var(imin:imax,jmin:jmax) : | real(DBKIND),intent(in) 
 | 
平均操作を行い整数格子点の配列値を半整数格子点上へ返す
    function xa_avr_pa(pa_Var)
      ! 平均操作を行い整数格子点の配列値を半整数格子点上へ返す
  
      real(DBKIND),intent(in) :: pa_Var(imin:imax,jmin:jmax)   ! 入力
      real(DBKIND)            :: xa_avr_pa(imin:imax,jmin:jmax) ! 出力
      integer                 :: jy                            ! ループ添字
      ! 初期化
      ! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
      !
      xa_avr_pa = 0.0d0
      ! 平均操作
      ! * 関数 x_avr_p を用いて計算
      !
      do jy = jmin, jmax
        xa_avr_pa(:,jy) = x_avr_p(pa_Var(:,jy))
      end do
    end function xa_avr_pa
          | Function : | |||
| aq_avr_ay(imin:imax,jmin:jmax) : | real(DBKIND) 
 | ||
| ay_Var(imin:imax,jmin:jmax) : | real(DBKIND),intent(in) 
 | 
平均操作を行い半整数格子点の配列値を整数格子点上へ返す
    function aq_avr_ay(ay_Var)
      ! 平均操作を行い半整数格子点の配列値を整数格子点上へ返す
  
      real(DBKIND),intent(in) :: ay_Var(imin:imax,jmin:jmax)   ! 入力
      real(DBKIND)            :: aq_avr_ay(imin:imax,jmin:jmax) ! 出力
      integer                 :: ix                            ! ループ添字
      ! 初期化
      ! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
      !
      aq_avr_ay = 0.0d0
      ! 平均操作
      ! * 関数 q_y を用いて計算.
      ! 
      do ix = imin, imax
        aq_avr_ay(ix,:) = q_avr_y(ay_Var(ix,:))
      end do
    end function aq_avr_ay
          | Function : | |||
| xa_avr_pa(imin:imax,jmin:jmax) : | real(DBKIND) 
 | ||
| pa_Var(imin:imax,jmin:jmax) : | real(DBKIND),intent(in) 
 | 
平均操作を行い整数格子点の配列値を半整数格子点上へ返す
    function xa_avr_pa(pa_Var)
      ! 平均操作を行い整数格子点の配列値を半整数格子点上へ返す
  
      real(DBKIND),intent(in) :: pa_Var(imin:imax,jmin:jmax)   ! 入力
      real(DBKIND)            :: xa_avr_pa(imin:imax,jmin:jmax) ! 出力
      integer                 :: jy                            ! ループ添字
      ! 初期化
      ! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
      !
      xa_avr_pa = 0.0d0
      ! 平均操作
      ! * 関数 x_avr_p を用いて計算
      !
      do jy = jmin, jmax
        xa_avr_pa(:,jy) = x_avr_p(pa_Var(:,jy))
      end do
    end function xa_avr_pa
          | Function : | |||
| ay_avr_aq(imin:imax,jmin:jmax) : | real(DBKIND) 
 | ||
| aq_Var(imin:imax,jmin:jmax) : | real(DBKIND),intent(in) 
 | 
平均操作を行い整数格子点の配列値を半整数格子点上へ返す
    function ay_avr_aq(aq_Var)
      ! 平均操作を行い整数格子点の配列値を半整数格子点上へ返す
  
      real(DBKIND),intent(in) :: aq_Var(imin:imax,jmin:jmax)   ! 入力
      real(DBKIND)            :: ay_avr_aq(imin:imax,jmin:jmax) ! 出力
      integer                 :: ix                            ! ループ添字
      ! 初期化
      ! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
      !
      ay_avr_aq = 0.0d0
      ! 平均操作
      ! * 関数 y_q を用いて計算
      !
      do ix = imin, imax
        ay_avr_aq(ix,:) = y_avr_q(aq_Var(ix,:))
      end do
    end function ay_avr_aq
          | Subroutine : | |||
| i : | integer,intent(in) 
 | ||
| j : | integer,intent(in) 
 | ||
| xmg : | integer,intent(in) 
 | ||
| ymg : | integer,intent(in) 
 | ||
| xmin : | real(DBKIND),intent(in) 
 | ||
| xmax : | real(DBKIND),intent(in) 
 | ||
| ymin : | real(DBKIND),intent(in) 
 | ||
| ymax : | real(DBKIND),intent(in) 
 | 
xy 方向の座標値と格子点間隔を設定する
    subroutine xy_axis_init(i, j, xmg, ymg, xmin, xmax, ymin, ymax)
      ! xy 方向の座標値と格子点間隔を設定する
      integer,intent(in) :: i     ! x 方向格子点数
      integer,intent(in) :: j     ! y 方向格子点数
      integer,intent(in) :: xmg   ! x 方向糊代格子点数
      integer,intent(in) :: ymg   ! y 方向糊代格子点数
      real(DBKIND),intent(in)     :: xmin  ! x 座標最小値     
      real(DBKIND),intent(in)     :: xmax  ! x 座標最大値  
      real(DBKIND),intent(in)     :: ymin  ! y 座標最小値     
      real(DBKIND),intent(in)     :: ymax  ! y 座標最大値  
      ! 配列の上下限の値, 座標値と格子点間隔を設定
      ! * 1 次元用のサブルーチンを用いる
      !
      call x_axis_init(i, xmg, xmin, xmax)
      call y_axis_init(j, ymg, ymin, ymax)
      ! 2 次元座標配列の設定
      ! * 組み込み関数 spread を用いて 1 次元配列を 2 次元に拡張する.
      ! 
      allocate(xy_X(imin:imax,jmin:jmax))
      allocate(xy_Y(imin:imax,jmin:jmax))
      allocate(xy_dx(imin:imax,jmin:jmax))
      allocate(py_dx(imin:imax,jmin:jmax))
      allocate(xy_dy(imin:imax,jmin:jmax))
      allocate(xq_dy(imin:imax,jmin:jmax))
      xy_X  = spread(x_X,2,size(y_Y))
      xy_Y  = spread(y_Y,1,size(x_X))
      xy_dx = spread(x_dx,2,size(y_Y))
      py_dx = spread(p_dx,2,size(y_Y))
      xy_dy = spread(y_dy,1,size(x_X))
      xq_dy = spread(q_dy,1,size(x_X))
    end subroutine xy_axis_init  
          | Function : | |||
| y_AvrX_py(jmin:jmax) : | real(DBKIND) 
 | ||
| py_Var(imin:imax,jmin:jmax) : | real(DBKIND), intent(in) 
 | 
py 格子上の配列に対し x 方向に平均を行う
    function y_AvrX_py(py_Var)
      ! py 格子上の配列に対し x 方向に平均を行う
      real(DBKIND), intent(in) :: py_Var(imin:imax,jmin:jmax) ! 入力
      real(DBKIND)             :: y_AvrX_py(jmin:jmax)        ! 出力
      y_AvrX_py = y_IntX_py(py_Var)/sum(p_dx(1:im))
      
    end function y_AvrX_py
          | Function : | |||
| a_AvrX_xa(jmin:jmax) : | real(DBKIND) 
 | ||
| xa_Var(imin:imax,jmin:jmax) : | real(DBKIND), intent(in) 
 | 
xa 格子上の配列に対し x 方向に平均を行う
    function a_AvrX_xa(xa_Var)
      ! xa 格子上の配列に対し x 方向に平均を行う
      real(DBKIND), intent(in) :: xa_Var(imin:imax,jmin:jmax) ! 入力
      real(DBKIND)             :: a_AvrX_xa(jmin:jmax)        ! 出力
      a_AvrX_xa = a_IntX_xa(xa_Var)/sum(x_dx(1:im))
      
    end function a_AvrX_xa
          | Function : | |||
| y_IntX_py(jmin:jmax) : | real(DBKIND) 
 | ||
| py_Var(imin:imax,jmin:jmax) : | real(DBKIND), intent(in) 
 | 
py 格子上の配列に対し x 方向に重み付きの積分を行う
    function y_IntX_py(py_Var)
      ! py 格子上の配列に対し x 方向に重み付きの積分を行う
      real(DBKIND), intent(in) :: py_Var(imin:imax,jmin:jmax) ! 入力
      real(DBKIND)             :: y_IntX_py(jmin:jmax)        ! 出力
      integer                  :: jy                          ! ループ添字
      ! 初期化
      y_IntX_py = 0.0d0
      ! 積分
      do jy = jmin, jmax
        y_IntX_py(jy) = IntX_p(py_Var(:,jy))
      end do
      
    end function y_IntX_py
          | Function : | |||
| a_IntX_xa(jmin:jmax) : | real(DBKIND) 
 | ||
| xa_Var(imin:imax,jmin:jmax) : | real(DBKIND), intent(in) 
 | 
xa 格子上の配列に対し x 方向に重み付きの積分を行う
    function a_IntX_xa(xa_Var)
      ! xa 格子上の配列に対し x 方向に重み付きの積分を行う
      real(DBKIND), intent(in) :: xa_Var(imin:imax,jmin:jmax) ! 入力
      real(DBKIND)             :: a_IntX_xa(jmin:jmax)        ! 出力
      integer                  :: jy                          ! ループ添字
      ! 初期化
      a_IntX_xa = 0.0d0
      ! 積分
      do jy = jmin, jmax
        a_IntX_xa(jy) = IntX_x(xa_Var(:,jy))
      end do
      
    end function a_IntX_xa
          | Variable : | |||
| y_Y(:) : | real(DBKIND),allocatable 
 | 
Original external subprogram is y_base_module#y_Y
| Function : | |||
| y_avr_q(jmin:jmax) : | real(DBKIND) 
 | ||
| q_Var(jmin:jmax) : | real(DBKIND),intent(in) 
 | 
平均操作を行い整数格子点の配列値を半整数格子点上へ返す
Original external subprogram is y_base_module#y_avr_q
| Variable : | |||
| y_dy(:) : | real(DBKIND),allocatable 
 | 
Original external subprogram is y_base_module#y_dy
| Variable : | |||
| ymargin = 2 : | integer 
 | 
Original external subprogram is y_base_module#ymargin