75 #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))) 77 #define F2H(k,p,q) 0.5_RP 84 real(RP),
parameter :: f2 = 0.5_rp
87 real(RP),
parameter :: f41 = 7.0_rp/12.0_rp
88 real(RP),
parameter :: f42 = -1.0_rp/12.0_rp
91 real(RP),
parameter :: f61 = 37.0_rp/60.0_rp
92 real(RP),
parameter :: f62 = -8.0_rp/60.0_rp
93 real(RP),
parameter :: f63 = 1.0_rp/60.0_rp
107 real(RP),
intent(out) :: valW (
ka)
108 real(RP),
intent(in) :: mflx (
ka)
109 real(RP),
intent(in) :: val (
ka)
110 real(RP),
intent(in) :: GSQRT(
ka)
111 real(RP),
intent(in) :: CDZ (
ka)
118 call check( __line__, mflx(k) )
120 call check( __line__, val(k) )
121 call check( __line__, val(k+1) )
123 call check( __line__, val(k-1) )
124 call check( __line__, val(k+2) )
126 call check( __line__, val(k-2) )
127 call check( __line__, val(k+3) )
130 valw(k) = f61 * ( val(k+1)+val(k) ) &
131 + f62 * ( val(k+2)+val(k-1) ) &
132 + f63 * ( val(k+3)+val(k-2) )
140 call check( __line__, mflx(
ks) )
141 call check( __line__, val(
ks ) )
142 call check( __line__, val(
ks+1) )
143 call check( __line__, mflx(
ke-1) )
144 call check( __line__, val(
ke ) )
145 call check( __line__, val(
ke-1) )
147 call check( __line__, mflx(
ks+1) )
148 call check( __line__, val(
ks+2 ) )
149 call check( __line__, val(
ks+3) )
150 call check( __line__, mflx(
ke-2) )
151 call check( __line__, val(
ke-2 ) )
152 call check( __line__, val(
ke-3) )
156 valw(
ks) = f2 * ( val(
ks+1)+val(
ks) )
157 valw(
ke-1) = f2 * ( val(
ke)+val(
ke-1) )
159 valw(
ks+1) = f41 * ( val(
ks+2)+val(
ks+1) ) &
160 + f42 * ( val(
ks+3)+val(
ks) )
161 valw(
ke-2) = f41 * ( val(
ke-1)+val(
ke-2) ) &
162 + f42 * ( val(
ke)+val(
ke-3) )
180 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
181 real(RP),
intent(in) :: mflx (
ka,
ia,
ja)
182 real(RP),
intent(in) :: val (
ka,
ia,
ja)
183 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
184 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
185 real(RP),
intent(in) :: CDZ (
ka)
186 integer,
intent(in) :: IIS, IIE, JJS, JJE
199 call check( __line__, mflx(k,i,j) )
201 call check( __line__, val(k,i,j) )
202 call check( __line__, val(k+1,i,j) )
204 call check( __line__, val(k-1,i,j) )
205 call check( __line__, val(k+2,i,j) )
207 call check( __line__, val(k-2,i,j) )
208 call check( __line__, val(k+3,i,j) )
213 * ( f61 * ( val(k+1,i,j)+val(k,i,j) ) &
214 + f62 * ( val(k+2,i,j)+val(k-1,i,j) ) &
215 + f63 * ( val(k+3,i,j)+val(k-2,i,j) ) ) &
216 + gsqrt(k,i,j) * num_diff(k,i,j)
221 k = iundef; i = iundef; j = iundef
231 call check( __line__, mflx(
ks,i,j) )
232 call check( __line__, val(
ks ,i,j) )
233 call check( __line__, val(
ks+1,i,j) )
234 call check( __line__, mflx(
ke-1,i,j) )
235 call check( __line__, val(
ke ,i,j) )
236 call check( __line__, val(
ke-1,i,j) )
238 call check( __line__, mflx(
ks+1,i,j) )
239 call check( __line__, val(
ks+2 ,i,j) )
240 call check( __line__, val(
ks+3,i,j) )
241 call check( __line__, mflx(
ke-2,i,j) )
242 call check( __line__, val(
ke-2 ,i,j) )
243 call check( __line__, val(
ke-3,i,j) )
246 flux(
ks-1,i,j) = 0.0_rp
250 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
251 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
253 flux(
ke-1,i,j) = vel &
254 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
255 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
258 flux(
ks+1,i,j) = vel &
259 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
260 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) ) &
261 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
263 flux(
ke-2,i,j) = vel &
264 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
265 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) ) &
266 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
268 flux(
ke ,i,j) = 0.0_rp
272 k = iundef; i = iundef; j = iundef
288 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
289 real(RP),
intent(in) :: mflx (
ka,
ia,
ja)
290 real(RP),
intent(in) :: val (
ka,
ia,
ja)
291 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
292 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
293 real(RP),
intent(in) :: CDZ(
ka)
294 integer,
intent(in) :: IIS, IIE, JJS, JJE
307 call check( __line__, mflx(k,i,j) )
309 call check( __line__, val(k,i,j) )
310 call check( __line__, val(k,i+1,j) )
312 call check( __line__, val(k,i-1,j) )
313 call check( __line__, val(k,i+2,j) )
315 call check( __line__, val(k,i-2,j) )
316 call check( __line__, val(k,i+3,j) )
321 * ( f61 * ( val(k,i+1,j)+val(k,i,j) ) &
322 + f62 * ( val(k,i+2,j)+val(k,i-1,j) ) &
323 + f63 * ( val(k,i+3,j)+val(k,i-2,j) ) ) &
324 + gsqrt(k,i,j) * num_diff(k,i,j)
329 k = iundef; i = iundef; j = iundef
345 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
346 real(RP),
intent(in) :: mflx (
ka,
ia,
ja)
347 real(RP),
intent(in) :: val (
ka,
ia,
ja)
348 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
349 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
350 real(RP),
intent(in) :: CDZ(
ka)
351 integer,
intent(in) :: IIS, IIE, JJS, JJE
364 call check( __line__, mflx(k,i,j) )
366 call check( __line__, val(k,i,j) )
367 call check( __line__, val(k,i,j+1) )
369 call check( __line__, val(k,i,j-1) )
370 call check( __line__, val(k,i,j+2) )
372 call check( __line__, val(k,i,j-2) )
373 call check( __line__, val(k,i,j+3) )
378 * ( f61 * ( val(k,i,j+1)+val(k,i,j) ) &
379 + f62 * ( val(k,i,j+2)+val(k,i,j-1) ) &
380 + f63 * ( val(k,i,j+3)+val(k,i,j-2) ) ) &
381 + gsqrt(k,i,j) * num_diff(k,i,j)
386 k = iundef; i = iundef; j = iundef
405 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
406 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
407 real(RP),
intent(in) :: val (
ka,
ia,
ja)
408 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
409 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
410 real(RP),
intent(in) :: J33G
411 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
412 real(RP),
intent(in) :: CDZ (
ka)
413 real(RP),
intent(in) :: FDZ (
ka-1)
414 real(RP),
intent(in) :: dtrk
415 integer,
intent(in) :: IIS, IIE, JJS, JJE
430 call check( __line__, mom(k-1,i,j) )
431 call check( __line__, mom(k ,i,j) )
433 call check( __line__, val(k-1,i,j) )
434 call check( __line__, val(k,i,j) )
436 call check( __line__, val(k-2,i,j) )
437 call check( __line__, val(k+1,i,j) )
439 call check( __line__, val(k-3,i,j) )
440 call check( __line__, val(k+2,i,j) )
443 vel = ( 0.5_rp * ( mom(k-1,i,j) &
446 flux(k-1,i,j) = j33g * vel &
447 * ( f61 * ( val(k,i,j)+val(k-1,i,j) ) &
448 + f62 * ( val(k+1,i,j)+val(k-2,i,j) ) &
449 + f63 * ( val(k+2,i,j)+val(k-3,i,j) ) ) &
450 + gsqrt(k,i,j) * num_diff(k,i,j)
455 k = iundef; i = iundef; j = iundef
465 call check( __line__, val(
ks ,i,j) )
466 call check( __line__, val(
ks+1,i,j) )
469 call check( __line__, val(
ke-2,i,j) )
470 call check( __line__, val(
ke-1,i,j) )
476 flux(
ks-1,i,j) = 0.0_rp
478 vel = ( 0.5_rp * ( mom(
ks,i,j) &
479 + mom(
ks+1,i,j) ) ) &
481 flux(
ks,i,j) = j33g * vel &
482 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
483 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
485 vel = ( 0.5_rp * ( mom(
ks+1,i,j) &
486 + mom(
ks+2,i,j) ) ) &
488 flux(
ks+1,i,j) = j33g * vel &
489 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
490 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) ) &
491 + gsqrt(
ks+2,i,j) * num_diff(
ks+2,i,j)
495 vel = ( 0.5_rp * ( mom(
ke-2,i,j) &
496 + mom(
ke-1,i,j) ) ) &
498 flux(
ke-2,i,j) = j33g * vel &
499 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
500 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) ) &
501 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
503 flux(
ke-1,i,j) = 0.0_rp
504 flux(
ke ,i,j) = 0.0_rp
522 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
523 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
524 real(RP),
intent(in) :: val (
ka,
ia,
ja)
525 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
526 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
527 real(RP),
intent(in) :: J13G (
ka,
ia,
ja)
528 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
529 real(RP),
intent(in) :: CDZ (
ka)
530 integer,
intent(in) :: IIS, IIE, JJS, JJE
542 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i-1,j) ) ) &
544 vel = vel * j13g(k,i,j)
545 flux(k-1,i,j) = vel / mapf(i,j,+2) &
546 * ( f61 * ( val(k,i,j)+val(k-1,i,j) ) &
547 + f62 * ( val(k+1,i,j)+val(k-2,i,j) ) &
548 + f63 * ( val(k+2,i,j)+val(k-3,i,j) ) )
561 flux(
ks-1,i,j) = 0.0_rp
564 vel = ( ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i-1,j) ) ) / dens(
ks+1,i,j) &
565 + ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j) ) ) / dens(
ks ,i,j) ) * 0.5_rp
568 vel = vel * j13g(
ks+1,i,j)
569 flux(
ks,i,j) = vel / mapf(i,j,+2) &
570 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
573 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i-1,j) ) ) &
575 vel = vel * j13g(
ke-1,i,j)
576 flux(
ke-2,i,j) = vel / mapf(i,j,+2) &
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 vel = vel * j23g(k,i,j)
619 flux(k-1,i,j) = vel / mapf(i,j,+1) &
620 * ( f61 * ( val(k,i,j)+val(k-1,i,j) ) &
621 + f62 * ( val(k+1,i,j)+val(k-2,i,j) ) &
622 + f63 * ( val(k+2,i,j)+val(k-3,i,j) ) )
635 flux(
ks-1,i,j) = 0.0_rp
638 vel = ( ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j-1) ) ) / dens(
ks+1,i,j) &
639 + ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j-1) ) ) / dens(
ks ,i,j) ) * 0.5_rp
642 vel = vel * j23g(
ks+1,i,j)
643 flux(
ks,i,j) = vel / mapf(i,j,+1) &
644 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
647 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j-1) ) ) &
649 vel = vel * j23g(
ke-1,i,j)
650 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
651 * ( f2 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) )
653 flux(
ke-1,i,j) = 0.0_rp
672 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
673 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
674 real(RP),
intent(in) :: val (
ka,
ia,
ja)
675 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
676 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
677 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
678 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
679 real(RP),
intent(in) :: CDZ (
ka)
680 integer,
intent(in) :: IIS, IIE, JJS, JJE
694 call check( __line__, mom(k ,i,j) )
695 call check( __line__, mom(k+1,i,j) )
697 call check( __line__, val(k,i,j) )
698 call check( __line__, val(k,i+1,j) )
700 call check( __line__, val(k,i-1,j) )
701 call check( __line__, val(k,i+2,j) )
703 call check( __line__, val(k,i-2,j) )
704 call check( __line__, val(k,i+3,j) )
707 vel = ( f2h(k,1,
i_uyz) &
712 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
714 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
715 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+2) * vel &
716 * ( f61 * ( val(k,i+1,j)+val(k,i,j) ) &
717 + f62 * ( val(k,i+2,j)+val(k,i-1,j) ) &
718 + f63 * ( val(k,i+3,j)+val(k,i-2,j) ) ) &
719 + gsqrt(k,i,j) * num_diff(k,i,j)
724 k = iundef; i = iundef; j = iundef
732 flux(
ke,i,j) = 0.0_rp
736 k = iundef; i = iundef; j = iundef
753 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
754 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
755 real(RP),
intent(in) :: val (
ka,
ia,
ja)
756 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
757 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
758 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
759 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
760 real(RP),
intent(in) :: CDZ (
ka)
761 integer,
intent(in) :: IIS, IIE, JJS, JJE
775 call check( __line__, mom(k ,i,j) )
776 call check( __line__, mom(k+1,i,j) )
778 call check( __line__, val(k,i,j) )
779 call check( __line__, val(k,i,j+1) )
781 call check( __line__, val(k,i,j-1) )
782 call check( __line__, val(k,i,j+2) )
784 call check( __line__, val(k,i,j-2) )
785 call check( __line__, val(k,i,j+3) )
788 vel = ( f2h(k,1,
i_xvz) &
793 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
795 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
796 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+1) * vel &
797 * ( f61 * ( val(k,i,j+1)+val(k,i,j) ) &
798 + f62 * ( val(k,i,j+2)+val(k,i,j-1) ) &
799 + f63 * ( val(k,i,j+3)+val(k,i,j-2) ) ) &
800 + gsqrt(k,i,j) * num_diff(k,i,j)
805 k = iundef; i = iundef; j = iundef
813 flux(
ke,i,j) = 0.0_rp
817 k = iundef; i = iundef; j = iundef
835 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
836 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
837 real(RP),
intent(in) :: val (
ka,
ia,
ja)
838 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
839 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
840 real(RP),
intent(in) :: J33G
841 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
842 real(RP),
intent(in) :: CDZ (
ka)
843 integer,
intent(in) :: IIS, IIE, JJS, JJE
857 call check( __line__, mom(k,i,j) )
858 call check( __line__, mom(k,i+1,j) )
860 call check( __line__, val(k,i,j) )
861 call check( __line__, val(k+1,i,j) )
863 call check( __line__, val(k-1,i,j) )
864 call check( __line__, val(k+2,i,j) )
866 call check( __line__, val(k-2,i,j) )
867 call check( __line__, val(k+3,i,j) )
870 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i+1,j) ) ) &
872 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
874 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
875 flux(k,i,j) = j33g * vel &
876 * ( f61 * ( val(k+1,i,j)+val(k,i,j) ) &
877 + f62 * ( val(k+2,i,j)+val(k-1,i,j) ) &
878 + f63 * ( val(k+3,i,j)+val(k-2,i,j) ) ) &
879 + gsqrt(k,i,j) * num_diff(k,i,j)
884 k = iundef; i = iundef; j = iundef
894 call check( __line__, mom(
ks,i ,j) )
895 call check( __line__, mom(
ks,i+1,j) )
896 call check( __line__, val(
ks+1,i,j) )
897 call check( __line__, val(
ks,i,j) )
899 call check( __line__, mom(
ks+1,i ,j) )
900 call check( __line__, mom(
ks+1,i+1,j) )
901 call check( __line__, val(
ks+3,i,j) )
902 call check( __line__, val(
ks+2,i,j) )
908 flux(
ks-1,i,j) = 0.0_rp
910 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j) ) ) &
912 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
914 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
915 flux(
ks,i,j) = j33g * vel &
916 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
917 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
918 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i+1,j) ) ) &
920 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
922 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
923 flux(
ke-1,i,j) = j33g * vel &
924 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
925 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
927 vel = ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i+1,j) ) ) &
929 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
931 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
932 flux(
ks+1,i,j) = j33g * vel &
933 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
934 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) ) &
935 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
936 vel = ( 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i+1,j) ) ) &
938 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
940 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
941 flux(
ke-2,i,j) = j33g * vel &
942 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
943 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) ) &
944 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
946 flux(
ke,i,j) = 0.0_rp
950 k = iundef; i = iundef; j = iundef
966 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
967 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
968 real(RP),
intent(in) :: val (
ka,
ia,
ja)
969 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
970 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
971 real(RP),
intent(in) :: J13G (
ka,
ia,
ja)
972 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
973 real(RP),
intent(in) :: CDZ (
ka)
974 integer,
intent(in) :: IIS, IIE, JJS, JJE
987 vel = ( f2h(k,1,
i_uyz) &
992 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
994 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
995 vel = vel * j13g(k,i,j)
996 flux(k,i,j) = vel / mapf(i,j,+2) &
997 * ( f61 * ( val(k+1,i,j)+val(k,i,j) ) &
998 + f62 * ( val(k+2,i,j)+val(k-1,i,j) ) &
999 + f63 * ( val(k+3,i,j)+val(k-2,i,j) ) )
1013 flux(
ks-1,i,j) = 0.0_rp
1020 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1022 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1023 vel = vel * j13g(
ks,i,j)
1024 flux(
ks,i,j) = vel / mapf(i,j,+2) &
1025 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1032 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1034 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1035 vel = vel * j13g(
ke-1,i,j)
1036 flux(
ke-1,i,j) = vel / mapf(i,j,+2) &
1037 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1044 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
1046 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
1047 vel = vel * j13g(
ks+1,i,j)
1048 flux(
ks+1,i,j) = vel / mapf(i,j,+2) &
1049 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1050 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
1057 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
1059 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
1060 vel = vel * j13g(
ke-2,i,j)
1061 flux(
ke-2,i,j) = vel / mapf(i,j,+2) &
1062 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1063 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
1065 flux(
ke ,i,j) = 0.0_rp
1077 GSQRT, J23G, MAPF, &
1079 IIS, IIE, JJS, JJE )
1082 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1083 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1084 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1085 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1086 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1087 real(RP),
intent(in) :: J23G (
ka,
ia,
ja)
1088 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1089 real(RP),
intent(in) :: CDZ (
ka)
1090 integer,
intent(in) :: IIS, IIE, JJS, JJE
1103 vel = ( f2h(k,1,
i_uyz) &
1104 * 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) ) &
1106 * 0.25_rp * ( mom(k,i,j)+mom(k,i+1,j)+mom(k,i,j-1)+mom(k,i+1,j-1) ) ) &
1107 / ( f2h(k,1,
i_uyz) &
1108 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
1110 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
1111 vel = vel * j23g(k,i,j)
1112 flux(k,i,j) = vel / mapf(i,j,+1) &
1113 * ( f61 * ( val(k+1,i,j)+val(k,i,j) ) &
1114 + f62 * ( val(k+2,i,j)+val(k-1,i,j) ) &
1115 + f63 * ( val(k+3,i,j)+val(k-2,i,j) ) )
1129 flux(
ks-1,i,j) = 0.0_rp
1132 * 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) ) &
1134 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j)+mom(
ks,i,j-1)+mom(
ks,i+1,j-1) ) ) &
1136 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1138 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1139 vel = vel * j23g(
ks,i,j)
1140 flux(
ks,i,j) = vel / mapf(i,j,+1) &
1141 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1144 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i+1,j)+mom(
ke,i,j-1)+mom(
ke,i+1,j-1) ) &
1146 * 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) ) ) &
1148 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1150 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1151 vel = vel * j23g(
ke-1,i,j)
1152 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
1153 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1156 * 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) ) &
1158 * 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) ) ) &
1160 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
1162 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
1163 vel = vel * j23g(
ks+1,i,j)
1164 flux(
ks+1,i,j) = vel / mapf(i,j,+1) &
1165 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1166 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
1169 * 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) ) &
1171 * 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) ) ) &
1173 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
1175 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
1176 vel = vel * j23g(
ke-2,i,j)
1177 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
1178 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1179 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
1181 flux(
ke ,i,j) = 0.0_rp
1196 IIS, IIE, JJS, JJE )
1199 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1200 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1201 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1202 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1203 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1204 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1205 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1206 real(RP),
intent(in) :: CDZ (
ka)
1207 integer,
intent(in) :: IIS, IIE, JJS, JJE
1222 call check( __line__, mom(k,i ,j) )
1223 call check( __line__, mom(k,i-1,j) )
1225 call check( __line__, val(k,i-1,j) )
1226 call check( __line__, val(k,i,j) )
1228 call check( __line__, val(k,i-2,j) )
1229 call check( __line__, val(k,i+1,j) )
1231 call check( __line__, val(k,i-3,j) )
1232 call check( __line__, val(k,i+2,j) )
1235 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i-1,j) ) ) &
1237 flux(k,i-1,j) = gsqrt(k,i,j) / mapf(i,j,+2) * vel &
1238 * ( f61 * ( val(k,i,j)+val(k,i-1,j) ) &
1239 + f62 * ( val(k,i+1,j)+val(k,i-2,j) ) &
1240 + f63 * ( val(k,i+2,j)+val(k,i-3,j) ) ) &
1241 + gsqrt(k,i,j) * num_diff(k,i,j)
1246 k = iundef; i = iundef; j = iundef
1260 IIS, IIE, JJS, JJE )
1263 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1264 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1265 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1266 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1267 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1268 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1269 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1270 real(RP),
intent(in) :: CDZ (
ka)
1271 integer,
intent(in) :: IIS, IIE, JJS, JJE
1284 call check( __line__, mom(k,i ,j) )
1285 call check( __line__, mom(k,i-1,j) )
1287 call check( __line__, val(k,i,j) )
1288 call check( __line__, val(k,i,j+1) )
1290 call check( __line__, val(k,i,j-1) )
1291 call check( __line__, val(k,i,j+2) )
1293 call check( __line__, val(k,i,j-2) )
1294 call check( __line__, val(k,i,j+3) )
1297 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i+1,j) ) ) &
1298 / ( 0.25_rp * ( dens(k,i,j)+dens(k,i+1,j)+dens(k,i,j+1)+dens(k,i+1,j+1) ) )
1299 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+1) * vel &
1300 * ( f61 * ( val(k,i,j+1)+val(k,i,j) ) &
1301 + f62 * ( val(k,i,j+2)+val(k,i,j-1) ) &
1302 + f63 * ( val(k,i,j+3)+val(k,i,j-2) ) ) &
1303 + gsqrt(k,i,j) * num_diff(k,i,j)
1308 k = iundef; i = iundef; j = iundef
1324 IIS, IIE, JJS, JJE )
1327 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1328 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1329 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1330 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1331 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1332 real(RP),
intent(in) :: J33G
1333 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1334 real(RP),
intent(in) :: CDZ (
ka)
1335 integer,
intent(in) :: IIS, IIE, JJS, JJE
1349 call check( __line__, mom(k,i,j) )
1350 call check( __line__, mom(k,i,j+1) )
1352 call check( __line__, val(k,i,j) )
1353 call check( __line__, val(k+1,i,j) )
1355 call check( __line__, val(k-1,i,j) )
1356 call check( __line__, val(k+2,i,j) )
1358 call check( __line__, val(k-2,i,j) )
1359 call check( __line__, val(k+3,i,j) )
1362 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j+1) ) ) &
1363 / ( f2h(k,1,
i_xvz) &
1364 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
1366 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
1367 flux(k,i,j) = j33g * vel &
1368 * ( f61 * ( val(k+1,i,j)+val(k,i,j) ) &
1369 + f62 * ( val(k+2,i,j)+val(k-1,i,j) ) &
1370 + f63 * ( val(k+3,i,j)+val(k-2,i,j) ) ) &
1371 + gsqrt(k,i,j) * num_diff(k,i,j)
1376 k = iundef; i = iundef; j = iundef
1386 call check( __line__, mom(
ks,i ,j) )
1387 call check( __line__, mom(
ks,i,j+1) )
1388 call check( __line__, val(
ks+1,i,j) )
1389 call check( __line__, val(
ks,i,j) )
1391 call check( __line__, mom(
ks+1,i ,j) )
1392 call check( __line__, mom(
ks+1,i,j+1) )
1393 call check( __line__, val(
ks+3,i,j) )
1394 call check( __line__, val(
ks+2,i,j) )
1400 flux(
ks-1,i,j) = 0.0_rp
1402 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j+1) ) ) &
1404 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1406 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1407 flux(
ks,i,j) = j33g * vel &
1408 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
1409 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
1410 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j+1) ) ) &
1412 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1414 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1415 flux(
ke-1,i,j) = j33g * vel &
1416 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
1417 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
1419 vel = ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j+1) ) ) &
1421 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
1423 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
1424 flux(
ks+1,i,j) = j33g * vel &
1425 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1426 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) ) &
1427 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
1428 vel = ( 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i,j+1) ) ) &
1430 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
1432 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
1433 flux(
ke-2,i,j) = j33g * vel &
1434 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1435 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) ) &
1436 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
1438 flux(
ke,i,j) = 0.0_rp
1442 k = iundef; i = iundef; j = iundef
1453 GSQRT, J13G, MAPF, &
1455 IIS, IIE, JJS, JJE )
1458 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1459 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1460 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1461 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1462 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1463 real(RP),
intent(in) :: J13G (
ka,
ia,
ja)
1464 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1465 real(RP),
intent(in) :: CDZ (
ka)
1466 integer,
intent(in) :: IIS, IIE, JJS, JJE
1479 vel = ( f2h(k,1,
i_xvz) &
1480 * 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) ) &
1482 * 0.25_rp * ( mom(k,i,j)+mom(k,i-1,j)+mom(k,i,j+1)+mom(k,i-1,j+1) ) ) &
1483 / ( f2h(k,1,
i_xvz) &
1484 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
1486 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
1487 vel = vel * j13g(k,i,j)
1488 flux(k,i,j) = vel / mapf(i,j,+2) &
1489 * ( f61 * ( val(k+1,i,j)+val(k,i,j) ) &
1490 + f62 * ( val(k+2,i,j)+val(k-1,i,j) ) &
1491 + f63 * ( val(k+3,i,j)+val(k-2,i,j) ) )
1505 flux(
ks-1,i,j) = 0.0_rp
1508 * 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) ) &
1510 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j)+mom(
ks,i,j+1)+mom(
ks,i-1,j+1) ) ) &
1512 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1514 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1515 vel = vel * j13g(
ks,i,j)
1516 flux(
ks,i,j) = vel / mapf(i,j,+2) &
1517 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1520 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i-1,j)+mom(
ke,i,j+1)+mom(
ke,i-1,j+1) ) &
1522 * 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) ) ) &
1524 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1526 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1527 vel = vel * j13g(
ke-1,i,j)
1528 flux(
ke-1,i,j) = vel / mapf(i,j,+2) &
1529 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1532 * 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) ) &
1534 * 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) ) ) &
1536 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
1538 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
1539 vel = vel * j13g(
ks+1,i,j)
1540 flux(
ks+1,i,j) = vel / mapf(i,j,+2) &
1541 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1542 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
1545 * 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) ) &
1547 * 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) ) ) &
1549 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
1551 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
1552 vel = vel * j13g(
ke-2,i,j)
1553 flux(
ke-2,i,j) = vel / mapf(i,j,+2) &
1554 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1555 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
1557 flux(
ke ,i,j) = 0.0_rp
1569 GSQRT, J23G, MAPF, &
1571 IIS, IIE, JJS, JJE )
1574 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1575 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1576 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1577 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1578 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1579 real(RP),
intent(in) :: J23G (
ka,
ia,
ja)
1580 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1581 real(RP),
intent(in) :: CDZ (
ka)
1582 integer,
intent(in) :: IIS, IIE, JJS, JJE
1595 vel = ( f2h(k,1,
i_xvz) &
1599 / ( f2h(k,1,
i_xvz) &
1600 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
1602 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
1603 vel = vel * j23g(k,i,j)
1604 flux(k,i,j) = vel / mapf(i,j,+1) &
1605 * ( f61 * ( val(k+1,i,j)+val(k,i,j) ) &
1606 + f62 * ( val(k+2,i,j)+val(k-1,i,j) ) &
1607 + f63 * ( val(k+3,i,j)+val(k-2,i,j) ) )
1621 flux(
ks-1,i,j) = 0.0_rp
1628 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1630 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1631 vel = vel * j23g(
ks,i,j)
1632 flux(
ks,i,j) = vel / mapf(i,j,+1) &
1633 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1640 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1642 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1643 vel = vel * j23g(
ke-1,i,j)
1644 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
1645 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1652 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
1654 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
1655 vel = vel * j23g(
ks+1,i,j)
1656 flux(
ks+1,i,j) = vel / mapf(i,j,+1) &
1657 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1658 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
1665 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
1667 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
1668 vel = vel * j23g(
ke-2,i,j)
1669 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
1670 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1671 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
1673 flux(
ke ,i,j) = 0.0_rp
1688 IIS, IIE, JJS, JJE )
1691 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1692 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1693 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1694 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1695 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1696 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1697 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1698 real(RP),
intent(in) :: CDZ (
ka)
1699 integer,
intent(in) :: IIS, IIE, JJS, JJE
1712 call check( __line__, mom(k,i ,j) )
1713 call check( __line__, mom(k,i,j-1) )
1715 call check( __line__, val(k,i,j) )
1716 call check( __line__, val(k,i+1,j) )
1718 call check( __line__, val(k,i-1,j) )
1719 call check( __line__, val(k,i+2,j) )
1721 call check( __line__, val(k,i-2,j) )
1722 call check( __line__, val(k,i+3,j) )
1725 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j+1) ) ) &
1726 / ( 0.25_rp * ( dens(k,i,j)+dens(k,i+1,j)+dens(k,i,j+1)+dens(k,i+1,j+1) ) )
1727 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+2) * vel &
1728 * ( f61 * ( val(k,i+1,j)+val(k,i,j) ) &
1729 + f62 * ( val(k,i+2,j)+val(k,i-1,j) ) &
1730 + f63 * ( val(k,i+3,j)+val(k,i-2,j) ) ) &
1731 + gsqrt(k,i,j) * num_diff(k,i,j)
1736 k = iundef; i = iundef; j = iundef
1750 IIS, IIE, JJS, JJE )
1753 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1754 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1755 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1756 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1757 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1758 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1759 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1760 real(RP),
intent(in) :: CDZ (
ka)
1761 integer,
intent(in) :: IIS, IIE, JJS, JJE
1776 call check( __line__, mom(k,i ,j) )
1777 call check( __line__, mom(k,i,j-1) )
1779 call check( __line__, val(k,i,j-1) )
1780 call check( __line__, val(k,i,j) )
1782 call check( __line__, val(k,i,j-2) )
1783 call check( __line__, val(k,i,j+1) )
1785 call check( __line__, val(k,i,j-3) )
1786 call check( __line__, val(k,i,j+2) )
1789 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j-1) ) ) &
1791 flux(k,i,j-1) = gsqrt(k,i,j) / mapf(i,j,+1) * vel &
1792 * ( f61 * ( val(k,i,j)+val(k,i,j-1) ) &
1793 + f62 * ( val(k,i,j+1)+val(k,i,j-2) ) &
1794 + f63 * ( val(k,i,j+2)+val(k,i,j-3) ) ) &
1795 + gsqrt(k,i,j) * num_diff(k,i,j)
1800 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
integer, public ia
of whole cells: x, local, with HALO
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 ja
of whole cells: y, local, with HALO
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
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
module atmosphere / grid / cartesC index
integer, public ke
end point of inner domain: z, local
module scale_atmos_dyn_fvm_flux_cd6
integer, parameter, public const_undef2
undefined value (INT2)
integer, public ks
start point of inner domain: z, local
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
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
real(rp), public const_eps
small number
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
integer, public ka
of whole cells: z, local, with HALO
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