Class storeset
In: setup/storeset.f90

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

Methods

Included Modules

gridset TimeSet

Public Instance methods

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

移流項の保管

[Source]

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

    implicit none

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

    Work2  = xz_Adv + Work
    xz_Adv = Work2

  end subroutine StoreAdv
Subroutine :

保管した値のクリアー

[Source]

  subroutine StoreClean( )
    !保管した値のクリアー
    
    z_Adv  = 0.0d0
    z_Turb = 0.0d0
    z_Diff = 0.0d0
    z_Disp = 0.0d0
    z_Rad  = 0.0d0
    z_Damp = 0.0d0
    z_Cond = 0.0d0

    xz_Adv  = 0.0d0
    xz_Turb = 0.0d0
    xz_Diff = 0.0d0
    xz_Disp = 0.0d0
    xz_Rad  = 0.0d0
    xz_Damp = 0.0d0
    xz_Cond = 0.0d0
   
    z_Stab      = 0.0d0
    z_StabTemp  = 0.0d0
    z_StabMolWt = 0.0d0

    xz_Stab1 = 0.0d0
    xz_Stab2 = 0.0d0
    xz_Stab3 = 0.0d0

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

数値拡散項の保管

[Source]

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

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

    Work2   = xz_Cond + Work
    xz_Cond = Work2

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

ダンピング項の保管

[Source]

  subroutine StoreDamp( Work )
    !ダンピング項の保管

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

    Work2   = xz_Damp + Work
    xz_Damp = Work2

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

数値拡散項の保管

[Source]

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

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

    Work2   = xz_Diff + Work
    xz_Diff = Work2

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

散逸加熱項の保管

[Source]

  subroutine StoreDisp( Work )
    !散逸加熱項の保管

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

    Work2   = xz_Disp + Work
    xz_Disp = Work2

  end subroutine StoreDisp
Subroutine :

保管した値の水平平均値

[Source]

  subroutine StoreMeanX( )
    !保管した値の水平平均値
    
    z_Adv  = a_MeanX_aa( xz_Adv )  * DelTimeLong * 2.0d0 / TimeDisp
    z_Turb = a_MeanX_aa( xz_Turb ) * DelTimeLong * 2.0d0 / TimeDisp
    z_Diff = a_MeanX_aa( xz_Diff ) * DelTimeLong * 2.0d0 / TimeDisp
    z_Disp = a_MeanX_aa( xz_Disp ) * DelTimeLong * 2.0d0 / TimeDisp
    z_Rad  = a_MeanX_aa( xz_Rad  ) * DelTimeLong * 2.0d0 / TimeDisp
    z_Damp = a_MeanX_aa( xz_Damp ) * DelTimeLong * 2.0d0 / TimeDisp
    z_Cond = a_MeanX_aa( xz_Cond ) / TimeDisp  !時間積分済み

    z_Stab      = a_MeanX_aa( xz_Stab1 ) * DelTimeLong * 2.0d0 / TimeDisp
    z_StabTemp  = a_MeanX_aa( xz_Stab2 ) * DelTimeLong * 2.0d0 / TimeDisp
    z_StabMolWt = a_MeanX_aa( xz_Stab3 ) * DelTimeLong * 2.0d0 / TimeDisp
    
  end subroutine StoreMeanX
Subroutine :
Work(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)

放射冷却項の保管

[Source]

  subroutine StoreRad( Work )
    !放射冷却項の保管

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

    Work2  = xz_Rad + Work
    xz_Rad = Work2

  end subroutine StoreRad
Subroutine :

初期化ルーチン

[Source]

  subroutine StoreSet_Init( )
    !初期化ルーチン

    allocate( z_Adv(DimZMin:DimZMax), z_Turb(DimZMin:DimZMax), z_Disp(DimZMin:DimZMax), z_Diff(DimZMin:DimZMax), z_Rad(DimZMin:DimZMax), z_Damp(DimZMin:DimZMax), z_Cond(DimZMin:DimZMax), xz_Adv(DimXMin:DimXMax, DimZMin:DimZMax), xz_Turb(DimXMin:DimXMax, DimZMin:DimZMax), xz_Disp(DimXMin:DimXMax, DimZMin:DimZMax), xz_Diff(DimXMin:DimXMax, DimZMin:DimZMax), xz_Rad(DimXMin:DimXMax, DimZMin:DimZMax), xz_Damp(DimXMin:DimXMax, DimZMin:DimZMax), xz_Cond(DimXMin:DimXMax, DimZMin:DimZMax), z_Stab(DimZMin:DimZMax), z_StabTemp(DimZMin:DimZMax), z_StabMolWt(DimZMin:DimZMax), xz_Stab1(DimXMin:DimXMax, DimZMin:DimZMax), xz_Stab2(DimXMin:DimXMax, DimZMin:DimZMax), xz_Stab3(DimXMin:DimXMax, DimZMin:DimZMax) )
    
    z_Adv  = 0.0d0
    z_Turb = 0.0d0
    z_Diff = 0.0d0
    z_Disp = 0.0d0
    z_Rad  = 0.0d0
    z_Damp = 0.0d0
    z_Cond = 0.0d0

    xz_Adv  = 0.0d0
    xz_Turb = 0.0d0
    xz_Diff = 0.0d0
    xz_Disp = 0.0d0
    xz_Rad  = 0.0d0
    xz_Damp = 0.0d0
    xz_Cond = 0.0d0
   
    z_Stab      = 0.0d0
    z_StabTemp  = 0.0d0
    z_StabMolWt = 0.0d0

    xz_Stab1 = 0.0d0
    xz_Stab2 = 0.0d0
    xz_Stab3 = 0.0d0

  end subroutine StoreSet_Init
Subroutine :
Work1(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)
Work2(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)
Work3(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)

数値拡散項の保管

[Source]

  subroutine StoreStab( Work1, Work2, Work3 )
    !数値拡散項の保管

    implicit none
    
    real(8), intent(in)  :: Work1(DimXMin:DimXMax, DimZMin:DimZMax)
    real(8), intent(in)  :: Work2(DimXMin:DimXMax, DimZMin:DimZMax)
    real(8), intent(in)  :: Work3(DimXMin:DimXMax, DimZMin:DimZMax)
    real(8)              :: WorkA(DimXMin:DimXMax, DimZMin:DimZMax)
    real(8)              :: WorkB(DimXMin:DimXMax, DimZMin:DimZMax)
    real(8)              :: WorkC(DimXMin:DimXMax, DimZMin:DimZMax)

    WorkA    = Work1 + xz_Stab1 
    xz_Stab1 = WorkA

    WorkB    =  Work2 + xz_Stab2
    xz_Stab2 = WorkB

    WorkC    = Work3 + xz_Stab3
    xz_Stab3 = WorkC

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

乱流項の保管

[Source]

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

    implicit none

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

    Work2   = xz_Turb + Work
    xz_Turb = Work2

  end subroutine StoreTurb
Function :
a_MeanX_aa(DimZMin:DimZMax) :real(8)
: 水平平均値
var(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(in)
: 平均演算の対象となる変数

水平平均値の計算

[Source]

  function a_MeanX_aa( var ) 
    !
    ! 水平平均値の計算
    !
    
    !暗黙の型宣言禁止
    implicit none
    
    !変数定義
    real(8), intent(in)  :: var(DimXMin:DimXMax, DimZMin:DimZMax)
                                     !平均演算の対象となる変数
    real(8)              :: a_MeanX_aa(DimZMin:DimZMax)
                                     !水平平均値

    a_MeanX_aa = sum( var(RegXMin+1:RegXMax, :), 1 ) / real(RegXMax - RegXMin, 8) 

  end function a_MeanX_aa
xz_Adv()
Variable :
xz_Adv(:,:) :real(8), allocatable
xz_Cond()
Variable :
xz_Cond(:,:) :real(8), allocatable
xz_Damp()
Variable :
xz_Damp(:,:) :real(8), allocatable
xz_Diff()
Variable :
xz_Diff(:,:) :real(8), allocatable
xz_Disp()
Variable :
xz_Disp(:,:) :real(8), allocatable
xz_Rad()
Variable :
xz_Rad(:,:) :real(8), allocatable
xz_Stab1()
Variable :
xz_Stab1(:,:) :real(8), allocatable
xz_Stab2()
Variable :
xz_Stab2(:,:) :real(8), allocatable
xz_Stab3()
Variable :
xz_Stab3(:,:) :real(8), allocatable
xz_Turb()
Variable :
xz_Turb(:,:) :real(8), allocatable
z_Adv()
Variable :
z_Adv(:) :real(8), allocatable
z_Cond()
Variable :
z_Cond(:) :real(8), allocatable
z_Damp()
Variable :
z_Damp(:) :real(8), allocatable
z_Diff()
Variable :
z_Diff(:) :real(8), allocatable
z_Disp()
Variable :
z_Disp(:) :real(8), allocatable
z_Rad()
Variable :
z_Rad(:) :real(8), allocatable
z_Stab()
Variable :
z_Stab(:) :real(8), allocatable
z_StabMolWt()
Variable :
z_StabMolWt(:) :real(8), allocatable
z_StabTemp()
Variable :
z_StabTemp(:) :real(8), allocatable
z_Turb()
Variable :
z_Turb(:) :real(8), allocatable

[Validate]