地表面熱フラックス(単位は 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
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