218 real(RP),
intent(out) :: dens_rk(
ka,
ia,
ja)
219 real(RP),
intent(out) :: momz_rk(
ka,
ia,
ja)
220 real(RP),
intent(out) :: momx_rk(
ka,
ia,
ja)
221 real(RP),
intent(out) :: momy_rk(
ka,
ia,
ja)
222 real(RP),
intent(out) :: rhot_rk(
ka,
ia,
ja)
224 real(RP),
intent(out) :: prog_rk(
ka,
ia,
ja,
va)
226 real(RP),
intent(inout) :: mflx_hi(
ka,
ia,
ja,3)
227 real(RP),
intent(out) :: tflx_hi(
ka,
ia,
ja,3)
229 real(RP),
intent(in),
target :: dens0(
ka,
ia,
ja)
230 real(RP),
intent(in),
target :: momz0(
ka,
ia,
ja)
231 real(RP),
intent(in),
target :: momx0(
ka,
ia,
ja)
232 real(RP),
intent(in),
target :: momy0(
ka,
ia,
ja)
233 real(RP),
intent(in),
target :: rhot0(
ka,
ia,
ja)
235 real(RP),
intent(in) :: dens(
ka,
ia,
ja)
236 real(RP),
intent(in) :: momz(
ka,
ia,
ja)
237 real(RP),
intent(in) :: momx(
ka,
ia,
ja)
238 real(RP),
intent(in) :: momy(
ka,
ia,
ja)
239 real(RP),
intent(in) :: rhot(
ka,
ia,
ja)
241 real(RP),
intent(in) :: dens_t(
ka,
ia,
ja)
242 real(RP),
intent(in) :: momz_t(
ka,
ia,
ja)
243 real(RP),
intent(in) :: momx_t(
ka,
ia,
ja)
244 real(RP),
intent(in) :: momy_t(
ka,
ia,
ja)
245 real(RP),
intent(in) :: rhot_t(
ka,
ia,
ja)
247 real(RP),
intent(in) :: prog0(
ka,
ia,
ja,
va)
248 real(RP),
intent(in) :: prog (
ka,
ia,
ja,
va)
250 real(RP),
intent(in) :: dpres0(
ka,
ia,
ja)
251 real(RP),
intent(in) :: rt2p(
ka,
ia,
ja)
252 real(RP),
intent(in) :: corioli(1,
ia,
ja)
253 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja,5,3)
254 real(RP),
intent(in) :: divdmp_coef
255 real(RP),
intent(in) :: ddiv(
ka,
ia,
ja)
257 logical,
intent(in) :: flag_fct_momentum
258 logical,
intent(in) :: flag_fct_t
259 logical,
intent(in) :: flag_fct_along_stream
261 real(RP),
intent(in) :: cdz(
ka)
262 real(RP),
intent(in) :: fdz(
ka-1)
263 real(RP),
intent(in) :: fdx(
ia-1)
264 real(RP),
intent(in) :: fdy(
ja-1)
265 real(RP),
intent(in) :: rcdz(
ka)
266 real(RP),
intent(in) :: rcdx(
ia)
267 real(RP),
intent(in) :: rcdy(
ja)
268 real(RP),
intent(in) :: rfdz(
ka-1)
269 real(RP),
intent(in) :: rfdx(
ia-1)
270 real(RP),
intent(in) :: rfdy(
ja-1)
272 real(RP),
intent(in) :: phi (
ka,
ia,
ja)
273 real(RP),
intent(in) :: gsqrt (
ka,
ia,
ja,7)
274 real(RP),
intent(in) :: j13g (
ka,
ia,
ja,7)
275 real(RP),
intent(in) :: j23g (
ka,
ia,
ja,7)
276 real(RP),
intent(in) :: j33g
277 real(RP),
intent(in) :: mapf (
ia,
ja,2,4)
278 real(RP),
intent(in) :: ref_dens(
ka,
ia,
ja)
279 real(RP),
intent(in) :: ref_rhot(
ka,
ia,
ja)
281 logical,
intent(in) :: bnd_w
282 logical,
intent(in) :: bnd_e
283 logical,
intent(in) :: bnd_s
284 logical,
intent(in) :: bnd_n
286 real(RP),
intent(in) :: dtrk
287 real(RP),
intent(in) :: dt
291 real(RP) :: pott(
ka,
ia,
ja)
292 real(RP) :: ddens(
ka,
ia,
ja)
293 real(RP) :: dpres(
ka,
ia,
ja)
294 real(RP) :: dpres_n(
ka,
ia,
ja)
301 real(RP) :: rcs2t(
ka,
ia,
ja)
306 real(RP) :: qflx_hi (
ka,
ia,
ja,3)
307 real(RP) :: qflx_j13(
ka,
ia,
ja)
308 real(RP) :: qflx_j23(
ka,
ia,
ja)
309 real(RP) :: mflx_hi2(
ka,
ia,
ja,3)
316 real(RP) :: zero(
ka,
ia,
ja)
320 integer :: iis, iie, jjs, jje
329 mflx_hi(:,:,:,:) = undef
330 mflx_hi(
ks-1,:,:,
zdir) = 0.0_rp
332 qflx_hi(:,:,:,:) = undef
333 tflx_hi(:,:,:,:) = undef
334 qflx_j13(:,:,:) = undef
335 qflx_j23(:,:,:) = undef
336 mflx_hi2(:,:,:,:) = undef
362 call check( __line__, dpres0(k,i,j) )
363 call check( __line__, rt2p(k,i,j) )
364 call check( __line__, rhot(k,i,j) )
365 call check( __line__, ref_rhot(k,i,j) )
367 dpres(k,i,j) = dpres0(k,i,j) + rt2p(k,i,j) * ( rhot(k,i,j) - ref_rhot(k,i,j) )
369 dpres(
ks-1,i,j) = dpres0(
ks-1,i,j) - dens(
ks,i,j) * ( phi(
ks-1,i,j) - phi(
ks+1,i,j) )
370 dpres(
ke+1,i,j) = dpres0(
ke+1,i,j) - dens(
ke,i,j) * ( phi(
ke+1,i,j) - phi(
ke-1,i,j) )
379 call check( __line__, dens(k,i,j) )
380 call check( __line__, ref_dens(k,i,j) )
382 ddens(k,i,j) = dens(k,i,j) - ref_dens(k,i,j)
392 call check( __line__, rhot(k,i,j) )
393 call check( __line__, dens(k,i,j) )
395 pott(k,i,j) = rhot(k,i,j) / dens(k,i,j)
400 k = iundef; i = iundef; j = iundef
408 call check( __line__, rt2p(k,i,j) )
410 rcs2t(k,i,j) = 1.0_rp / rt2p(k,i,j)
415 k = iundef; i = iundef; j = iundef
426 call check( __line__, momx(k+1,i ,j) )
427 call check( __line__, momx(k+1,i-1,j) )
428 call check( __line__, momx(k ,i ,j) )
429 call check( __line__, momx(k ,i+1,j) )
430 call check( __line__, momy(k+1,i,j) )
431 call check( __line__, momy(k+1,i,j-1) )
432 call check( __line__, momy(k ,i,j) )
433 call check( __line__, momy(k ,i,j-1) )
434 call check( __line__, num_diff(k,i,j,
i_dens,
zdir) )
435 call check( __line__, gsqrt(k,i,j,
i_xyw) )
437 mflx_hi2(k,i,j,
zdir) = j13g(k,i,j,
i_xyw) * 0.25_rp * ( momx(k+1,i,j)+momx(k+1,i-1,j) &
438 + momx(k ,i,j)+momx(k ,i-1,j) ) &
439 + j23g(k,i,j,
i_xyw) * 0.25_rp * ( momy(k+1,i,j)+momy(k+1,i,j-1) &
440 + momy(k ,i,j)+momy(k ,i,j-1) ) &
446 k = iundef; i = iundef; j = iundef
452 mflx_hi2(
ks-1,i,j,
zdir) = 0.0_rp
453 mflx_hi2(
ke ,i,j,
zdir) = 0.0_rp
463 call check( __line__, gsqrt(k,i,j,
i_uyz) )
464 call check( __line__, num_diff(k,i,j,
i_dens,
xdir) )
466 mflx_hi2(k,i,j,
xdir) = gsqrt(k,i,j,
i_uyz) * num_diff(k,i,j,
i_dens,
xdir)
471 k = iundef; i = iundef; j = iundef
479 call check( __line__, gsqrt(k,i,j,
i_xvz) )
480 call check( __line__, num_diff(k,i,j,
i_dens,
ydir) )
482 mflx_hi2(k,i,j,
ydir) = gsqrt(k,i,j,
i_xvz) * num_diff(k,i,j,
i_dens,
ydir)
487 k = iundef; i = iundef; j = iundef
496 gsqrt(:,:,:,
i_xyz), j33g, &
502 gsqrt(:,:,:,
i_xyz), j13g(:,:,:,
i_xyz), mapf(:,:,:,
i_xy), &
507 gsqrt(:,:,:,
i_xyz), j23g(:,:,:,
i_xyz), mapf(:,:,:,
i_xy), &
532 call check( __line__, qflx_hi(k ,i ,j ,
zdir) )
533 call check( __line__, qflx_hi(k-1,i ,j ,
zdir) )
534 call check( __line__, qflx_j13(k ,i ,j ) )
535 call check( __line__, qflx_j13(k-1,i ,j ) )
536 call check( __line__, qflx_j23(k ,i ,j ) )
537 call check( __line__, qflx_j23(k-1,i ,j ) )
538 call check( __line__, qflx_hi(k ,i ,j ,
xdir) )
539 call check( __line__, qflx_hi(k ,i-1,j ,
xdir) )
540 call check( __line__, qflx_hi(k ,i ,j ,
ydir) )
541 call check( __line__, qflx_hi(k ,i ,j-1,
ydir) )
542 call check( __line__, ddiv(k ,i,j) )
543 call check( __line__, ddiv(k+1,i,j) )
544 call check( __line__, momz0(k,i,j) )
545 call check( __line__, momz_t(k,i,j) )
548 - ( ( qflx_hi(k,i,j,
zdir) - qflx_hi(k-1,i ,j ,
zdir) &
549 + qflx_j13(k,i,j) - qflx_j13(k-1,i ,j ) &
550 + qflx_j23(k,i,j) - qflx_j23(k-1,i ,j ) ) * rfdz(k) &
551 + ( qflx_hi(k,i,j,
xdir) - qflx_hi(k ,i-1,j ,
xdir) ) * rcdx(i) &
552 + ( qflx_hi(k,i,j,
ydir) - qflx_hi(k ,i ,j-1,
ydir) ) * rcdy(j) &
553 ) / gsqrt(k,i,j,
i_xyw) &
554 + divdmp_coef * rdt * ( ddiv(k+1,i,j)-ddiv(k,i,j) ) * fdz(k) &
560 k = iundef; i = iundef; j = iundef
565 sw(
ks-1,i,j) = 0.0_rp
570 k = iundef; i = iundef; j = iundef
579 gsqrt(:,:,:,
i_uyw), j33g, &
585 gsqrt(:,:,:,
i_uyz), j13g(:,:,:,
i_uyw), mapf(:,:,:,
i_uy), &
590 gsqrt(:,:,:,
i_uyz), j23g(:,:,:,
i_uyw), mapf(:,:,:,
i_uy), &
617 call check( __line__, qflx_hi(k ,i ,j ,
zdir) )
618 call check( __line__, qflx_hi(k-1,i ,j ,
zdir) )
619 call check( __line__, qflx_hi(k ,i ,j ,
xdir) )
620 call check( __line__, qflx_hi(k ,i-1,j ,
xdir) )
621 call check( __line__, qflx_hi(k ,i ,j ,
ydir) )
622 call check( __line__, qflx_hi(k ,i ,j-1,
ydir) )
623 call check( __line__, dpres(k+1,i+1,j) )
624 call check( __line__, dpres(k+1,i ,j) )
625 call check( __line__, dpres(k-1,i+1,j) )
626 call check( __line__, dpres(k-1,i ,j) )
627 call check( __line__, corioli(1,i ,j) )
628 call check( __line__, corioli(1,i+1,j) )
629 call check( __line__, momy(k,i ,j ) )
630 call check( __line__, momy(k,i+1,j ) )
631 call check( __line__, momy(k,i ,j-1) )
632 call check( __line__, momy(k,i+1,j-1) )
633 call check( __line__, ddiv(k,i+1,j) )
634 call check( __line__, ddiv(k,i ,j) )
635 call check( __line__, momx0(k,i,j) )
638 - ( ( qflx_hi(k,i,j,
zdir) - qflx_hi(k-1,i ,j ,
zdir) &
639 + qflx_j13(k,i,j) - qflx_j13(k-1,i ,j) &
640 + qflx_j23(k,i,j) - qflx_j23(k-1,i ,j) ) * rcdz(k) &
641 + ( qflx_hi(k,i,j,
xdir) - qflx_hi(k ,i-1,j ,
xdir) ) * rfdx(i) &
642 + ( qflx_hi(k,i,j,
ydir) - qflx_hi(k ,i ,j-1,
ydir) ) * rcdy(j) ) &
643 - ( j13g(k+1,i,j,
i_uyz) * ( dpres(k+1,i+1,j)+dpres(k+1,i,j) ) &
644 - j13g(k-1,i,j,
i_uyz) * ( dpres(k-1,i+1,j)+dpres(k-1,i,j) ) ) &
645 * 0.5_rp / ( fdz(k+1)+fdz(k) ) &
646 ) / gsqrt(k,i,j,
i_uyz) &
647 + 0.125_rp * ( corioli(1,i,j)+corioli(1,i+1,j) ) &
648 * ( momy(k,i,j)+momy(k,i+1,j)+momy(k,i,j-1)+momy(k,i+1,j-1) ) &
649 + divdmp_coef * rdt * ( ddiv(k,i+1,j)-ddiv(k,i,j) ) * fdx(i) &
655 k = iundef; i = iundef; j = iundef
663 gsqrt(:,:,:,
i_xvw), j33g, &
669 gsqrt(:,:,:,
i_xvz), j13g(:,:,:,
i_xvw), mapf(:,:,:,
i_xv), &
674 gsqrt(:,:,:,
i_xvz), j23g(:,:,:,
i_xvw), mapf(:,:,:,
i_xv), &
701 call check( __line__, qflx_hi(k ,i ,j ,
zdir) )
702 call check( __line__, qflx_hi(k-1,i ,j ,
zdir) )
703 call check( __line__, qflx_hi(k ,i ,j ,
xdir) )
704 call check( __line__, qflx_hi(k ,i-1,j ,
xdir) )
705 call check( __line__, qflx_hi(k ,i ,j ,
ydir) )
706 call check( __line__, qflx_hi(k ,i ,j-1,
ydir) )
707 call check( __line__, dpres(k+1,i,j ) )
708 call check( __line__, dpres(k+1,i,j+1) )
709 call check( __line__, dpres(k-1,i,j ) )
710 call check( __line__, dpres(k-1,i,j+1) )
711 call check( __line__, corioli(1,i,j ) )
712 call check( __line__, corioli(1,i,j+1) )
713 call check( __line__, momx(k,i ,j ) )
714 call check( __line__, momx(k,i ,j+1) )
715 call check( __line__, momx(k,i-1,j ) )
716 call check( __line__, momx(k,i-1,j+1) )
717 call check( __line__, ddiv(k,i,j+1) )
718 call check( __line__, ddiv(k,i,j ) )
719 call check( __line__, momy_t(k,i,j) )
722 ( - ( ( qflx_hi(k,i,j,
zdir) - qflx_hi(k-1,i ,j ,
zdir) &
723 + qflx_j13(k,i,j) - qflx_j13(k-1,i ,j ) &
724 + qflx_j23(k,i,j) - qflx_j23(k-1,i ,j ) ) * rcdz(k) &
725 + ( qflx_hi(k,i,j,
xdir) - qflx_hi(k ,i-1,j ,
xdir) ) * rcdx(i) &
726 + ( qflx_hi(k,i,j,
ydir) - qflx_hi(k ,i ,j-1,
ydir) ) * rfdy(j) ) &
727 - ( j23g(k+1,i,j,
i_xvz) * ( dpres(k+1,i,j+1)+dpres(k+1,i,j) ) &
728 - j23g(k-1,i,j,
i_xvz) * ( dpres(k-1,i,j+1)+dpres(k-1,i,j) ) ) &
729 * 0.5_rp / ( fdz(k+1)+fdz(k) ) &
730 ) / gsqrt(k,i,j,
i_xvz) &
731 - 0.125_rp * ( corioli(1,i ,j+1)+corioli(1,i ,j) ) &
732 * ( momx(k,i,j+1)+momx(k,i,j)+momx(k,i-1,j+1)+momx(k,i-1,j) ) &
733 + divdmp_coef * rdt * ( ddiv(k,i,j+1)-ddiv(k,i,j) ) * fdy(j) &
739 k = iundef; i = iundef; j = iundef
747 mflx_hi2(:,:,:,
zdir), pott, gsqrt(:,:,:,
i_xyw), &
754 mflx_hi2(:,:,:,
xdir), pott, gsqrt(:,:,:,
i_uyz), &
761 mflx_hi2(:,:,:,
ydir), pott, gsqrt(:,:,:,
i_xvz), &
771 call check( __line__, tflx_hi(k ,i ,j ,
zdir) )
772 call check( __line__, tflx_hi(k-1,i ,j ,
zdir) )
773 call check( __line__, tflx_hi(k ,i ,j ,
xdir) )
774 call check( __line__, tflx_hi(k ,i-1,j ,
xdir) )
775 call check( __line__, tflx_hi(k ,i ,j ,
ydir) )
776 call check( __line__, tflx_hi(k ,i ,j-1,
ydir) )
777 call check( __line__, rhot_t(k,i,j) )
780 - ( ( tflx_hi(k,i,j,
zdir) - tflx_hi(k-1,i ,j ,
zdir) ) * rcdz(k) &
781 + ( tflx_hi(k,i,j,
xdir) - tflx_hi(k ,i-1,j ,
xdir) ) * rcdx(i) &
782 + ( tflx_hi(k,i,j,
ydir) - tflx_hi(k ,i ,j-1,
ydir) ) * rcdy(j) &
783 ) / gsqrt(k,i,j,
i_xyz) &
789 k = iundef; i = iundef; j = iundef
802 call comm_vars8( su, 1 )
803 call comm_vars8( sv, 2 )
804 call comm_wait ( su, 1 )
805 call comm_wait ( sv, 2 )
816 call check( __line__, momz(k-1,i,j) )
817 call check( __line__, momz(k ,i,j) )
818 call check( __line__, momx(k,i-1,j) )
819 call check( __line__, momx(k,i ,j) )
820 call check( __line__, momy(k,i,j-1) )
821 call check( __line__, momy(k,i,j ) )
822 call check( __line__, pott(k-2,i,j) )
823 call check( __line__, pott(k-1,i,j) )
824 call check( __line__, pott(k ,i,j) )
825 call check( __line__, pott(k+1,i,j) )
826 call check( __line__, pott(k+2,i,j) )
827 call check( __line__, pott(k,i-2,j) )
828 call check( __line__, pott(k,i-1,j) )
829 call check( __line__, pott(k,i ,j) )
830 call check( __line__, pott(k,i+1,j) )
831 call check( __line__, pott(k,i+2,j) )
832 call check( __line__, pott(k,i,j-2) )
833 call check( __line__, pott(k,i,j-1) )
834 call check( __line__, pott(k,i,j ) )
835 call check( __line__, pott(k,i,j+1) )
836 call check( __line__, pott(k,i,j+2) )
837 call check( __line__, sw(k-1,i,j) )
838 call check( __line__, sw(k ,i,j) )
839 call check( __line__, su(k,i-1,j) )
840 call check( __line__, su(k,i ,j) )
841 call check( __line__, sv(k,i,j-1) )
842 call check( __line__, sv(k,i,j ) )
843 call check( __line__, gsqrt(k,i ,j,
i_uyz) )
844 call check( __line__, gsqrt(k,i-1,j,
i_uyz) )
845 call check( __line__, gsqrt(k,i,j-1,
i_xvz) )
846 call check( __line__, gsqrt(k,i,j ,
i_xvz) )
847 call check( __line__, gsqrt(k,i,j,
i_xyz) )
848 call check( __line__, st(k,i,j) )
849 call check( __line__, dpres(k-1,i,j) )
850 call check( __line__, dpres(k ,i,j) )
851 call check( __line__, dpres(k+1,i,j) )
852 call check( __line__, rt2p(k-1,i,j) )
853 call check( __line__, rt2p(k ,i,j) )
854 call check( __line__, rt2p(k+1,i,j) )
855 call check( __line__, rhot(k-1,i,j) )
856 call check( __line__, rhot(k+1,i,j) )
857 call check( __line__, ddens(k-1,i,j) )
858 call check( __line__, ddens(k+1,i,j) )
861 ( j33g * ( momz(k ,i,j) + dtrk*sw(k ,i,j) ) &
862 * ( fact_n*(pott(k+1,i,j)+pott(k ,i,j)) &
863 + fact_f*(pott(k+2,i,j)+pott(k-1,i,j)) ) &
864 - j33g * ( momz(k-1,i,j) + dtrk*sw(k-1,i,j) ) &
865 * ( fact_n*(pott(k ,i,j)+pott(k-1,i,j)) &
866 + fact_f*(pott(k+1,i,j)+pott(k-2,i,j)) ) ) * rcdz(k) &
867 + ( gsqrt(k,i ,j,
i_uyz) * ( momx(k,i ,j) + dtrk*su(k,i ,j) ) &
868 * ( fact_n*(pott(k,i+1,j)+pott(k,i ,j)) &
869 + fact_f*(pott(k,i+2,j)+pott(k,i-1,j)) ) &
870 - gsqrt(k,i-1,j,
i_uyz) * ( momx(k,i-1,j) + dtrk*su(k,i-1,j) ) &
871 * ( fact_n*(pott(k,i ,j)+pott(k,i-1,j)) &
872 + fact_f*(pott(k,i+1,j)+pott(k,i-2,j)) ) ) * rcdx(i) &
873 + ( gsqrt(k,i,j ,
i_xvz) * ( momy(k,i,j ) + dtrk*sv(k,i,j ) ) &
874 * ( fact_n*(pott(k,i,j+1)+pott(k,i,j )) &
875 + fact_f*(pott(k,i,j+2)+pott(k,i,j-1)) ) &
876 - gsqrt(k,i,j-1,
i_xvz) * ( momy(k,i,j-1) + dtrk*sv(k,i,j-1) ) &
877 * ( fact_n*(pott(k,i,j )+pott(k,i,j-1)) &
878 + fact_f*(pott(k,i,j+1)+pott(k,i,j-2)) ) ) * rcdy(j) &
879 + gsqrt(k,i,j,
i_xyz) * ( st(k,i,j) - dpres(k,i,j) * rcs2t(k,i,j) * rdt ) &
881 + grav * j33g * ( ( dpres(k+1,i,j)*rcs2t(k+1,i,j) &
882 - dpres(k-1,i,j)*rcs2t(k-1,i,j) ) &
883 - ( rhot(k+1,i,j)*ddens(k+1,i,j)/dens(k+1,i,j) &
884 - rhot(k-1,i,j)*ddens(k-1,i,j)/dens(k-1,i,j) ) &
885 ) / ( fdz(k) + fdz(k-1) )
890 k = iundef; i = iundef; j = iundef
895 call check( __line__, momz(
ks,i,j) )
896 call check( __line__, momx(
ks,i,j) )
897 call check( __line__, momy(
ks,i,j) )
898 call check( __line__, sw(
ks,i,j) )
899 call check( __line__, su(
ks,i-1,j) )
900 call check( __line__, su(
ks,i ,j) )
901 call check( __line__, sv(
ks,i,j-1) )
902 call check( __line__, sv(
ks,i,j ) )
903 call check( __line__, st(
ks,i,j) )
904 call check( __line__, pott(
ks ,i,j) )
905 call check( __line__, pott(
ks+1,i,j) )
906 call check( __line__, pott(
ks,i-2,j) )
907 call check( __line__, pott(
ks,i-1,j) )
908 call check( __line__, pott(
ks,i ,j) )
909 call check( __line__, pott(
ks,i+1,j) )
910 call check( __line__, pott(
ks,i+2,j) )
911 call check( __line__, pott(
ks,i,j-2) )
912 call check( __line__, pott(
ks,i,j-1) )
913 call check( __line__, pott(
ks,i,j ) )
914 call check( __line__, pott(
ks,i,j+1) )
915 call check( __line__, pott(
ks,i,j+2) )
916 call check( __line__, gsqrt(
ks,i,j,
i_uyz) )
917 call check( __line__, gsqrt(
ks,i,j,
i_xvz) )
918 call check( __line__, gsqrt(
ks,i,j,
i_xyz) )
919 call check( __line__, dpres(
ks ,i,j) )
920 call check( __line__, dpres(
ks+1,i,j) )
921 call check( __line__, rt2p(
ks ,i,j) )
922 call check( __line__, rt2p(
ks+1,i,j) )
923 call check( __line__, rhot(
ks+1,i,j) )
924 call check( __line__, ddens(
ks+1,i,j) )
927 ( j33g * ( momz(
ks ,i,j) + dtrk*sw(
ks ,i,j) ) &
928 * 0.5_rp*(pott(
ks+1,i,j)+pott(
ks ,i,j)) ) * rcdz(
ks) &
929 + ( gsqrt(
ks,i ,j,
i_uyz) * ( momx(
ks,i ,j) + dtrk*su(
ks,i ,j) ) &
930 * ( fact_n*(pott(
ks,i+1,j)+pott(
ks,i ,j)) &
931 + fact_f*(pott(
ks,i+2,j)+pott(
ks,i-1,j)) ) &
932 - gsqrt(
ks,i-1,j,
i_uyz) * ( momx(
ks,i-1,j) + dtrk*su(
ks,i-1,j) ) &
933 * ( fact_n*(pott(
ks,i ,j)+pott(
ks,i-1,j)) &
934 + fact_f*(pott(
ks,i+1,j)+pott(
ks,i-2,j)) ) ) * rcdx(i) &
935 + ( gsqrt(
ks,i,j ,
i_xvz) * ( momy(
ks,i,j ) + dtrk*sv(
ks,i,j ) ) &
936 * ( fact_n*(pott(
ks,i,j+1)+pott(
ks,i,j )) &
937 + fact_f*(pott(
ks,i,j+2)+pott(
ks,i,j-1)) ) &
938 - gsqrt(
ks,i,j-1,
i_xvz) * ( momy(
ks,i,j-1) + dtrk*sv(
ks,i,j-1) ) &
939 * ( fact_n*(pott(
ks,i,j )+pott(
ks,i,j-1)) &
940 + fact_f*(pott(
ks,i,j+1)+pott(
ks,i,j-2)) ) ) * rcdy(j) &
941 + gsqrt(
ks,i,j,
i_xyz) * ( st(
ks,i,j) - dpres(
ks,i,j) * rcs2t(
ks,i,j) * rdt ) &
943 + grav * j33g * 0.5_rp * ( ( dpres(
ks,i,j)+dpres(
ks+1,i,j) ) * rcs2t(
ks,i,j) &
944 - ( ddens(
ks,i,j)+ddens(
ks+1,i,j) ) * pott(
ks,i,j) ) * rcdz(
ks)
946 call check( __line__, momz(
ks ,i,j) )
947 call check( __line__, momz(
ks+1 ,i,j) )
948 call check( __line__, momx(
ks+1,i-1,j) )
949 call check( __line__, momx(
ks+1,i ,j) )
950 call check( __line__, momy(
ks+1,i,j-1) )
951 call check( __line__, momy(
ks+1,i,j ) )
952 call check( __line__, pott(
ks ,i,j) )
953 call check( __line__, pott(
ks+1 ,i,j) )
954 call check( __line__, pott(
ks+1+1,i,j) )
955 call check( __line__, pott(
ks+1+2,i,j) )
956 call check( __line__, pott(
ks+1,i-2,j) )
957 call check( __line__, pott(
ks+1,i-1,j) )
958 call check( __line__, pott(
ks+1,i ,j) )
959 call check( __line__, pott(
ks+1,i+1,j) )
960 call check( __line__, pott(
ks+1,i+2,j) )
961 call check( __line__, pott(
ks+1,i,j-2) )
962 call check( __line__, pott(
ks+1,i,j-1) )
963 call check( __line__, pott(
ks+1,i,j ) )
964 call check( __line__, pott(
ks+1,i,j+1) )
965 call check( __line__, pott(
ks+1,i,j+2) )
966 call check( __line__, sw(
ks ,i,j) )
967 call check( __line__, sw(
ks+1,i,j) )
968 call check( __line__, su(
ks+1,i-1,j) )
969 call check( __line__, su(
ks+1,i ,j) )
970 call check( __line__, sv(
ks+1,i,j-1) )
971 call check( __line__, sv(
ks+1,i,j ) )
972 call check( __line__, gsqrt(
ks+1,i ,j,
i_uyz) )
973 call check( __line__, gsqrt(
ks+1,i-1,j,
i_uyz) )
974 call check( __line__, gsqrt(
ks+1,i,j-1,
i_xvz) )
975 call check( __line__, gsqrt(
ks+1,i,j ,
i_xvz) )
976 call check( __line__, gsqrt(
ks+1,i,j,
i_xyz) )
977 call check( __line__, st(
ks+1,i,j) )
978 call check( __line__, dpres(
ks ,i,j) )
979 call check( __line__, dpres(
ks+1,i,j) )
980 call check( __line__, dpres(
ks+2,i,j) )
981 call check( __line__, rt2p(
ks ,i,j) )
982 call check( __line__, rt2p(
ks+1,i,j) )
983 call check( __line__, rt2p(
ks+2,i,j) )
984 call check( __line__, rhot(
ks ,i,j) )
985 call check( __line__, rhot(
ks+2,i,j) )
986 call check( __line__, ddens(
ks ,i,j) )
987 call check( __line__, ddens(
ks+2,i,j) )
990 ( j33g * ( momz(
ks+1,i,j) + dtrk*sw(
ks+1,i,j) ) &
991 * ( fact_n*(pott(
ks+2,i,j)+pott(
ks+1,i,j)) &
992 + fact_f*(pott(
ks+3,i,j)+pott(
ks ,i,j)) ) &
993 - j33g * ( momz(
ks+1-1,i,j) + dtrk*sw(
ks+1-1,i,j) ) &
994 * ( 0.5_rp*(pott(
ks+1,i,j)+pott(
ks,i,j)) ) ) * rcdz(
ks+1) &
995 + ( gsqrt(
ks+1,i ,j,
i_uyz) * ( momx(
ks+1,i ,j) + dtrk*su(
ks+1,i ,j) ) &
996 * ( fact_n*(pott(
ks+1,i+1,j)+pott(
ks+1,i ,j)) &
997 + fact_f*(pott(
ks+1,i+2,j)+pott(
ks+1,i-1,j)) ) &
998 - gsqrt(
ks+1,i-1,j,
i_uyz) * ( momx(
ks+1,i-1,j) + dtrk*su(
ks+1,i-1,j) ) &
999 * ( fact_n*(pott(
ks+1,i ,j)+pott(
ks+1,i-1,j)) &
1000 + fact_f*(pott(
ks+1,i+1,j)+pott(
ks+1,i-2,j)) ) ) * rcdx(i) &
1001 + ( gsqrt(
ks+1,i,j ,
i_xvz) * ( momy(
ks+1,i,j ) + dtrk*sv(
ks+1,i,j ) ) &
1002 * ( fact_n*(pott(
ks+1,i,j+1)+pott(
ks+1,i,j )) &
1003 + fact_f*(pott(
ks+1,i,j+2)+pott(
ks+1,i,j-1)) ) &
1004 - gsqrt(
ks+1,i,j-1,
i_xvz) * ( momy(
ks+1,i,j-1) + dtrk*sv(
ks+1,i,j-1) ) &
1005 * ( fact_n*(pott(
ks+1,i,j )+pott(
ks+1,i,j-1)) &
1006 + fact_f*(pott(
ks+1,i,j+1)+pott(
ks+1,i,j-2)) ) ) * rcdy(j) &
1007 + gsqrt(
ks+1,i,j,
i_xyz) * ( st(
ks+1,i,j) - dpres(
ks+1,i,j) * rcs2t(
ks+1,i,j) * rdt ) &
1009 + grav * j33g * ( ( dpres(
ks+2,i,j)*rcs2t(
ks+2,i,j) &
1010 - dpres(
ks ,i,j)*rcs2t(
ks ,i,j) ) &
1011 - ( rhot(
ks+2,i,j)*ddens(
ks+2,i,j)/dens(
ks+2,i,j) &
1012 - rhot(
ks ,i,j)*ddens(
ks ,i,j)/dens(
ks ,i,j) ) &
1013 ) / ( fdz(
ks+1) + fdz(
ks) )
1015 call check( __line__, momz(
ke-2,i,j) )
1016 call check( __line__, momz(
ke-1,i,j) )
1017 call check( __line__, momx(
ke-1,i-1,j) )
1018 call check( __line__, momx(
ke-1,i ,j) )
1019 call check( __line__, momy(
ke-1,i,j-1) )
1020 call check( __line__, momy(
ke-1,i,j ) )
1021 call check( __line__, pott(
ke-3,i,j) )
1022 call check( __line__, pott(
ke-2,i,j) )
1023 call check( __line__, pott(
ke-1,i,j) )
1024 call check( __line__, pott(
ke ,i,j) )
1025 call check( __line__, pott(
ke-1,i-2,j) )
1026 call check( __line__, pott(
ke-1,i-1,j) )
1027 call check( __line__, pott(
ke-1,i ,j) )
1028 call check( __line__, pott(
ke-1,i+1,j) )
1029 call check( __line__, pott(
ke-1,i+2,j) )
1030 call check( __line__, pott(
ke-1,i,j-2) )
1031 call check( __line__, pott(
ke-1,i,j-1) )
1032 call check( __line__, pott(
ke-1,i,j ) )
1033 call check( __line__, pott(
ke-1,i,j+1) )
1034 call check( __line__, pott(
ke-1,i,j+2) )
1035 call check( __line__, sw(
ke-2,i,j) )
1036 call check( __line__, sw(
ke-1,i,j) )
1037 call check( __line__, su(
ke-1,i-1,j) )
1038 call check( __line__, su(
ke-1,i ,j) )
1039 call check( __line__, sv(
ke-1,i,j-1) )
1040 call check( __line__, sv(
ke-1,i,j ) )
1041 call check( __line__, gsqrt(
ke-1,i ,j,
i_uyz) )
1042 call check( __line__, gsqrt(
ke-1,i-1,j,
i_uyz) )
1043 call check( __line__, gsqrt(
ke-1,i,j-1,
i_xvz) )
1044 call check( __line__, gsqrt(
ke-1,i,j ,
i_xvz) )
1045 call check( __line__, gsqrt(
ke-1,i,j,
i_xyz) )
1046 call check( __line__, st(
ke-1,i,j) )
1047 call check( __line__, dpres(
ke-2,i,j) )
1048 call check( __line__, dpres(
ke-1,i,j) )
1049 call check( __line__, dpres(
ke ,i,j) )
1050 call check( __line__, rt2p(
ke-2,i,j) )
1051 call check( __line__, rt2p(
ke-1,i,j) )
1052 call check( __line__, rt2p(
ke ,i,j) )
1053 call check( __line__, rhot(
ke-2,i,j) )
1054 call check( __line__, rhot(
ke,i,j) )
1055 call check( __line__, ddens(
ke-2,i,j) )
1056 call check( __line__, ddens(
ke,i,j) )
1059 ( j33g * ( momz(
ke-1,i,j) + dtrk*sw(
ke-1,i,j) ) &
1060 * ( 0.5_rp*(pott(
ke ,i,j)+pott(
ke-1,i,j)) ) &
1061 - j33g * ( momz(
ke-2,i,j) + dtrk*sw(
ke-2,i,j) ) &
1062 * ( fact_n*(pott(
ke-1,i,j)+pott(
ke-2,i,j)) &
1063 + fact_f*(pott(
ke ,i,j)+pott(
ke-3,i,j)) ) ) * rcdz(
ke-1) &
1064 + ( gsqrt(
ke-1,i ,j,
i_uyz) * ( momx(
ke-1,i ,j) + dtrk*su(
ke-1,i ,j) ) &
1065 * ( fact_n*(pott(
ke-1,i+1,j)+pott(
ke-1,i ,j)) &
1066 + fact_f*(pott(
ke-1,i+2,j)+pott(
ke-1,i-1,j)) ) &
1067 - gsqrt(
ke-1,i-1,j,
i_uyz) * ( momx(
ke-1,i-1,j) + dtrk*su(
ke-1,i-1,j) ) &
1068 * ( fact_n*(pott(
ke-1,i ,j)+pott(
ke-1,i-1,j)) &
1069 + fact_f*(pott(
ke-1,i+1,j)+pott(
ke-1,i-2,j)) ) ) * rcdx(i) &
1070 + ( gsqrt(
ke-1,i,j ,
i_xvz) * ( momy(
ke-1,i,j ) + dtrk*sv(
ke-1,i,j ) ) &
1071 * ( fact_n*(pott(
ke-1,i,j+1)+pott(
ke-1,i,j )) &
1072 + fact_f*(pott(
ke-1,i,j+2)+pott(
ke-1,i,j-1)) ) &
1073 - gsqrt(
ke-1,i,j-1,
i_xvz) * ( momy(
ke-1,i,j-1) + dtrk*sv(
ke-1,i,j-1) ) &
1074 * ( fact_n*(pott(
ke-1,i,j )+pott(
ke-1,i,j-1)) &
1075 + fact_f*(pott(
ke-1,i,j+1)+pott(
ke-1,i,j-2)) ) ) * rcdy(j) &
1076 + gsqrt(
ke-1,i,j,
i_xyz) * ( st(
ke-1,i,j) - dpres(
ke-1,i,j) * rcs2t(
ke-1,i,j) * rdt ) &
1078 + grav * j33g * ( ( dpres(
ke ,i,j)*rcs2t(
ke ,i,j) &
1079 - dpres(
ke-2,i,j)*rcs2t(
ke-2,i,j) ) &
1080 - ( rhot(
ke ,i,j)*ddens(
ke ,i,j)/dens(
ke ,i,j) &
1081 - rhot(
ke-2,i,j)*ddens(
ke-2,i,j)/dens(
ke-2,i,j) )&
1082 ) / ( fdz(
ke-1) + fdz(
ke-1-1) )
1084 call check( __line__, momz(
ke-1,i,j) )
1085 call check( __line__, momx(
ke,i-1,j) )
1086 call check( __line__, momx(
ke,i ,j) )
1087 call check( __line__, momy(
ke,i,j-1) )
1088 call check( __line__, momy(
ke,i,j ) )
1089 call check( __line__, sw(
ke-1,i,j) )
1090 call check( __line__, su(
ke,i-1,j) )
1091 call check( __line__, su(
ke,i ,j) )
1092 call check( __line__, sv(
ke,i,j-1) )
1093 call check( __line__, sv(
ke,i,j ) )
1094 call check( __line__, gsqrt(
ke,i-1,j,
i_uyz) )
1095 call check( __line__, pott(
ke-1,i,j) )
1096 call check( __line__, pott(
ke ,i,j) )
1097 call check( __line__, pott(
ke,i-2,j) )
1098 call check( __line__, pott(
ke,i-1,j) )
1099 call check( __line__, pott(
ke,i ,j) )
1100 call check( __line__, pott(
ke,i+1,j) )
1101 call check( __line__, pott(
ke,i+2,j) )
1102 call check( __line__, pott(
ke,i,j-2) )
1103 call check( __line__, pott(
ke,i,j-1) )
1104 call check( __line__, pott(
ke,i,j ) )
1105 call check( __line__, pott(
ke,i,j+1) )
1106 call check( __line__, pott(
ke,i,j+2) )
1107 call check( __line__, gsqrt(
ke,i-1,j,
i_uyz) )
1108 call check( __line__, gsqrt(
ke,i ,j,
i_uyz) )
1109 call check( __line__, gsqrt(
ke,i,j-1,
i_xvz) )
1110 call check( __line__, gsqrt(
ke,i,j ,
i_xvz) )
1111 call check( __line__, gsqrt(
ke,i,j,
i_xyz) )
1112 call check( __line__, st(
ke,i,j) )
1113 call check( __line__, dpres(
ke-1,i,j) )
1114 call check( __line__, dpres(
ke ,i,j) )
1115 call check( __line__, rt2p(
ke-1,i,j) )
1116 call check( __line__, rt2p(
ke ,i,j) )
1117 call check( __line__, rhot(
ke-1,i,j) )
1118 call check( __line__, ddens(
ke-1,i,j) )
1122 - j33g * ( momz(
ke-1,i,j) + dtrk*sw(
ke-1,i,j) ) &
1123 * 0.5_rp*(pott(
ke ,i,j)+pott(
ke-1,i,j)) ) * rcdz(
ke) &
1124 + ( gsqrt(
ke,i ,j,
i_uyz) * ( momx(
ke,i ,j) + dtrk*su(
ke,i ,j) ) &
1125 * ( fact_n*(pott(
ke,i+1,j)+pott(
ke,i ,j)) &
1126 + fact_f*(pott(
ke,i+2,j)+pott(
ke,i-1,j)) ) &
1127 - gsqrt(
ke,i-1,j,
i_uyz) * ( momx(
ke,i-1,j) + dtrk*su(
ke,i-1,j) ) &
1128 * ( fact_n*(pott(
ke,i ,j)+pott(
ke,i-1,j)) &
1129 + fact_f*(pott(
ke,i+1,j)+pott(
ke,i-2,j)) ) ) * rcdx(i) &
1130 + ( gsqrt(
ke,i,j ,
i_xvz) * ( momy(
ke,i,j ) + dtrk*sv(
ke,i,j ) ) &
1131 * ( fact_n*(pott(
ke,i,j+1)+pott(
ke,i,j )) &
1132 + fact_f*(pott(
ke,i,j+2)+pott(
ke,i,j-1)) ) &
1133 - gsqrt(
ke,i,j-1,
i_xvz) * ( momy(
ke,i,j-1) + dtrk*sv(
ke,i,j-1) ) &
1134 * ( fact_n*(pott(
ke,i,j )+pott(
ke,i,j-1)) &
1135 + fact_f*(pott(
ke,i,j+1)+pott(
ke,i,j-2)) ) ) * rcdy(j) &
1136 + gsqrt(
ke,i,j,
i_xyz) * ( st(
ke,i,j) - dpres(
ke,i,j) * rcs2t(
ke,i,j) * rdt ) &
1138 + grav * j33g * 0.5_rp * ( - ( dpres(
ke,i,j)+dpres(
ke-1,i,j) ) * rcs2t(
ke,i,j) &
1139 + ( ddens(
ke,i,j)+ddens(
ke-1,i,j) ) * pott(
ke,i,j) ) * rcdz(
ke)
1143 k = iundef; i = iundef; j = iundef
1148 pott, rcs2t, grav, &
1150 rcdz, rfdz, rcdx, rfdx, rcdy,rfdy, fdz, &
1154 iis, iie, jjs, jje )
1159 call solve_bicgstab( &
1164 call comm_vars8( dpres_n, 1 )
1165 call comm_wait ( dpres_n, 1 )
1168 call check_solver( dpres_n, m, b )
1173 call solve_multigrid
1190 call check( __line__, dpres_n(k+1,i,j) )
1191 call check( __line__, dpres_n(k ,i,j) )
1192 call check( __line__, dpres(k+1,i,j) )
1193 call check( __line__, dpres(k ,i,j) )
1194 call check( __line__, ddens(k+1,i,j) )
1195 call check( __line__, ddens(k ,i,j) )
1196 call check( __line__, ref_dens(k+1,i,j) )
1197 call check( __line__, ref_dens(k,i,j) )
1198 call check( __line__, momz0(k,i,j) )
1201 - j33g * ( dpres_n(k+1,i,j) - dpres_n(k,i,j) ) * rfdz(k) &
1202 ) / gsqrt(k,i,j,
i_uyz) &
1204 * ( ddens(k+1,i,j) &
1205 + ( dpres_n(k+1,i,j) - dpres(k+1,i,j) ) &
1206 / ( pott(k+1,i,j) * rt2p(k+1,i,j) ) &
1208 + ( dpres_n(k ,i,j) - dpres(k ,i,j) ) &
1209 / ( pott(k ,i,j) * rt2p(k ,i,j) ) ) &
1211 momz_rk(k,i,j) = momz0(k,i,j) + duvw
1212 mflx_hi(k,i,j,
zdir) = j33g * ( momz(k,i,j) + duvw )
1217 k = iundef; i = iundef; j = iundef
1221 mflx_hi(
ks-1,i,j,
zdir) = 0.0_rp
1222 mflx_hi(
ke ,i,j,
zdir) = 0.0_rp
1226 k = iundef; i = iundef; j = iundef
1238 call check( __line__, dpres_n(k,i+1,j) )
1239 call check( __line__, dpres_n(k,i ,j) )
1240 call check( __line__, gsqrt(k,i+1,j,
i_xyz) )
1241 call check( __line__, gsqrt(k,i ,j,
i_xyz) )
1242 call check( __line__, gsqrt(k,i,j,
i_uyz) )
1243 call check( __line__, su(k,i,j) )
1244 call check( __line__, momx0(k,i,j) )
1247 - ( gsqrt(k,i+1,j,
i_xyz) * dpres_n(k,i+1,j) &
1248 - gsqrt(k,i ,j,
i_xyz) * dpres_n(k,i ,j) ) * rfdx(i) &
1249 ) / gsqrt(k,i,j,
i_uyz) &
1252 momx_rk(k,i,j) = momx0(k,i,j) + duvw
1253 mflx_hi(k,i,j,
xdir) = gsqrt(k,i,j,
i_uyz) * ( momx(k,i,j) + duvw )
1258 k = iundef; i = iundef; j = iundef
1269 call check( __line__, dpres_n(k,i,j ) )
1270 call check( __line__, dpres_n(k,i,j+1) )
1271 call check( __line__, gsqrt(k,i,j ,
i_xyz) )
1272 call check( __line__, gsqrt(k,i,j+1,
i_xyz) )
1273 call check( __line__, gsqrt(k,i,j,
i_xvz) )
1274 call check( __line__, sv(k,i,j) )
1275 call check( __line__, momy0(k,i,j) )
1278 - ( gsqrt(k,i,j+1,
i_xyz) * dpres_n(k,i,j+1) &
1279 - gsqrt(k,i,j ,
i_xyz) * dpres_n(k,i,j ) ) * rfdy(j) &
1280 ) / gsqrt(k,i,j,
i_xvz) &
1282 momy_rk(k,i,j) = momy0(k,i,j) + duvw
1283 mflx_hi(k,i,j,
ydir) = gsqrt(k,i,j,
i_xvz) * ( momy(k,i,j) + duvw )
1288 k = iundef; i = iundef; j = iundef
1300 call check( __line__, mflx_hi(k,i,j,
zdir) )
1301 call check( __line__, pott(k,i-1,j) )
1302 call check( __line__, pott(k,i ,j) )
1303 call check( __line__, pott(k,i+1,j) )
1304 call check( __line__, pott(k,i+1,j) )
1305 call check( __line__, num_diff(k,i,j,
i_rhot,
xdir) )
1307 tflx_hi(k,i,j,
zdir) = mflx_hi(k,i,j,
zdir) &
1308 * ( fact_n * ( pott(k+1,i,j) + pott(k ,i,j) ) &
1309 + fact_f * ( pott(k+2,i,j) + pott(k-1,i,j) ) )
1314 k = iundef; i = iundef; j = iundef
1319 tflx_hi(
ks-1,i,j,
zdir) = 0.0_rp
1320 tflx_hi(
ks ,i,j,
zdir) = mflx_hi(
ks ,i,j,
zdir) * 0.5_rp * ( pott(
ks+1,i,j) + pott(
ks ,i,j) )
1321 tflx_hi(
ke-1,i,j,
zdir) = mflx_hi(
ke-1,i,j,
zdir) * 0.5_rp * ( pott(
ke ,i,j) + pott(
ke-1,i,j) )
1322 tflx_hi(
ke ,i,j,
zdir) = 0.0_rp
1326 k = iundef; i = iundef; j = iundef
1334 call check( __line__, mflx_hi(k,i,j,
xdir) )
1335 call check( __line__, pott(k,i-1,j) )
1336 call check( __line__, pott(k,i ,j) )
1337 call check( __line__, pott(k,i+1,j) )
1338 call check( __line__, pott(k,i+1,j) )
1339 call check( __line__, num_diff(k,i,j,
i_rhot,
xdir) )
1341 tflx_hi(k,i,j,
xdir) = mflx_hi(k,i,j,
xdir) &
1342 * ( fact_n * ( pott(k,i+1,j)+pott(k,i ,j) ) &
1343 + fact_f * ( pott(k,i+2,j)+pott(k,i-1,j) ) )
1348 k = iundef; i = iundef; j = iundef
1356 call check( __line__, mflx_hi(k,i,j,
ydir) )
1357 call check( __line__, pott(k,i,j-1) )
1358 call check( __line__, pott(k,i,j ) )
1359 call check( __line__, pott(k,i,j+1) )
1360 call check( __line__, pott(k,i,j+2) )
1361 call check( __line__, num_diff(k,i,j,
i_rhot,
ydir) )
1363 tflx_hi(k,i,j,
ydir) = mflx_hi(k,i,j,
ydir) &
1364 * ( fact_n * ( pott(k,i,j+1)+pott(k,i,j ) ) &
1365 + fact_f * ( pott(k,i,j+2)+pott(k,i,j-1) ) )
1370 k = iundef; i = iundef; j = iundef
1377 rhot_rk(k,i,j) = rhot0(k,i,j) &
1378 + dtrk * ( - ( ( tflx_hi(k,i,j,
zdir) - tflx_hi(k-1,i ,j ,
zdir) ) * rcdz(k) &
1379 + ( tflx_hi(k,i,j,
xdir) - tflx_hi(k ,i-1,j ,
xdir) ) * rcdx(i) &
1380 + ( tflx_hi(k,i,j,
ydir) - tflx_hi(k ,i ,j-1,
ydir) ) * rcdy(j) ) &
1381 / gsqrt(k,i,j,
i_xyz) &
1393 mflx_hi(k,i,j,
zdir) = mflx_hi(k,i,j,
zdir) + mflx_hi2(k,i,j,
zdir)
1400 mflx_hi(k,i,j,
xdir) = mflx_hi(k,i,j,
xdir) + mflx_hi2(k,i,j,
xdir)
1407 mflx_hi(k,i,j,
ydir) = mflx_hi(k,i,j,
ydir) + mflx_hi2(k,i,j,
ydir)
1418 call check( __line__, dens0(k,i,j) )
1419 call check( __line__, mflx_hi(k ,i ,j ,
xdir) )
1420 call check( __line__, mflx_hi(k ,i-1,j ,
xdir) )
1421 call check( __line__, mflx_hi(k ,i ,j ,
ydir) )
1422 call check( __line__, mflx_hi(k ,i ,j-1,
ydir) )
1423 call check( __line__, dens_t(k,i,j) )
1425 dens_rk(k,i,j) = dens0(k,i,j) &
1426 + dtrk * ( - ( ( mflx_hi(k,i,j,
zdir)-mflx_hi(k-1,i ,j,
zdir) ) * rcdz(k) &
1427 + ( mflx_hi(k,i,j,
xdir)-mflx_hi(k ,i-1,j,
xdir) ) * rcdx(i) &
1428 + ( mflx_hi(k,i,j,
ydir)-mflx_hi(k ,i, j-1,
ydir) ) * rcdy(j) ) &
1429 / gsqrt(k,i,j,
i_xyz) &
1435 k = iundef; i = iundef; j = iundef
1441 dpres_n, dpres, rhot_rk, rhot, dens_rk, dens, b,&
integer, parameter, public i_rhot
integer, public is
start point of inner domain: x, local
integer, public je
end point of inner domain: y, local
procedure(flux_mom), pointer, public atmos_dyn_fvm_fluxx_xvz
procedure(flux_j), pointer, public atmos_dyn_fvm_fluxj23_uyz
integer, public iblock
block size for cache blocking: x
integer, parameter, public i_momx
integer, parameter, public zdir
integer, parameter, public i_momz
procedure(flux_j), pointer, public atmos_dyn_fvm_fluxj23_xyw
procedure(flux_phi), pointer, public atmos_dyn_fvm_fluxx_xyz
integer, parameter, public ydir
integer, public ke
end point of inner domain: z, local
procedure(flux_j), pointer, public atmos_dyn_fvm_fluxj13_xyw
integer, parameter, public xdir
integer, parameter, public i_dens
integer, parameter, public i_momy
procedure(flux_mom), pointer, public atmos_dyn_fvm_fluxx_xyw
procedure(flux_mom), pointer, public atmos_dyn_fvm_fluxy_xyw
integer, public ia
of x whole cells (local, with HALO)
procedure(flux_z), pointer, public atmos_dyn_fvm_fluxz_xvz
integer, public ka
of z whole cells (local, with HALO)
real(rp), public const_pre00
pressure reference [Pa]
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
module Atmosphere / Dynamics common
procedure(valuew), pointer, public atmos_dyn_fvm_flux_valuew_z
integer, public ks
start point of inner domain: z, local
procedure(flux_j), pointer, public atmos_dyn_fvm_fluxj13_xvz
integer, public ie
end point of inner domain: x, local
procedure(flux_z), pointer, public atmos_dyn_fvm_fluxz_uyz
module scale_atmos_dyn_fvm_flux
subroutine, public atmos_dyn_fct(qflx_anti, phi_in, DENS0, DENS, qflx_hi, qflx_lo, mflx_hi, rdz, rdx, rdy, GSQRT, MAPF, dt, flag_vect)
Flux Correction Transport Limiter.
procedure(flux_j), pointer, public atmos_dyn_fvm_fluxj13_uyz
procedure(flux_j), pointer, public atmos_dyn_fvm_fluxj23_xvz
procedure(flux_phi), pointer, public atmos_dyn_fvm_fluxz_xyz
procedure(flux_mom), pointer, public atmos_dyn_fvm_fluxx_uyz
procedure(flux_phi), pointer, public atmos_dyn_fvm_fluxy_xyz
procedure(flux_mom), pointer, public atmos_dyn_fvm_fluxy_uyz
procedure(flux_wz), pointer, public atmos_dyn_fvm_fluxz_xyw
procedure(flux_mom), pointer, public atmos_dyn_fvm_fluxy_xvz
integer, public ja
of y whole cells (local, with HALO)