| Class | HeatFlux | 
| In: | physics/heatflux.f90 | 
下部境界でのフラックスの計算モジュール
| Function : | |||
| xz_HeatFluxBulk(DimXMin:DimXMax,DimZMin:DimZMax) : | real(8) 
 | ||
| xz_PotTemp(DimXMin:DimXMax,DimZMin:DimZMax) : | real(8), intent(in) 
 | 
下部境界からのフラックスによる温度の変化率をバルク法に 基づいて計算する.
  function xz_HeatFluxBulk( xz_PotTemp )
    !
    ! 下部境界からのフラックスによる温度の変化率をバルク法に
    ! 基づいて計算する.  
    !
    
    !暗黙の型宣言禁止
    implicit none
    
    !変数定義
    real(8), intent(in)   :: xz_PotTemp(DimXMin:DimXMax,DimZMin:DimZMax)
                                           !温位の擾乱成分    
    real(8)               :: xz_HeatFluxBulk(DimXMin:DimXMax,DimZMin:DimZMax)
                                           !地表面熱フラックス
    real(8)  :: VelX = 100.0d0             !下層での水平速度を決めうち
    !初期化
    !  * 全ての値をゼロに固定
    xz_HeatFluxBulk = 0.0d0
    
    !地表面熱フラックスを計算
    !  * 単位は K/s
    !  * 格子点 xz では, 物理領域の最下端の添え字は RegZMin+1
    !
    xz_HeatFluxBulk(:,RegZMin+1) = max( 0.0d0, - Bulk * VelX * xz_ExnerBasicZ(:,RegZMin+1) * xz_PotTemp(:,RegZMin+1) / DelZ )
    
  end function xz_HeatFluxBulk
          | Function : | |
| xz_HeatFluxDiff(DimXMin:DimXMax,DimZMin:DimZMax) : | real(8) | 
| xz_PotTemp(DimXMin:DimXMax,DimZMin:DimZMax) : | real(8), intent(in) | 
  function xz_HeatFluxDiff( xz_PotTemp )
    implicit none
    real(8), intent(in)   :: xz_PotTemp(DimXMin:DimXMax,DimZMin:DimZMax)
    real(8)               :: xz_HeatFluxDiff(DimXMin:DimXMax,DimZMin:DimZMax)
    xz_HeatFluxDiff = 0.0d0
    xz_HeatFluxDiff(:,RegZMin+1) = - Kappa * xz_PotTemp(:,RegZMin+1) * xz_ExnerBasicZ(:, RegZMin+1) / ( ( DelZ * 5.0d-1 ) ** 2.0d0 )
    call StorePotTempFlux( xz_HeatFluxDiff )
  end function xz_HeatFluxDiff
          | Function : | |||
| xz_MixRtFluxBulk(DimXMin:DimXMax,DimZMin:DimZMax) : | real(8) 
 | ||
| xz_MixRt(DimXMin:DimXMax,DimZMin:DimZMax) : | real(8), intent(in) 
 | 
下部境界からのフラックスによる凝結成分混合比の変化率をバルク法に 基づいて計算する.
  function xz_MixRtFluxBulk( xz_MixRt )
    !
    ! 下部境界からのフラックスによる凝結成分混合比の変化率をバルク法に
    ! 基づいて計算する.  
    !
    
    !暗黙の型宣言禁止
    implicit none
    
    !変数定義
    real(8), intent(in)   :: xz_MixRt(DimXMin:DimXMax,DimZMin:DimZMax)
                                           !温位の擾乱成分    
    real(8)               :: xz_MixRtFluxBulk(DimXMin:DimXMax,DimZMin:DimZMax)
                                           !地表面熱フラックス
    real(8)  :: VelX = 100.0d0             !下層での水平速度を決めうち
    !初期化
    !  * 全ての値をゼロに固定
    xz_MixRtFluxBulk = 0.0d0
    
    xz_MixRtFluxBulk(:,RegZMin+1) = max( 0.0d0, - Bulk * VelX * xz_MixRt(:,RegZMin+1) / DelZ )
    
  end function xz_MixRtFluxBulk
          | Function : | |
| xz_MixRtFluxDiff(DimXMin:DimXMax,DimZMin:DimZMax) : | real(8) | 
| xz_MixRt(DimXMin:DimXMax,DimZMin:DimZMax) : | real(8), intent(in) | 
  function xz_MixRtFluxDiff( xz_MixRt )
    implicit none
    real(8), intent(in)   :: xz_MixRt(DimXMin:DimXMax,DimZMin:DimZMax)
    real(8)               :: xz_MixRtFluxDiff(DimXMin:DimXMax,DimZMin:DimZMax)
    xz_MixRtFluxDiff = 0.0d0
    xz_MixRtFluxDiff(:,RegZMin+1) = max( 0.0d0, - Kappa * xz_MixRt(:,RegZMin+1) / ( ( DelZ * 5.0d-1 ) ** 2.0d0 ) )
!    xz_MixRtFluxDiff(:,RegZMin+1) =               &
!      &  - Kappa * xz_MixRt(:,RegZMin+1)          &
!      &    / ( ( DelZ * 5.0d-1 ) ** 2.0d0 )       
  end function xz_MixRtFluxDiff
          | Function : | |
| xza_MixRtFluxDiff(DimXMin:DimXMax,DimZMin:DimZMax,SpcNum) : | real(8) | 
| xza_MixRt(DimXMin:DimXMax,DimZMin:DimZMax,SpcNum) : | real(8), intent(in) | 
  function xza_MixRtFluxDiff( xza_MixRt )
    implicit none
    real(8), intent(in)   :: xza_MixRt(DimXMin:DimXMax,DimZMin:DimZMax,SpcNum)
    real(8)               :: xza_MixRtFluxDiff(DimXMin:DimXMax,DimZMin:DimZMax,SpcNum)
    xza_MixRtFluxDiff = 0.0d0
    xza_MixRtFluxDiff(:,RegZMin+1,:) = - Kappa * xza_MixRt(:,RegZMin+1,:) / ( ( DelZ * 5.0d-1 ) ** 2.0d0 )       
!    xza_MixRtFluxDiff(:,RegZMin+1,:) =                 &
!      & max(                                           &
!      &      0.0d0,                                    &
!      &    - Kappa * xza_MixRt(:,RegZMin+1,:)          &
!      &      / ( ( DelZ * 5.0d-1 ) ** 2.0d0 )          &
!      &  )
    call StoreMixRtFlux( xza_MixRtFluxDiff )
  end function xza_MixRtFluxDiff