| Class | StoreDensCloud |
| In: |
setup/storedenscloud.f90
|
雲密度に関する積算値を保管するための変数型モジュール.
| Subroutine : | |
| Work(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8), intent(in) |
2 delta t の各時間内で求めた移流項 tendency の足しこみ
subroutine DensCloudAdvTendSum( Work )
! 2 \delta t の各時間内で求めた移流項 tendency の足しこみ
implicit none
real(8), intent(in) :: Work(DimXMin:DimXMax, DimZMin:DimZMax)
real(8) :: Work2(DimXMin:DimXMax, DimZMin:DimZMax)
Work2 = xz_DensCloudAdv2 + Work
xz_DensCloudAdv2 = Work2
xz_DensCloudAdv = 0.0d0
end subroutine DensCloudAdvTendSum
| Subroutine : | |
| Work(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8), intent(in) |
2 delta t の各時間内で求めた潜熱加熱項 tendency の足しこみ
subroutine DensCloudCondTendSum( Work )
! 2 \delta t の各時間内で求めた潜熱加熱項 tendency の足しこみ
implicit none
real(8), intent(in) :: Work(DimXMin:DimXMax, DimZMin:DimZMax)
real(8) :: Work2(DimXMin:DimXMax, DimZMin:DimZMax)
Work2 = xz_DensCloudCond2 + Work
xz_DensCloudCond2 = Work2
xz_DensCloudCond = 0.0d0
end subroutine DensCloudCondTendSum
| Subroutine : | |
| Work(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8), intent(in) |
2 delta t の各時間内で求めた数値拡散項 tendency の足しこみ. 短い時間ステップのループ内に行く前に xz_DensCloudxxx の量を クリアーしておく.
subroutine DensCloudDiffTendSum( Work )
! 2 \delta t の各時間内で求めた数値拡散項 tendency の足しこみ.
! 短い時間ステップのループ内に行く前に xz_DensCloudxxx の量を
! クリアーしておく.
implicit none
real(8), intent(in) :: Work(DimXMin:DimXMax, DimZMin:DimZMax)
real(8) :: Work2(DimXMin:DimXMax, DimZMin:DimZMax)
Work2 = xz_DensCloudDiff2 + Work
xz_DensCloudDiff2 = Work2
xz_DensCloudDiff = 0.0d0
end subroutine DensCloudDiffTendSum
| Subroutine : | |
| Work(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8), intent(in) |
2 delta t の各時間内で求めた穴埋め量 tendency の足しこみ
subroutine DensCloudFillTendSum( Work )
! 2 \delta t の各時間内で求めた穴埋め量 tendency の足しこみ
implicit none
real(8), intent(in) :: Work(DimXMin:DimXMax, DimZMin:DimZMax)
real(8) :: Work2(DimXMin:DimXMax, DimZMin:DimZMax)
Work2 = Work + xz_DensCloudFill2
xz_DensCloudFill2 = Work2
xz_DensCloudFill = 0.0d0
end subroutine DensCloudFillTendSum
| Subroutine : | |
| Work(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8), intent(in) |
2 delta t の各時間内で求めた穴埋め量 tendency の足しこみ
subroutine DensCloudFillZeroTendSum( Work )
! 2 \delta t の各時間内で求めた穴埋め量 tendency の足しこみ
implicit none
real(8), intent(in) :: Work(DimXMin:DimXMax, DimZMin:DimZMax)
real(8) :: Work2(DimXMin:DimXMax, DimZMin:DimZMax)
Work2 = Work + xz_DensCloudFillZero2
xz_DensCloudFillZero2 = Work2
xz_DensCloudFillZero = 0.0d0
end subroutine DensCloudFillZeroTendSum
| Subroutine : | |
| Work(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8), intent(in) |
2 delta t の各時間内で求めた乱流項 tendency の足しこみ
subroutine DensCloudTurbTendSum( Work )
! 2 \delta t の各時間内で求めた乱流項 tendency の足しこみ
implicit none
real(8), intent(in) :: Work(DimXMin:DimXMax, DimZMin:DimZMax)
real(8) :: Work2(DimXMin:DimXMax, DimZMin:DimZMax)
Work2 = xz_DensCloudTurb2 + Work
xz_DensCloudTurb2 = Work2
xz_DensCloudTurb = 0.0d0
end subroutine DensCloudTurbTendSum
| Subroutine : | |
| Work(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8), intent(in) |
移流項の保管
subroutine StoreDensCloudAdv( Work )
!移流項の保管
implicit none
real(8), intent(in) :: Work(DimXMin:DimXMax, DimZMin:DimZMax)
real(8) :: Work2(DimXMin:DimXMax, DimZMin:DimZMax)
Work2 = xz_DensCloudAdv + Work
xz_DensCloudAdv = Work2
end subroutine StoreDensCloudAdv
| Subroutine : |
保管した値のクリアー
subroutine StoreDensCloudClean( )
!保管した値のクリアー
z_DensCloudAdv = 0.0d0
z_DensCloudTurb = 0.0d0
z_DensCloudDiff = 0.0d0
z_DensCloudCond = 0.0d0
z_DensCloudFill = 0.0d0
z_DensCloudFillZero = 0.0d0
xz_DensCloudAdv = 0.0d0
xz_DensCloudTurb = 0.0d0
xz_DensCloudDiff = 0.0d0
xz_DensCloudCond = 0.0d0
xz_DensCloudFill = 0.0d0
xz_DensCloudFillZero = 0.0d0
xz_DensCloudAdv2 = 0.0d0
xz_DensCloudTurb2 = 0.0d0
xz_DensCloudDiff2 = 0.0d0
xz_DensCloudCond2 = 0.0d0
xz_DensCloudFill2 = 0.0d0
xz_DensCloudFillZero2 = 0.0d0
! CalNum = 1.0d-40 !ゼロ割を禁止.
end subroutine StoreDensCloudClean
| Subroutine : | |
| Work(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8), intent(in) |
潜熱・蒸発熱の保管
subroutine StoreDensCloudCond( Work )
!潜熱・蒸発熱の保管
implicit none
real(8), intent(in) :: Work(DimXMin:DimXMax, DimZMin:DimZMax)
real(8) :: Work2(DimXMin:DimXMax, DimZMin:DimZMax)
Work2 = xz_DensCloudCond + Work
xz_DensCloudCond = Work2
end subroutine StoreDensCloudCond
| Subroutine : | |
| Work(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8), intent(in) |
数値拡散項の保管
subroutine StoreDensCloudDiff( Work )
!数値拡散項の保管
implicit none
real(8), intent(in) :: Work(DimXMin:DimXMax, DimZMin:DimZMax)
real(8) :: Work2(DimXMin:DimXMax, DimZMin:DimZMax)
Work2 = xz_DensCloudDiff + Work
xz_DensCloudDiff = Work2
end subroutine StoreDensCloudDiff
| Subroutine : | |
| Work(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8), intent(in) |
穴埋めプログラムによる変化
subroutine StoreDensCloudFill( Work )
!穴埋めプログラムによる変化
implicit none
real(8), intent(in) :: Work(DimXMin:DimXMax, DimZMin:DimZMax)
real(8) :: Work2(DimXMin:DimXMax, DimZMin:DimZMax)
Work2 = Work + xz_DensCloudFill
xz_DensCloudFill = Work2
end subroutine StoreDensCloudFill
| Subroutine : | |
| Work(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8), intent(in) |
穴埋めプログラムによる変化
subroutine StoreDensCloudFillZero( Work )
!穴埋めプログラムによる変化
implicit none
real(8), intent(in) :: Work(DimXMin:DimXMax, DimZMin:DimZMax)
real(8) :: Work2(DimXMin:DimXMax, DimZMin:DimZMax)
Work2 = Work + xz_DensCloudFillZero
xz_DensCloudFillZero = Work2
end subroutine StoreDensCloudFillZero
| Subroutine : |
subroutine StoreDensCloudMean( )
!保管した値の水平平均値 [K/s]
real(8) :: CalNumShort
CalNumShort = 2.0d0 * DelTimeLong / DelTimeShort
xz_DensCloudAdv = xz_DensCloudAdv / ( CalNumShort * TimeDisp )
xz_DensCloudTurb = xz_DensCloudTurb / ( CalNumShort * TimeDisp )
xz_DensCloudDiff = xz_DensCloudDiff / ( CalNumShort * TimeDisp )
xz_DensCloudCond = xz_DensCloudCond / ( CalNumShort * TimeDisp )
xz_DensCloudFill = xz_DensCloudFill / ( CalNumShort * TimeDisp )
xz_DensCloudFillZero = xz_DensCloudFillZero / ( CalNumShort * TimeDisp )
end subroutine StoreDensCloudMean
| Subroutine : | |
| Work(DimXMin:DimXMax, DimZMin:DimZMax) : | real(8), intent(in) |
乱流項の保管
subroutine StoreDensCloudTurb( Work )
!乱流項の保管
implicit none
real(8), intent(in) :: Work(DimXMin:DimXMax, DimZMin:DimZMax)
real(8) :: Work2(DimXMin:DimXMax, DimZMin:DimZMax)
Work2 = xz_DensCloudTurb + Work
xz_DensCloudTurb = Work2
end subroutine StoreDensCloudTurb
| Subroutine : |
初期化ルーチン
subroutine StoreDensCloud_Init( )
!初期化ルーチン
allocate( z_DensCloudAdv(DimZMin:DimZMax), z_DensCloudTurb(DimZMin:DimZMax), z_DensCloudDiff(DimZMin:DimZMax), z_DensCloudCond(DimZMin:DimZMax), z_DensCloudFill(DimZMin:DimZMax), z_DensCloudFillZero(DimZMin:DimZMax), xz_DensCloudAdv(DimXMin:DimXMax, DimZMin:DimZMax), xz_DensCloudTurb(DimXMin:DimXMax, DimZMin:DimZMax), xz_DensCloudDiff(DimXMin:DimXMax, DimZMin:DimZMax), xz_DensCloudCond(DimXMin:DimXMax, DimZMin:DimZMax), xz_DensCloudFill(DimXMin:DimXMax, DimZMin:DimZMax), xz_DensCloudFillZero(DimXMin:DimXMax, DimZMin:DimZMax), xz_DensCloudAdv2(DimXMin:DimXMax, DimZMin:DimZMax), xz_DensCloudTurb2(DimXMin:DimXMax, DimZMin:DimZMax), xz_DensCloudDiff2(DimXMin:DimXMax, DimZMin:DimZMax), xz_DensCloudCond2(DimXMin:DimXMax, DimZMin:DimZMax), xz_DensCloudFill2(DimXMin:DimXMax, DimZMin:DimZMax), xz_DensCloudFillZero2(DimXMin:DimXMax, DimZMin:DimZMax) )
call StoreDensCloudClean
end subroutine StoreDensCloud_Init