Go to the documentation of this file.
21 #if defined DEBUG || defined QUICKDEBUG
56 KA, KS, KE, IA, IS, IE, JA, JS, JE, &
63 matrix_solver_tridiagonal
66 integer,
intent(in) ::
ka,
ks,
ke
67 integer,
intent(in) ::
ia,
is,
ie
68 integer,
intent(in) ::
ja,
js,
je
70 real(
rp),
intent(in) :: dens (
ka,
ia,
ja)
71 real(
rp),
intent(in) :: qtrc (
ka,
ia,
ja)
72 real(
rp),
intent(in) :: sflx_q(
ia,
ja)
73 real(
rp),
intent(in) :: kh (
ka,
ia,
ja)
74 real(
rp),
intent(in) ::
mass
75 real(
rp),
intent(in) :: cz (
ka,
ia,
ja)
76 real(
rp),
intent(in) :: fz (0:
ka,
ia,
ja)
77 real(
rp),
intent(in) :: f2h(
ka,2,
ia,
ja)
78 real(
dp),
intent(in) :: ddt
81 real(
rp),
intent(out) :: rhoq_t(
ka,
ia,
ja)
83 real(
rp) :: qtrc_n(
ka)
85 real(
rp) :: rhokh (
ka)
107 dt = real( ddt, kind=
rp )
127 do k =
ke-2,
ks+1, -1
128 if ( kh(
k,i,j) > 0.0_rp )
then
136 cdz(
k) = fz(
k ,i,j) - fz(
k-1,i,j)
137 fdz(
k) = cz(
k+1,i,j) - cz(
k ,i,j)
140 sf_t = sflx_q(i,j) / cdz(
ks)
142 rho(
ks) = dens(
ks,i,j) + dt * sf_t *
mass
149 rho_h = f2h(
k,1,i,j) * dens(
k+1,i,j) + f2h(
k,2,i,j) * dens(
k,i,j)
150 rhokh(
k) = rho_h * kh(
k,i,j)
153 d(
ks) = ( qtrc(
ks,i,j) * dens(
ks,i,j) + dt * sf_t ) / rho(
ks)
160 ap = - dt * rhokh(
k) / fdz(
k)
161 a(
k) = ap / ( rho(
k) * cdz(
k) )
164 b(
k) = - a(
k) + 1.0_rp
166 b(
k) = - a(
k) + dt * rhokh(
k-1) / ( fdz(
k-1) * rho(
k) * cdz(
k) ) + 1.0_rp
169 b(
k) = - a(
k) - c(
k) + 1.0_rp
171 c(
k+1) = ap / ( rho(
k+1) * cdz(
k+1) )
174 b(ke_pbl) = - c(ke_pbl) + 1.0_rp
176 call matrix_solver_tridiagonal( &
181 a(:), b(:), c(:), d(:), &
184 rhoq_t(
ks,i,j) = ( qtrc_n(
ks) * rho(
ks) - qtrc(
ks,i,j) * dens(
ks,i,j) ) / dt - sf_t
186 rhoq_t(
k,i,j) = ( qtrc_n(
k) - qtrc(
k,i,j) ) * rho(
k) / dt
189 rhoq_t(
k,i,j) = 0.0_rp
193 flx(
k,i,j) = - rhokh(
k) * ( qtrc_n(
k+1) - qtrc_n(
k) ) / fdz(
k)
200 call file_history_in(flx(:,:,:),
'ZFLX_'//trim(
tracer_name)//
'_BL',
'Z FLUX of DENS * '//trim(
tracer_name)//
' (PBL)',
'kg/m2/s', fill_halo=.true.)
integer, public ke
end point of inner domain: z, local
integer, parameter, public const_undef2
undefined value (INT2)
integer, parameter, public rp
integer, public ie
end point of inner domain: x, local
subroutine, public check(current_line, v)
Undefined value checker.
character(len=h_short), dimension(qa_max), public tracer_name
subroutine, public atmos_phy_bl_tendency_tracer(KA, KS, KE, IA, IS, IE, JA, JS, JE, DENS, QTRC, SFLX_Q, Kh, MASS, CZ, FZ, F2H, DDT, TRACER_NAME, RHOQ_t)
ATMOS_PHY_BL_tendency_tracer calculate tendency of tracers by the eddy viscosity.
integer, public is
start point of inner domain: x, local
integer, parameter, public dp
integer, public ks
start point of inner domain: z, local
integer, public js
start point of inner domain: y, local
real(rp), public const_undef
integer, public je
end point of inner domain: y, local
module atmosphere / physics / pbl / common