204 real(RP),
intent(out) :: qflx_sgs_momz(KA,IA,JA,3)
205 real(RP),
intent(out) :: qflx_sgs_momx(KA,IA,JA,3)
206 real(RP),
intent(out) :: qflx_sgs_momy(KA,IA,JA,3)
207 real(RP),
intent(out) :: qflx_sgs_rhot(KA,IA,JA,3)
208 real(RP),
intent(out) :: qflx_sgs_rhoq(KA,IA,JA,3,QA)
210 real(RP),
intent(inout) :: RHOQ_t (KA,IA,JA,QA)
212 real(RP),
intent(out) :: Km (KA,IA,JA)
213 real(RP),
intent(out) :: Ri (KA,IA,JA)
214 real(RP),
intent(out) :: Pr (KA,IA,JA)
216 real(RP),
intent(in) :: MOMZ (KA,IA,JA)
217 real(RP),
intent(in) :: MOMX (KA,IA,JA)
218 real(RP),
intent(in) :: MOMY (KA,IA,JA)
219 real(RP),
intent(in) :: RHOT (KA,IA,JA)
220 real(RP),
intent(in) :: DENS (KA,IA,JA)
221 real(RP),
intent(in) :: QTRC (KA,IA,JA,QA)
222 real(RP),
intent(in) :: N2 (KA,IA,JA)
224 real(RP),
intent(in) :: SFLX_MW (IA,JA)
225 real(RP),
intent(in) :: SFLX_MU (IA,JA)
226 real(RP),
intent(in) :: SFLX_MV (IA,JA)
227 real(RP),
intent(in) :: SFLX_SH (IA,JA)
228 real(RP),
intent(in) :: SFLX_Q (IA,JA,QA)
230 real(RP),
intent(in) :: GSQRT (KA,IA,JA,7)
231 real(RP),
intent(in) :: J13G (KA,IA,JA,7)
232 real(RP),
intent(in) :: J23G (KA,IA,JA,7)
233 real(RP),
intent(in) :: J33G
234 real(RP),
intent(in) :: MAPF (IA,JA,2,4)
235 real(DP),
intent(in) :: dt
238 real(RP) :: POTT (KA,IA,JA)
241 real(RP) :: S33_C (KA,IA,JA)
242 real(RP) :: S11_C (KA,IA,JA)
243 real(RP) :: S22_C (KA,IA,JA)
244 real(RP) :: S31_C (KA,IA,JA)
245 real(RP) :: S12_C (KA,IA,JA)
246 real(RP) :: S23_C (KA,IA,JA)
247 real(RP) :: S12_Z (KA,IA,JA)
248 real(RP) :: S23_X (KA,IA,JA)
249 real(RP) :: S31_Y (KA,IA,JA)
250 real(RP) :: S2 (KA,IA,JA)
252 real(RP) :: Kh (KA,IA,JA)
253 real(RP) :: l (KA,IA,JA)
255 real(RP) :: qflx_tke(KA,IA,JA,3)
257 real(RP) :: TEND(KA,IA,JA)
258 real(RP) :: a(KA,IA,JA)
259 real(RP) :: b(KA,IA,JA)
260 real(RP) :: c(KA,IA,JA)
267 integer :: k, i, j, iq
270 if( io_l )
write(io_fid_log,*)
'*** Atmos physics step: Turbulence(D1980)' 273 qflx_sgs_momz(:,:,:,:) = undef
274 qflx_sgs_momx(:,:,:,:) = undef
275 qflx_sgs_momy(:,:,:,:) = undef
276 qflx_sgs_rhot(:,:,:,:) = undef
277 qflx_sgs_rhoq(:,:,:,:,:) = undef
292 call check( __line__, rhot(k,i,j) )
293 call check( __line__, dens(k,i,j) )
295 pott(k,i,j) = rhot(k,i,j) / dens(k,i,j)
300 i = iundef; j = iundef; k = iundef
305 call calc_strain_tensor( &
306 s33_c, s11_c, s22_c, &
307 s31_c, s12_c, s23_c, &
308 s12_z, s23_x, s31_y, &
310 dens, momz, momx, momy, &
311 gsqrt, j13g, j23g, j33g, mapf )
323 call check( __line__, pott(k+1,i,j) )
324 call check( __line__, pott(k,i,j) )
325 call check( __line__, pott(k-1,i,j) )
326 call check( __line__, fdz(k) )
327 call check( __line__, fdz(k-1) )
328 call check( __line__, s2(k,i,j) )
330 ri(k,i,j) = n2(k,i,j) / s2(k,i,j)
335 i = iundef; j = iundef; k = iundef
342 if ( n2(k,i,j) > 1e-10_rp )
then 343 l(k,i,j) = max( min( 0.76_rp * sqrt(qtrc(k,i,j,i_tke)/n2(k,i,j)), delta(k,i,j) ), 1e-10_rp )
345 l(k,i,j) = delta(k,i,j)
351 i = iundef; j = iundef; k = iundef
357 km(k,i,j) = min( 0.10_rp * l(k,i,j) * sqrt(qtrc(k,i,j,i_tke)), atmos_phy_tb_d1980_km_max )
358 pr(k,i,j) = 1.0_rp / ( 1.0_rp + 2.0_rp * l(k,i,j) / delta(k,i,j) )
359 kh(k,i,j) = km(k,i,j) / pr(k,i,j)
364 i = iundef; j = iundef; k = iundef
373 call check( __line__, dens(k,i,j) )
374 call check( __line__, km(k,i,j) )
375 call check( __line__, s33_c(k,i,j) )
377 qflx_sgs_momz(k,i,j,
zdir) = dens(k,i,j) * ( - 2.0_rp * km(k,i,j) * s33_c(k,i,j) )
382 i = iundef; j = iundef; k = iundef
386 qflx_sgs_momz(ks,i,j,
zdir) = 0.0_rp
387 qflx_sgs_momz(ke,i,j,
zdir) = 0.0_rp
391 i = iundef; j = iundef; k = iundef
398 call check( __line__, dens(k,i,j) )
399 call check( __line__, dens(k,i+1,j) )
400 call check( __line__, dens(k+1,i,j) )
401 call check( __line__, dens(k+1,i+1,j) )
402 call check( __line__, km(k,i,j) )
403 call check( __line__, km(k,i+1,j) )
404 call check( __line__, km(k+1,i,j) )
405 call check( __line__, km(k+1,i+1,j) )
406 call check( __line__, s31_y(k,i,j) )
408 qflx_sgs_momz(k,i,j,
xdir) = - 0.125_rp &
409 * ( dens(k,i,j)+dens(k+1,i,j)+dens(k,i+1,j)+dens(k+1,i+1,j) ) &
410 * ( km(k,i,j)+km(k+1,i,j)+km(k,i+1,j)+km(k+1,i+1,j)) &
416 i = iundef; j = iundef; k = iundef
423 call check( __line__, dens(k,i,j) )
424 call check( __line__, dens(k,i,j+1) )
425 call check( __line__, dens(k+1,i,j) )
426 call check( __line__, dens(k+1,i,j+1) )
427 call check( __line__, km(k,i,j) )
428 call check( __line__, km(k,i,j+1) )
429 call check( __line__, km(k+1,i,j) )
430 call check( __line__, km(k+1,i,j+1) )
431 call check( __line__, s23_x(k,i,j) )
433 qflx_sgs_momz(k,i,j,
ydir) = - 0.125_rp &
434 * ( dens(k,i,j)+dens(k+1,i,j)+dens(k,i,j+1)+dens(k+1,i,j+1) ) &
435 * ( km(k,i,j)+km(k+1,i,j)+km(k,i,j+1)+km(k+1,i,j+1) ) &
441 i = iundef; j = iundef; k = iundef
444 if ( atmos_phy_tb_d1980_implicit )
then 445 call calc_tend_momz( tend, &
447 gsqrt, j13g, j23g, j33g, mapf, &
453 ap = - fouroverthree * dt &
454 * dens(ks+1,i,j)*km(ks+1,i,j) &
455 * rcdz(ks+1) / gsqrt(ks+1,i,j,
i_xyz)
456 a(ks,i,j) = ap * rfdz(ks) / gsqrt(ks,i,j,
i_xyw)
458 b(ks,i,j) = - a(ks,i,j) + 0.5_rp * ( dens(ks,i,j)+dens(ks+1,i,j) )
460 c(k,i,j) = ap * rfdz(k+1) / gsqrt(k+1,i,j,
i_xyw)
461 ap = - fouroverthree * dt &
462 * dens(k+1,i,j)*km(k+1,i,j) &
463 * rcdz(k+1) / gsqrt(k+1,i,j,
i_xyz)
464 a(k,i,j) = ap * rfdz(k) / gsqrt(k,i,j,
i_xyw)
465 b(k,i,j) = - a(k,i,j) - c(k,i,j) + 0.5_rp * ( dens(k,i,j)+dens(k+1,i,j) )
468 c(ke-1,i,j) = ap * rfdz(ke) / gsqrt(ke,i,j,
i_xyw)
469 b(ke-1,i,j) = - c(ke-1,i,j) + 0.5_rp * ( dens(ke-1,i,j)+dens(ke,i,j) )
475 call diffusion_solver( &
477 a(:,i,j), b(:,i,j), c(:,i,j), d, &
481 qflx_sgs_momz(k,i,j,
zdir) = qflx_sgs_momz(k,i,j,
zdir) &
482 - fouroverthree * dens(k,i,j) * km(k,i,j) * dt &
483 * ( tend(k,i,j) - tend(k-1,i,j) ) * rcdz(k) / gsqrt(k,i,j,
i_xyz)
497 call check( __line__, dens(k,i,j) )
498 call check( __line__, dens(k,i+1,j) )
499 call check( __line__, dens(k+1,i,j) )
500 call check( __line__, dens(k+1,i+1,j) )
501 call check( __line__, km(k,i,j) )
502 call check( __line__, km(k,i+1,j) )
503 call check( __line__, km(k+1,i,j) )
504 call check( __line__, km(k+1,i+1,j) )
505 call check( __line__, s31_y(k,i,j) )
507 qflx_sgs_momx(k,i,j,
zdir) = - 0.125_rp &
508 * ( dens(k,i,j)+dens(k+1,i,j)+dens(k,i+1,j)+dens(k+1,i+1,j) ) &
509 * ( km(k,i,j)+km(k+1,i,j)+km(k,i+1,j)+km(k+1,i+1,j) ) &
515 i = iundef; j = iundef; k = iundef
519 qflx_sgs_momx(ks-1,i,j,
zdir) = 0.0_rp
520 qflx_sgs_momx(ke ,i,j,
zdir) = 0.0_rp
524 i = iundef; j = iundef; k = iundef
531 call check( __line__, dens(k,i,j) )
532 call check( __line__, km(k,i,j) )
533 call check( __line__, s11_c(k,i,j) )
535 qflx_sgs_momx(k,i,j,
xdir) = dens(k,i,j) * ( - 2.0_rp * km(k,i,j) * s11_c(k,i,j) )
540 i = iundef; j = iundef; k = iundef
547 call check( __line__, dens(k,i,j) )
548 call check( __line__, dens(k,i+1,j) )
549 call check( __line__, dens(k,i,j+1) )
550 call check( __line__, dens(k,i+1,j+1) )
551 call check( __line__, km(k,i,j) )
552 call check( __line__, km(k,i+1,j) )
553 call check( __line__, km(k,i,j+1) )
554 call check( __line__, km(k,i+1,j+1) )
555 call check( __line__, s12_z(k,i,j) )
557 qflx_sgs_momx(k,i,j,
ydir) = - 0.125_rp &
558 * ( dens(k,i,j)+dens(k,i+1,j)+dens(k,i,j+1)+dens(k,i+1,j+1) ) &
559 * ( km(k,i,j)+km(k,i+1,j)+km(k,i,j+1)+km(k,i+1,j+1) ) &
565 i = iundef; j = iundef; k = iundef
568 if ( atmos_phy_tb_d1980_implicit )
then 569 call calc_tend_momx( tend, &
571 gsqrt, j13g, j23g, j33g, mapf, &
577 ap = - dt * 0.25_rp * ( dens(ks ,i ,j)*km(ks ,i ,j) &
578 + dens(ks+1,i ,j)*km(ks+1,i ,j) &
579 + dens(ks ,i+1,j)*km(ks ,i+1,j) &
580 + dens(ks+1,i+1,j)*km(ks+1,i+1,j) ) &
581 * rfdz(ks) / gsqrt(ks,i,j,
i_uyw)
582 a(ks,i,j) = ap * rcdz(ks) / gsqrt(ks,i,j,
i_uyz)
584 b(ks,i,j) = - a(ks,i,j) + 0.5_rp * ( dens(ks,i,j)+dens(ks,i+1,j) )
586 c(k,i,j) = ap * rcdz(k) / gsqrt(k,i,j,
i_uyz)
587 ap = - dt * 0.25_rp * ( dens(k ,i ,j)*km(k ,i ,j) &
588 + dens(k+1,i ,j)*km(k+1,i ,j) &
589 + dens(k ,i+1,j)*km(k ,i+1,j) &
590 + dens(k+1,i+1,j)*km(k+1,i+1,j) ) &
591 * rfdz(k) / gsqrt(k,i,j,
i_uyw)
592 a(k,i,j) = ap * rcdz(k) / gsqrt(k,i,j,
i_uyz)
593 b(k,i,j) = - a(k,i,j) - c(k,i,j) + 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) )
596 c(ke,i,j) = ap * rcdz(ke) / gsqrt(ke,i,j,
i_uyz)
597 b(ke,i,j) = - c(ke,i,j) + 0.5_rp * ( dens(ke,i,j)+dens(ke,i+1,j) )
603 call diffusion_solver( &
605 a(:,i,j), b(:,i,j), c(:,i,j), d, &
609 qflx_sgs_momx(k,i,j,
zdir) = qflx_sgs_momx(k,i,j,
zdir) &
610 - 0.25_rp * ( dens(k ,i ,j)*km(k ,i ,j) &
611 + dens(k+1,i ,j)*km(k+1,i ,j) &
612 + dens(k ,i+1,j)*km(k ,i+1,j) &
613 + dens(k+1,i+1,j)*km(k+1,i+1,j) ) &
614 * dt * ( tend(k+1,i,j) - tend(k,i,j) ) * rfdz(k) / gsqrt(k,i,j,
i_uyw)
628 call check( __line__, dens(k,i,j) )
629 call check( __line__, dens(k,i,j+1) )
630 call check( __line__, dens(k+1,i,j) )
631 call check( __line__, dens(k+1,i,j+1) )
632 call check( __line__, km(k,i,j) )
633 call check( __line__, km(k,i,j+1) )
634 call check( __line__, km(k+1,i,j) )
635 call check( __line__, km(k+1,i,j+1) )
636 call check( __line__, s23_x(k,i,j) )
638 qflx_sgs_momy(k,i,j,
zdir) = - 0.125_rp &
639 * ( dens(k,i,j)+dens(k+1,i,j)+dens(k,i,j+1)+dens(k+1,i,j+1) ) &
640 * ( km(k,i,j)+km(k+1,i,j)+km(k,i,j+1)+km(k+1,i,j+1) ) &
646 i = iundef; j = iundef; k = iundef
650 qflx_sgs_momy(ks-1,i,j,
zdir) = 0.0_rp
651 qflx_sgs_momy(ke ,i,j,
zdir) = 0.0_rp
655 i = iundef; j = iundef; k = iundef
663 call check( __line__, dens(k,i,j) )
664 call check( __line__, dens(k,i+1,j) )
665 call check( __line__, dens(k,i,j+1) )
666 call check( __line__, dens(k,i+1,j+1) )
667 call check( __line__, km(k,i,j) )
668 call check( __line__, km(k,i+1,j) )
669 call check( __line__, km(k,i,j+1) )
670 call check( __line__, km(k,i+1,j+1) )
671 call check( __line__, s12_z(k,i,j) )
673 qflx_sgs_momy(k,i,j,
xdir) = - 0.125_rp &
674 * ( dens(k,i,j)+dens(k,i+1,j)+dens(k,i,j+1)+dens(k,i+1,j+1) ) &
675 * ( km(k,i,j)+km(k,i+1,j)+km(k,i,j+1)+km(k,i+1,j+1) ) &
681 i = iundef; j = iundef; k = iundef
689 call check( __line__, dens(k,i,j) )
690 call check( __line__, km(k,i,j) )
691 call check( __line__, s22_c(k,i,j) )
693 qflx_sgs_momy(k,i,j,
ydir) = dens(k,i,j) * ( - 2.0_rp * km(k,i,j) * s22_c(k,i,j) )
698 i = iundef; j = iundef; k = iundef
701 if ( atmos_phy_tb_d1980_implicit )
then 702 call calc_tend_momy( tend, &
704 gsqrt, j13g, j23g, j33g, mapf, &
710 ap = - dt * 0.25_rp * ( dens(ks ,i,j )*km(ks ,i,j ) &
711 + dens(ks+1,i,j )*km(ks+1,i,j ) &
712 + dens(ks ,i,j+1)*km(ks ,i,j+1) &
713 + dens(ks+1,i,j+1)*km(ks+1,i,j+1) ) &
714 * rfdz(ks) / gsqrt(ks,i,j,
i_xvw)
715 a(ks,i,j) = ap * rcdz(ks) / gsqrt(ks,i,j,
i_xvz)
717 b(ks,i,j) = - a(ks,i,j) + 0.5_rp * ( dens(ks,i,j)+dens(ks,i,j+1) )
719 c(k,i,j) = ap * rcdz(k) / gsqrt(k,i,j,
i_xvz)
720 ap = - dt * 0.25_rp * ( dens(k ,i,j )*km(k ,i,j ) &
721 + dens(k+1,i,j )*km(k+1,i,j ) &
722 + dens(k ,i,j+1)*km(k ,i,j+1) &
723 + dens(k+1,i,j+1)*km(k+1,i,j+1) ) &
724 * rfdz(k) / gsqrt(k,i,j,
i_xvw)
725 a(k,i,j) = ap * rcdz(k) / gsqrt(k,i,j,
i_xvz)
726 b(k,i,j) = - a(k,i,j) - c(k,i,j) + 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) )
729 c(ke,i,j) = ap * rcdz(ke) / gsqrt(ke,i,j,
i_xvz)
730 b(ke,i,j) = - c(ke,i,j) + 0.5_rp * ( dens(ke,i,j)+dens(ke,i,j+1) )
736 call diffusion_solver( &
738 a(:,i,j), b(:,i,j), c(:,i,j), d, &
742 qflx_sgs_momy(k,i,j,
zdir) = qflx_sgs_momy(k,i,j,
zdir) &
743 - 0.25_rp * ( dens(k ,i,j )*km(k ,i,j ) &
744 + dens(k+1,i,j )*km(k+1,i,j ) &
745 + dens(k ,i,j+1)*km(k ,i,j+1) &
746 + dens(k+1,i,j+1)*km(k+1,i,j+1) ) &
747 * dt * ( tend(k+1,i,j) - tend(k,i,j) ) * rfdz(k) / gsqrt(k,i,j,
i_xvw)
757 if ( atmos_phy_tb_d1980_implicit )
then 762 ap = - dt * 0.25_rp * ( dens(ks,i,j)+dens(ks+1,i,j) ) &
763 * ( kh(ks,i,j)+kh(ks+1,i,j) ) &
764 * rfdz(ks) / gsqrt(ks,i,j,
i_xyw)
765 a(ks,i,j) = ap * rcdz(ks) / gsqrt(ks,i,j,
i_xyz)
767 b(ks,i,j) = - a(ks,i,j) + dens(ks,i,j)
769 c(k,i,j) = ap * rcdz(k) / gsqrt(k,i,j,
i_xyz)
770 ap = - dt * 0.25_rp * ( dens(k,i,j)+dens(k+1,i,j) ) &
771 * ( kh(k,i,j)+kh(k+1,i,j) ) &
772 * rfdz(k) / gsqrt(k,i,j,
i_xyw)
773 a(k,i,j) = ap * rcdz(k) / gsqrt(k,i,j,
i_xyz)
774 b(k,i,j) = - a(k,i,j) - c(k,i,j) + dens(k,i,j)
777 c(ke,i,j) = ap * rcdz(ke) / gsqrt(ke,i,j,
i_xyz)
778 b(ke,i,j) = - c(ke,i,j) + dens(ke,i,j)
785 call calc_flux_phi( &
787 dens, pott, kh, 1.0_rp, &
788 gsqrt, j13g, j23g, j33g, mapf, &
790 atmos_phy_tb_d1980_implicit, &
800 if ( iq == i_tke )
then 801 qflx_sgs_rhoq(:,:,:,:,iq) = 0.0_rp
811 call calc_flux_phi( &
812 qflx_sgs_rhoq(:,:,:,:,iq), &
813 dens, qtrc(:,:,:,iq), kh, 1.0_rp, &
814 gsqrt, j13g, j23g, j33g, mapf, &
816 atmos_phy_tb_d1980_implicit, &
822 iis = iundef; iie = iundef; jjs = iundef; jje = iundef
836 if ( atmos_phy_tb_d1980_implicit )
then 841 ap = - dt * 0.25_rp * ( dens(ks,i,j)+dens(ks+1,i,j) ) &
842 * 2.0_rp * ( km(ks,i,j)+km(ks+1,i,j) ) &
843 * rfdz(ks) / gsqrt(ks,i,j,
i_xyw)
844 a(ks,i,j) = ap * rcdz(ks) / gsqrt(ks,i,j,
i_xyz)
846 b(ks,i,j) = - a(ks,i,j) + dens(ks,i,j)
848 c(k,i,j) = ap * rcdz(k) / gsqrt(k,i,j,
i_xyz)
849 ap = - dt * 0.25_rp * ( dens(k,i,j)+dens(k+1,i,j) ) &
850 * 2.0_rp * ( km(k,i,j)+km(k+1,i,j) ) &
851 * rfdz(k) / gsqrt(k,i,j,
i_xyw)
852 a(k,i,j) = ap * rcdz(k) / gsqrt(k,i,j,
i_xyz)
853 b(k,i,j) = - a(k,i,j) - c(k,i,j) + dens(k,i,j)
856 c(ke,i,j) = ap * rcdz(ke) / gsqrt(ke,i,j,
i_xyz)
857 b(ke,i,j) = - c(ke,i,j) + dens(ke,i,j)
864 call calc_flux_phi( &
866 dens, qtrc(:,:,:,i_tke), km, 2.0_rp, &
867 gsqrt, j13g, j23g, j33g, mapf, &
869 atmos_phy_tb_d1980_implicit, &
872 call calc_tend_phi( rhoq_t(:,:,:,i_tke), &
874 gsqrt, j13g, j23g, j33g, mapf, &
879 rhoq_t(k,i,j,i_tke) = max( &
880 rhoq_t(k,i,j,i_tke) &
881 + ( km(k,i,j) * s2(k,i,j) &
882 - kh(k,i,j) * n2(k,i,j) &
883 - ( c1 + c2*l(k,i,j)/delta(k,i,j) ) * qtrc(k,i,j,i_tke)**(1.5_rp) / l(k,i,j) ) * dens(k,i,j), &
884 - qtrc(k,i,j,i_tke) * dens(k,i,j) /
real(dt,kind=RP) )
889 i = iundef; j = iundef; k = iundef
integer, public is
start point of inner domain: x, local
subroutine, public atmos_phy_tb_calc_tend_momz(MOMZ_t_TB, QFLX_MOMZ, GSQRT, J13G, J23G, J33G, MAPF, IIS, IIE, JJS, JJE)
integer, public je
end point of inner domain: y, local
real(rp), dimension(:), allocatable, public grid_rcdy
reciprocal of center-dy
subroutine, public atmos_phy_tb_diffusion_solver(phi, a, b, c, d, KE_TB)
subroutine, public atmos_phy_tb_calc_flux_phi(qflx_phi, DENS, PHI, Kh, FACT, GSQRT, J13G, J23G, J33G, MAPF, a, b, c, dt, implicit, IIS, IIE, JJS, JJE)
integer, public iblock
block size for cache blocking: x
subroutine, public atmos_phy_tb_calc_tend_momy(MOMY_t_TB, QFLX_MOMY, GSQRT, J13G, J23G, J33G, MAPF, IIS, IIE, JJS, JJE)
real(rp), dimension(:), allocatable, public grid_rcdx
reciprocal of center-dx
integer, parameter, public zdir
integer, parameter, public ydir
integer, parameter, public xdir
logical, dimension(qa_max), public tracer_advc
real(rp), dimension(:), allocatable, public grid_rfdy
reciprocal of face-dy
real(rp), dimension(:), allocatable, public grid_rcdz
reciprocal of center-dz
subroutine, public atmos_phy_tb_calc_tend_phi(phi_t_TB, QFLX_phi, GSQRT, J13G, J23G, J33G, MAPF, IIS, IIE, JJS, JJE)
subroutine, public atmos_phy_tb_calc_tend_momx(MOMX_t_TB, QFLX_MOMX, GSQRT, J13G, J23G, J33G, MAPF, IIS, IIE, JJS, JJE)
real(rp), dimension(:), allocatable, public grid_fdz
z-length of grid(k+1) to grid(k) [m]
integer, public jblock
block size for cache blocking: y
real(rp), public const_grav
standard acceleration of gravity [m/s2]
integer, public js
start point of inner domain: y, local
subroutine, public atmos_phy_tb_calc_strain_tensor(S33_C, S11_C, S22_C, S31_C, S12_C, S23_C, S12_Z, S23_X, S31_Y, S2, DENS, MOMZ, MOMX, MOMY, GSQRT, J13G, J23G, J33G, MAPF)
module ATMOSPHERE / Physics Turbulence
integer, public ie
end point of inner domain: x, local
real(rp), dimension(:), allocatable, public grid_rfdx
reciprocal of face-dx
real(rp), dimension(:), allocatable, public grid_rfdz
reciprocal of face-dz