Class HeatFlux
In: physics/heatflux.f90

下部境界でのフラックスの計算モジュール

Methods

Included Modules

gridset basicset

Public Instance methods

Function :
xz_HeatFluxBulk(DimXMin:DimXMax,DimZMin:DimZMax) :real(8)
: 地表面熱フラックス
xz_PotTemp(DimXMin:DimXMax,DimZMin:DimZMax) :real(8), intent(in)
: 温位の擾乱成分

地表面熱フラックス(単位は W/m^2)をバルク法で計算する. 大気下部の温度は基本場の温度に固定し, また水平速度を 100 m/s に固定する.

熱フラックス Cpρ \bar{ wθ} = Cm Cpρ V (Ta-TG) これを変形すると, \bar{ wθ} = Cm V (θa-θG)π \DP{\bar{ wθ}}{z} = Cm V (θa-θG)π /dz

[Source]

  function xz_HeatFluxBulk( xz_PotTemp )
    !
    !地表面熱フラックス(単位は W/m^2)をバルク法で計算する. 
    !大気下部の温度は基本場の温度に固定し, 
    !また水平速度を 100 m/s に固定する. 
    !
    !熱フラックス Cpρ \bar{ wθ} = Cm Cpρ V (Ta-TG)
    !これを変形すると, \bar{ wθ} = Cm V (θa-θG)π
    !\DP{\bar{ wθ}}{z} = Cm V (θa-θG)π /dz
    !
    
    !暗黙の型宣言禁止
    implicit none
    
    !変数定義
    real(8), intent(in)   :: xz_PotTemp(DimXMin:DimXMax,DimZMin:DimZMax)
                                           !温位の擾乱成分    
    real(8)               :: xz_HeatFluxBulk(DimXMin:DimXMax,DimZMin:DimZMax)
                                           !地表面熱フラックス
    real(8)  :: VelX = 10.0d0              !下層での水平速度を決めうち

    !初期化
    !  * 全ての値をゼロに固定
    xz_HeatFluxBulk = 0.0d0
    
    !地表面熱フラックスを計算
    !  * 単位は K/s
    !  * エクスナー関数は基本場の値で代表させる.     
    !  * 格子点 xz では, 物理領域の最下端の添え字は RegZMin+1
    !    フラックスは, RegZMin+1, RegZMin+2 での値の差に比例させる.
    !  * 基準温度(いわゆる地表面温度)は TempSfc にする.    
    !
    xz_HeatFluxBulk(:,RegZMin+1) = max( 0.0d0, - Bulk * VelX * xz_ExnerBasicZ(:,RegZMin+1) * xz_PotTemp(:,RegZMin+1) / DelZ )
    
  end function xz_HeatFluxBulk
Function :
xz_MixRtFluxBulk(DimXMin:DimXMax,DimZMin:DimZMax) :real(8)
: 地表面熱フラックス
xz_MixRt(DimXMin:DimXMax,DimZMin:DimZMax) :real(8), intent(in)
: 温位の擾乱成分

地表面 MixRt フラックスをバルク法で計算する. 大気下部の温度は基本場の温度に固定し, また水平速度を 100 m/s に固定する.

[Source]

  function xz_MixRtFluxBulk( xz_MixRt )
    !
    !地表面 MixRt フラックスをバルク法で計算する. 
    !大気下部の温度は基本場の温度に固定し, 
    !また水平速度を 100 m/s に固定する. 
    !
    
    !暗黙の型宣言禁止
    implicit none
    
    !変数定義
    real(8), intent(in)   :: xz_MixRt(DimXMin:DimXMax,DimZMin:DimZMax)
                                           !温位の擾乱成分    
    real(8)               :: xz_MixRtFluxBulk(DimXMin:DimXMax,DimZMin:DimZMax)
                                           !地表面熱フラックス
    real(8)  :: VelX = 10.0d0             !下層での水平速度を決めうち

    !初期化
    !  * 全ての値をゼロに固定
    xz_MixRtFluxBulk = 0.0d0
    
    xz_MixRtFluxBulk(:,RegZMin+1) = max( 0.0d0, - Bulk * VelX * xz_MixRt(:,RegZMin+1) / DelZ )
    
  end function xz_MixRtFluxBulk

[Validate]