Class xyz_bc_module
In: util/xyz_bc_module.f90

3 次元 (xyz 方向) 不等間隔交互格子 有限差分モデル用 境界条件モジュール

概要

xyz_bc_module は, 3 次元 (xyz 方向) 不等間隔交互格子を用いた有限差分法に 基づく数値モデルのための, 境界条件設定 Fortran 90 副プログラムを提供 する.

このモジュールは xyz_module の下位モジュールである. 下請けモジュール として data_type, xyz_base_module, x_bc_module, y_bc_module, z_bc_module モジュールを用いている.

手続きの命名法

境界条件を設定する副プログラムは

  Boundary[境界条件を示す文字列][...]_(入力配列の次元情報)

のように命名されている. 境界条件を示す文字列の種類は x_bc_module, y_bc_module, z_bc_module の場合と同じである.

Methods

Included Modules

dc_types xyz_base_module x_bc_module y_bc_module z_bc_module

Public Instance methods

Subroutine :
pyz_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryXAsym_pyz(pyz_Var)
      real(DBKIND),intent(inout) :: pyz_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: jy, kz
      
      ! x 方向に反対称境界条件を適用する
      do kz = kmin, kmax
        do jy = jmin, jmax
          call BoundaryAsym_p(pyz_Var(:,jy,kz))
        end do
      end do

    end subroutine BoundaryXAsym_pyz
Subroutine :
xaa_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryXAsym_xaa(xaa_Var)
      real(DBKIND),intent(inout) :: xaa_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: jy, kz
      
      ! x 方向に反対称境界条件を適用する
      do kz = kmin, kmax
        do jy = jmin, jmax
          call BoundaryAsym_x(xaa_Var(:,jy,kz))
        end do
      end do

    end subroutine BoundaryXAsym_xaa
Subroutine :
xaa_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryXAsym_xaa(xaa_Var)
      real(DBKIND),intent(inout) :: xaa_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: jy, kz
      
      ! x 方向に反対称境界条件を適用する
      do kz = kmin, kmax
        do jy = jmin, jmax
          call BoundaryAsym_x(xaa_Var(:,jy,kz))
        end do
      end do

    end subroutine BoundaryXAsym_xaa
Subroutine :
xaa_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryXAsym_xaa(xaa_Var)
      real(DBKIND),intent(inout) :: xaa_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: jy, kz
      
      ! x 方向に反対称境界条件を適用する
      do kz = kmin, kmax
        do jy = jmin, jmax
          call BoundaryAsym_x(xaa_Var(:,jy,kz))
        end do
      end do

    end subroutine BoundaryXAsym_xaa
Subroutine :
pyz_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryXCyc_pyz(pyz_Var)
      real(DBKIND),intent(inout) :: pyz_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: jy, kz
      
      ! x 方向に周期境界条件を適用する
      do kz = kmin, kmax
        do jy = jmin, jmax
          call BoundaryCyc_p(pyz_Var(:,jy,kz))
        end do
      end do

    end subroutine BoundaryXCyc_pyz
Subroutine :
xaa_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryXCyc_xaa(xaa_Var)
      real(DBKIND),intent(inout) :: xaa_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: jy, kz
      
      ! x 方向に周期境界条件を適用する
      do kz = kmin, kmax
        do jy = jmin, jmax
          call BoundaryCyc_x(xaa_Var(:,jy,kz))
        end do
      end do

    end subroutine BoundaryXCyc_xaa
Subroutine :
xaa_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryXCyc_xaa(xaa_Var)
      real(DBKIND),intent(inout) :: xaa_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: jy, kz
      
      ! x 方向に周期境界条件を適用する
      do kz = kmin, kmax
        do jy = jmin, jmax
          call BoundaryCyc_x(xaa_Var(:,jy,kz))
        end do
      end do

    end subroutine BoundaryXCyc_xaa
Subroutine :
xaa_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryXCyc_xaa(xaa_Var)
      real(DBKIND),intent(inout) :: xaa_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: jy, kz
      
      ! x 方向に周期境界条件を適用する
      do kz = kmin, kmax
        do jy = jmin, jmax
          call BoundaryCyc_x(xaa_Var(:,jy,kz))
        end do
      end do

    end subroutine BoundaryXCyc_xaa
Subroutine :
pyz_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryXSym_pyz(pyz_Var)
      real(DBKIND),intent(inout) :: pyz_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: jy, kz
      
      ! x 方向に対称境界条件を適用する
      do kz = kmin, kmax
        do jy = jmin, jmax
          call BoundarySym_p(pyz_Var(:,jy,kz))
        end do
      end do

    end subroutine BoundaryXSym_pyz
Subroutine :
xaa_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryXSym_xaa(xaa_Var)
      real(DBKIND),intent(inout) :: xaa_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: jy, kz
      
      ! x 方向に対称境界条件を適用する
      do kz = kmin, kmax
        do jy = jmin, jmax
          call BoundarySym_x(xaa_Var(:,jy,kz))
        end do
      end do

    end subroutine BoundaryXSym_xaa
Subroutine :
xaa_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryXSym_xaa(xaa_Var)
      real(DBKIND),intent(inout) :: xaa_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: jy, kz
      
      ! x 方向に対称境界条件を適用する
      do kz = kmin, kmax
        do jy = jmin, jmax
          call BoundarySym_x(xaa_Var(:,jy,kz))
        end do
      end do

    end subroutine BoundaryXSym_xaa
Subroutine :
xaa_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryXSym_xaa(xaa_Var)
      real(DBKIND),intent(inout) :: xaa_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: jy, kz
      
      ! x 方向に対称境界条件を適用する
      do kz = kmin, kmax
        do jy = jmin, jmax
          call BoundarySym_x(xaa_Var(:,jy,kz))
        end do
      end do

    end subroutine BoundaryXSym_xaa
Subroutine :
xqz_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryYASym_xqz(xqz_Var)
      real(DBKIND),intent(inout) :: xqz_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, kz
      
      ! y 方向に反対称境界条件を適用する
      do kz = kmin, kmax
        do ix = imin, imax
          call boundaryASym_q(xqz_Var(ix,:,kz))
        end do
      end do

    end subroutine BoundaryYAsym_xqz
Subroutine :
aya_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryYASym_aya(aya_Var)
      real(DBKIND),intent(inout) :: aya_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, kz
      
      ! y 方向に反対称境界条件を適用する
      do kz = kmin, kmax
        do ix = imin, imax
          call boundaryASym_y(aya_Var(ix,:,kz))
        end do
      end do

    end subroutine BoundaryYAsym_aya
Subroutine :
aya_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryYASym_aya(aya_Var)
      real(DBKIND),intent(inout) :: aya_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, kz
      
      ! y 方向に反対称境界条件を適用する
      do kz = kmin, kmax
        do ix = imin, imax
          call boundaryASym_y(aya_Var(ix,:,kz))
        end do
      end do

    end subroutine BoundaryYAsym_aya
Subroutine :
aya_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryYASym_aya(aya_Var)
      real(DBKIND),intent(inout) :: aya_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, kz
      
      ! y 方向に反対称境界条件を適用する
      do kz = kmin, kmax
        do ix = imin, imax
          call boundaryASym_y(aya_Var(ix,:,kz))
        end do
      end do

    end subroutine BoundaryYAsym_aya
Subroutine :
aya_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryYCyc_aya(aya_Var)
      real(DBKIND),intent(inout) :: aya_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, kz
      
      ! y 方向に周期境界条件を適用する
      do kz = kmin, kmax
        do ix = imin, imax
          call BoundaryCyc_y(aya_Var(ix,:,kz))
        end do
      end do

    end subroutine BoundaryYCyc_aya
Subroutine :
xqz_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryYCyc_xqz(xqz_Var)
      real(DBKIND),intent(inout) :: xqz_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, kz
      
      ! y 方向に周期境界条件を適用する
      do kz = kmin, kmax
        do ix = imin, imax
          call BoundaryCyc_q(xqz_Var(ix,:,kz))
        end do
      end do

    end subroutine BoundaryYCyc_xqz
Subroutine :
aya_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryYCyc_aya(aya_Var)
      real(DBKIND),intent(inout) :: aya_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, kz
      
      ! y 方向に周期境界条件を適用する
      do kz = kmin, kmax
        do ix = imin, imax
          call BoundaryCyc_y(aya_Var(ix,:,kz))
        end do
      end do

    end subroutine BoundaryYCyc_aya
Subroutine :
aya_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryYCyc_aya(aya_Var)
      real(DBKIND),intent(inout) :: aya_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, kz
      
      ! y 方向に周期境界条件を適用する
      do kz = kmin, kmax
        do ix = imin, imax
          call BoundaryCyc_y(aya_Var(ix,:,kz))
        end do
      end do

    end subroutine BoundaryYCyc_aya
Subroutine :
aya_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryYSym_aya(aya_Var)
      real(DBKIND),intent(inout) :: aya_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, kz
      
      ! y 方向に対称境界条件を適用する
      do kz = kmin, kmax
        do ix = imin, imax
          call boundarySym_y(aya_Var(ix,:,kz))
        end do
      end do

    end subroutine BoundaryYsym_aya
Subroutine :
xqz_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryYSym_xqz(xqz_Var)
      real(DBKIND),intent(inout) :: xqz_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, kz
      
      ! y 方向に対称境界条件を適用する
      do kz = kmin, kmax
        do ix = imin, imax
          call boundarySym_q(xqz_Var(ix,:,kz))
        end do
      end do

    end subroutine BoundaryYsym_xqz
Subroutine :
aya_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryYSym_aya(aya_Var)
      real(DBKIND),intent(inout) :: aya_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, kz
      
      ! y 方向に対称境界条件を適用する
      do kz = kmin, kmax
        do ix = imin, imax
          call boundarySym_y(aya_Var(ix,:,kz))
        end do
      end do

    end subroutine BoundaryYsym_aya
Subroutine :
aya_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryYSym_aya(aya_Var)
      real(DBKIND),intent(inout) :: aya_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, kz
      
      ! y 方向に対称境界条件を適用する
      do kz = kmin, kmax
        do ix = imin, imax
          call boundarySym_y(aya_Var(ix,:,kz))
        end do
      end do

    end subroutine BoundaryYsym_aya
Subroutine :
aaz_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryZAsym_aaz(aaz_Var)
      real(DBKIND),intent(inout) :: aaz_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, jy
      
      ! z 方向に反対称境界条件を適用する
      do jy = jmin, jmax
        do ix = imin, imax
          call boundaryAsym_z(aaz_Var(ix,jy,:))
        end do
      end do

    end subroutine BoundaryZAsym_aaz
Subroutine :
aaz_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryZAsym_aaz(aaz_Var)
      real(DBKIND),intent(inout) :: aaz_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, jy
      
      ! z 方向に反対称境界条件を適用する
      do jy = jmin, jmax
        do ix = imin, imax
          call boundaryAsym_z(aaz_Var(ix,jy,:))
        end do
      end do

    end subroutine BoundaryZAsym_aaz
Subroutine :
xyr_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryZAsym_xyr(xyr_Var)
      real(DBKIND),intent(inout) :: xyr_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, jy
      
      ! z 方向に反対称境界条件を適用する
      do jy = jmin, jmax
        do ix = imin, imax
          call boundaryAsym_r(xyr_Var(ix,jy,:))
        end do
      end do

    end subroutine BoundaryZAsym_xyr
Subroutine :
aaz_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryZAsym_aaz(aaz_Var)
      real(DBKIND),intent(inout) :: aaz_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, jy
      
      ! z 方向に反対称境界条件を適用する
      do jy = jmin, jmax
        do ix = imin, imax
          call boundaryAsym_z(aaz_Var(ix,jy,:))
        end do
      end do

    end subroutine BoundaryZAsym_aaz
Subroutine :
aaz_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryZCyc_aaz(aaz_Var)
      real(DBKIND),intent(inout) :: aaz_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, jy
      
      ! z 方向に周期境界条件を適用する
      do jy = jmin, jmax
        do ix = imin, imax
          call boundaryCyc_z(aaz_Var(ix,jy,:))
        end do
      end do

    end subroutine BoundaryZCyc_aaz
Subroutine :
aaz_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryZCyc_aaz(aaz_Var)
      real(DBKIND),intent(inout) :: aaz_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, jy
      
      ! z 方向に周期境界条件を適用する
      do jy = jmin, jmax
        do ix = imin, imax
          call boundaryCyc_z(aaz_Var(ix,jy,:))
        end do
      end do

    end subroutine BoundaryZCyc_aaz
Subroutine :
xyr_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryZCyc_xyr(xyr_Var)
      real(DBKIND),intent(inout) :: xyr_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, jy
      
      ! z 方向に周期境界条件を適用する
      do jy = jmin, jmax
        do ix = imin, imax
          call boundaryCyc_z(xyr_Var(ix,jy,:))
        end do
      end do

    end subroutine BoundaryZCyc_xyr
Subroutine :
aaz_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryZCyc_aaz(aaz_Var)
      real(DBKIND),intent(inout) :: aaz_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, jy
      
      ! z 方向に周期境界条件を適用する
      do jy = jmin, jmax
        do ix = imin, imax
          call boundaryCyc_z(aaz_Var(ix,jy,:))
        end do
      end do

    end subroutine BoundaryZCyc_aaz
Subroutine :
aaz_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryZSym_aaz(aaz_Var)
      real(DBKIND),intent(inout) :: aaz_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, jy
      
      ! z 方向に対称境界条件を適用する
      do jy = jmin, jmax
        do ix = imin, imax
          call boundarySym_z(aaz_Var(ix,jy,:))
        end do
      end do

    end subroutine BoundaryZSym_aaz
Subroutine :
aaz_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryZSym_aaz(aaz_Var)
      real(DBKIND),intent(inout) :: aaz_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, jy
      
      ! z 方向に対称境界条件を適用する
      do jy = jmin, jmax
        do ix = imin, imax
          call boundarySym_z(aaz_Var(ix,jy,:))
        end do
      end do

    end subroutine BoundaryZSym_aaz
Subroutine :
xyr_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryZSym_xyr(xyr_Var)
      real(DBKIND),intent(inout) :: xyr_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, jy
      
      ! z 方向に対称境界条件を適用する
      do jy = jmin, jmax
        do ix = imin, imax
          call boundarySym_r(xyr_Var(ix,jy,:))
        end do
      end do

    end subroutine BoundaryZSym_xyr
Subroutine :
aaz_Var(imin:imax,jmin:jmax,kmin:kmax) :real(DBKIND),intent(inout)

[Source]

    subroutine BoundaryZSym_aaz(aaz_Var)
      real(DBKIND),intent(inout) :: aaz_Var(imin:imax,jmin:jmax,kmin:kmax) 
      integer           :: ix, jy
      
      ! z 方向に対称境界条件を適用する
      do jy = jmin, jmax
        do ix = imin, imax
          call boundarySym_z(aaz_Var(ix,jy,:))
        end do
      end do

    end subroutine BoundaryZSym_aaz

[Validate]