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