| Class | StorePotTemp_3d | 
| In: | 
                
                setup/storepottemp_3d.f90
                
         | 
        
温位に関する積算値を保管するための変数型モジュール.
| Subroutine : | |
| Work(DimXMin:DimXMax,DimYMin:DimYMax,DimZMin:DimZMax) : | real(DP),intent(in) | 
移流項の保管
  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 : | 
保管した値のクリアー
  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) | 
潜熱・蒸発熱の保管
  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) | 
ダンピング項の保管
  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) | 
数値拡散項の保管
  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) | 
散逸加熱項の保管
  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) | 
地表面フラックスの保管
  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]
  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) | 
放射冷却項の保管
  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) | 
乱流項の保管
  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 : | 
初期化ルーチン
  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