Class StorePotTemp_3d
In: setup/storepottemp_3d.f90

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

Methods

Included Modules

dc_types dc_message gridset_3d TimeSet xyz_base_module

Public Instance methods

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

移流項の保管

[Source]

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

    implicit none

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

    Work2  = xyz_Adv + Work
    xyz_Adv = Work2

  end subroutine StorePotTempAdv
Subroutine :

保管した値のクリアー

[Source]

  subroutine StorePotTempClean( )
    !保管した値のクリアー
    
    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
    z_Flux = 0.0d0

    xyz_Adv  = 0.0d0
    xyz_Turb = 0.0d0
    xyz_Diff = 0.0d0
    xyz_Disp = 0.0d0
    xyz_Rad  = 0.0d0
    xyz_Damp = 0.0d0
    xyz_Cond = 0.0d0
    xyz_Flux = 0.0d0
   
!    CalNum  = 1.0d-40    !ゼロ割を禁止. 
  end subroutine StorePotTempClean
Subroutine :
Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) :real(DP),intent(in)

潜熱・蒸発熱の保管

[Source]

  subroutine StorePotTempCond( Work )
    !潜熱・蒸発熱の保管

    implicit none
    
    real(DP),intent(in)  :: Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
    real(DP)             :: Work2(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)

    Work2   = xyz_Cond + Work
    xyz_Cond = Work2

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

ダンピング項の保管

[Source]

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

    implicit none
    
    real(DP),intent(in)  :: Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
    real(DP)             :: Work2(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)

    Work2   = xyz_Damp + Work
    xyz_Damp = Work2

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

数値拡散項の保管

[Source]

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

    implicit none
    
    real(DP),intent(in)  :: Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
    real(DP)             :: Work2(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)

    Work2   = xyz_Diff + Work
    xyz_Diff = Work2

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

散逸加熱項の保管

[Source]

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

    implicit none
    
    real(DP),intent(in)  :: Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
    real(DP)             :: Work2(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)

    Work2   = xyz_Disp + Work
    xyz_Disp = Work2

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

地表面フラックスの保管

[Source]

  subroutine StorePotTempFlux( Work )
    !地表面フラックスの保管

    implicit none
    
    real(DP),intent(in)  :: Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
    real(DP)             :: Work2(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)

    Work2   = xyz_Flux + Work
    xyz_Flux = Work2

  end subroutine StorePotTempFlux
Subroutine :

保管した値の水平平均値 [K/s]

[Source]

  subroutine StorePotTempMeanXY( )
    !保管した値の水平平均値 [K/s]
    real(DP):: CalNum

    CalNum = TimeDisp / DelTimeLong 
    
    z_Adv  = a_MeanXY_aaa( xyz_Adv )   / CalNum
    z_Turb = a_MeanXY_aaa( xyz_Turb )  / CalNum
    z_Diff = a_MeanXY_aaa( xyz_Diff )  / CalNum
    z_Disp = a_MeanXY_aaa( xyz_Disp )  / CalNum
    z_Rad  = a_MeanXY_aaa( xyz_Rad  )  / CalNum
    z_Damp = a_MeanXY_aaa( xyz_Damp )  / CalNum
    z_Cond = a_MeanXY_aaa( xyz_Cond )  / CalNum
    z_Flux = a_MeanXY_aaa( xyz_Flux )  / CalNum

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

放射冷却項の保管

[Source]

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

    implicit none
    
    real(DP),intent(in)  :: Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)
    real(DP)             :: Work2(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax)

    Work2  = xyz_Rad + Work
    xyz_Rad = Work2

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

乱流項の保管

[Source]

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

    implicit none

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

    Work2   = xyz_Turb + Work
    xyz_Turb = Work2

  end subroutine StorePotTempTurb
Subroutine :

初期化ルーチン

[Source]

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

    call MessageNotify( "M", "StorePotTemp_Init", "Initialize" )

    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), z_Flux(DimZMin:DimZMax), xyz_Adv (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), xyz_Turb(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), xyz_Disp(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), xyz_Diff(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), xyz_Rad (DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), xyz_Damp(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), xyz_Cond(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax), xyz_Flux(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) )

    call StorePotTempClean

  end subroutine StorePotTemp_Init
z_Adv
Variable :
z_Adv(:) :real(DP),allocatable
z_Cond
Variable :
z_Cond(:) :real(DP),allocatable
z_Damp
Variable :
z_Damp(:) :real(DP),allocatable
z_Diff
Variable :
z_Diff(:) :real(DP),allocatable
z_Disp
Variable :
z_Disp(:) :real(DP),allocatable
z_Flux
Variable :
z_Flux(:) :real(DP),allocatable
z_Rad
Variable :
z_Rad(:) :real(DP),allocatable
z_Turb
Variable :
z_Turb(:) :real(DP),allocatable

[Validate]