Class storeset2
In: setup/storeset2.f90

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

Methods

Included Modules

gridset TimeSet

Public Instance methods

Subroutine :
Work(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum) :real(8), intent(in)

移流項の保管

[Source]

  subroutine Store2Adv( Work )
    !移流項の保管

    implicit none

    real(8), intent(in)  :: Work(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum)
    real(8)              :: Work2(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum)

    Work2  = xza_Adv + Work
    xza_Adv = Work2

!    CalNum = CalNum + 1

  end subroutine Store2Adv
Subroutine :

保管した値のクリアー

[Source]

  subroutine Store2Clean( )
    !保管した値のクリアー
    
    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

    xza_Adv  = 0.0d0
    xza_Turb = 0.0d0
    xza_Diff = 0.0d0
    xza_Flux = 0.0d0
    xza_Rain = 0.0d0
    xza_Fill1 = 0.0d0
    xza_Fill2 = 0.0d0
    xza_Cond = 0.0d0
!    xza_Asln = 0.0d0

!    CalNum  = 1.0d-40   !ゼロ割を禁止
  end subroutine Store2Clean
Subroutine :
Work(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum) :real(8), intent(in)

凝結に伴う変化

[Source]

  subroutine Store2Cond( Work )
    !凝結に伴う変化

    implicit none
    
    real(8), intent(in)  :: Work(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum)
    real(8)              :: Work2(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum)

    Work2   = xza_Cond + Work
    xza_Cond = Work2

  end subroutine Store2Cond
Subroutine :
Work(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum) :real(8), intent(in)

数値拡散項の保管

[Source]

  subroutine Store2Diff( Work )
    !数値拡散項の保管

    implicit none
    
    real(8), intent(in)  :: Work(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum)
    real(8)              :: Work2(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum)

    Work2   = xza_Diff + Work
    xza_Diff = Work2

  end subroutine Store2Diff
Subroutine :
Work1(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum) :real(8), intent(in)

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

[Source]

  subroutine Store2Fill1( Work1 )
    !穴埋めプログラムによる変化

    implicit none
    
    real(8), intent(in)  :: Work1(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum)
    real(8)              :: WorkA(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum)

    WorkA     = Work1 + xza_Fill1
    xza_Fill1 = WorkA

  end subroutine Store2Fill1
Subroutine :
Work1(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum) :real(8), intent(in)

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

[Source]

  subroutine Store2Fill2( Work1 )
    !穴埋めプログラム(2)による変化

    implicit none
    
    real(8), intent(in)  :: Work1(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum)
    real(8)              :: WorkA(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum)

    WorkA      = Work1 + xza_Fill2
    xza_Fill2  = WorkA

  end subroutine Store2Fill2
Subroutine :
Work(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum) :real(8), intent(in)

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

[Source]

  subroutine Store2Flux( Work )
    !地表面フラックスによる変化

    implicit none
    
    real(8), intent(in)  :: Work(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum)
    real(8)              :: Work2(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum)

    Work2  = xza_Flux + Work
    xza_Flux = Work2

  end subroutine Store2Flux
Subroutine :

保管した値の水平平均値

[Source]

  subroutine Store2MeanX( )
    !保管した値の水平平均値
 
    real(8) :: CalNum

    CalNum = TimeDisp / DelTimeLong
   
    za_Adv  = aa_MeanX_aaa( xza_Adv ) / CalNum
    za_Turb = aa_MeanX_aaa( xza_Turb ) / CalNum
    za_Diff = aa_MeanX_aaa( xza_Diff ) / CalNum
    za_Flux = aa_MeanX_aaa( xza_Flux ) / CalNum
    za_Rain = aa_MeanX_aaa( xza_Rain ) / CalNum
    za_Fill1 = aa_MeanX_aaa( xza_Fill1  ) / CalNum
    za_Fill2 = aa_MeanX_aaa( xza_Fill2 ) / CalNum
    za_Cond = aa_MeanX_aaa( xza_Cond ) / CalNum
!    za_Asln = aa_MeanX_aaa( xza_Asln ) / CalNum

  end subroutine Store2MeanX
Subroutine :
Work(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum) :real(8), intent(in)

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

[Source]

  subroutine Store2Rain( Work )
    !降雨の重力落下に伴う変化

    implicit none
    
    real(8), intent(in)  :: Work(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum)
    real(8)              :: Work2(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum)

    Work2   = xza_Rain + Work
    xza_Rain = Work2

  end subroutine Store2Rain
Subroutine :

初期化ルーチン

[Source]

  subroutine Store2Set_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), xza_Adv(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum), xza_Turb(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum), xza_Diff(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum), xza_Flux(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum), xza_Rain(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum), xza_Fill1(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum), xza_Fill2(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum), xza_Cond(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum) )
    
    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

    xza_Adv  = 0.0d0
    xza_Turb = 0.0d0
    xza_Diff = 0.0d0
    xza_Flux = 0.0d0
    xza_Rain = 0.0d0
    xza_Fill1 = 0.0d0
    xza_Fill2 = 0.0d0
    xza_Cond = 0.0d0
!    xza_Asln = 0.0d0

!    CalNum  = 1.0d-40   !ゼロ割を禁止
  end subroutine Store2Set_Init
Subroutine :
Work(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum) :real(8), intent(in)

乱流項の保管

[Source]

  subroutine Store2Turb( Work )
    !乱流項の保管

    implicit none

    real(8), intent(in)  :: Work(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum)
    real(8)              :: Work2(DimXMin:DimXMax, DimZMin:DimZMax, SpcNum)

    Work2   = xza_Turb + Work
    xza_Turb = Work2

  end subroutine Store2Turb
za_Adv()
Variable :
za_Adv(:,:) :real(8), allocatable
za_Cond()
Variable :
za_Cond(:,:) :real(8), allocatable
:
real(8), allocatable :za_Asln(:,:)
za_Diff()
Variable :
za_Diff(:,:) :real(8), allocatable
za_Fill1()
Variable :
za_Fill1(:,:) :real(8), allocatable
za_Fill2()
Variable :
za_Fill2(:,:) :real(8), allocatable
za_Flux()
Variable :
za_Flux(:,:) :real(8), allocatable
za_Rain()
Variable :
za_Rain(:,:) :real(8), allocatable
za_Turb()
Variable :
za_Turb(:,:) :real(8), allocatable

[Validate]