mod_vdiff Module

垂直扩散


Uses

  • module~~mod_vdiff~~UsesGraph module~mod_vdiff mod_vdiff module~mod_tool mod_tool module~mod_vdiff->module~mod_tool

Used by

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

Subroutines

public subroutine vdiff_by_k_theory(dt, dz, kz, rho, conc)

采用后向欧拉法求解垂直方向的网格湍流扩散(K-theory)。 用 Thomas 算法求解后向时间差分格式的垂直扩散方程。 假设底层和顶层边界通量均为 0。

Arguments

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

积分时间: s

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

网格垂直层宽度: m

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

垂直扩散系数:m^2/s

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

空气密度: kg/m^3

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

浓度: ug/m^3

public subroutine thomas_solver(n, a, b, c, x)

Thomas算法求解三对角矩阵线性方程组 Ax = d, 其中,A = [a, b, c]

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n

矩阵规模

real(kind=fp), intent(in) :: a(n)

下对角线

real(kind=fp), intent(in) :: b(n)

主对角线

real(kind=fp), intent(in) :: c(n)

上对角线

real(kind=fp), intent(inout) :: x(n)

求解得到的解向量