!c Description: !c HE-VI 法を用いた速度 u の計算. 前進差分で計算 !c !c Current Code Owner: !c sugiyama@gfd-dennou.org !c !c Copyright (C) SUGIYAMA Ko-ichiro, 2004, All rights reserved subroutine VelXHeVi(ss_Exner_B, ss_Div_B, fs_Fx_B, fs_VelX_B, fs_VelX_A) !--- モジュールの読み込み use gridset, only: DimXMin, DimXMax, DimZMin, DimZMax, fs_Bc use timeset, only: DelTShort use basicprm, only: ss_CpBasicZ, ss_VThetaBasicZ, alpha use if_avr, only: fs_avr_ss use if_diff, only: fs_dx_ss use if_boundary !--- 暗黙の型宣言禁止 implicit none !--- 入出力変数 real(8), intent(in) :: ss_Exner_B(DimXMin:DimXMax, DimZMin:DimZMax) real(8), intent(in) :: ss_Div_B(DimXMin:DimXMax, DimZMin:DimZMax) real(8), intent(in) :: fs_Fx_B(DimXMin:DimXMax, DimZMin:DimZMax) real(8), intent(in) :: fs_VelX_B(DimXMin:DimXMax, DimZMin:DimZMax) real(8), intent(out) :: fs_VelX_A(DimXMin:DimXMax, DimZMin:DimZMax) !--- 速度 u fs_VelX_A = fs_VelX_B & & - fs_avr_ss( ss_CpBasicZ * ss_VThetaBasicZ ) * DelTShort & & * ( fs_dx_ss( ss_Exner_B ) & & - fs_dx_ss( alpha * ss_Div_B ) ) & & + fs_Fx_B * DelTShort !--- 境界条件 call boundary(fs_Bc, fs_VelX_A) end subroutine VelXHeVi