| Class | storeset_3d |
| In: |
setup/storeset_3d.f90
|
積算値を保管するための変数型モジュール.
| Subroutine : | |
| Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) : | real(DP), intent(in) |
移流項の保管
subroutine StoreAdv( Work )
!移流項の保管
implicit none
real(DP), intent(in) :: Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
real(DP) :: Work2(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
Work2 = xyz_Adv + Work
xyz_Adv = Work2
end subroutine StoreAdv
| Subroutine : |
保管した値のクリアー
subroutine StoreClean( )
!保管した値のクリアー
z_Adv = 0.0d0
z_Turb = 0.0d0
z_Diff = 0.0d0
z_Disp = 0.0d0
z_Rad = 0.0d0
z_Damp = 0.0d0
z_Cond = 0.0d0
z_Flux = 0.0d0
xyz_Adv = 0.0d0
xyz_Turb = 0.0d0
xyz_Diff = 0.0d0
xyz_Disp = 0.0d0
xyz_Rad = 0.0d0
xyz_Damp = 0.0d0
xyz_Cond = 0.0d0
xyz_Flux = 0.0d0
! z_Stab = 0.0d0
! z_StabTemp = 0.0d0
! z_StabMolWt = 0.0d0
! xyz_Stab1 = 0.0d0
! xyz_Stab2 = 0.0d0
! xyz_Stab3 = 0.0d0
! za_MixRt = 0.0d0
! xyza_MixRt1 = 0.0d0
! CalNum = 1.0d-40 !ゼロ割を禁止.
end subroutine StoreClean
| Subroutine : | |
| Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) : | real(DP), intent(in) |
潜熱・蒸発熱の保管
subroutine StoreCond( Work )
!潜熱・蒸発熱の保管
implicit none
real(DP), intent(in) :: Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
real(DP) :: Work2(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
Work2 = xyz_Cond + Work
xyz_Cond = Work2
end subroutine StoreCond
| Subroutine : | |
| Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) : | real(DP), intent(in) |
ダンピング項の保管
subroutine StoreDamp( Work )
!ダンピング項の保管
implicit none
real(DP), intent(in) :: Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
real(DP) :: Work2(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
Work2 = xyz_Damp + Work
xyz_Damp = Work2
end subroutine StoreDamp
| Subroutine : | |
| Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) : | real(DP), intent(in) |
数値拡散項の保管
subroutine StoreDiff( Work )
!数値拡散項の保管
implicit none
real(DP), intent(in) :: Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
real(DP) :: Work2(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
Work2 = xyz_Diff + Work
xyz_Diff = Work2
end subroutine StoreDiff
| Subroutine : | |
| Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) : | real(DP), intent(in) |
散逸加熱項の保管
subroutine StoreDisp( Work )
!散逸加熱項の保管
implicit none
real(DP), intent(in) :: Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
real(DP) :: Work2(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
Work2 = xyz_Disp + Work
xyz_Disp = Work2
end subroutine StoreDisp
| Subroutine : | |
| Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) : | real(DP), intent(in) |
地表面フラックスの保管
subroutine StoreFlux( Work )
!地表面フラックスの保管
implicit none
real(DP), intent(in) :: Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
real(DP) :: Work2(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
Work2 = xyz_Flux + Work
xyz_Flux = Work2
end subroutine StoreFlux
| Subroutine : |
保管した値の水平平均値 [K/s]
subroutine StoreMeanXY( )
!保管した値の水平平均値 [K/s]
real(DP) :: CalNum
CalNum = TimeDisp / DelTimeLong
z_Adv = a_MeanXY_aaa( xyz_Adv ) / CalNum
z_Turb = a_MeanXY_aaa( xyz_Turb ) / CalNum
z_Diff = a_MeanXY_aaa( xyz_Diff ) / CalNum
z_Disp = a_MeanXY_aaa( xyz_Disp ) / CalNum
z_Rad = a_MeanXY_aaa( xyz_Rad ) / CalNum
z_Damp = a_MeanXY_aaa( xyz_Damp ) / CalNum
z_Cond = a_MeanXY_aaa( xyz_Cond ) / CalNum
z_Flux = a_MeanXY_aaa( xyz_Flux ) / CalNum
! z_Stab = a_MeanXY_aaa( xyz_Stab1 ) / CalNum
! z_StabTemp = a_MeanXY_aaa( xyz_Stab2 ) / CalNum
! z_StabMolWt = a_MeanXY_aaa( xyz_Stab3 ) / CalNum
! za_MixRt = aa_MeanXY_aaaa( xyza_MixRt1 ) / CalNum
!描画する際に対数プロットをするので, 値にゼロが入って欲しくない
! where ( za_MixRt < 1.0d-20 )
! za_MixRt = 1.0d-20
! end where
end subroutine StoreMeanXY
| Subroutine : | |
| Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) : | real(DP), intent(in) |
放射冷却項の保管
subroutine StoreRad( Work )
!放射冷却項の保管
implicit none
real(DP), intent(in) :: Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
real(DP) :: Work2(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
Work2 = xyz_Rad + Work
xyz_Rad = Work2
end subroutine StoreRad
| Subroutine : |
初期化ルーチン
subroutine StoreSet_Init( )
!初期化ルーチン
allocate( z_Adv(DimZMin:DimZMax), z_Turb(DimZMin:DimZMax), z_Disp(DimZMin:DimZMax), z_Diff(DimZMin:DimZMax), z_Rad(DimZMin:DimZMax), z_Damp(DimZMin:DimZMax), z_Cond(DimZMin:DimZMax), z_Flux(DimZMin:DimZMax), xyz_Adv(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), xyz_Turb(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), xyz_Disp(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), xyz_Diff(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), xyz_Rad(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), xyz_Damp(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), xyz_Cond(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), xyz_Flux(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) )
z_Adv = 0.0d0
z_Turb = 0.0d0
z_Diff = 0.0d0
z_Disp = 0.0d0
z_Rad = 0.0d0
z_Damp = 0.0d0
z_Cond = 0.0d0
z_Flux = 0.0d0
xyz_Adv = 0.0d0
xyz_Turb = 0.0d0
xyz_Diff = 0.0d0
xyz_Disp = 0.0d0
xyz_Rad = 0.0d0
xyz_Damp = 0.0d0
xyz_Cond = 0.0d0
xyz_Flux = 0.0d0
! z_Stab = 0.0d0
! z_StabTemp = 0.0d0
! z_StabMolWt = 0.0d0
! xyz_Stab1 = 0.0d0
! xyz_Stab2 = 0.0d0
! xyz_Stab3 = 0.0d0
! za_MixRt = 0.0d0
! xyza_MixRt1 = 0.0d0
! CalNum = 1.0d-40 !ゼロ割を禁止.
end subroutine StoreSet_Init
| Subroutine : | |
| Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) : | real(DP), intent(in) |
乱流項の保管
subroutine StoreTurb( Work )
!乱流項の保管
implicit none
real(DP), intent(in) :: Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
real(DP) :: Work2(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
Work2 = xyz_Turb + Work
xyz_Turb = Work2
end subroutine StoreTurb
| Function : | |||
| aa_MeanXY_aaaa(DimZMin:DimZMax, SpcNum) : | real(DP)
| ||
| var(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum) : | real(DP), intent(in)
|
水平平均値の計算
function aa_MeanXY_aaaa( var )
!
! 水平平均値の計算
!
!暗黙の型宣言禁止
implicit none
!変数定義
real(DP), intent(in) :: var(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum)
!平均演算の対象となる変数
real(DP) :: aa_MeanXY_aaaa(DimZMin:DimZMax, SpcNum)
!水平平均値
integer :: i
do i = 1, SpcNum
aa_MeanXY_aaaa(:,i) = a_MeanXY_aaa(var(:,:,:,i))
end do
end function aa_MeanXY_aaaa