| Class | xyz_base_module |
| In: |
setup/xyz_base_module.f90
|
xyz_base_module は, 3 次元 (xyz 方向) 等間隔交互格子を用いた有限差分 法に基づく数値モデルのための, 基本的な Fortran90 副プログラムおよび 関数を提供する.
このモジュールは xyz_module の下位モジュールである. 下請けモジュール として data_type, x_base_module, y_base_module z_base_module モジュールを用いている.
| Function : | |||
| AvrXYZ_pyz : | real(DBKIND)
| ||
| pyz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
pyz 格子上の配列に対し領域積分を行う
function AvrXYZ_pyz(pyz_Var)
! pyz 格子上の配列に対し領域積分を行う
real(DBKIND), intent(in) :: pyz_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: AvrXYZ_pyz ! 出力
! 初期化
AvrXYZ_pyz = 0.0d0
AvrXYZ_pyz = IntXYZ_pyz(pyz_Var)/ (sum(x_dx(1:im))*sum(y_dy(1:jm))*sum(z_dz(1:km)))
end function AvrXYZ_pyz
| Function : | |||
| AvrXYZ_xqz : | real(DBKIND)
| ||
| xqz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xqz 格子上の配列に対し領域積分を行う
function AvrXYZ_xqz(xqz_Var)
! xqz 格子上の配列に対し領域積分を行う
real(DBKIND), intent(in) :: xqz_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: AvrXYZ_xqz ! 出力
! 初期化
AvrXYZ_xqz = 0.0d0
AvrXYZ_xqz = IntXYZ_xqz(xqz_Var)/ (sum(x_dx(1:im))*sum(y_dy(1:jm))*sum(z_dz(1:km)))
end function AvrXYZ_xqz
| Function : | |||
| AvrXYZ_xyr : | real(DBKIND)
| ||
| xyr_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xyr 格子上の配列に対し領域積分を行う
function AvrXYZ_xyr(xyr_Var)
! xyr 格子上の配列に対し領域積分を行う
real(DBKIND), intent(in) :: xyr_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: AvrXYZ_xyr ! 出力
! 初期化
AvrXYZ_xyr = 0.0d0
AvrXYZ_xyr = IntXYZ_xyr(xyr_Var)/ (sum(x_dx(1:im))*sum(y_dy(1:jm))*sum(z_dz(1:km)))
end function AvrXYZ_xyr
| Function : | |||
| AvrXYZ_xyz : | real(DBKIND)
| ||
| xyz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xyz 格子上の配列に対し領域積分を行う
function AvrXYZ_xyz(xyz_Var)
! xyz 格子上の配列に対し領域積分を行う
real(DBKIND), intent(in) :: xyz_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: AvrXYZ_xyz ! 出力
! 初期化
AvrXYZ_xyz = 0.0d0
AvrXYZ_xyz = IntXYZ_xyz(xyz_Var)/ (sum(x_dx(1:im))*sum(y_dy(1:jm))*sum(z_dz(1:km)))
end function AvrXYZ_xyz
| Function : | |||
| AvrX_p : | real(DBKIND)
| ||
| p_Var(imin:imax) : | real(DBKIND), intent(in)
|
整数格子上の配列に対し x 方向の平均操作を行う
Original external subprogram is xy_base_module#AvrX_p
| 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 xy_base_module#AvrX_x
| 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 : | |||
| AvrZ_r : | real(DBKIND)
| ||
| r_Var(kmin:kmax) : | real(DBKIND), intent(in)
|
整数格子上の配列に対し z 方向の平均操作を行う
Original external subprogram is z_base_module#AvrZ_r
| Function : | |||
| AvrZ_z : | real(DBKIND)
| ||
| z_Var(kmin:kmax) : | real(DBKIND), intent(in)
|
半整数格子上の配列に対し z 方向の平均操作を行う
Original external subprogram is z_base_module#AvrZ_z
| Function : | |||
| IntXYZ_pyz : | real(DBKIND)
| ||
| pyz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
pyz 格子上の配列に対し領域積分を行う
function IntXYZ_pyz(pyz_Var)
! pyz 格子上の配列に対し領域積分を行う
real(DBKIND), intent(in) :: pyz_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: IntXYZ_pyz ! 出力
! 初期化
IntXYZ_pyz = 0.0d0
IntXYZ_pyz = IntZ_z(z_IntXY_pyz(pyz_Var))
end function IntXYZ_pyz
| Function : | |||
| IntXYZ_xqz : | real(DBKIND)
| ||
| xqz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xqz 格子上の配列に対し領域積分を行う
function IntXYZ_xqz(xqz_Var)
! xqz 格子上の配列に対し領域積分を行う
real(DBKIND), intent(in) :: xqz_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: IntXYZ_xqz ! 出力
! 初期化
IntXYZ_xqz = 0.0d0
IntXYZ_xqz = IntZ_z(z_IntXY_xqz(xqz_Var))
end function IntXYZ_xqz
| Function : | |||
| IntXYZ_xyr : | real(DBKIND)
| ||
| xyr_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xyr 格子上の配列に対し領域積分を行う
function IntXYZ_xyr(xyr_Var)
! xyr 格子上の配列に対し領域積分を行う
real(DBKIND), intent(in) :: xyr_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: IntXYZ_xyr ! 出力
! 初期化
IntXYZ_xyr = 0.0d0
IntXYZ_xyr = IntZ_r(a_IntXY_xya(xyr_Var))
end function IntXYZ_xyr
| Function : | |||
| IntXYZ_xyz : | real(DBKIND)
| ||
| xyz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xyz 格子上の配列に対し領域積分を行う
function IntXYZ_xyz(xyz_Var)
! xyz 格子上の配列に対し領域積分を行う
real(DBKIND), intent(in) :: xyz_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: IntXYZ_xyz ! 出力
! 初期化
IntXYZ_xyz = 0.0d0
IntXYZ_xyz = IntZ_z(a_IntXY_xya(xyz_Var))
end function IntXYZ_xyz
| Function : | |||
| IntX_p : | real(DBKIND)
| ||
| p_Var(imin:imax) : | real(DBKIND), intent(in)
|
整数格子上の配列に対し x 方向に重み付きの積分を行う
Original external subprogram is xy_base_module#IntX_p
| 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 xy_base_module#IntX_x
| 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 : | |||
| IntZ_r : | real(DBKIND)
| ||
| r_Var(kmin:kmax) : | real(DBKIND), intent(in)
|
整数格子上の配列に対し z 方向に重み付きの積分を行う
Original external subprogram is z_base_module#IntZ_r
| Function : | |||
| IntZ_z : | real(DBKIND)
| ||
| z_Var(kmin:kmax) : | real(DBKIND), intent(in)
|
半整数格子上の配列に対し z 方向に重み付きの積分を行う
Original external subprogram is z_base_module#IntZ_z
| Variable : | |||
| p_X(:) : | real(DBKIND),allocatable
|
Original external subprogram is xy_base_module#p_X
| 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 xy_base_module#p_avr_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 xy_base_module#p_dx
| Variable : | |||
| p_dx(:) : | real(DBKIND),allocatable
|
Original external subprogram is x_base_module#p_dx
| Function : | |||||
| aqa_avr_aya(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||||
| aya_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND),intent(in) |
平均操作を行い y 方向半整数格子点の配列値を整数格子点上へ返す
function aqa_avr_aya(aya_Var)
! 平均操作を行い y 方向半整数格子点の配列値を整数格子点上へ返す
real(DBKIND),intent(in) :: aya_Var(imin:imax,jmin:jmax,kmin:kmax)
real(DBKIND) :: aqa_avr_aya(imin:imax,jmin:jmax,kmin:kmax)
! integer :: ix, kz
integer :: jy
! 初期化
! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
!
aqa_avr_aya = 0.0d0
! 平均操作
! * 関数 q_avr_y を用いて計算
!
! do kz = kmin, kmax
! do ix = imin, imax
! aqa_avr_aya(ix,:,kz) = q_avr_y(aya_Var(ix,:,kz))
! end do
! end do
do jy = jmin, jmax-1
aqa_avr_aya(:,jy,:) = (y_dy(jy)*aya_Var(:,jy+1,:) + y_dy(jy+1)*aya_Var(:,jy,:)) * 0.5d0/q_dy(jy)
end do
aqa_avr_aya(:,jmax,:) = aqa_avr_aya(:,jmax-1,:)
end function aqa_avr_aya
| Function : | |||||
| paa_avr_xaa(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||||
| xaa_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND),intent(in) |
半整数格子点の配列値を整数点上へ返す
function paa_avr_xaa(xaa_Var)
! 半整数格子点の配列値を整数点上へ返す
real(DBKIND),intent(in) :: xaa_Var(imin:imax,jmin:jmax,kmin:kmax)
real(DBKIND) :: paa_avr_xaa(imin:imax,jmin:jmax,kmin:kmax)
! integer :: jy, kz
integer :: ix
! 初期化
! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
!
paa_avr_xaa = 0.0d0
! 平均操作
! * 関数 p_avr_x を用いて計算
!
! do kz = kmin, kmax
! do jy = jmin, jmax
! paa_avr_xaa(:,jy,kz) = p_avr_x(xaa_Var(:,jy,kz))
! end do
! end do
do ix = imin, imax-1
paa_avr_xaa(ix,:,:) = (x_dx(ix)*xaa_Var(ix+1,:,:) + x_dx(ix+1)*xaa_Var(ix,:,:)) *0.5d0/p_dx(ix)
end do
paa_avr_xaa(imax,:,:) = paa_avr_xaa(imax-1,:,:)
end function paa_avr_xaa
| Function : | |||
| pqz_avr_xyz(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||
| xyz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
function pqz_avr_xyz(xyz_Var)
real(DBKIND), intent(in) :: xyz_Var(imin:imax,jmin:jmax,kmin:kmax)! 入力
real(DBKIND) :: pqz_avr_xyz(imin:imax,jmin:jmax,kmin:kmax) ! 出力
integer :: ix, jy ! ループ添字
! 初期化
pqz_avr_xyz = 0.0d0
do jy = jmin, jmax-1
do ix = imin, imax-1
pqz_avr_xyz(ix,jy,:) = ( xyz_Var(ix,jy,:) + xyz_Var(ix+1,jy,:) + xyz_Var(ix,jy+1,:) + xyz_Var(ix+1,jy+1,:) ) * 0.25d0
end do
end do
end function pqz_avr_xyz
| Function : | |||
| aa_AvrZ_aaz(imin:imax,jmin:jmax) : | real(DBKIND)
| ||
| aaz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
aaz 格子上の配列に対し z 方向平均を行う
function aa_AvrZ_aaz(aaz_Var)
! aaz 格子上の配列に対し z 方向平均を行う
real(DBKIND), intent(in) :: aaz_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: aa_AvrZ_aaz(imin:imax,jmin:jmax) ! 出力
! 初期化
aa_AvrZ_aaz = 0.0d0
! 平均
aa_AvrZ_aaz = aa_IntZ_aaz(aaz_Var)/sum(z_dz(1:km))
end function aa_AvrZ_aaz
| Function : | |||
| aa_IntZ_aaz(imin:imax,jmin:jmax) : | real(DBKIND)
| ||
| aaz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
aaz 格子上の配列に対し z 方向積分を行う
function aa_IntZ_aaz(aaz_Var)
! aaz 格子上の配列に対し z 方向積分を行う
real(DBKIND), intent(in) :: aaz_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: aa_IntZ_aaz(imin:imax,jmin:jmax) ! 出力
integer :: ix, jy ! ループ添字
! 初期化
aa_IntZ_aaz = 0.0d0
! 積分
do jy = jmin, jmax
do ix = imin, imax
aa_IntZ_aaz(ix,jy) = IntZ_z(aaz_Var(ix,jy,:))
end do
end do
end function aa_IntZ_aaz
| Function : | |||||
| aar_avr_aaz(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||||
| aaz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND),intent(in) |
平均操作を行い z 方向半整数格子点の配列値を整数格子点上へ返す
function aar_avr_aaz(aaz_Var)
! 平均操作を行い z 方向半整数格子点の配列値を整数格子点上へ返す
real(DBKIND),intent(in) :: aaz_Var(imin:imax,jmin:jmax,kmin:kmax)
real(DBKIND) :: aar_avr_aaz(imin:imax,jmin:jmax,kmin:kmax)
! integer :: ix, jy
integer :: kz
! 初期化
! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
!
aar_avr_aaz = 0.0d0
! 平均操作
! * 関数 r_avr_z を用いて計算
!
! do jy = jmin, jmax
! do ix = imin, imax
! aar_avr_aaz(ix,jy,:) = r_avr_z(aaz_Var(ix,jy,:))
! end do
! end do
do kz = kmin, kmax-1
aar_avr_aaz(:,:,kz) = (z_dz(kz)*aaz_Var(:,:,kz+1) + z_dz(kz+1)*aaz_Var(:,:,kz)) *0.5d0/r_dz(kz)
end do
aar_avr_aaz(:,:,kmax) = aar_avr_aaz(:,:,kmax-1)
end function aar_avr_aaz
| Function : | |||||
| paa_avr_xaa(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||||
| xaa_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND),intent(in) |
半整数格子点の配列値を整数点上へ返す
function paa_avr_xaa(xaa_Var)
! 半整数格子点の配列値を整数点上へ返す
real(DBKIND),intent(in) :: xaa_Var(imin:imax,jmin:jmax,kmin:kmax)
real(DBKIND) :: paa_avr_xaa(imin:imax,jmin:jmax,kmin:kmax)
! integer :: jy, kz
integer :: ix
! 初期化
! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
!
paa_avr_xaa = 0.0d0
! 平均操作
! * 関数 p_avr_x を用いて計算
!
! do kz = kmin, kmax
! do jy = jmin, jmax
! paa_avr_xaa(:,jy,kz) = p_avr_x(xaa_Var(:,jy,kz))
! end do
! end do
do ix = imin, imax-1
paa_avr_xaa(ix,:,:) = (x_dx(ix)*xaa_Var(ix+1,:,:) + x_dx(ix+1)*xaa_Var(ix,:,:)) *0.5d0/p_dx(ix)
end do
paa_avr_xaa(imax,:,:) = paa_avr_xaa(imax-1,:,:)
end function paa_avr_xaa
| Function : | |||
| pyr_avr_xyz(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||
| xyz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
function pyr_avr_xyz(xyz_Var)
real(DBKIND), intent(in) :: xyz_Var(imin:imax,jmin:jmax,kmin:kmax)! 入力
real(DBKIND) :: pyr_avr_xyz(imin:imax,jmin:jmax,kmin:kmax) ! 出力
integer :: ix, kz ! ループ添字
! 初期化
pyr_avr_xyz = 0.0d0
do kz = kmin, kmax-1
do ix = imin, imax-1
pyr_avr_xyz(ix,:,kz) = ( xyz_Var(ix,:,kz) + xyz_Var(ix+1,:,kz) + xyz_Var(ix,:,kz+1) + xyz_Var(ix+1,:,kz+1) ) * 0.25d0
end do
end do
end function pyr_avr_xyz
| Function : | |||||
| aya_avr_aqa(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||||
| aqa_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND),intent(in) |
平均操作を行い y 方向半整数格子点の配列値を整数格子点上へ返す
function aya_avr_aqa(aqa_Var)
! 平均操作を行い y 方向半整数格子点の配列値を整数格子点上へ返す
real(DBKIND),intent(in) :: aqa_Var(imin:imax,jmin:jmax,kmin:kmax)
real(DBKIND) :: aya_avr_aqa(imin:imax,jmin:jmax,kmin:kmax)
! integer :: ix, kz
integer :: jy
! 初期化
! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
!
aya_avr_aqa = 0.0d0
! 平均操作
! * 関数 y_q を用いて計算
!
! do kz = kmin, kmax
! do ix = imin, imax
! aya_avr_aqa(ix,:,kz) = y_avr_q(aqa_Var(ix,:,kz))
! end do
! end do
do jy = jmin+1, jmax
aya_avr_aqa(:,jy,:) = (aqa_Var(:,jy,:) + aqa_Var(:,jy-1,:))*0.5d0
end do
aya_avr_aqa(:,jmin,:) = aya_avr_aqa(:,jmin+1,:)
end function aya_avr_aqa
| Function : | |||||
| aaz_avr_aar(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||||
| aar_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND),intent(in) |
平均操作を行い z 方向整数格子点の配列値を半整数格子点上へ返す
function aaz_avr_aar(aar_Var)
! 平均操作を行い z 方向整数格子点の配列値を半整数格子点上へ返す
real(DBKIND),intent(in) :: aar_Var(imin:imax,jmin:jmax,kmin:kmax)
real(DBKIND) :: aaz_avr_aar(imin:imax,jmin:jmax,kmin:kmax)
! integer :: ix, jy
integer :: kz
! 初期化
! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
!
aaz_avr_aar = 0.0d0
! 平均操作
! * 関数 z_avr_r を用いて計算
!
! do jy = jmin, jmax
! do ix = imin, imax
! aaz_avr_aar(ix,jy,:) = z_avr_r(aar_Var(ix,jy,:))
! end do
! end do
do kz = kmin+1, kmax
aaz_avr_aar(:,:,kz) = (aar_Var(:,:,kz) + aar_Var(:,:,kz-1))*0.5d0
end do
aaz_avr_aar(:,:,kmin) = aaz_avr_aar(:,:,kmin+1)
end function aaz_avr_aar
| Function : | |||||
| paa_avr_xaa(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||||
| xaa_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND),intent(in) |
半整数格子点の配列値を整数点上へ返す
function paa_avr_xaa(xaa_Var)
! 半整数格子点の配列値を整数点上へ返す
real(DBKIND),intent(in) :: xaa_Var(imin:imax,jmin:jmax,kmin:kmax)
real(DBKIND) :: paa_avr_xaa(imin:imax,jmin:jmax,kmin:kmax)
! integer :: jy, kz
integer :: ix
! 初期化
! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
!
paa_avr_xaa = 0.0d0
! 平均操作
! * 関数 p_avr_x を用いて計算
!
! do kz = kmin, kmax
! do jy = jmin, jmax
! paa_avr_xaa(:,jy,kz) = p_avr_x(xaa_Var(:,jy,kz))
! end do
! end do
do ix = imin, imax-1
paa_avr_xaa(ix,:,:) = (x_dx(ix)*xaa_Var(ix+1,:,:) + x_dx(ix+1)*xaa_Var(ix,:,:)) *0.5d0/p_dx(ix)
end do
paa_avr_xaa(imax,:,:) = paa_avr_xaa(imax-1,:,:)
end function paa_avr_xaa
| Function : | |||
| aa_AvrY_aya(imin:imax,kmin:kmax) : | real(DBKIND)
| ||
| aya_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
aya 格子上の配列に対し y 方向平均を行う
function aa_AvrY_aya(aya_Var)
! aya 格子上の配列に対し y 方向平均を行う
real(DBKIND), intent(in) :: aya_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: aa_AvrY_aya(imin:imax,kmin:kmax) ! 出力
! 初期化
aa_AvrY_aya = 0.0d0
! 平均
aa_AvrY_aya = aa_IntY_aya(aya_Var)/sum(y_dy(1:jm))
end function aa_AvrY_aya
| Function : | |||
| aa_IntY_aya(imin:imax,kmin:kmax) : | real(DBKIND)
| ||
| aya_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
aya 格子上の配列に対し y 方向積分を行う
function aa_IntY_aya(aya_Var)
! aya 格子上の配列に対し y 方向積分を行う
real(DBKIND), intent(in) :: aya_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: aa_IntY_aya(imin:imax,kmin:kmax) ! 出力
integer :: ix, kz ! ループ添字
! 初期化
aa_IntY_aya = 0.0d0
! 積分
do kz = kmin, kmax
do ix = imin, imax
aa_IntY_aya(ix,kz) = IntY_y(aya_Var(ix,:,kz))
end do
end do
end function aa_IntY_aya
| 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 : | |||
| aa_AvrX_xaa(jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||
| xaa_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xaa 格子上の配列に対し x 方向平均を行う
function aa_AvrX_xaa(xaa_Var)
! xaa 格子上の配列に対し x 方向平均を行う
real(DBKIND), intent(in) :: xaa_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: aa_AvrX_xaa(jmin:jmax,kmin:kmax) ! 出力
! 初期化
aa_AvrX_xaa = 0.0d0
! 平均
aa_AvrX_xaa = aa_IntX_xaa(xaa_Var)/sum(x_dx(1:im))
end function aa_AvrX_xaa
| Function : | |||
| aa_IntX_xaa(jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||
| xaa_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xaa 格子上の配列に対し x 方向積分を行う
function aa_IntX_xaa(xaa_Var)
! xaa 格子上の配列に対し x 方向積分を行う
real(DBKIND), intent(in) :: xaa_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: aa_IntX_xaa(jmin:jmax,kmin:kmax) ! 出力
integer :: jy, kz ! ループ添字
! 初期化
aa_IntX_xaa = 0.0d0
! 積分
do kz = kmin, kmax
do jy = jmin, jmax
aa_IntX_xaa(jy,kz) = IntX_x(xaa_Var(:,jy,kz))
end do
end do
end function aa_IntX_xaa
| Function : | |||
| a_AvrXY_xya(kmin:kmax) : | real(DBKIND)
| ||
| xya_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xya 格子上の配列に対し xy 方向平均を行う
function a_AvrXY_xya(xya_Var)
! xya 格子上の配列に対し xy 方向平均を行う
real(DBKIND), intent(in) :: xya_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: a_AvrXY_xya(kmin:kmax) ! 出力
! 初期化
a_AvrXY_xya = 0.0d0
! 平均
a_AvrXY_xya = a_IntXY_xya(xya_Var)/(sum(x_dx(1:im))*sum(y_dy(1:jm)))
end function a_AvrXY_xya
| Function : | |||
| a_IntXY_xya(kmin:kmax) : | real(DBKIND)
| ||
| xya_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xya 格子上の配列に対し xy 方向積分を行う
function a_IntXY_xya(xya_Var)
! xya 格子上の配列に対し xy 方向積分を行う
real(DBKIND), intent(in) :: xya_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: a_IntXY_xya(kmin:kmax) ! 出力
integer :: kz ! ループ添字
! 初期化
a_IntXY_xya = 0.0d0
! 積分
do kz = kmin, kmax
a_IntXY_xya(kz) = IntY_y(y_IntX_xy(xya_Var(:,:,kz)))
end do
end function a_IntXY_xya
| Variable : | |||
| r_Z(:) : | real(DBKIND),allocatable
|
Original external subprogram is z_base_module#r_Z
| Function : | |||
| r_avr_z(kmin:kmax) : | real(DBKIND)
| ||
| z_Var(kmin:kmax) : | real(DBKIND),intent(in)
|
平均操作を行い半整数格子点の配列値を整数格子点上へ返す
Original external subprogram is z_base_module#r_avr_z
| Variable : | |||
| r_dz(:) : | real(DBKIND),allocatable
|
Original external subprogram is z_base_module#r_dz
| Variable : | |||
| x_X(:) : | real(DBKIND),allocatable
|
Original external subprogram is xy_base_module#x_X
| 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 xy_base_module#x_avr_p
| 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 xy_base_module#x_dx
| Variable : | |||
| x_dx(:) : | real(DBKIND),allocatable
|
Original external subprogram is x_base_module#x_dx
| Variable : | |||
| xmargin = 2 : | integer
|
Original external subprogram is xy_base_module#xmargin
| Variable : | |||
| xmargin = 2 : | integer
|
Original external subprogram is x_base_module#xmargin
| Function : | |||
| aa_AvrZ_aaz(imin:imax,jmin:jmax) : | real(DBKIND)
| ||
| aaz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
aaz 格子上の配列に対し z 方向平均を行う
function aa_AvrZ_aaz(aaz_Var)
! aaz 格子上の配列に対し z 方向平均を行う
real(DBKIND), intent(in) :: aaz_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: aa_AvrZ_aaz(imin:imax,jmin:jmax) ! 出力
! 初期化
aa_AvrZ_aaz = 0.0d0
! 平均
aa_AvrZ_aaz = aa_IntZ_aaz(aaz_Var)/sum(z_dz(1:km))
end function aa_AvrZ_aaz
| Function : | |||
| aa_IntZ_aaz(imin:imax,jmin:jmax) : | real(DBKIND)
| ||
| aaz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
aaz 格子上の配列に対し z 方向積分を行う
function aa_IntZ_aaz(aaz_Var)
! aaz 格子上の配列に対し z 方向積分を行う
real(DBKIND), intent(in) :: aaz_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: aa_IntZ_aaz(imin:imax,jmin:jmax) ! 出力
integer :: ix, jy ! ループ添字
! 初期化
aa_IntZ_aaz = 0.0d0
! 積分
do jy = jmin, jmax
do ix = imin, imax
aa_IntZ_aaz(ix,jy) = IntZ_z(aaz_Var(ix,jy,:))
end do
end do
end function aa_IntZ_aaz
| Function : | |||||
| aar_avr_aaz(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||||
| aaz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND),intent(in) |
平均操作を行い z 方向半整数格子点の配列値を整数格子点上へ返す
function aar_avr_aaz(aaz_Var)
! 平均操作を行い z 方向半整数格子点の配列値を整数格子点上へ返す
real(DBKIND),intent(in) :: aaz_Var(imin:imax,jmin:jmax,kmin:kmax)
real(DBKIND) :: aar_avr_aaz(imin:imax,jmin:jmax,kmin:kmax)
! integer :: ix, jy
integer :: kz
! 初期化
! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
!
aar_avr_aaz = 0.0d0
! 平均操作
! * 関数 r_avr_z を用いて計算
!
! do jy = jmin, jmax
! do ix = imin, imax
! aar_avr_aaz(ix,jy,:) = r_avr_z(aaz_Var(ix,jy,:))
! end do
! end do
do kz = kmin, kmax-1
aar_avr_aaz(:,:,kz) = (z_dz(kz)*aaz_Var(:,:,kz+1) + z_dz(kz+1)*aaz_Var(:,:,kz)) *0.5d0/r_dz(kz)
end do
aar_avr_aaz(:,:,kmax) = aar_avr_aaz(:,:,kmax-1)
end function aar_avr_aaz
| Function : | |||||
| aqa_avr_aya(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||||
| aya_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND),intent(in) |
平均操作を行い y 方向半整数格子点の配列値を整数格子点上へ返す
function aqa_avr_aya(aya_Var)
! 平均操作を行い y 方向半整数格子点の配列値を整数格子点上へ返す
real(DBKIND),intent(in) :: aya_Var(imin:imax,jmin:jmax,kmin:kmax)
real(DBKIND) :: aqa_avr_aya(imin:imax,jmin:jmax,kmin:kmax)
! integer :: ix, kz
integer :: jy
! 初期化
! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
!
aqa_avr_aya = 0.0d0
! 平均操作
! * 関数 q_avr_y を用いて計算
!
! do kz = kmin, kmax
! do ix = imin, imax
! aqa_avr_aya(ix,:,kz) = q_avr_y(aya_Var(ix,:,kz))
! end do
! end do
do jy = jmin, jmax-1
aqa_avr_aya(:,jy,:) = (y_dy(jy)*aya_Var(:,jy+1,:) + y_dy(jy+1)*aya_Var(:,jy,:)) * 0.5d0/q_dy(jy)
end do
aqa_avr_aya(:,jmax,:) = aqa_avr_aya(:,jmax-1,:)
end function aqa_avr_aya
| Function : | |||
| xqr_avr_xyz(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||
| xyz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
function xqr_avr_xyz(xyz_Var)
real(DBKIND), intent(in) :: xyz_Var(imin:imax,jmin:jmax,kmin:kmax)! 入力
real(DBKIND) :: xqr_avr_xyz(imin:imax,jmin:jmax,kmin:kmax) ! 出力
integer :: jy, kz ! ループ添字
! 初期化
xqr_avr_xyz = 0.0d0
do kz = kmin, kmax-1
do jy = jmin, jmax-1
xqr_avr_xyz(:,jy,kz) = ( xyz_Var(:,jy,kz) + xyz_Var(:,jy+1,kz) + xyz_Var(:,jy,kz+1) + xyz_Var(:,jy+1,kz+1) ) * 0.25d0
end do
end do
end function xqr_avr_xyz
| Function : | |||||
| xaa_avr_paa(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||||
| paa_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND),intent(in) |
平均操作を行い x 方向整数格子点の配列値を半整数点上へ返す
function xaa_avr_paa(paa_Var)
! 平均操作を行い x 方向整数格子点の配列値を半整数点上へ返す
real(DBKIND),intent(in) :: paa_Var(imin:imax,jmin:jmax,kmin:kmax)
real(DBKIND) :: xaa_avr_paa(imin:imax,jmin:jmax,kmin:kmax)
! integer :: jy, kz
integer :: ix
! 初期化
! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
!
xaa_avr_paa = 0.0d0
! 平均操作
! * 関数 x_avr_p を用いて計算
!
! do kz = kmin, kmax
! do jy = jmin, jmax
! xaa_avr_paa(:,jy,kz) = x_avr_p(paa_Var(:,jy,kz))
! end do
! end do
do ix = imin+1, imax
xaa_avr_paa(ix,:,:) = (paa_Var(ix,:,:) + paa_Var(ix-1,:,:))*0.5d0
end do
! imin 格子上の値
xaa_avr_paa(imin,:,:) = xaa_avr_paa(imin+1,:,:)
end function xaa_avr_paa
| Function : | |||||
| aaz_avr_aar(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||||
| aar_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND),intent(in) |
平均操作を行い z 方向整数格子点の配列値を半整数格子点上へ返す
function aaz_avr_aar(aar_Var)
! 平均操作を行い z 方向整数格子点の配列値を半整数格子点上へ返す
real(DBKIND),intent(in) :: aar_Var(imin:imax,jmin:jmax,kmin:kmax)
real(DBKIND) :: aaz_avr_aar(imin:imax,jmin:jmax,kmin:kmax)
! integer :: ix, jy
integer :: kz
! 初期化
! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
!
aaz_avr_aar = 0.0d0
! 平均操作
! * 関数 z_avr_r を用いて計算
!
! do jy = jmin, jmax
! do ix = imin, imax
! aaz_avr_aar(ix,jy,:) = z_avr_r(aar_Var(ix,jy,:))
! end do
! end do
do kz = kmin+1, kmax
aaz_avr_aar(:,:,kz) = (aar_Var(:,:,kz) + aar_Var(:,:,kz-1))*0.5d0
end do
aaz_avr_aar(:,:,kmin) = aaz_avr_aar(:,:,kmin+1)
end function aaz_avr_aar
| Function : | |||||
| aqa_avr_aya(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||||
| aya_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND),intent(in) |
平均操作を行い y 方向半整数格子点の配列値を整数格子点上へ返す
function aqa_avr_aya(aya_Var)
! 平均操作を行い y 方向半整数格子点の配列値を整数格子点上へ返す
real(DBKIND),intent(in) :: aya_Var(imin:imax,jmin:jmax,kmin:kmax)
real(DBKIND) :: aqa_avr_aya(imin:imax,jmin:jmax,kmin:kmax)
! integer :: ix, kz
integer :: jy
! 初期化
! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
!
aqa_avr_aya = 0.0d0
! 平均操作
! * 関数 q_avr_y を用いて計算
!
! do kz = kmin, kmax
! do ix = imin, imax
! aqa_avr_aya(ix,:,kz) = q_avr_y(aya_Var(ix,:,kz))
! end do
! end do
do jy = jmin, jmax-1
aqa_avr_aya(:,jy,:) = (y_dy(jy)*aya_Var(:,jy+1,:) + y_dy(jy+1)*aya_Var(:,jy,:)) * 0.5d0/q_dy(jy)
end do
aqa_avr_aya(:,jmax,:) = aqa_avr_aya(:,jmax-1,:)
end function aqa_avr_aya
| Function : | |||
| aa_AvrY_aya(imin:imax,kmin:kmax) : | real(DBKIND)
| ||
| aya_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
aya 格子上の配列に対し y 方向平均を行う
function aa_AvrY_aya(aya_Var)
! aya 格子上の配列に対し y 方向平均を行う
real(DBKIND), intent(in) :: aya_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: aa_AvrY_aya(imin:imax,kmin:kmax) ! 出力
! 初期化
aa_AvrY_aya = 0.0d0
! 平均
aa_AvrY_aya = aa_IntY_aya(aya_Var)/sum(y_dy(1:jm))
end function aa_AvrY_aya
| Function : | |||
| aa_IntY_aya(imin:imax,kmin:kmax) : | real(DBKIND)
| ||
| aya_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
aya 格子上の配列に対し y 方向積分を行う
function aa_IntY_aya(aya_Var)
! aya 格子上の配列に対し y 方向積分を行う
real(DBKIND), intent(in) :: aya_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: aa_IntY_aya(imin:imax,kmin:kmax) ! 出力
integer :: ix, kz ! ループ添字
! 初期化
aa_IntY_aya = 0.0d0
! 積分
do kz = kmin, kmax
do ix = imin, imax
aa_IntY_aya(ix,kz) = IntY_y(aya_Var(ix,:,kz))
end do
end do
end function aa_IntY_aya
| Function : | |||
| xy_AvrZ_xyr(imin:imax,jmin:jmax) : | real(DBKIND)
| ||
| xyr_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xyr 格子上の配列に対し z 方向平均を行う
function xy_AvrZ_xyr(xyr_Var)
! xyr 格子上の配列に対し z 方向平均を行う
real(DBKIND), intent(in) :: xyr_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: xy_AvrZ_xyr(imin:imax,jmin:jmax) ! 出力
! 初期化
xy_AvrZ_xyr = 0.0d0
! 平均
xy_AvrZ_xyr = xy_IntZ_xyr(xyr_Var)/sum(z_dz(1:km))
end function xy_AvrZ_xyr
| Function : | |||
| aa_AvrZ_aaz(imin:imax,jmin:jmax) : | real(DBKIND)
| ||
| aaz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
aaz 格子上の配列に対し z 方向平均を行う
function aa_AvrZ_aaz(aaz_Var)
! aaz 格子上の配列に対し z 方向平均を行う
real(DBKIND), intent(in) :: aaz_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: aa_AvrZ_aaz(imin:imax,jmin:jmax) ! 出力
! 初期化
aa_AvrZ_aaz = 0.0d0
! 平均
aa_AvrZ_aaz = aa_IntZ_aaz(aaz_Var)/sum(z_dz(1:km))
end function aa_AvrZ_aaz
| Function : | |||
| xy_IntZ_xyr(imin:imax,jmin:jmax) : | real(DBKIND)
| ||
| xyr_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xyr 格子上の配列に対し z 方向積分を行う
function xy_IntZ_xyr(xyr_Var)
! xyr 格子上の配列に対し z 方向積分を行う
real(DBKIND), intent(in) :: xyr_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: xy_IntZ_xyr(imin:imax,jmin:jmax) ! 出力
integer :: ix, jy ! ループ添字
! 初期化
xy_IntZ_xyr = 0.0d0
! 積分
do jy = jmin, jmax
do ix = imin, imax
xy_IntZ_xyr(ix,jy) = IntZ_r(xyr_Var(ix,jy,:))
end do
end do
end function xy_IntZ_xyr
| Function : | |||
| aa_IntZ_aaz(imin:imax,jmin:jmax) : | real(DBKIND)
| ||
| aaz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
aaz 格子上の配列に対し z 方向積分を行う
function aa_IntZ_aaz(aaz_Var)
! aaz 格子上の配列に対し z 方向積分を行う
real(DBKIND), intent(in) :: aaz_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: aa_IntZ_aaz(imin:imax,jmin:jmax) ! 出力
integer :: ix, jy ! ループ添字
! 初期化
aa_IntZ_aaz = 0.0d0
! 積分
do jy = jmin, jmax
do ix = imin, imax
aa_IntZ_aaz(ix,jy) = IntZ_z(aaz_Var(ix,jy,:))
end do
end do
end function aa_IntZ_aaz
| Function : | |||||
| xaa_avr_paa(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||||
| paa_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND),intent(in) |
平均操作を行い x 方向整数格子点の配列値を半整数点上へ返す
function xaa_avr_paa(paa_Var)
! 平均操作を行い x 方向整数格子点の配列値を半整数点上へ返す
real(DBKIND),intent(in) :: paa_Var(imin:imax,jmin:jmax,kmin:kmax)
real(DBKIND) :: xaa_avr_paa(imin:imax,jmin:jmax,kmin:kmax)
! integer :: jy, kz
integer :: ix
! 初期化
! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
!
xaa_avr_paa = 0.0d0
! 平均操作
! * 関数 x_avr_p を用いて計算
!
! do kz = kmin, kmax
! do jy = jmin, jmax
! xaa_avr_paa(:,jy,kz) = x_avr_p(paa_Var(:,jy,kz))
! end do
! end do
do ix = imin+1, imax
xaa_avr_paa(ix,:,:) = (paa_Var(ix,:,:) + paa_Var(ix-1,:,:))*0.5d0
end do
! imin 格子上の値
xaa_avr_paa(imin,:,:) = xaa_avr_paa(imin+1,:,:)
end function xaa_avr_paa
| Function : | |||||
| aya_avr_aqa(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||||
| aqa_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND),intent(in) |
平均操作を行い y 方向半整数格子点の配列値を整数格子点上へ返す
function aya_avr_aqa(aqa_Var)
! 平均操作を行い y 方向半整数格子点の配列値を整数格子点上へ返す
real(DBKIND),intent(in) :: aqa_Var(imin:imax,jmin:jmax,kmin:kmax)
real(DBKIND) :: aya_avr_aqa(imin:imax,jmin:jmax,kmin:kmax)
! integer :: ix, kz
integer :: jy
! 初期化
! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
!
aya_avr_aqa = 0.0d0
! 平均操作
! * 関数 y_q を用いて計算
!
! do kz = kmin, kmax
! do ix = imin, imax
! aya_avr_aqa(ix,:,kz) = y_avr_q(aqa_Var(ix,:,kz))
! end do
! end do
do jy = jmin+1, jmax
aya_avr_aqa(:,jy,:) = (aqa_Var(:,jy,:) + aqa_Var(:,jy-1,:))*0.5d0
end do
aya_avr_aqa(:,jmin,:) = aya_avr_aqa(:,jmin+1,:)
end function aya_avr_aqa
| Function : | |||||
| aar_avr_aaz(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||||
| aaz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND),intent(in) |
平均操作を行い z 方向半整数格子点の配列値を整数格子点上へ返す
function aar_avr_aaz(aaz_Var)
! 平均操作を行い z 方向半整数格子点の配列値を整数格子点上へ返す
real(DBKIND),intent(in) :: aaz_Var(imin:imax,jmin:jmax,kmin:kmax)
real(DBKIND) :: aar_avr_aaz(imin:imax,jmin:jmax,kmin:kmax)
! integer :: ix, jy
integer :: kz
! 初期化
! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
!
aar_avr_aaz = 0.0d0
! 平均操作
! * 関数 r_avr_z を用いて計算
!
! do jy = jmin, jmax
! do ix = imin, imax
! aar_avr_aaz(ix,jy,:) = r_avr_z(aaz_Var(ix,jy,:))
! end do
! end do
do kz = kmin, kmax-1
aar_avr_aaz(:,:,kz) = (z_dz(kz)*aaz_Var(:,:,kz+1) + z_dz(kz+1)*aaz_Var(:,:,kz)) *0.5d0/r_dz(kz)
end do
aar_avr_aaz(:,:,kmax) = aar_avr_aaz(:,:,kmax-1)
end function aar_avr_aaz
| Function : | |||
| xyz_avr_pqz(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||
| pqz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
function xyz_avr_pqz(pqz_Var)
real(DBKIND), intent(in) :: pqz_Var(imin:imax,jmin:jmax,kmin:kmax)! 入力
real(DBKIND) :: xyz_avr_pqz(imin:imax,jmin:jmax,kmin:kmax) ! 出力
integer :: ix, jy ! ループ添字
! 初期化
xyz_avr_pqz = 0.0d0
do jy = jmin+1, jmax
do ix = imin+1, imax
xyz_avr_pqz(ix,jy,:) = ( pqz_Var(ix-1,jy-1,:) + pqz_Var(ix,jy-1,:) + pqz_Var(ix-1,jy,:) + pqz_Var(ix,jy,:) ) * 0.25d0
end do
end do
end function xyz_avr_pqz
| Function : | |||
| xyz_avr_pyr(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||
| pyr_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
function xyz_avr_pyr(pyr_Var)
real(DBKIND), intent(in) :: pyr_Var(imin:imax,jmin:jmax,kmin:kmax)! 入力
real(DBKIND) :: xyz_avr_pyr(imin:imax,jmin:jmax,kmin:kmax) ! 出力
integer :: ix, kz ! ループ添字
! 初期化
xyz_avr_pyr = 0.0d0
do kz = kmin+1, kmax
do ix = imin+1, imax
xyz_avr_pyr(ix,:,kz) = ( pyr_Var(ix-1,:,kz-1) + pyr_Var(ix,:,kz-1) + pyr_Var(ix-1,:,kz) + pyr_Var(ix,:,kz) ) * 0.25d0
end do
end do
end function xyz_avr_pyr
| Function : | |||||
| xaa_avr_paa(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||||
| paa_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND),intent(in) |
平均操作を行い x 方向整数格子点の配列値を半整数点上へ返す
function xaa_avr_paa(paa_Var)
! 平均操作を行い x 方向整数格子点の配列値を半整数点上へ返す
real(DBKIND),intent(in) :: paa_Var(imin:imax,jmin:jmax,kmin:kmax)
real(DBKIND) :: xaa_avr_paa(imin:imax,jmin:jmax,kmin:kmax)
! integer :: jy, kz
integer :: ix
! 初期化
! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
!
xaa_avr_paa = 0.0d0
! 平均操作
! * 関数 x_avr_p を用いて計算
!
! do kz = kmin, kmax
! do jy = jmin, jmax
! xaa_avr_paa(:,jy,kz) = x_avr_p(paa_Var(:,jy,kz))
! end do
! end do
do ix = imin+1, imax
xaa_avr_paa(ix,:,:) = (paa_Var(ix,:,:) + paa_Var(ix-1,:,:))*0.5d0
end do
! imin 格子上の値
xaa_avr_paa(imin,:,:) = xaa_avr_paa(imin+1,:,:)
end function xaa_avr_paa
| Function : | |||
| xyz_avr_xqr(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||
| xqr_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
function xyz_avr_xqr(xqr_Var)
real(DBKIND), intent(in) :: xqr_Var(imin:imax,jmin:jmax,kmin:kmax)! 入力
real(DBKIND) :: xyz_avr_xqr(imin:imax,jmin:jmax,kmin:kmax) ! 出力
integer :: jy, kz ! ループ添字
! 初期化
xyz_avr_xqr = 0.0d0
do kz = kmin+1, kmax
do jy = jmin+1, jmax
xyz_avr_xqr(:,jy,kz) = ( xqr_Var(:,jy-1,kz-1) + xqr_Var(:,jy,kz-1) + xqr_Var(:,jy-1,kz) + xqr_Var(:,jy,kz) ) * 0.25d0
end do
end do
end function xyz_avr_xqr
| Function : | |||||
| aya_avr_aqa(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||||
| aqa_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND),intent(in) |
平均操作を行い y 方向半整数格子点の配列値を整数格子点上へ返す
function aya_avr_aqa(aqa_Var)
! 平均操作を行い y 方向半整数格子点の配列値を整数格子点上へ返す
real(DBKIND),intent(in) :: aqa_Var(imin:imax,jmin:jmax,kmin:kmax)
real(DBKIND) :: aya_avr_aqa(imin:imax,jmin:jmax,kmin:kmax)
! integer :: ix, kz
integer :: jy
! 初期化
! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
!
aya_avr_aqa = 0.0d0
! 平均操作
! * 関数 y_q を用いて計算
!
! do kz = kmin, kmax
! do ix = imin, imax
! aya_avr_aqa(ix,:,kz) = y_avr_q(aqa_Var(ix,:,kz))
! end do
! end do
do jy = jmin+1, jmax
aya_avr_aqa(:,jy,:) = (aqa_Var(:,jy,:) + aqa_Var(:,jy-1,:))*0.5d0
end do
aya_avr_aqa(:,jmin,:) = aya_avr_aqa(:,jmin+1,:)
end function aya_avr_aqa
| Function : | |||||
| aaz_avr_aar(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||||
| aar_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND),intent(in) |
平均操作を行い z 方向整数格子点の配列値を半整数格子点上へ返す
function aaz_avr_aar(aar_Var)
! 平均操作を行い z 方向整数格子点の配列値を半整数格子点上へ返す
real(DBKIND),intent(in) :: aar_Var(imin:imax,jmin:jmax,kmin:kmax)
real(DBKIND) :: aaz_avr_aar(imin:imax,jmin:jmax,kmin:kmax)
! integer :: ix, jy
integer :: kz
! 初期化
! * 0 割りを防ぐためにはマシンイプシロン値を用いるべき
!
aaz_avr_aar = 0.0d0
! 平均操作
! * 関数 z_avr_r を用いて計算
!
! do jy = jmin, jmax
! do ix = imin, imax
! aaz_avr_aar(ix,jy,:) = z_avr_r(aar_Var(ix,jy,:))
! end do
! end do
do kz = kmin+1, kmax
aaz_avr_aar(:,:,kz) = (aar_Var(:,:,kz) + aar_Var(:,:,kz-1))*0.5d0
end do
aaz_avr_aar(:,:,kmin) = aaz_avr_aar(:,:,kmin+1)
end function aaz_avr_aar
| Subroutine : | |||
| i : | integer ,intent(in)
| ||
| j : | integer ,intent(in)
| ||
| k : | integer ,intent(in)
| ||
| xmg : | integer ,intent(in)
| ||
| ymg : | integer ,intent(in)
| ||
| zmg : | integer ,intent(in)
| ||
| xmin : | real(DBKIND),intent(in)
| ||
| xmax : | real(DBKIND),intent(in)
| ||
| ymin : | real(DBKIND),intent(in)
| ||
| ymax : | real(DBKIND),intent(in)
| ||
| zmin : | real(DBKIND),intent(in)
| ||
| zmax : | real(DBKIND),intent(in)
|
subroutine xyz_axis_init(i, j, k, xmg, ymg, zmg, xmin, xmax, ymin, ymax, zmin, zmax)
integer ,intent(in) :: i ! x 方向格子点数
integer ,intent(in) :: j ! y 方向格子点数
integer ,intent(in) :: k ! z 方向格子点数
integer ,intent(in) :: xmg ! x 方向糊代格子点数
integer ,intent(in) :: ymg ! y 方向糊代格子点数
integer ,intent(in) :: zmg ! z 方向糊代格子点数
real(DBKIND),intent(in) :: xmin ! x 座標最小値
real(DBKIND),intent(in) :: xmax ! x 座標最大値
real(DBKIND),intent(in) :: ymin ! y 座標最小値
real(DBKIND),intent(in) :: ymax ! y 座標最大値
real(DBKIND),intent(in) :: zmin ! z 座標最小値
real(DBKIND),intent(in) :: zmax ! z 座標最大値
real(DBKIND),allocatable :: xy_X(:,:)! x 座標(半整数格子, 作業配列)
real(DBKIND),allocatable :: xy_Y(:,:)! y 座標(半整数格子, 作業配列)
real(DBKIND),allocatable :: yz_Z(:,:)! z 座標(半整数格子, 作業配列)
! 配列の上下限の値, 座標値と格子点間隔を設定
! * 1 次元用のサブルーチンを用いる
!
call x_axis_init(i, xmg, xmin, xmax)
call y_axis_init(j, ymg, ymin, ymax)
call z_axis_init(k, zmg, zmin, zmax)
! 3 次元座標配列の設定
! * 組み込み関数 spread を用いる.
! * 中間配列として 2 次元座標配列を作り, それを 3 次元に拡張する.
!
allocate(xy_X(imin:imax,jmin:jmax))
allocate(xy_Y(imin:imax,jmin:jmax))
allocate(yz_Z(jmin:jmax,kmin:kmax))
allocate(xyz_X(imin:imax,jmin:jmax,kmin:kmax))
allocate(xyz_Y(imin:imax,jmin:jmax,kmin:kmax))
allocate(xyz_Z(imin:imax,jmin:jmax,kmin:kmax))
allocate(xyz_dX(imin:imax,jmin:jmax,kmin:kmax))
allocate(xyz_dY(imin:imax,jmin:jmax,kmin:kmax))
allocate(xyz_dZ(imin:imax,jmin:jmax,kmin:kmax))
xy_X = spread(x_X, 2,size(y_Y))
xyz_X = spread(xy_X,3,size(z_Z))
xy_X = spread(x_dX, 2,size(y_dY))
xyz_dX = spread(xy_X,3,size(z_dZ))
xy_Y = spread(y_Y, 1,size(x_X))
xyz_Y = spread(xy_Y,3,size(z_Z))
xy_Y = spread(y_dY, 1,size(x_dX))
xyz_dY = spread(xy_Y,3,size(z_dZ))
yz_Z = spread(z_Z, 1,size(y_Y))
xyz_Z = spread(yz_Z,1,size(x_X))
yz_Z = spread(z_dZ, 1,size(y_dY))
xyz_dZ = spread(yz_Z,1,size(x_dX))
deallocate(xy_X)
deallocate(xy_Y)
deallocate(yz_Z)
end subroutine xyz_axis_init
| Function : | |||
| xz_AvrY_xqz(imin:imax,kmin:kmax) : | real(DBKIND)
| ||
| xqz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xqz 格子上の配列に対し y 方向平均を行う
function xz_AvrY_xqz(xqz_Var)
! xqz 格子上の配列に対し y 方向平均を行う
real(DBKIND), intent(in) :: xqz_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: xz_AvrY_xqz(imin:imax,kmin:kmax) ! 出力
! 初期化
xz_AvrY_xqz = 0.0d0
! 平均
xz_AvrY_xqz = xz_IntY_xqz(xqz_Var)/sum(y_dy(1:jm))
end function xz_AvrY_xqz
| Function : | |||
| aa_AvrY_aya(imin:imax,kmin:kmax) : | real(DBKIND)
| ||
| aya_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
aya 格子上の配列に対し y 方向平均を行う
function aa_AvrY_aya(aya_Var)
! aya 格子上の配列に対し y 方向平均を行う
real(DBKIND), intent(in) :: aya_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: aa_AvrY_aya(imin:imax,kmin:kmax) ! 出力
! 初期化
aa_AvrY_aya = 0.0d0
! 平均
aa_AvrY_aya = aa_IntY_aya(aya_Var)/sum(y_dy(1:jm))
end function aa_AvrY_aya
| Function : | |||
| xz_IntY_xqz(imin:imax,kmin:kmax) : | real(DBKIND)
| ||
| xqz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xqz 格子上の配列に対し y 方向積分を行う
function xz_IntY_xqz(xqz_Var)
! xqz 格子上の配列に対し y 方向積分を行う
real(DBKIND), intent(in) :: xqz_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: xz_IntY_xqz(imin:imax,kmin:kmax) ! 出力
integer :: ix, kz ! ループ添字
! 初期化
xz_IntY_xqz = 0.0d0
! 積分
do kz = kmin, kmax
do ix = imin, imax
xz_IntY_xqz(ix,kz) = IntY_q(xqz_Var(ix,:,kz))
end do
end do
end function xz_IntY_xqz
| Function : | |||
| aa_IntY_aya(imin:imax,kmin:kmax) : | real(DBKIND)
| ||
| aya_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
aya 格子上の配列に対し y 方向積分を行う
function aa_IntY_aya(aya_Var)
! aya 格子上の配列に対し y 方向積分を行う
real(DBKIND), intent(in) :: aya_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: aa_IntY_aya(imin:imax,kmin:kmax) ! 出力
integer :: ix, kz ! ループ添字
! 初期化
aa_IntY_aya = 0.0d0
! 積分
do kz = kmin, kmax
do ix = imin, imax
aa_IntY_aya(ix,kz) = IntY_y(aya_Var(ix,:,kz))
end do
end do
end function aa_IntY_aya
| 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
| Function : | |||
| aa_AvrX_xaa(jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||
| xaa_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xaa 格子上の配列に対し x 方向平均を行う
function aa_AvrX_xaa(xaa_Var)
! xaa 格子上の配列に対し x 方向平均を行う
real(DBKIND), intent(in) :: xaa_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: aa_AvrX_xaa(jmin:jmax,kmin:kmax) ! 出力
! 初期化
aa_AvrX_xaa = 0.0d0
! 平均
aa_AvrX_xaa = aa_IntX_xaa(xaa_Var)/sum(x_dx(1:im))
end function aa_AvrX_xaa
| Function : | |||
| aa_IntX_xaa(jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||
| xaa_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xaa 格子上の配列に対し x 方向積分を行う
function aa_IntX_xaa(xaa_Var)
! xaa 格子上の配列に対し x 方向積分を行う
real(DBKIND), intent(in) :: xaa_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: aa_IntX_xaa(jmin:jmax,kmin:kmax) ! 出力
integer :: jy, kz ! ループ添字
! 初期化
aa_IntX_xaa = 0.0d0
! 積分
do kz = kmin, kmax
do jy = jmin, jmax
aa_IntX_xaa(jy,kz) = IntX_x(xaa_Var(:,jy,kz))
end do
end do
end function aa_IntX_xaa
| Function : | |||
| yz_AvrX_pyz(jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||
| pyz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
pyz 格子上の配列に対し x 方向平均を行う
function yz_AvrX_pyz(pyz_Var)
! pyz 格子上の配列に対し x 方向平均を行う
real(DBKIND), intent(in) :: pyz_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: yz_AvrX_pyz(jmin:jmax,kmin:kmax) ! 出力
! 初期化
yz_AvrX_pyz = 0.0d0
! 平均
yz_AvrX_pyz = yz_IntX_pyz(pyz_Var)/sum(x_dx(1:im))
end function yz_AvrX_pyz
| Function : | |||
| aa_AvrX_xaa(jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||
| xaa_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xaa 格子上の配列に対し x 方向平均を行う
function aa_AvrX_xaa(xaa_Var)
! xaa 格子上の配列に対し x 方向平均を行う
real(DBKIND), intent(in) :: xaa_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: aa_AvrX_xaa(jmin:jmax,kmin:kmax) ! 出力
! 初期化
aa_AvrX_xaa = 0.0d0
! 平均
aa_AvrX_xaa = aa_IntX_xaa(xaa_Var)/sum(x_dx(1:im))
end function aa_AvrX_xaa
| Function : | |||
| yz_IntX_pyz(jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||
| pyz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
pyz 格子上の配列に対し x 方向積分を行う
function yz_IntX_pyz(pyz_Var)
! pyz 格子上の配列に対し x 方向積分を行う
real(DBKIND), intent(in) :: pyz_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: yz_IntX_pyz(jmin:jmax,kmin:kmax) ! 出力
integer :: jy, kz ! ループ添字
! 初期化
yz_IntX_pyz = 0.0d0
! 積分
do kz = kmin, kmax
do jy = jmin, jmax
yz_IntX_pyz(jy,kz) = IntX_p(pyz_Var(:,jy,kz))
end do
end do
end function yz_IntX_pyz
| Function : | |||
| aa_IntX_xaa(jmin:jmax,kmin:kmax) : | real(DBKIND)
| ||
| xaa_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xaa 格子上の配列に対し x 方向積分を行う
function aa_IntX_xaa(xaa_Var)
! xaa 格子上の配列に対し x 方向積分を行う
real(DBKIND), intent(in) :: xaa_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: aa_IntX_xaa(jmin:jmax,kmin:kmax) ! 出力
integer :: jy, kz ! ループ添字
! 初期化
aa_IntX_xaa = 0.0d0
! 積分
do kz = kmin, kmax
do jy = jmin, jmax
aa_IntX_xaa(jy,kz) = IntX_x(xaa_Var(:,jy,kz))
end do
end do
end function aa_IntX_xaa
| Function : | |||
| z_AvrXY_pyz(kmin:kmax) : | real(DBKIND)
| ||
| pyz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
pyz 格子上の配列に対し xy 方向平均を行う
function z_AvrXY_pyz(pyz_Var)
! pyz 格子上の配列に対し xy 方向平均を行う
real(DBKIND), intent(in) :: pyz_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: z_AvrXY_pyz(kmin:kmax) ! 出力
! 初期化
z_AvrXY_pyz = 0.0d0
! 平均
z_AvrXY_pyz = z_IntXY_pyz(pyz_Var)/(sum(x_dx(1:im))*sum(y_dy(1:jm)))
end function z_AvrXY_pyz
| Function : | |||
| z_AvrXY_xqz(kmin:kmax) : | real(DBKIND)
| ||
| xqz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xqz 格子上の配列に対し xy 方向積分を行う
function z_AvrXY_xqz(xqz_Var)
! xqz 格子上の配列に対し xy 方向積分を行う
real(DBKIND), intent(in) :: xqz_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: z_AvrXY_xqz(kmin:kmax) ! 出力
! 初期化
z_AvrXY_xqz = 0.0d0
! 平均
z_AvrXY_xqz = z_IntXY_xqz(xqz_Var)/(sum(x_dx(1:im))*sum(y_dy(1:jm)))
end function z_AvrXY_xqz
| Function : | |||
| a_AvrXY_xya(kmin:kmax) : | real(DBKIND)
| ||
| xya_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xya 格子上の配列に対し xy 方向平均を行う
function a_AvrXY_xya(xya_Var)
! xya 格子上の配列に対し xy 方向平均を行う
real(DBKIND), intent(in) :: xya_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: a_AvrXY_xya(kmin:kmax) ! 出力
! 初期化
a_AvrXY_xya = 0.0d0
! 平均
a_AvrXY_xya = a_IntXY_xya(xya_Var)/(sum(x_dx(1:im))*sum(y_dy(1:jm)))
end function a_AvrXY_xya
| Function : | |||
| z_IntXY_pyz(kmin:kmax) : | real(DBKIND)
| ||
| pyz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
pyz 格子上の配列に対し xy 方向積分を行う
function z_IntXY_pyz(pyz_Var)
! pyz 格子上の配列に対し xy 方向積分を行う
real(DBKIND), intent(in) :: pyz_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: z_IntXY_pyz(kmin:kmax) ! 出力
integer :: kz ! ループ添字
! 初期化
z_IntXY_pyz = 0.0d0
! 積分
do kz = kmin, kmax
z_IntXY_pyz(kz) = IntY_y(y_IntX_py(pyz_Var(:,:,kz)))
end do
end function z_IntXY_pyz
| Function : | |||
| z_IntXY_xqz(kmin:kmax) : | real(DBKIND)
| ||
| xqz_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xqz 格子上の配列に対し xy 方向積分を行う
function z_IntXY_xqz(xqz_Var)
! xqz 格子上の配列に対し xy 方向積分を行う
real(DBKIND), intent(in) :: xqz_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: z_IntXY_xqz(kmin:kmax) ! 出力
integer :: kz ! ループ添字
! 初期化
z_IntXY_xqz = 0.0d0
! 積分
do kz = kmin, kmax
z_IntXY_xqz(kz) = IntY_q(q_IntX_xq(xqz_Var(:,:,kz)))
end do
end function z_IntXY_xqz
| Function : | |||
| a_IntXY_xya(kmin:kmax) : | real(DBKIND)
| ||
| xya_Var(imin:imax,jmin:jmax,kmin:kmax) : | real(DBKIND), intent(in)
|
xya 格子上の配列に対し xy 方向積分を行う
function a_IntXY_xya(xya_Var)
! xya 格子上の配列に対し xy 方向積分を行う
real(DBKIND), intent(in) :: xya_Var(imin:imax,jmin:jmax,kmin:kmax) ! 入力
real(DBKIND) :: a_IntXY_xya(kmin:kmax) ! 出力
integer :: kz ! ループ添字
! 初期化
a_IntXY_xya = 0.0d0
! 積分
do kz = kmin, kmax
a_IntXY_xya(kz) = IntY_y(y_IntX_xy(xya_Var(:,:,kz)))
end do
end function a_IntXY_xya
| Variable : | |||
| z_Z(:) : | real(DBKIND),allocatable
|
Original external subprogram is z_base_module#z_Z
| Function : | |||
| z_avr_r(kmin:kmax) : | real(DBKIND)
| ||
| r_Var(kmin:kmax) : | real(DBKIND),intent(in)
|
平均操作を行い整数格子点の配列値を半整数格子点上へ返す
Original external subprogram is z_base_module#z_avr_r
| Variable : | |||
| z_dz(:) : | real(DBKIND),allocatable
|
Original external subprogram is z_base_module#z_dz
| Variable : | |||
| zmargin = 2 : | integer
|
Original external subprogram is z_base_module#zmargin