| Class | StoreMixRt_3d |
| In: |
setup/storemixrt_3d.f90
|
積算値を保管するための変数型モジュール.
| Subroutine : | |
| Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum) : | real(DP), intent(in) |
移流項の保管
subroutine StoreMixRtAdv( Work )
!移流項の保管
implicit none
real(DP), intent(in) :: Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum)
real(DP) :: Work2(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum)
Work2 = xyza_Adv + Work
xyza_Adv = Work2
! CalNum = CalNum + 1
end subroutine StoreMixRtAdv
| Subroutine : |
保管した値のクリアー
subroutine StoreMixRtClean( )
!保管した値のクリアー
za_Adv = 0.0d0
za_Turb = 0.0d0
za_Diff = 0.0d0
za_Flux = 0.0d0
za_Rain = 0.0d0
za_Fill1 = 0.0d0
za_Fill2 = 0.0d0
za_Cond = 0.0d0
! za_Asln = 0.0d0
xyza_Adv = 0.0d0
xyza_Turb = 0.0d0
xyza_Diff = 0.0d0
xyza_Flux = 0.0d0
xyza_Rain = 0.0d0
xyza_Fill1 = 0.0d0
xyza_Fill2 = 0.0d0
xyza_Cond = 0.0d0
! xyza_Asln = 0.0d0
! CalNum = 1.0d-40 !ゼロ割を禁止
end subroutine StoreMixRtClean
| Subroutine : | |
| Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum) : | real(DP), intent(in) |
凝結に伴う変化
subroutine StoreMixRtCond( Work )
!凝結に伴う変化
implicit none
real(DP), intent(in) :: Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum)
real(DP) :: Work2(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum)
Work2 = xyza_Cond + Work
xyza_Cond = Work2
end subroutine StoreMixRtCond
| Subroutine : | |
| Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum) : | real(DP), intent(in) |
数値拡散項の保管
subroutine StoreMixRtDiff( Work )
!数値拡散項の保管
implicit none
real(DP), intent(in) :: Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum)
real(DP) :: Work2(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum)
Work2 = xyza_Diff + Work
xyza_Diff = Work2
end subroutine StoreMixRtDiff
| Subroutine : | |
| Work1(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum) : | real(DP), intent(in) |
穴埋めプログラムによる変化
subroutine StoreMixRtFill1( Work1 )
!穴埋めプログラムによる変化
implicit none
real(DP), intent(in) :: Work1(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum)
real(DP) :: WorkA(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum)
WorkA = Work1 + xyza_Fill1
xyza_Fill1 = WorkA
end subroutine StoreMixRtFill1
| Subroutine : | |
| Work1(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum) : | real(DP), intent(in) |
穴埋めプログラム(2)による変化
subroutine StoreMixRtFill2( Work1 )
!穴埋めプログラム(2)による変化
implicit none
real(DP), intent(in) :: Work1(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum)
real(DP) :: WorkA(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum)
WorkA = Work1 + xyza_Fill2
xyza_Fill2 = WorkA
end subroutine StoreMixRtFill2
| Subroutine : | |
| Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum) : | real(DP), intent(in) |
地表面フラックスによる変化
subroutine StoreMixRtFlux( Work )
!地表面フラックスによる変化
implicit none
real(DP), intent(in) :: Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum)
real(DP) :: Work2(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum)
Work2 = xyza_Flux + Work
xyza_Flux = Work2
end subroutine StoreMixRtFlux
| Subroutine : |
保管した値の水平平均値
subroutine StoreMixRtMeanXY( )
!保管した値の水平平均値
real(DP) :: CalNum
CalNum = TimeDisp / DelTimeLong
za_Adv = aa_MeanXY_aaaa( xyza_Adv ) / CalNum
za_Turb = aa_MeanXY_aaaa( xyza_Turb ) / CalNum
za_Diff = aa_MeanXY_aaaa( xyza_Diff ) / CalNum
za_Flux = aa_MeanXY_aaaa( xyza_Flux ) / CalNum
za_Rain = aa_MeanXY_aaaa( xyza_Rain ) / CalNum
za_Fill1 = aa_MeanXY_aaaa( xyza_Fill1 ) / CalNum
za_Fill2 = aa_MeanXY_aaaa( xyza_Fill2 ) / CalNum
za_Cond = aa_MeanXY_aaaa( xyza_Cond ) / CalNum
! za_Asln = aa_MeanXY_aaaa( xyza_Asln ) / CalNum
end subroutine StoreMixRtMeanXY
| Subroutine : | |
| Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum) : | real(DP), intent(in) |
降雨の重力落下に伴う変化
subroutine StoreMixRtRain( Work )
!降雨の重力落下に伴う変化
implicit none
real(DP), intent(in) :: Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum)
real(DP) :: Work2(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum)
Work2 = xyza_Rain + Work
xyza_Rain = Work2
end subroutine StoreMixRtRain
| Subroutine : | |
| Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum) : | real(DP), intent(in) |
乱流項の保管
subroutine StoreMixRtTurb( Work )
!乱流項の保管
implicit none
real(DP), intent(in) :: Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum)
real(DP) :: Work2(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum)
Work2 = xyza_Turb + Work
xyza_Turb = Work2
end subroutine StoreMixRtTurb
| Subroutine : |
初期化ルーチン
subroutine StoreMixRt_Init( )
!初期化ルーチン
allocate( za_Adv (DimZMin:DimZMax, SpcNum), za_Turb (DimZMin:DimZMax, SpcNum), za_Diff (DimZMin:DimZMax, SpcNum), za_Flux (DimZMin:DimZMax, SpcNum), za_Rain (DimZMin:DimZMax, SpcNum), za_Fill1(DimZMin:DimZMax, SpcNum), za_Fill2(DimZMin:DimZMax, SpcNum), za_Cond (DimZMin:DimZMax, SpcNum), xyza_Adv (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum), xyza_Turb (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum), xyza_Diff (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum), xyza_Flux (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum), xyza_Rain (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum), xyza_Fill1(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum), xyza_Fill2(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum), xyza_Cond(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum) )
call StoreMixRtClean()
end subroutine StoreMixRt_Init