Class StoreMixRt_3d
In: setup/storemixrt_3d.f90

積算値を保管するための変数型モジュール.

Methods

Included Modules

dc_types dc_message gridset_3d TimeSet

Public Instance methods

Subroutine :
Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax, SpcNum) :real(DP), intent(in)

移流項の保管

[Source]

  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 :

保管した値のクリアー

[Source]

  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)

凝結に伴う変化

[Source]

  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)

数値拡散項の保管

[Source]

  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)

穴埋めプログラムによる変化

[Source]

  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)による変化

[Source]

  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)

地表面フラックスによる変化

[Source]

  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 :

保管した値の水平平均値

[Source]

  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)

降雨の重力落下に伴う変化

[Source]

  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)

乱流項の保管

[Source]

  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 :

初期化ルーチン

[Source]

  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
za_Adv
Variable :
za_Adv(:,:) :real(DP), allocatable
za_Cond
Variable :
za_Cond(:,:) :real(DP), allocatable
:
real(DP), allocatable :za_Asln(:,:)
za_Diff
Variable :
za_Diff(:,:) :real(DP), allocatable
za_Fill1
Variable :
za_Fill1(:,:) :real(DP), allocatable
za_Fill2
Variable :
za_Fill2(:,:) :real(DP), allocatable
za_Flux
Variable :
za_Flux(:,:) :real(DP), allocatable
za_Rain
Variable :
za_Rain(:,:) :real(DP), allocatable
za_Turb
Variable :
za_Turb(:,:) :real(DP), allocatable