53 real(RP),
private :: ATMOS_PHY_TB_DNS_NU = 1.512e-5_rp
55 real(RP),
private :: ATMOS_PHY_TB_DNS_MU = 1.512e-5_rp
68 character(len=*),
intent(in) :: type_tb
69 integer,
intent(out) :: i_tke_out
73 log_info(
"ATMOS_PHY_TB_dns_config",*)
'Setup'
74 log_info(
"ATMOS_PHY_TB_dns_config",*)
'Tracers for Deardorff (1980) 1.5th TKE Model'
76 if ( type_tb /=
'DNS' )
then
77 log_error(
"ATMOS_PHY_TB_dns_config",*)
'ATMOS_PHY_TB_TYPE is not DNS. Check!'
92 real(rp),
intent(in) :: cdz(
ka)
93 real(rp),
intent(in) :: cdx(
ia)
94 real(rp),
intent(in) :: cdy(
ja)
95 real(rp),
intent(in) :: cz (
ka,
ia,
ja)
97 namelist / param_atmos_phy_tb_dns / &
98 atmos_phy_tb_dns_nu, &
105 log_info(
"ATMOS_PHY_TB_dns_setup",*)
'Setup'
106 log_info(
"ATMOS_PHY_TB_dns_setup",*)
'Eddy Viscocity Model for DNS'
110 read(
io_fid_conf,nml=param_atmos_phy_tb_dns,iostat=ierr)
112 log_info(
"ATMOS_PHY_TB_dns_setup",*)
'Not found namelist. Default used.'
113 elseif( ierr > 0 )
then
114 log_error(
"ATMOS_PHY_TB_dns_setup",*)
'Not appropriate names in namelist PARAM_ATMOS_PHY_TB_DNS. Check!'
117 log_nml(param_atmos_phy_tb_dns)
124 qflx_sgs_MOMZ, qflx_sgs_MOMX, qflx_sgs_MOMY, &
125 qflx_sgs_rhot, qflx_sgs_rhoq, &
126 RHOQ_t, nu, Ri, Pr, &
127 MOMZ, MOMX, MOMY, RHOT, DENS, QTRC, N2, &
128 SFLX_MW, SFLX_MU, SFLX_MV, SFLX_SH, SFLX_Q, &
129 GSQRT, J13G, J23G, J33G, MAPF, dt )
144 real(rp),
intent(out) :: qflx_sgs_momz(
ka,
ia,
ja,3)
145 real(rp),
intent(out) :: qflx_sgs_momx(
ka,
ia,
ja,3)
146 real(rp),
intent(out) :: qflx_sgs_momy(
ka,
ia,
ja,3)
147 real(rp),
intent(out) :: qflx_sgs_rhot(
ka,
ia,
ja,3)
148 real(rp),
intent(out) :: qflx_sgs_rhoq(
ka,
ia,
ja,3,
qa)
150 real(rp),
intent(inout) :: rhoq_t(
ka,
ia,
ja,
qa)
152 real(rp),
intent(out) :: nu(
ka,
ia,
ja)
153 real(rp),
intent(out) :: ri(
ka,
ia,
ja)
154 real(rp),
intent(out) :: pr(
ka,
ia,
ja)
156 real(rp),
intent(in) :: momz(
ka,
ia,
ja)
157 real(rp),
intent(in) :: momx(
ka,
ia,
ja)
158 real(rp),
intent(in) :: momy(
ka,
ia,
ja)
159 real(rp),
intent(in) :: rhot(
ka,
ia,
ja)
160 real(rp),
intent(in) :: dens(
ka,
ia,
ja)
161 real(rp),
intent(in) :: qtrc(
ka,
ia,
ja,
qa)
162 real(rp),
intent(in) :: n2(
ka,
ia,
ja)
164 real(rp),
intent(in) :: sflx_mw(
ia,
ja)
165 real(rp),
intent(in) :: sflx_mu(
ia,
ja)
166 real(rp),
intent(in) :: sflx_mv(
ia,
ja)
167 real(rp),
intent(in) :: sflx_sh(
ia,
ja)
168 real(rp),
intent(in) :: sflx_q (
ia,
ja,
qa)
170 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja,7)
171 real(rp),
intent(in) :: j13g (
ka,
ia,
ja,7)
172 real(rp),
intent(in) :: j23g (
ka,
ia,
ja,7)
173 real(rp),
intent(in) :: j33g
174 real(rp),
intent(in) :: mapf (
ia,
ja,2,4)
175 real(
dp),
intent(in) :: dt
177 real(rp) :: pott(
ka,
ia,
ja)
182 integer ::
k, i, j, iq
185 log_progress(*)
'atmosphere / physics / turbulence / DNS'
188 qflx_sgs_momz(:,:,:,:) = undef
189 qflx_sgs_momx(:,:,:,:) = undef
190 qflx_sgs_momy(:,:,:,:) = undef
191 qflx_sgs_rhot(:,:,:,:) = undef
192 qflx_sgs_rhoq(:,:,:,:,:) = undef
205 pott(
k,i,j) = rhot(
k,i,j) / dens(
k,i,j)
221 qflx_sgs_momz(
k,i,j,
zdir) = -atmos_phy_tb_dns_nu * ( momz(
k,i,j)-momz(
k-1,i,j) ) * rcdz(
k)
228 qflx_sgs_momz(
ks,i,j,
zdir) = 0.0_rp
229 qflx_sgs_momz(
ke,i,j,
zdir) = 0.0_rp
237 qflx_sgs_momz(
k,i,j,
xdir) = -atmos_phy_tb_dns_nu * ( momz(
k,i+1,j)-momz(
k,i,j) ) * rfdx(i) * mapf(i,j,1,
i_xy)
246 qflx_sgs_momz(
k,i,j,
ydir) = -atmos_phy_tb_dns_nu * ( momz(
k,i,j+1)-momz(
k,i,j) ) * rfdy(j) * mapf(i,j,2,
i_xy)
256 qflx_sgs_momx(
k,i,j,
zdir) = -atmos_phy_tb_dns_nu * ( momx(
k+1,i,j)-momx(
k,i,j) ) * rfdz(
k)
263 qflx_sgs_momx(
ks-1,i,j,
zdir) = 0.0_rp
264 qflx_sgs_momx(
ke ,i,j,
zdir) = 0.0_rp
272 qflx_sgs_momx(
k,i,j,
xdir) = -atmos_phy_tb_dns_nu * ( momx(
k,i,j)-momx(
k,i-1,j) ) * rcdx(i) * mapf(i,j,1,
i_uy)
281 qflx_sgs_momx(
k,i,j,
ydir) = -atmos_phy_tb_dns_nu * ( momx(
k,i,j+1)-momx(
k,i,j) ) * rfdy(j) * mapf(i,j,2,
i_uy)
292 qflx_sgs_momy(
k,i,j,
zdir) = -atmos_phy_tb_dns_nu * ( momy(
k+1,i,j)-momy(
k,i,j) ) * rfdz(
k)
299 qflx_sgs_momy(
ks-1,i,j,
zdir) = 0.0_rp
300 qflx_sgs_momy(
ke ,i,j,
zdir) = 0.0_rp
308 qflx_sgs_momy(
k,i,j,
xdir) = -atmos_phy_tb_dns_nu * ( momy(
k,i+1,j)-momy(
k,i,j) ) * rfdx(i) * mapf(i,j,1,
i_xv)
317 qflx_sgs_momy(
k,i,j,
ydir) = -atmos_phy_tb_dns_nu * ( momy(
k,i,j)-momy(
k,i,j-1) ) * rcdy(j) * mapf(i,j,2,
i_xv)
328 qflx_sgs_rhot(
k,i,j,
zdir) = -0.5_rp * ( dens(
k+1,i,j)+dens(
k,i,j) ) &
329 * atmos_phy_tb_dns_mu * ( pott(
k+1,i,j)-pott(
k,i,j) ) * rfdz(
k)
336 qflx_sgs_rhot(
ks-1,i,j,
zdir) = 0.0_rp
337 qflx_sgs_rhot(
ke ,i,j,
zdir) = 0.0_rp
345 qflx_sgs_rhot(
k,i,j,
xdir) = -0.5_rp * ( dens(
k,i+1,j)+dens(
k,i,j) ) &
346 * atmos_phy_tb_dns_mu * ( pott(
k,i+1,j)-pott(
k,i,j) ) * rfdx(i) * mapf(i,j,1,
i_xy)
355 qflx_sgs_rhot(
k,i,j,
ydir) = -0.5_rp * ( dens(
k,i,j+1)+dens(
k,i,j) ) &
356 * atmos_phy_tb_dns_mu * ( pott(
k,i,j+1)-pott(
k,i,j) ) * rfdy(j) * mapf(i,j,2,
i_xy)
378 qflx_sgs_rhoq(
k,i,j,
zdir,iq) = -0.5_rp * ( dens(
k+1,i,j)+dens(
k,i,j) ) &
379 * atmos_phy_tb_dns_mu * ( qtrc(
k+1,i,j,iq)-qtrc(
k,i,j,iq) ) * rfdz(
k)
385 qflx_sgs_rhoq(
ks-1,i,j,
zdir,iq) = 0.0_rp
386 qflx_sgs_rhoq(
ke ,i,j,
zdir,iq) = 0.0_rp
394 qflx_sgs_rhoq(
k,i,j,
xdir,iq) = -0.5_rp * ( dens(
k,i+1,j)+dens(
k,i,j) ) &
395 * atmos_phy_tb_dns_mu * ( qtrc(
k,i+1,j,iq)-qtrc(
k,i,j,iq) ) * rfdx(i) * mapf(i,j,1,
i_xy)
404 qflx_sgs_rhoq(
k,i,j,
ydir,iq) = -0.5_rp * ( dens(
k,i,j+1)+dens(
k,i,j) ) &
405 * atmos_phy_tb_dns_mu * ( qtrc(
k,i,j+1,iq)-qtrc(
k,i,j,iq) ) * rfdy(j) * mapf(i,j,2,
i_xy)