mod_hdiff Module

水平扩散


Uses

  • module~~mod_hdiff~~UsesGraph module~mod_hdiff mod_hdiff module~mod_tool mod_tool module~mod_hdiff->module~mod_tool

Used by

  • module~~mod_hdiff~~UsedByGraph module~mod_hdiff mod_hdiff module~diffusion diffusion module~diffusion->module~mod_hdiff program~main main program~main->module~diffusion

Subroutines

public subroutine cal_kh_by_deformation_method(dt, dx, dy, u, v, kx, ky, area)

计算次网格湍流扩散的水平扩散系数 in the Arakawa C grid。 采用形变方法计算水平扩散系数,参考 Smagorinsky (1963)。

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=fp), intent(in) :: dt

积分时间: s

real(kind=fp), intent(in) :: dx(:,:)

x方向长度: m

real(kind=fp), intent(in) :: dy(:,:)

y方向长度: m

real(kind=fp), intent(in) :: u(:,:)

纬向风 u-stag: m/s

real(kind=fp), intent(in) :: v(:,:)

经向风 v-stag: m/s

real(kind=fp), intent(out) :: kx(:,:)

horizontal diffusion coefficient in x: m^2/s

real(kind=fp), intent(out) :: ky(:,:)

horizontal diffusion coefficient in y: m^2/s

real(kind=fp), intent(in), optional :: area

传入全局平均面积,避免重复计算: m^2

public subroutine hdiff1d_by_k_theory(dt, dx, kh, rho, c, dc, volume)

采用前向欧拉法求解 1D 次网格湍流扩散(K-theory),最外 1 圈为边界,不做更新。 假设密度的扰动相对于平均密度很小,可以忽略。 采用体积比计算扩散,确保污染物浓度分布与密度分布的一致性。

Arguments

Type IntentOptional Attributes Name
real(kind=fp), intent(in) :: dt

积分时间: s

real(kind=fp), intent(in) :: dx(:)

网格长度: m

real(kind=fp), intent(in) :: kh(:)

扩散系数: m^2/s

real(kind=fp), intent(in) :: rho(:)

密度: kg/m^3

real(kind=fp), intent(inout) :: c(:)

浓度: ug/m^3

real(kind=fp), intent(out) :: dc(:)

浓度变化: ug/m^3

real(kind=fp), intent(in), optional :: volume(:)

网格体积: m^3