18 #include "inc_openmp.h" 78 #define F2H(k,p,q) (CDZ(k+p-1)*GSQRT(k+p-1,i,j)/(CDZ(k)*GSQRT(k,i,j)+CDZ(k+1)*GSQRT(k+1,i,j))) 80 #define F2H(k,p,q) 0.5_RP 87 real(RP),
parameter :: F2 = 0.5_rp
90 real(RP),
parameter :: F41 = 7.0_rp/12.0_rp
91 real(RP),
parameter :: F42 = -1.0_rp/12.0_rp
94 real(RP),
parameter :: F61 = 37.0_rp/60.0_rp
95 real(RP),
parameter :: F62 = -8.0_rp/60.0_rp
96 real(RP),
parameter :: F63 = 1.0_rp/60.0_rp
110 real(RP),
intent(out) :: valw (
ka)
111 real(RP),
intent(in) :: mflx (
ka)
112 real(RP),
intent(in) :: val (
ka)
113 real(RP),
intent(in) :: gsqrt(
ka)
114 real(RP),
intent(in) :: cdz (
ka)
121 call check( __line__, mflx(k) )
123 call check( __line__, val(k) )
124 call check( __line__, val(k+1) )
126 call check( __line__, val(k-1) )
127 call check( __line__, val(k+2) )
129 call check( __line__, val(k-2) )
130 call check( __line__, val(k+3) )
133 valw(k) = f61 * ( val(k+1)+val(k) ) &
134 + f62 * ( val(k+2)+val(k-1) ) &
135 + f63 * ( val(k+3)+val(k-2) )
143 call check( __line__, mflx(
ks) )
144 call check( __line__, val(
ks ) )
145 call check( __line__, val(
ks+1) )
146 call check( __line__, mflx(
ke-1) )
147 call check( __line__, val(
ke ) )
148 call check( __line__, val(
ke-1) )
150 call check( __line__, mflx(
ks+1) )
151 call check( __line__, val(
ks+2 ) )
152 call check( __line__, val(
ks+3) )
153 call check( __line__, mflx(
ke-2) )
154 call check( __line__, val(
ke-2 ) )
155 call check( __line__, val(
ke-3) )
161 valw(
ks) = f2 * ( val(
ks+1)+val(
ks) )
162 valw(
ke-1) = f2 * ( val(
ke)+val(
ke-1) )
164 valw(
ks+1) = f41 * ( val(
ks+2)+val(
ks+1) ) &
165 + f42 * ( val(
ks+3)+val(
ks) )
166 valw(
ke-2) = f41 * ( val(
ke-1)+val(
ke-2) ) &
167 + f42 * ( val(
ke)+val(
ke-3) )
183 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
184 real(RP),
intent(in) :: mflx (
ka,
ia,
ja)
185 real(RP),
intent(in) :: val (
ka,
ia,
ja)
186 real(RP),
intent(in) :: gsqrt (
ka,
ia,
ja)
187 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
188 real(RP),
intent(in) :: cdz (
ka)
189 integer,
intent(in) :: iis, iie, jjs, jje
202 call check( __line__, mflx(k,i,j) )
204 call check( __line__, val(k,i,j) )
205 call check( __line__, val(k+1,i,j) )
207 call check( __line__, val(k-1,i,j) )
208 call check( __line__, val(k+2,i,j) )
210 call check( __line__, val(k-2,i,j) )
211 call check( __line__, val(k+3,i,j) )
216 * ( f61 * ( val(k+1,i,j)+val(k,i,j) ) &
217 + f62 * ( val(k+2,i,j)+val(k-1,i,j) ) &
218 + f63 * ( val(k+3,i,j)+val(k-2,i,j) ) ) &
219 + gsqrt(k,i,j) * num_diff(k,i,j)
224 k = iundef; i = iundef; j = iundef
234 call check( __line__, mflx(
ks,i,j) )
235 call check( __line__, val(
ks ,i,j) )
236 call check( __line__, val(
ks+1,i,j) )
237 call check( __line__, mflx(
ke-1,i,j) )
238 call check( __line__, val(
ke ,i,j) )
239 call check( __line__, val(
ke-1,i,j) )
241 call check( __line__, mflx(
ks+1,i,j) )
242 call check( __line__, val(
ks+2 ,i,j) )
243 call check( __line__, val(
ks+3,i,j) )
244 call check( __line__, mflx(
ke-2,i,j) )
245 call check( __line__, val(
ke-2 ,i,j) )
246 call check( __line__, val(
ke-3,i,j) )
249 flux(
ks-1,i,j) = 0.0_rp
253 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
254 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
256 flux(
ke-1,i,j) = vel &
257 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
258 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
261 flux(
ks+1,i,j) = vel &
262 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
263 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) ) &
264 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
266 flux(
ke-2,i,j) = vel &
267 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
268 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) ) &
269 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
271 flux(
ke ,i,j) = 0.0_rp
275 k = iundef; i = iundef; j = iundef
291 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
292 real(RP),
intent(in) :: mflx (
ka,
ia,
ja)
293 real(RP),
intent(in) :: val (
ka,
ia,
ja)
294 real(RP),
intent(in) :: gsqrt (
ka,
ia,
ja)
295 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
296 real(RP),
intent(in) :: cdz(
ka)
297 integer,
intent(in) :: iis, iie, jjs, jje
310 call check( __line__, mflx(k,i,j) )
312 call check( __line__, val(k,i,j) )
313 call check( __line__, val(k,i+1,j) )
315 call check( __line__, val(k,i-1,j) )
316 call check( __line__, val(k,i+2,j) )
318 call check( __line__, val(k,i-2,j) )
319 call check( __line__, val(k,i+3,j) )
324 * ( f61 * ( val(k,i+1,j)+val(k,i,j) ) &
325 + f62 * ( val(k,i+2,j)+val(k,i-1,j) ) &
326 + f63 * ( val(k,i+3,j)+val(k,i-2,j) ) ) &
327 + gsqrt(k,i,j) * num_diff(k,i,j)
332 k = iundef; i = iundef; j = iundef
348 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
349 real(RP),
intent(in) :: mflx (
ka,
ia,
ja)
350 real(RP),
intent(in) :: val (
ka,
ia,
ja)
351 real(RP),
intent(in) :: gsqrt (
ka,
ia,
ja)
352 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
353 real(RP),
intent(in) :: cdz(
ka)
354 integer,
intent(in) :: iis, iie, jjs, jje
367 call check( __line__, mflx(k,i,j) )
369 call check( __line__, val(k,i,j) )
370 call check( __line__, val(k,i,j+1) )
372 call check( __line__, val(k,i,j-1) )
373 call check( __line__, val(k,i,j+2) )
375 call check( __line__, val(k,i,j-2) )
376 call check( __line__, val(k,i,j+3) )
381 * ( f61 * ( val(k,i,j+1)+val(k,i,j) ) &
382 + f62 * ( val(k,i,j+2)+val(k,i,j-1) ) &
383 + f63 * ( val(k,i,j+3)+val(k,i,j-2) ) ) &
384 + gsqrt(k,i,j) * num_diff(k,i,j)
389 k = iundef; i = iundef; j = iundef
408 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
409 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
410 real(RP),
intent(in) :: val (
ka,
ia,
ja)
411 real(RP),
intent(in) :: dens (
ka,
ia,
ja)
412 real(RP),
intent(in) :: gsqrt (
ka,
ia,
ja)
413 real(RP),
intent(in) :: j33g
414 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
415 real(RP),
intent(in) :: cdz (
ka)
416 real(RP),
intent(in) :: fdz (
ka-1)
417 real(RP),
intent(in) :: dtrk
418 integer,
intent(in) :: iis, iie, jjs, jje
433 call check( __line__, mom(k-1,i,j) )
434 call check( __line__, mom(k ,i,j) )
436 call check( __line__, val(k-1,i,j) )
437 call check( __line__, val(k,i,j) )
439 call check( __line__, val(k-2,i,j) )
440 call check( __line__, val(k+1,i,j) )
442 call check( __line__, val(k-3,i,j) )
443 call check( __line__, val(k+2,i,j) )
446 vel = ( 0.5_rp * ( mom(k-1,i,j) &
449 flux(k-1,i,j) = j33g * vel &
450 * ( f61 * ( val(k,i,j)+val(k-1,i,j) ) &
451 + f62 * ( val(k+1,i,j)+val(k-2,i,j) ) &
452 + f63 * ( val(k+2,i,j)+val(k-3,i,j) ) ) &
453 + gsqrt(k,i,j) * num_diff(k,i,j)
458 k = iundef; i = iundef; j = iundef
468 call check( __line__, val(
ks ,i,j) )
469 call check( __line__, val(
ks+1,i,j) )
472 call check( __line__, val(
ke-2,i,j) )
473 call check( __line__, val(
ke-1,i,j) )
479 flux(
ks-1,i,j) = 0.0_rp
481 vel = ( 0.5_rp * ( mom(
ks,i,j) &
482 + mom(
ks+1,i,j) ) ) &
484 flux(
ks,i,j) = j33g * vel &
485 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
486 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
488 vel = ( 0.5_rp * ( mom(
ks+1,i,j) &
489 + mom(
ks+2,i,j) ) ) &
491 flux(
ks+1,i,j) = j33g * vel &
492 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
493 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) ) &
494 + gsqrt(
ks+2,i,j) * num_diff(
ks+2,i,j)
498 vel = ( 0.5_rp * ( mom(
ke-2,i,j) &
499 + mom(
ke-1,i,j) ) ) &
501 flux(
ke-2,i,j) = j33g * vel &
502 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
503 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) ) &
504 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
506 flux(
ke-1,i,j) = 0.0_rp
507 flux(
ke ,i,j) = 0.0_rp
525 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
526 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
527 real(RP),
intent(in) :: val (
ka,
ia,
ja)
528 real(RP),
intent(in) :: dens (
ka,
ia,
ja)
529 real(RP),
intent(in) :: gsqrt (
ka,
ia,
ja)
530 real(RP),
intent(in) :: j13g (
ka,
ia,
ja)
531 real(RP),
intent(in) :: mapf (
ia,
ja,2)
532 real(RP),
intent(in) :: cdz (
ka)
533 integer,
intent(in) :: iis, iie, jjs, jje
545 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i-1,j) ) ) &
547 flux(k-1,i,j) = j13g(k,i,j) / mapf(i,j,+2) * vel &
548 * ( f61 * ( val(k,i,j)+val(k-1,i,j) ) &
549 + f62 * ( val(k+1,i,j)+val(k-2,i,j) ) &
550 + f63 * ( val(k+2,i,j)+val(k-3,i,j) ) )
563 flux(
ks-1,i,j) = 0.0_rp
566 vel = ( ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i-1,j) ) ) / dens(
ks+1,i,j) &
567 + ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j) ) ) / dens(
ks ,i,j) ) * 0.5_rp
570 flux(
ks,i,j) = j13g(
ks+1,i,j) / mapf(i,j,+2) * vel &
571 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
574 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i-1,j) ) ) &
576 flux(
ke-2,i,j) = j13g(
ke-1,i,j) / mapf(i,j,+2) * vel &
577 * ( f2 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) )
579 flux(
ke-1,i,j) = 0.0_rp
596 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
597 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
598 real(RP),
intent(in) :: val (
ka,
ia,
ja)
599 real(RP),
intent(in) :: dens (
ka,
ia,
ja)
600 real(RP),
intent(in) :: gsqrt (
ka,
ia,
ja)
601 real(RP),
intent(in) :: j23g (
ka,
ia,
ja)
602 real(RP),
intent(in) :: mapf (
ia,
ja,2)
603 real(RP),
intent(in) :: cdz (
ka)
604 integer,
intent(in) :: iis, iie, jjs, jje
616 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j-1) ) ) &
618 flux(k-1,i,j) = j23g(k,i,j) / mapf(i,j,+1) * vel &
619 * ( f61 * ( val(k,i,j)+val(k-1,i,j) ) &
620 + f62 * ( val(k+1,i,j)+val(k-2,i,j) ) &
621 + f63 * ( val(k+2,i,j)+val(k-3,i,j) ) )
634 flux(
ks-1,i,j) = 0.0_rp
637 vel = ( ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j-1) ) ) / dens(
ks+1,i,j) &
638 + ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j-1) ) ) / dens(
ks ,i,j) ) * 0.5_rp
641 flux(
ks,i,j) = j23g(
ks+1,i,j) / mapf(i,j,+1) * vel &
642 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
645 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j-1) ) ) &
647 flux(
ke-2,i,j) = j23g(
ke-1,i,j) / mapf(i,j,+1) * vel &
648 * ( f2 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) )
650 flux(
ke-1,i,j) = 0.0_rp
669 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
670 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
671 real(RP),
intent(in) :: val (
ka,
ia,
ja)
672 real(RP),
intent(in) :: dens (
ka,
ia,
ja)
673 real(RP),
intent(in) :: gsqrt (
ka,
ia,
ja)
674 real(RP),
intent(in) :: mapf (
ia,
ja,2)
675 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
676 real(RP),
intent(in) :: cdz (
ka)
677 integer,
intent(in) :: iis, iie, jjs, jje
691 call check( __line__, mom(k ,i,j) )
692 call check( __line__, mom(k+1,i,j) )
694 call check( __line__, val(k,i,j) )
695 call check( __line__, val(k,i+1,j) )
697 call check( __line__, val(k,i-1,j) )
698 call check( __line__, val(k,i+2,j) )
700 call check( __line__, val(k,i-2,j) )
701 call check( __line__, val(k,i+3,j) )
704 vel = ( f2h(k,1,i_uyz) &
709 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
711 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
712 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+2) * vel &
713 * ( f61 * ( val(k,i+1,j)+val(k,i,j) ) &
714 + f62 * ( val(k,i+2,j)+val(k,i-1,j) ) &
715 + f63 * ( val(k,i+3,j)+val(k,i-2,j) ) ) &
716 + gsqrt(k,i,j) * num_diff(k,i,j)
721 k = iundef; i = iundef; j = iundef
729 flux(
ke,i,j) = 0.0_rp
733 k = iundef; i = iundef; j = iundef
750 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
751 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
752 real(RP),
intent(in) :: val (
ka,
ia,
ja)
753 real(RP),
intent(in) :: dens (
ka,
ia,
ja)
754 real(RP),
intent(in) :: gsqrt (
ka,
ia,
ja)
755 real(RP),
intent(in) :: mapf (
ia,
ja,2)
756 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
757 real(RP),
intent(in) :: cdz (
ka)
758 integer,
intent(in) :: iis, iie, jjs, jje
772 call check( __line__, mom(k ,i,j) )
773 call check( __line__, mom(k+1,i,j) )
775 call check( __line__, val(k,i,j) )
776 call check( __line__, val(k,i,j+1) )
778 call check( __line__, val(k,i,j-1) )
779 call check( __line__, val(k,i,j+2) )
781 call check( __line__, val(k,i,j-2) )
782 call check( __line__, val(k,i,j+3) )
785 vel = ( f2h(k,1,i_xvz) &
790 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
792 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
793 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+1) * vel &
794 * ( f61 * ( val(k,i,j+1)+val(k,i,j) ) &
795 + f62 * ( val(k,i,j+2)+val(k,i,j-1) ) &
796 + f63 * ( val(k,i,j+3)+val(k,i,j-2) ) ) &
797 + gsqrt(k,i,j) * num_diff(k,i,j)
802 k = iundef; i = iundef; j = iundef
810 flux(
ke,i,j) = 0.0_rp
814 k = iundef; i = iundef; j = iundef
832 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
833 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
834 real(RP),
intent(in) :: val (
ka,
ia,
ja)
835 real(RP),
intent(in) :: dens (
ka,
ia,
ja)
836 real(RP),
intent(in) :: gsqrt (
ka,
ia,
ja)
837 real(RP),
intent(in) :: j33g
838 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
839 real(RP),
intent(in) :: cdz (
ka)
840 integer,
intent(in) :: iis, iie, jjs, jje
854 call check( __line__, mom(k,i,j) )
855 call check( __line__, mom(k,i+1,j) )
857 call check( __line__, val(k,i,j) )
858 call check( __line__, val(k+1,i,j) )
860 call check( __line__, val(k-1,i,j) )
861 call check( __line__, val(k+2,i,j) )
863 call check( __line__, val(k-2,i,j) )
864 call check( __line__, val(k+3,i,j) )
867 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i+1,j) ) ) &
869 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
871 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
872 flux(k,i,j) = j33g * vel &
873 * ( f61 * ( val(k+1,i,j)+val(k,i,j) ) &
874 + f62 * ( val(k+2,i,j)+val(k-1,i,j) ) &
875 + f63 * ( val(k+3,i,j)+val(k-2,i,j) ) ) &
876 + gsqrt(k,i,j) * num_diff(k,i,j)
881 k = iundef; i = iundef; j = iundef
891 call check( __line__, mom(
ks,i ,j) )
892 call check( __line__, mom(
ks,i+1,j) )
893 call check( __line__, val(
ks+1,i,j) )
894 call check( __line__, val(
ks,i,j) )
896 call check( __line__, mom(
ks+1,i ,j) )
897 call check( __line__, mom(
ks+1,i+1,j) )
898 call check( __line__, val(
ks+3,i,j) )
899 call check( __line__, val(
ks+2,i,j) )
905 flux(
ks-1,i,j) = 0.0_rp
907 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j) ) ) &
908 / ( f2h(
ks,1,i_uyz) &
909 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
911 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
912 flux(
ks,i,j) = j33g * vel &
913 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
914 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
915 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i+1,j) ) ) &
916 / ( f2h(
ke-1,1,i_uyz) &
917 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
918 + f2h(
ke-1,2,i_uyz) &
919 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
920 flux(
ke-1,i,j) = j33g * vel &
921 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
922 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
924 vel = ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i+1,j) ) ) &
925 / ( f2h(
ks+1,1,i_uyz) &
926 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
927 + f2h(
ks+1,2,i_uyz) &
928 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
929 flux(
ks+1,i,j) = j33g * vel &
930 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
931 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) ) &
932 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
933 vel = ( 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i+1,j) ) ) &
934 / ( f2h(
ke-2,1,i_uyz) &
935 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
936 + f2h(
ke-2,2,i_uyz) &
937 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
938 flux(
ke-2,i,j) = j33g * vel &
939 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
940 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) ) &
941 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
943 flux(
ke,i,j) = 0.0_rp
947 k = iundef; i = iundef; j = iundef
963 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
964 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
965 real(RP),
intent(in) :: val (
ka,
ia,
ja)
966 real(RP),
intent(in) :: dens (
ka,
ia,
ja)
967 real(RP),
intent(in) :: gsqrt (
ka,
ia,
ja)
968 real(RP),
intent(in) :: j13g (
ka,
ia,
ja)
969 real(RP),
intent(in) :: mapf (
ia,
ja,2)
970 real(RP),
intent(in) :: cdz (
ka)
971 integer,
intent(in) :: iis, iie, jjs, jje
984 vel = ( f2h(k,1,i_uyz) &
989 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
991 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
992 flux(k,i,j) = j13g(k,i,j) / mapf(i,j,+2) * vel &
993 * ( f61 * ( val(k+1,i,j)+val(k,i,j) ) &
994 + f62 * ( val(k+2,i,j)+val(k-1,i,j) ) &
995 + f63 * ( val(k+3,i,j)+val(k-2,i,j) ) )
1009 flux(
ks-1,i,j) = 0.0_rp
1011 vel = ( f2h(
ks,1,i_uyz) &
1015 / ( f2h(
ks,1,i_uyz) &
1016 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1018 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1019 flux(
ks,i,j) = j13g(
ks,i,j) / mapf(i,j,+2) * vel &
1020 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1022 vel = ( f2h(
ke-1,1,i_uyz) &
1024 + f2h(
ke-1,2,i_uyz) &
1026 / ( f2h(
ke-1,1,i_uyz) &
1027 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1028 + f2h(
ke-1,2,i_uyz) &
1029 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1030 flux(
ke-1,i,j) = j13g(
ke-1,i,j) / mapf(i,j,+2) * vel &
1031 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1033 vel = ( f2h(
ks+1,1,i_uyz) &
1035 + f2h(
ks+1,2,i_uyz) &
1037 / ( f2h(
ks+1,1,i_uyz) &
1038 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
1039 + f2h(
ks+1,2,i_uyz) &
1040 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
1041 flux(
ks+1,i,j) = j13g(
ks+1,i,j) / mapf(i,j,+2) * vel &
1042 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1043 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
1045 vel = ( f2h(
ke-2,1,i_uyz) &
1047 + f2h(
ke-2,2,i_uyz) &
1049 / ( f2h(
ke-2,1,i_uyz) &
1050 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
1051 + f2h(
ke-2,2,i_uyz) &
1052 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
1053 flux(
ke-2,i,j) = j13g(
ke-2,i,j) / mapf(i,j,+2) * vel &
1054 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1055 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
1057 flux(
ke ,i,j) = 0.0_rp
1069 GSQRT, J23G, MAPF, &
1071 IIS, IIE, JJS, JJE )
1074 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1075 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1076 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1077 real(RP),
intent(in) :: dens (
ka,
ia,
ja)
1078 real(RP),
intent(in) :: gsqrt (
ka,
ia,
ja)
1079 real(RP),
intent(in) :: j23g (
ka,
ia,
ja)
1080 real(RP),
intent(in) :: mapf (
ia,
ja,2)
1081 real(RP),
intent(in) :: cdz (
ka)
1082 integer,
intent(in) :: iis, iie, jjs, jje
1095 vel = ( f2h(k,1,i_uyz) &
1096 * 0.25_rp * ( mom(k+1,i,j)+mom(k+1,i+1,j)+mom(k+1,i,j-1)+mom(k+1,i+1,j-1) ) &
1098 * 0.25_rp * ( mom(k,i,j)+mom(k,i+1,j)+mom(k,i,j-1)+mom(k,i+1,j-1) ) ) &
1099 / ( f2h(k,1,i_uyz) &
1100 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
1102 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
1103 flux(k,i,j) = j23g(k,i,j) / mapf(i,j,+1) * vel &
1104 * ( f61 * ( val(k+1,i,j)+val(k,i,j) ) &
1105 + f62 * ( val(k+2,i,j)+val(k-1,i,j) ) &
1106 + f63 * ( val(k+3,i,j)+val(k-2,i,j) ) )
1120 flux(
ks-1,i,j) = 0.0_rp
1122 vel = ( f2h(
ks,1,i_uyz) &
1123 * 0.25_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i+1,j)+mom(
ks+1,i,j-1)+mom(
ks+1,i+1,j-1) ) &
1125 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j)+mom(
ks,i,j-1)+mom(
ks,i+1,j-1) ) ) &
1126 / ( f2h(
ks,1,i_uyz) &
1127 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1129 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1130 flux(
ks,i,j) = j23g(
ks,i,j) / mapf(i,j,+1) * vel &
1131 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1133 vel = ( f2h(
ke-1,1,i_uyz) &
1134 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i+1,j)+mom(
ke,i,j-1)+mom(
ke,i+1,j-1) ) &
1135 + f2h(
ke-1,2,i_uyz) &
1136 * 0.25_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i+1,j)+mom(
ke-1,i,j-1)+mom(
ke-1,i+1,j-1) ) ) &
1137 / ( f2h(
ke-1,1,i_uyz) &
1138 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1139 + f2h(
ke-1,2,i_uyz) &
1140 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1141 flux(
ke-1,i,j) = j23g(
ke-1,i,j) / mapf(i,j,+1) * vel &
1142 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1144 vel = ( f2h(
ks+1,1,i_uyz) &
1145 * 0.25_rp * ( mom(
ks+2,i,j)+mom(
ks+2,i+1,j)+mom(
ks+2,i,j-1)+mom(
ks+2,i+1,j-1) ) &
1146 + f2h(
ks+1,2,i_uyz) &
1147 * 0.25_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i+1,j)+mom(
ks+1,i,j-1)+mom(
ks+1,i+1,j-1) ) ) &
1148 / ( f2h(
ks+1,1,i_uyz) &
1149 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
1150 + f2h(
ks+1,2,i_uyz) &
1151 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
1152 flux(
ks+1,i,j) = j23g(
ks+1,i,j) / mapf(i,j,+1) * vel &
1153 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1154 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
1156 vel = ( f2h(
ke-2,1,i_uyz) &
1157 * 0.25_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i+1,j)+mom(
ke-1,i,j-1)+mom(
ke-1,i+1,j-1) ) &
1158 + f2h(
ke-2,2,i_uyz) &
1159 * 0.25_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i+1,j)+mom(
ke-2,i,j-1)+mom(
ke-2,i+1,j-1) ) ) &
1160 / ( f2h(
ke-2,1,i_uyz) &
1161 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
1162 + f2h(
ke-2,2,i_uyz) &
1163 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
1164 flux(
ke-2,i,j) = j23g(
ke-2,i,j) / mapf(i,j,+1) * vel &
1165 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1166 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
1168 flux(
ke ,i,j) = 0.0_rp
1183 IIS, IIE, JJS, JJE )
1186 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1187 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1188 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1189 real(RP),
intent(in) :: dens (
ka,
ia,
ja)
1190 real(RP),
intent(in) :: gsqrt (
ka,
ia,
ja)
1191 real(RP),
intent(in) :: mapf (
ia,
ja,2)
1192 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1193 real(RP),
intent(in) :: cdz (
ka)
1194 integer,
intent(in) :: iis, iie, jjs, jje
1209 call check( __line__, mom(k,i ,j) )
1210 call check( __line__, mom(k,i-1,j) )
1212 call check( __line__, val(k,i-1,j) )
1213 call check( __line__, val(k,i,j) )
1215 call check( __line__, val(k,i-2,j) )
1216 call check( __line__, val(k,i+1,j) )
1218 call check( __line__, val(k,i-3,j) )
1219 call check( __line__, val(k,i+2,j) )
1222 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i-1,j) ) ) &
1224 flux(k,i-1,j) = gsqrt(k,i,j) / mapf(i,j,+2) * vel &
1225 * ( f61 * ( val(k,i,j)+val(k,i-1,j) ) &
1226 + f62 * ( val(k,i+1,j)+val(k,i-2,j) ) &
1227 + f63 * ( val(k,i+2,j)+val(k,i-3,j) ) ) &
1228 + gsqrt(k,i,j) * num_diff(k,i,j)
1233 k = iundef; i = iundef; j = iundef
1247 IIS, IIE, JJS, JJE )
1250 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1251 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1252 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1253 real(RP),
intent(in) :: dens (
ka,
ia,
ja)
1254 real(RP),
intent(in) :: gsqrt (
ka,
ia,
ja)
1255 real(RP),
intent(in) :: mapf (
ia,
ja,2)
1256 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1257 real(RP),
intent(in) :: cdz (
ka)
1258 integer,
intent(in) :: iis, iie, jjs, jje
1271 call check( __line__, mom(k,i ,j) )
1272 call check( __line__, mom(k,i-1,j) )
1274 call check( __line__, val(k,i,j) )
1275 call check( __line__, val(k,i,j+1) )
1277 call check( __line__, val(k,i,j-1) )
1278 call check( __line__, val(k,i,j+2) )
1280 call check( __line__, val(k,i,j-2) )
1281 call check( __line__, val(k,i,j+3) )
1284 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i+1,j) ) ) &
1285 / ( 0.25_rp * ( dens(k,i,j)+dens(k,i+1,j)+dens(k,i,j+1)+dens(k,i+1,j+1) ) )
1286 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+1) * vel &
1287 * ( f61 * ( val(k,i,j+1)+val(k,i,j) ) &
1288 + f62 * ( val(k,i,j+2)+val(k,i,j-1) ) &
1289 + f63 * ( val(k,i,j+3)+val(k,i,j-2) ) ) &
1290 + gsqrt(k,i,j) * num_diff(k,i,j)
1295 k = iundef; i = iundef; j = iundef
1311 IIS, IIE, JJS, JJE )
1314 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1315 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1316 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1317 real(RP),
intent(in) :: dens (
ka,
ia,
ja)
1318 real(RP),
intent(in) :: gsqrt (
ka,
ia,
ja)
1319 real(RP),
intent(in) :: j33g
1320 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1321 real(RP),
intent(in) :: cdz (
ka)
1322 integer,
intent(in) :: iis, iie, jjs, jje
1336 call check( __line__, mom(k,i,j) )
1337 call check( __line__, mom(k,i,j+1) )
1339 call check( __line__, val(k,i,j) )
1340 call check( __line__, val(k+1,i,j) )
1342 call check( __line__, val(k-1,i,j) )
1343 call check( __line__, val(k+2,i,j) )
1345 call check( __line__, val(k-2,i,j) )
1346 call check( __line__, val(k+3,i,j) )
1349 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j+1) ) ) &
1350 / ( f2h(k,1,i_xvz) &
1351 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
1353 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
1354 flux(k,i,j) = j33g * vel &
1355 * ( f61 * ( val(k+1,i,j)+val(k,i,j) ) &
1356 + f62 * ( val(k+2,i,j)+val(k-1,i,j) ) &
1357 + f63 * ( val(k+3,i,j)+val(k-2,i,j) ) ) &
1358 + gsqrt(k,i,j) * num_diff(k,i,j)
1363 k = iundef; i = iundef; j = iundef
1373 call check( __line__, mom(
ks,i ,j) )
1374 call check( __line__, mom(
ks,i,j+1) )
1375 call check( __line__, val(
ks+1,i,j) )
1376 call check( __line__, val(
ks,i,j) )
1378 call check( __line__, mom(
ks+1,i ,j) )
1379 call check( __line__, mom(
ks+1,i,j+1) )
1380 call check( __line__, val(
ks+3,i,j) )
1381 call check( __line__, val(
ks+2,i,j) )
1387 flux(
ks-1,i,j) = 0.0_rp
1389 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j+1) ) ) &
1390 / ( f2h(
ks,1,i_xvz) &
1391 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1393 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1394 flux(
ks,i,j) = j33g * vel &
1395 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
1396 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
1397 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j+1) ) ) &
1398 / ( f2h(
ke-1,1,i_xvz) &
1399 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1400 + f2h(
ke-1,2,i_xvz) &
1401 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1402 flux(
ke-1,i,j) = j33g * vel &
1403 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
1404 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
1406 vel = ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j+1) ) ) &
1407 / ( f2h(
ks+1,1,i_xvz) &
1408 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
1409 + f2h(
ks+1,2,i_xvz) &
1410 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
1411 flux(
ks+1,i,j) = j33g * vel &
1412 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1413 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) ) &
1414 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
1415 vel = ( 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i,j+1) ) ) &
1416 / ( f2h(
ke-2,1,i_xvz) &
1417 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
1418 + f2h(
ke-2,2,i_xvz) &
1419 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
1420 flux(
ke-2,i,j) = j33g * vel &
1421 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1422 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) ) &
1423 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
1425 flux(
ke,i,j) = 0.0_rp
1429 k = iundef; i = iundef; j = iundef
1440 GSQRT, J13G, MAPF, &
1442 IIS, IIE, JJS, JJE )
1445 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1446 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1447 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1448 real(RP),
intent(in) :: dens (
ka,
ia,
ja)
1449 real(RP),
intent(in) :: gsqrt (
ka,
ia,
ja)
1450 real(RP),
intent(in) :: j13g (
ka,
ia,
ja)
1451 real(RP),
intent(in) :: mapf (
ia,
ja,2)
1452 real(RP),
intent(in) :: cdz (
ka)
1453 integer,
intent(in) :: iis, iie, jjs, jje
1466 vel = ( f2h(k,1,i_xvz) &
1467 * 0.25_rp * ( mom(k+1,i,j)+mom(k+1,i-1,j)+mom(k+1,i,j+1)+mom(k+1,i-1,j+1) ) &
1469 * 0.25_rp * ( mom(k,i,j)+mom(k,i-1,j)+mom(k,i,j+1)+mom(k,i-1,j+1) ) ) &
1470 / ( f2h(k,1,i_xvz) &
1471 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
1473 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
1474 flux(k,i,j) = j13g(k,i,j) / mapf(i,j,+2) * vel &
1475 * ( f61 * ( val(k+1,i,j)+val(k,i,j) ) &
1476 + f62 * ( val(k+2,i,j)+val(k-1,i,j) ) &
1477 + f63 * ( val(k+3,i,j)+val(k-2,i,j) ) )
1491 flux(
ks-1,i,j) = 0.0_rp
1493 vel = ( f2h(
ks,1,i_xvz) &
1494 * 0.25_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i-1,j)+mom(
ks+1,i,j+1)+mom(
ks+1,i-1,j+1) ) &
1496 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j)+mom(
ks,i,j+1)+mom(
ks,i-1,j+1) ) ) &
1497 / ( f2h(
ks,1,i_xvz) &
1498 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1500 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1501 flux(
ks,i,j) = j13g(
ks,i,j) / mapf(i,j,+2) * vel &
1502 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1504 vel = ( f2h(
ke-1,1,i_xvz) &
1505 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i-1,j)+mom(
ke,i,j+1)+mom(
ke,i-1,j+1) ) &
1506 + f2h(
ke-1,2,i_xvz) &
1507 * 0.25_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i-1,j)+mom(
ke-1,i,j+1)+mom(
ke-1,i-1,j+1) ) ) &
1508 / ( f2h(
ke-1,1,i_xvz) &
1509 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1510 + f2h(
ke-1,2,i_xvz) &
1511 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1512 flux(
ke-1,i,j) = j13g(
ke-1,i,j) / mapf(i,j,+2) * vel &
1513 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1515 vel = ( f2h(
ks+1,1,i_xvz) &
1516 * 0.25_rp * ( mom(
ks+2,i,j)+mom(
ks+2,i-1,j)+mom(
ks+2,i,j+1)+mom(
ks+2,i-1,j+1) ) &
1517 + f2h(
ks+1,2,i_xvz) &
1518 * 0.25_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i-1,j)+mom(
ks+1,i,j+1)+mom(
ks+1,i-1,j+1) ) ) &
1519 / ( f2h(
ks+1,1,i_xvz) &
1520 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
1521 + f2h(
ks+1,2,i_xvz) &
1522 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
1523 flux(
ks+1,i,j) = j13g(
ks+1,i,j) / mapf(i,j,+2) * vel &
1524 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1525 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
1527 vel = ( f2h(
ke-2,1,i_xvz) &
1528 * 0.25_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i-1,j)+mom(
ke-1,i,j+1)+mom(
ke-1,i-1,j+1) ) &
1529 + f2h(
ke-2,2,i_xvz) &
1530 * 0.25_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i-1,j)+mom(
ke-2,i,j+1)+mom(
ke-2,i-1,j+1) ) ) &
1531 / ( f2h(
ke-2,1,i_xvz) &
1532 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
1533 + f2h(
ke-2,2,i_xvz) &
1534 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
1535 flux(
ke-2,i,j) = j13g(
ke-2,i,j) / mapf(i,j,+2) * vel &
1536 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1537 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
1539 flux(
ke ,i,j) = 0.0_rp
1551 GSQRT, J23G, MAPF, &
1553 IIS, IIE, JJS, JJE )
1556 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1557 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1558 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1559 real(RP),
intent(in) :: dens (
ka,
ia,
ja)
1560 real(RP),
intent(in) :: gsqrt (
ka,
ia,
ja)
1561 real(RP),
intent(in) :: j23g (
ka,
ia,
ja)
1562 real(RP),
intent(in) :: mapf (
ia,
ja,2)
1563 real(RP),
intent(in) :: cdz (
ka)
1564 integer,
intent(in) :: iis, iie, jjs, jje
1577 vel = ( f2h(k,1,i_xvz) &
1581 / ( f2h(k,1,i_xvz) &
1582 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
1584 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
1585 flux(k,i,j) = j23g(k,i,j) / mapf(i,j,+1) * vel &
1586 * ( f61 * ( val(k+1,i,j)+val(k,i,j) ) &
1587 + f62 * ( val(k+2,i,j)+val(k-1,i,j) ) &
1588 + f63 * ( val(k+3,i,j)+val(k-2,i,j) ) )
1602 flux(
ks-1,i,j) = 0.0_rp
1604 vel = ( f2h(
ks,1,i_xvz) &
1608 / ( f2h(
ks,1,i_xvz) &
1609 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1611 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1612 flux(
ks,i,j) = j23g(
ks,i,j) / mapf(i,j,+1) * vel &
1613 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1615 vel = ( f2h(
ke-1,1,i_xvz) &
1617 + f2h(
ke-1,2,i_xvz) &
1619 / ( f2h(
ke-1,1,i_xvz) &
1620 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1621 + f2h(
ke-1,2,i_xvz) &
1622 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1623 flux(
ke-1,i,j) = j23g(
ke-1,i,j) / mapf(i,j,+1) * vel &
1624 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1626 vel = ( f2h(
ks+1,1,i_xvz) &
1628 + f2h(
ks+1,2,i_xvz) &
1630 / ( f2h(
ks+1,1,i_xvz) &
1631 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
1632 + f2h(
ks+1,2,i_xvz) &
1633 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
1634 flux(
ks+1,i,j) = j23g(
ks+1,i,j) / mapf(i,j,+1) * vel &
1635 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1636 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
1638 vel = ( f2h(
ke-2,1,i_xvz) &
1640 + f2h(
ke-2,2,i_xvz) &
1642 / ( f2h(
ke-2,1,i_xvz) &
1643 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
1644 + f2h(
ke-2,2,i_xvz) &
1645 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
1646 flux(
ke-2,i,j) = j23g(
ke-2,i,j) / mapf(i,j,+1) * vel &
1647 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1648 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
1650 flux(
ke ,i,j) = 0.0_rp
1665 IIS, IIE, JJS, JJE )
1668 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1669 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1670 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1671 real(RP),
intent(in) :: dens (
ka,
ia,
ja)
1672 real(RP),
intent(in) :: gsqrt (
ka,
ia,
ja)
1673 real(RP),
intent(in) :: mapf (
ia,
ja,2)
1674 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1675 real(RP),
intent(in) :: cdz (
ka)
1676 integer,
intent(in) :: iis, iie, jjs, jje
1689 call check( __line__, mom(k,i ,j) )
1690 call check( __line__, mom(k,i,j-1) )
1692 call check( __line__, val(k,i,j) )
1693 call check( __line__, val(k,i+1,j) )
1695 call check( __line__, val(k,i-1,j) )
1696 call check( __line__, val(k,i+2,j) )
1698 call check( __line__, val(k,i-2,j) )
1699 call check( __line__, val(k,i+3,j) )
1702 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j+1) ) ) &
1703 / ( 0.25_rp * ( dens(k,i,j)+dens(k,i+1,j)+dens(k,i,j+1)+dens(k,i+1,j+1) ) )
1704 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+2) * vel &
1705 * ( f61 * ( val(k,i+1,j)+val(k,i,j) ) &
1706 + f62 * ( val(k,i+2,j)+val(k,i-1,j) ) &
1707 + f63 * ( val(k,i+3,j)+val(k,i-2,j) ) ) &
1708 + gsqrt(k,i,j) * num_diff(k,i,j)
1713 k = iundef; i = iundef; j = iundef
1727 IIS, IIE, JJS, JJE )
1730 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1731 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1732 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1733 real(RP),
intent(in) :: dens (
ka,
ia,
ja)
1734 real(RP),
intent(in) :: gsqrt (
ka,
ia,
ja)
1735 real(RP),
intent(in) :: mapf (
ia,
ja,2)
1736 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1737 real(RP),
intent(in) :: cdz (
ka)
1738 integer,
intent(in) :: iis, iie, jjs, jje
1753 call check( __line__, mom(k,i ,j) )
1754 call check( __line__, mom(k,i,j-1) )
1756 call check( __line__, val(k,i,j-1) )
1757 call check( __line__, val(k,i,j) )
1759 call check( __line__, val(k,i,j-2) )
1760 call check( __line__, val(k,i,j+1) )
1762 call check( __line__, val(k,i,j-3) )
1763 call check( __line__, val(k,i,j+2) )
1766 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j-1) ) ) &
1768 flux(k,i,j-1) = gsqrt(k,i,j) / mapf(i,j,+1) * vel &
1769 * ( f61 * ( val(k,i,j)+val(k,i,j-1) ) &
1770 + f62 * ( val(k,i,j+1)+val(k,i,j-2) ) &
1771 + f63 * ( val(k,i,j+2)+val(k,i,j-3) ) ) &
1772 + gsqrt(k,i,j) * num_diff(k,i,j)
1777 k = iundef; i = iundef; j = iundef
subroutine, public atmos_dyn_fvm_fluxz_xyw_cd6(flux, mom, val, DENS, GSQRT, J33G, num_diff, CDZ, FDZ, dtrk, IIS, IIE, JJS, JJE)
calculation z-flux at XYW
subroutine, public atmos_dyn_fvm_fluxx_xyw_cd6(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation X-flux at XYW
subroutine, public atmos_dyn_fvm_fluxj23_uyz_cd6(flux, mom, val, DENS, GSQRT, J23G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J23-flux at UYZ
subroutine, public atmos_dyn_fvm_fluxy_uyz_cd6(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation Y-flux at UY
subroutine, public atmos_dyn_fvm_fluxy_xyw_cd6(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation Y-flux at XYW
subroutine, public atmos_dyn_fvm_fluxj13_uyz_cd6(flux, mom, val, DENS, GSQRT, J13G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J13-flux at UYZ
subroutine, public atmos_dyn_fvm_fluxy_xyz_cd6(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation Y-flux at XYZ
integer, public ke
end point of inner domain: z, local
subroutine, public atmos_dyn_fvm_fluxz_uyz_cd6(flux, mom, val, DENS, GSQRT, J33G, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation z-flux at UY
subroutine, public check(current_line, v)
Undefined value checker.
subroutine, public atmos_dyn_fvm_fluxj23_xyw_cd6(flux, mom, val, DENS, GSQRT, J23G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J23-flux at XYW
real(rp), public const_undef
subroutine, public atmos_dyn_fvm_fluxx_xyz_cd6(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation X-flux at XYZ
integer, public ia
of whole cells: x, local, with HALO
subroutine, public atmos_dyn_fvm_fluxy_xvz_cd6(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation Y-flux at XV
subroutine, public atmos_dyn_fvm_fluxz_xvz_cd6(flux, mom, val, DENS, GSQRT, J33G, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation z-flux at XV
integer, public ka
of whole cells: z, local, with HALO
module scale_atmos_dyn_fvm_flux_cd6
integer, parameter, public const_undef2
undefined value (INT2)
subroutine, public atmos_dyn_fvm_flux_valuew_z_cd6(valW, mflx, val, GSQRT, CDZ)
value at XYW
subroutine, public atmos_dyn_fvm_fluxz_xyz_cd6(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation z-flux at XYZ
integer, public ks
start point of inner domain: z, local
subroutine, public atmos_dyn_fvm_fluxj23_xvz_cd6(flux, mom, val, DENS, GSQRT, J23G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J23-flux at XVZ
subroutine, public atmos_dyn_fvm_fluxx_xvz_cd6(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation X-flux at XV
subroutine, public atmos_dyn_fvm_fluxj13_xvz_cd6(flux, mom, val, DENS, GSQRT, J13G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J13-flux at XVZ
subroutine, public atmos_dyn_fvm_fluxj13_xyw_cd6(flux, mom, val, DENS, GSQRT, J13G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J13-flux at XYW
subroutine, public atmos_dyn_fvm_fluxx_uyz_cd6(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation X-flux at UY
integer, public ja
of whole cells: y, local, with HALO