77 #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))) 79 #define F2H(k,p,q) 0.5_RP 86 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) )
159 valw(
ks) = f2 * ( val(
ks+1)+val(
ks) )
160 valw(
ke-1) = f2 * ( val(
ke)+val(
ke-1) )
162 valw(
ks+1) = f41 * ( val(
ks+2)+val(
ks+1) ) &
163 + f42 * ( val(
ks+3)+val(
ks) )
164 valw(
ke-2) = f41 * ( val(
ke-1)+val(
ke-2) ) &
165 + f42 * ( val(
ke)+val(
ke-3) )
182 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
183 real(RP),
intent(in) :: mflx (
ka,
ia,
ja)
184 real(RP),
intent(in) :: val (
ka,
ia,
ja)
185 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
187 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
189 real(RP),
intent(in) :: CDZ (
ka)
190 integer,
intent(in) :: IIS, IIE, JJS, JJE
201 call check( __line__, mflx(k,i,j) )
203 call check( __line__, val(k,i,j) )
204 call check( __line__, val(k+1,i,j) )
206 call check( __line__, val(k-1,i,j) )
207 call check( __line__, val(k+2,i,j) )
209 call check( __line__, val(k-2,i,j) )
210 call check( __line__, val(k+3,i,j) )
215 * ( f61 * ( val(k+1,i,j)+val(k,i,j) ) &
216 + f62 * ( val(k+2,i,j)+val(k-1,i,j) ) &
217 + f63 * ( val(k+3,i,j)+val(k-2,i,j) ) ) &
218 + gsqrt(k,i,j) * num_diff(k,i,j)
223 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
290 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
291 real(RP),
intent(in) :: mflx (
ka,
ia,
ja)
292 real(RP),
intent(in) :: val (
ka,
ia,
ja)
293 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
295 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
297 real(RP),
intent(in) :: CDZ(
ka)
298 integer,
intent(in) :: IIS, IIE, JJS, JJE
309 call check( __line__, mflx(k,i,j) )
311 call check( __line__, val(k,i,j) )
312 call check( __line__, val(k,i+1,j) )
314 call check( __line__, val(k,i-1,j) )
315 call check( __line__, val(k,i+2,j) )
317 call check( __line__, val(k,i-2,j) )
318 call check( __line__, val(k,i+3,j) )
323 * ( f61 * ( val(k,i+1,j)+val(k,i,j) ) &
324 + f62 * ( val(k,i+2,j)+val(k,i-1,j) ) &
325 + f63 * ( val(k,i+3,j)+val(k,i-2,j) ) ) &
326 + gsqrt(k,i,j) * num_diff(k,i,j)
331 k = iundef; i = iundef; j = iundef
349 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
350 real(RP),
intent(in) :: mflx (
ka,
ia,
ja)
351 real(RP),
intent(in) :: val (
ka,
ia,
ja)
352 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
354 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
356 real(RP),
intent(in) :: CDZ(
ka)
357 integer,
intent(in) :: IIS, IIE, JJS, JJE
368 call check( __line__, mflx(k,i,j) )
370 call check( __line__, val(k,i,j) )
371 call check( __line__, val(k,i,j+1) )
373 call check( __line__, val(k,i,j-1) )
374 call check( __line__, val(k,i,j+2) )
376 call check( __line__, val(k,i,j-2) )
377 call check( __line__, val(k,i,j+3) )
382 * ( f61 * ( val(k,i,j+1)+val(k,i,j) ) &
383 + f62 * ( val(k,i,j+2)+val(k,i,j-1) ) &
384 + f63 * ( val(k,i,j+3)+val(k,i,j-2) ) ) &
385 + gsqrt(k,i,j) * num_diff(k,i,j)
390 k = iundef; i = iundef; j = iundef
411 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
412 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
413 real(RP),
intent(in) :: val (
ka,
ia,
ja)
414 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
415 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
416 real(RP),
intent(in) :: J33G
418 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
420 real(RP),
intent(in) :: CDZ (
ka)
421 real(RP),
intent(in) :: FDZ (
ka-1)
422 real(RP),
intent(in) :: dtrk
423 integer,
intent(in) :: IIS, IIE, JJS, JJE
437 call check( __line__, mom(k-1,i,j) )
438 call check( __line__, mom(k ,i,j) )
440 call check( __line__, val(k-1,i,j) )
441 call check( __line__, val(k,i,j) )
443 call check( __line__, val(k-2,i,j) )
444 call check( __line__, val(k+1,i,j) )
446 call check( __line__, val(k-3,i,j) )
447 call check( __line__, val(k+2,i,j) )
450 vel = ( 0.5_rp * ( mom(k-1,i,j) &
453 flux(k-1,i,j) = j33g * vel &
454 * ( f61 * ( val(k,i,j)+val(k-1,i,j) ) &
455 + f62 * ( val(k+1,i,j)+val(k-2,i,j) ) &
456 + f63 * ( val(k+2,i,j)+val(k-3,i,j) ) ) &
457 + gsqrt(k,i,j) * num_diff(k,i,j)
462 k = iundef; i = iundef; j = iundef
470 call check( __line__, val(
ks ,i,j) )
471 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) )
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 * ( f41 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
483 + f42 * ( val(
ks+2,i,j)+val(
ks-1,i,j) ) ) &
484 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
488 sw = sign( 1.0_rp, mom(
ks,i,j) )
489 flux(
ks ,i,j) = sw * min( sw*flux(
ks,i,j), sw*val(
ks,i,j)*gsqrt(
ks,i,j)*fdz(
ks)/dtrk )
492 vel = ( 0.5_rp * ( mom(
ke-2,i,j) &
493 + mom(
ke-1,i,j) ) ) &
495 flux(
ke-2,i,j) = j33g * vel &
496 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
497 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) ) &
498 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
500 flux(
ke-1,i,j) = 0.0_rp
501 flux(
ke ,i,j) = 0.0_rp
519 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
520 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
521 real(RP),
intent(in) :: val (
ka,
ia,
ja)
522 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
523 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
524 real(RP),
intent(in) :: J13G (
ka,
ia,
ja)
525 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
526 real(RP),
intent(in) :: CDZ (
ka)
527 integer,
intent(in) :: IIS, IIE, JJS, JJE
537 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i-1,j) ) ) &
539 flux(k-1,i,j) = j13g(k,i,j) / mapf(i,j,+2) * vel &
540 * ( f61 * ( val(k,i,j)+val(k-1,i,j) ) &
541 + f62 * ( val(k+1,i,j)+val(k-2,i,j) ) &
542 + f63 * ( val(k+2,i,j)+val(k-3,i,j) ) )
550 flux(
ks-1,i,j) = 0.0_rp
552 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j) ) ) &
554 flux(
ks,i,j) = j13g(
ks,i,j) / mapf(i,j,+2) * vel &
555 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
556 vel = ( 0.5_rp * ( mom(
ke,i,j)+mom(
ke,i-1,j) ) ) &
558 flux(
ke-2,i,j) = j13g(
ke,i,j) / mapf(i,j,+2) * vel &
559 * ( f2 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) )
561 flux(
ke-1,i,j) = 0.0_rp
578 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
579 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
580 real(RP),
intent(in) :: val (
ka,
ia,
ja)
581 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
582 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
583 real(RP),
intent(in) :: J23G (
ka,
ia,
ja)
584 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
585 real(RP),
intent(in) :: CDZ (
ka)
586 integer,
intent(in) :: IIS, IIE, JJS, JJE
596 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j-1) ) ) &
598 flux(k-1,i,j) = j23g(k,i,j) / mapf(i,j,+1) * vel &
599 * ( f61 * ( val(k,i,j)+val(k-1,i,j) ) &
600 + f62 * ( val(k+1,i,j)+val(k-2,i,j) ) &
601 + f63 * ( val(k+2,i,j)+val(k-3,i,j) ) )
609 flux(
ks-1,i,j) = 0.0_rp
611 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j-1) ) ) &
613 flux(
ks,i,j) = j23g(
ks,i,j) / mapf(i,j,+1) * vel &
614 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
615 vel = ( 0.5_rp * ( mom(
ke,i,j)+mom(
ke,i,j-1) ) ) &
617 flux(
ke-2,i,j) = j23g(
ke,i,j) / mapf(i,j,+1) * vel &
618 * ( f2 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) )
620 flux(
ke-1,i,j) = 0.0_rp
641 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
642 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
643 real(RP),
intent(in) :: val (
ka,
ia,
ja)
644 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
645 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
646 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
648 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
650 real(RP),
intent(in) :: CDZ (
ka)
651 integer,
intent(in) :: IIS, IIE, JJS, JJE
662 call check( __line__, mom(k ,i,j) )
663 call check( __line__, mom(k+1,i,j) )
665 call check( __line__, val(k,i,j) )
666 call check( __line__, val(k,i+1,j) )
668 call check( __line__, val(k,i-1,j) )
669 call check( __line__, val(k,i+2,j) )
671 call check( __line__, val(k,i-2,j) )
672 call check( __line__, val(k,i+3,j) )
675 vel = ( f2h(k,1,i_uyz) &
680 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
682 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
683 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+2) * vel &
684 * ( f61 * ( val(k,i+1,j)+val(k,i,j) ) &
685 + f62 * ( val(k,i+2,j)+val(k,i-1,j) ) &
686 + f63 * ( val(k,i+3,j)+val(k,i-2,j) ) ) &
687 + gsqrt(k,i,j) * num_diff(k,i,j)
692 k = iundef; i = iundef; j = iundef
698 flux(
ke,i,j) = 0.0_rp
702 k = iundef; i = iundef; j = iundef
721 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
722 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
723 real(RP),
intent(in) :: val (
ka,
ia,
ja)
724 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
725 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
726 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
728 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
730 real(RP),
intent(in) :: CDZ (
ka)
731 integer,
intent(in) :: IIS, IIE, JJS, JJE
742 call check( __line__, mom(k ,i,j) )
743 call check( __line__, mom(k+1,i,j) )
745 call check( __line__, val(k,i,j) )
746 call check( __line__, val(k,i,j+1) )
748 call check( __line__, val(k,i,j-1) )
749 call check( __line__, val(k,i,j+2) )
751 call check( __line__, val(k,i,j-2) )
752 call check( __line__, val(k,i,j+3) )
755 vel = ( f2h(k,1,i_xvz) &
760 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
762 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
763 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+1) * vel &
764 * ( f61 * ( val(k,i,j+1)+val(k,i,j) ) &
765 + f62 * ( val(k,i,j+2)+val(k,i,j-1) ) &
766 + f63 * ( val(k,i,j+3)+val(k,i,j-2) ) ) &
767 + gsqrt(k,i,j) * num_diff(k,i,j)
772 k = iundef; i = iundef; j = iundef
778 flux(
ke,i,j) = 0.0_rp
782 k = iundef; i = iundef; j = iundef
802 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
803 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
804 real(RP),
intent(in) :: val (
ka,
ia,
ja)
805 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
806 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
807 real(RP),
intent(in) :: J33G
809 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
811 real(RP),
intent(in) :: CDZ (
ka)
812 integer,
intent(in) :: IIS, IIE, JJS, JJE
823 call check( __line__, mom(k,i,j) )
824 call check( __line__, mom(k,i+1,j) )
826 call check( __line__, val(k,i,j) )
827 call check( __line__, val(k+1,i,j) )
829 call check( __line__, val(k-1,i,j) )
830 call check( __line__, val(k+2,i,j) )
832 call check( __line__, val(k-2,i,j) )
833 call check( __line__, val(k+3,i,j) )
836 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i+1,j) ) ) &
838 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
840 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
841 flux(k,i,j) = j33g * vel &
842 * ( f61 * ( val(k+1,i,j)+val(k,i,j) ) &
843 + f62 * ( val(k+2,i,j)+val(k-1,i,j) ) &
844 + f63 * ( val(k+3,i,j)+val(k-2,i,j) ) ) &
845 + gsqrt(k,i,j) * num_diff(k,i,j)
850 k = iundef; i = iundef; j = iundef
858 call check( __line__, mom(
ks,i ,j) )
859 call check( __line__, mom(
ks,i+1,j) )
860 call check( __line__, val(
ks+1,i,j) )
861 call check( __line__, val(
ks,i,j) )
863 call check( __line__, mom(
ks+1,i ,j) )
864 call check( __line__, mom(
ks+1,i+1,j) )
865 call check( __line__, val(
ks+3,i,j) )
866 call check( __line__, val(
ks+2,i,j) )
869 flux(
ks-1,i,j) = 0.0_rp
871 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j) ) ) &
872 / ( f2h(
ks,1,i_xyz) &
873 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
875 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
876 flux(
ks,i,j) = j33g * vel &
877 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
878 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
879 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i+1,j) ) ) &
880 / ( f2h(
ke-1,1,i_xyz) &
881 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
882 + f2h(
ke-1,2,i_xyz) &
883 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
884 flux(
ke-1,i,j) = j33g * vel &
885 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
886 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
888 vel = ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i+1,j) ) ) &
889 / ( f2h(
ks+1,1,i_xyz) &
890 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
891 + f2h(
ks+1,2,i_xyz) &
892 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
893 flux(
ks+1,i,j) = j33g * vel &
894 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
895 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) ) &
896 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
897 vel = ( 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i+1,j) ) ) &
898 / ( f2h(
ke-2,1,i_xyz) &
899 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
900 + f2h(
ke-2,2,i_xyz) &
901 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
902 flux(
ke-2,i,j) = j33g * vel &
903 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
904 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) ) &
905 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
907 flux(
ke,i,j) = 0.0_rp
911 k = iundef; i = iundef; j = iundef
927 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
928 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
929 real(RP),
intent(in) :: val (
ka,
ia,
ja)
930 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
931 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
932 real(RP),
intent(in) :: J13G (
ka,
ia,
ja)
933 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
934 real(RP),
intent(in) :: CDZ (
ka)
935 integer,
intent(in) :: IIS, IIE, JJS, JJE
945 vel = ( f2h(k,1,i_uyz) &
950 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
952 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
953 flux(k,i,j) = j13g(k,i,j) / mapf(i,j,+2) * vel &
954 * ( f61 * ( val(k+1,i,j)+val(k,i,j) ) &
955 + f62 * ( val(k+2,i,j)+val(k-1,i,j) ) &
956 + f63 * ( val(k+3,i,j)+val(k-2,i,j) ) )
964 flux(
ks-1,i,j) = 0.0_rp
966 vel = ( f2h(
ks,1,i_uyz) &
970 / ( f2h(
ks,1,i_xyz) &
971 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
973 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
974 flux(
ks,i,j) = j13g(
ks,i,j) / mapf(i,j,+2) * vel &
975 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
976 vel = ( f2h(
ke-1,1,i_uyz) &
978 + f2h(
ke-1,2,i_uyz) &
980 / ( f2h(
ke-1,1,i_xyz) &
981 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
982 + f2h(
ke-1,2,i_xyz) &
983 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
984 flux(
ke-1,i,j) = j13g(
ke-1,i,j) / mapf(i,j,+2) * vel &
985 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
987 vel = ( f2h(
ks+1,1,i_uyz) &
989 + f2h(
ks+1,2,i_uyz) &
991 / ( f2h(
ks+1,1,i_xyz) &
992 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
993 + f2h(
ks+1,2,i_xyz) &
994 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
995 flux(
ks+1,i,j) = j13g(
ks+1,i,j) / mapf(i,j,+2) * vel &
996 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
997 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
998 vel = ( f2h(
ke-2,1,i_uyz) &
1000 + f2h(
ke-2,2,i_uyz) &
1002 / ( f2h(
ke-2,1,i_xyz) &
1003 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
1004 + f2h(
ke-2,2,i_xyz) &
1005 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
1006 flux(
ke-2,i,j) = j13g(
ke-2,i,j) / mapf(i,j,+2) * vel &
1007 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1008 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
1010 flux(
ke ,i,j) = 0.0_rp
1022 GSQRT, J23G, MAPF, &
1024 IIS, IIE, JJS, JJE )
1027 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
1028 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1029 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1030 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1031 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1032 real(RP),
intent(in) :: J23G (
ka,
ia,
ja)
1033 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1034 real(RP),
intent(in) :: CDZ (
ka)
1035 integer,
intent(in) :: IIS, IIE, JJS, JJE
1045 vel = ( f2h(k,1,i_xvz) &
1046 * 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) ) &
1048 * 0.25_rp * ( mom(k,i,j)+mom(k,i+1,j)+mom(k,i,j-1)+mom(k,i+1,j-1) ) ) &
1049 / ( f2h(k,1,i_xyz) &
1050 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
1052 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
1053 flux(k,i,j) = j23g(k,i,j) / mapf(i,j,+1) * vel &
1054 * ( f61 * ( val(k+1,i,j)+val(k,i,j) ) &
1055 + f62 * ( val(k+2,i,j)+val(k-1,i,j) ) &
1056 + f63 * ( val(k+3,i,j)+val(k-2,i,j) ) )
1064 flux(
ks-1,i,j) = 0.0_rp
1066 vel = ( f2h(
ks,1,i_xvz) &
1067 * 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) ) &
1069 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j)+mom(
ks,i,j-1)+mom(
ks,i+1,j-1) ) ) &
1070 / ( f2h(
ks,1,i_xyz) &
1071 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1073 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1074 flux(
ks,i,j) = j23g(
ks,i,j) / mapf(i,j,+1) * vel &
1075 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1076 vel = ( f2h(
ke-1,1,i_xvz) &
1077 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i+1,j)+mom(
ke,i,j-1)+mom(
ke,i+1,j-1) ) &
1078 + f2h(
ke-1,2,i_xvz) &
1079 * 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) ) ) &
1080 / ( f2h(
ke-1,1,i_xyz) &
1081 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1082 + f2h(
ke-1,2,i_xyz) &
1083 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1084 flux(
ke-1,i,j) = j23g(
ke-1,i,j) / mapf(i,j,+1) * vel &
1085 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1087 vel = ( f2h(
ks+1,1,i_xvz) &
1088 * 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) ) &
1089 + f2h(
ks+1,2,i_xvz) &
1090 * 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) ) ) &
1091 / ( f2h(
ks+1,1,i_xyz) &
1092 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
1093 + f2h(
ks+1,2,i_xyz) &
1094 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
1095 flux(
ks+1,i,j) = j23g(
ks+1,i,j) / mapf(i,j,+1) * vel &
1096 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1097 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
1098 vel = ( f2h(
ke-2,1,i_xvz) &
1099 * 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) ) &
1100 + f2h(
ke-2,2,i_xvz) &
1101 * 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) ) ) &
1102 / ( f2h(
ke-2,1,i_xyz) &
1103 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
1104 + f2h(
ke-2,2,i_xyz) &
1105 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
1106 flux(
ke-2,i,j) = j23g(
ke-2,i,j) / mapf(i,j,+1) * vel &
1107 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1108 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
1110 flux(
ke ,i,j) = 0.0_rp
1127 IIS, IIE, JJS, JJE )
1130 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
1131 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1132 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1133 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1134 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1135 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1137 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1139 real(RP),
intent(in) :: CDZ (
ka)
1140 integer,
intent(in) :: IIS, IIE, JJS, JJE
1153 call check( __line__, mom(k,i ,j) )
1154 call check( __line__, mom(k,i-1,j) )
1156 call check( __line__, val(k,i-1,j) )
1157 call check( __line__, val(k,i,j) )
1159 call check( __line__, val(k,i-2,j) )
1160 call check( __line__, val(k,i+1,j) )
1162 call check( __line__, val(k,i-3,j) )
1163 call check( __line__, val(k,i+2,j) )
1166 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i-1,j) ) ) &
1168 flux(k,i-1,j) = gsqrt(k,i,j) / mapf(i,j,+2) * vel &
1169 * ( f61 * ( val(k,i,j)+val(k,i-1,j) ) &
1170 + f62 * ( val(k,i+1,j)+val(k,i-2,j) ) &
1171 + f63 * ( val(k,i+2,j)+val(k,i-3,j) ) ) &
1172 + gsqrt(k,i,j) * num_diff(k,i,j)
1177 k = iundef; i = iundef; j = iundef
1193 IIS, IIE, JJS, JJE )
1196 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
1197 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1198 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1199 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1200 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1201 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1203 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1205 real(RP),
intent(in) :: CDZ (
ka)
1206 integer,
intent(in) :: IIS, IIE, JJS, JJE
1217 call check( __line__, mom(k,i ,j) )
1218 call check( __line__, mom(k,i-1,j) )
1220 call check( __line__, val(k,i,j) )
1221 call check( __line__, val(k,i,j+1) )
1223 call check( __line__, val(k,i,j-1) )
1224 call check( __line__, val(k,i,j+2) )
1226 call check( __line__, val(k,i,j-2) )
1227 call check( __line__, val(k,i,j+3) )
1230 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i+1,j) ) ) &
1231 / ( 0.25_rp * ( dens(k,i,j)+dens(k,i+1,j)+dens(k,i,j+1)+dens(k,i+1,j+1) ) )
1232 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+1) * vel &
1233 * ( f61 * ( val(k,i,j+1)+val(k,i,j) ) &
1234 + f62 * ( val(k,i,j+2)+val(k,i,j-1) ) &
1235 + f63 * ( val(k,i,j+3)+val(k,i,j-2) ) ) &
1236 + gsqrt(k,i,j) * num_diff(k,i,j)
1241 k = iundef; i = iundef; j = iundef
1259 IIS, IIE, JJS, JJE )
1262 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
1263 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1264 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1265 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1266 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1267 real(RP),
intent(in) :: J33G
1269 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1271 real(RP),
intent(in) :: CDZ (
ka)
1272 integer,
intent(in) :: IIS, IIE, JJS, JJE
1283 call check( __line__, mom(k,i,j) )
1284 call check( __line__, mom(k,i,j+1) )
1286 call check( __line__, val(k,i,j) )
1287 call check( __line__, val(k+1,i,j) )
1289 call check( __line__, val(k-1,i,j) )
1290 call check( __line__, val(k+2,i,j) )
1292 call check( __line__, val(k-2,i,j) )
1293 call check( __line__, val(k+3,i,j) )
1296 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j+1) ) ) &
1297 / ( f2h(k,1,i_xyz) &
1298 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
1300 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
1301 flux(k,i,j) = j33g * vel &
1302 * ( f61 * ( val(k+1,i,j)+val(k,i,j) ) &
1303 + f62 * ( val(k+2,i,j)+val(k-1,i,j) ) &
1304 + f63 * ( val(k+3,i,j)+val(k-2,i,j) ) ) &
1305 + gsqrt(k,i,j) * num_diff(k,i,j)
1310 k = iundef; i = iundef; j = iundef
1318 call check( __line__, mom(
ks,i ,j) )
1319 call check( __line__, mom(
ks,i,j+1) )
1320 call check( __line__, val(
ks+1,i,j) )
1321 call check( __line__, val(
ks,i,j) )
1323 call check( __line__, mom(
ks+1,i ,j) )
1324 call check( __line__, mom(
ks+1,i,j+1) )
1325 call check( __line__, val(
ks+3,i,j) )
1326 call check( __line__, val(
ks+2,i,j) )
1329 flux(
ks-1,i,j) = 0.0_rp
1331 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j+1) ) ) &
1332 / ( f2h(
ks,1,i_xyz) &
1333 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1335 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1336 flux(
ks,i,j) = j33g * vel &
1337 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
1338 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
1339 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j+1) ) ) &
1340 / ( f2h(
ke-1,1,i_xyz) &
1341 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1342 + f2h(
ke-1,2,i_xyz) &
1343 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1344 flux(
ke-1,i,j) = j33g * vel &
1345 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
1346 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
1348 vel = ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j+1) ) ) &
1349 / ( f2h(
ks+1,1,i_xyz) &
1350 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
1351 + f2h(
ks+1,2,i_xyz) &
1352 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
1353 flux(
ks+1,i,j) = j33g * vel &
1354 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1355 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) ) &
1356 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
1357 vel = ( 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i,j+1) ) ) &
1358 / ( f2h(
ke-2,1,i_xyz) &
1359 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
1360 + f2h(
ke-2,2,i_xyz) &
1361 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
1362 flux(
ke-2,i,j) = j33g * vel &
1363 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1364 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) ) &
1365 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
1367 flux(
ke,i,j) = 0.0_rp
1371 k = iundef; i = iundef; j = iundef
1382 GSQRT, J13G, MAPF, &
1384 IIS, IIE, JJS, JJE )
1387 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
1388 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1389 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1390 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1391 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1392 real(RP),
intent(in) :: J13G (
ka,
ia,
ja)
1393 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1394 real(RP),
intent(in) :: CDZ (
ka)
1395 integer,
intent(in) :: IIS, IIE, JJS, JJE
1405 vel = ( f2h(k,1,i_uyz) &
1406 * 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) ) &
1408 * 0.25_rp * ( mom(k,i,j)+mom(k,i-1,j)+mom(k,i,j+1)+mom(k,i-1,j+1) ) ) &
1409 / ( f2h(k,1,i_xyz) &
1410 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
1412 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
1413 flux(k,i,j) = j13g(k,i,j) / mapf(i,j,+2) * vel &
1414 * ( f61 * ( val(k+1,i,j)+val(k,i,j) ) &
1415 + f62 * ( val(k+2,i,j)+val(k-1,i,j) ) &
1416 + f63 * ( val(k+3,i,j)+val(k-2,i,j) ) )
1424 flux(
ks-1,i,j) = 0.0_rp
1426 vel = ( f2h(
ks,1,i_uyz) &
1427 * 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) ) &
1429 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j)+mom(
ks,i,j+1)+mom(
ks,i-1,j+1) ) ) &
1430 / ( f2h(
ks,1,i_xyz) &
1431 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1433 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1434 flux(
ks,i,j) = j13g(
ks,i,j) / mapf(i,j,+2) * vel &
1435 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1436 vel = ( f2h(
ke-1,1,i_uyz) &
1437 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i-1,j)+mom(
ke,i,j+1)+mom(
ke,i-1,j+1) ) &
1438 + f2h(
ke-1,2,i_uyz) &
1439 * 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) ) ) &
1440 / ( f2h(
ke-1,1,i_xyz) &
1441 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1442 + f2h(
ke-1,2,i_xyz) &
1443 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1444 flux(
ke-1,i,j) = j13g(
ke-1,i,j) / mapf(i,j,+2) * vel &
1445 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1447 vel = ( f2h(
ks+1,1,i_uyz) &
1448 * 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) ) &
1449 + f2h(
ks+1,2,i_uyz) &
1450 * 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) ) ) &
1451 / ( f2h(
ks+1,1,i_xyz) &
1452 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
1453 + f2h(
ks+1,2,i_xyz) &
1454 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
1455 flux(
ks+1,i,j) = j13g(
ks+1,i,j) / mapf(i,j,+2) * vel &
1456 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1457 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
1458 vel = ( f2h(
ke-2,1,i_uyz) &
1459 * 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) ) &
1460 + f2h(
ke-2,2,i_uyz) &
1461 * 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) ) ) &
1462 / ( f2h(
ke-2,1,i_xyz) &
1463 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
1464 + f2h(
ke-2,2,i_xyz) &
1465 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
1466 flux(
ke-2,i,j) = j13g(
ke-2,i,j) / mapf(i,j,+2) * vel &
1467 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1468 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
1470 flux(
ke ,i,j) = 0.0_rp
1482 GSQRT, J23G, MAPF, &
1484 IIS, IIE, JJS, JJE )
1487 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
1488 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1489 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1490 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1491 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1492 real(RP),
intent(in) :: J23G (
ka,
ia,
ja)
1493 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1494 real(RP),
intent(in) :: CDZ (
ka)
1495 integer,
intent(in) :: IIS, IIE, JJS, JJE
1505 vel = ( f2h(k,1,i_xvz) &
1509 / ( f2h(k,1,i_xyz) &
1510 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
1512 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
1513 flux(k,i,j) = j23g(k,i,j) / mapf(i,j,+1) * vel &
1514 * ( f61 * ( val(k+1,i,j)+val(k,i,j) ) &
1515 + f62 * ( val(k+2,i,j)+val(k-1,i,j) ) &
1516 + f63 * ( val(k+3,i,j)+val(k-2,i,j) ) )
1524 flux(
ks-1,i,j) = 0.0_rp
1526 vel = ( f2h(
ks,1,i_xvz) &
1530 / ( f2h(
ks,1,i_xyz) &
1531 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1533 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1534 flux(
ks,i,j) = j23g(
ks,i,j) / mapf(i,j,+1) * vel &
1535 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1536 vel = ( f2h(
ke-1,1,i_xvz) &
1538 + f2h(
ke-1,2,i_xvz) &
1540 / ( f2h(
ke-1,1,i_xyz) &
1541 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1542 + f2h(
ke-1,2,i_xyz) &
1543 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1544 flux(
ke-1,i,j) = j23g(
ke-1,i,j) / mapf(i,j,+1) * vel &
1545 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1547 vel = ( f2h(
ks+1,1,i_xvz) &
1549 + f2h(
ks+1,2,i_xvz) &
1551 / ( f2h(
ks+1,1,i_xyz) &
1552 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
1553 + f2h(
ks+1,2,i_xyz) &
1554 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
1555 flux(
ks+1,i,j) = j23g(
ks+1,i,j) / mapf(i,j,+1) * vel &
1556 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1557 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
1558 vel = ( f2h(
ke-2,1,i_xvz) &
1560 + f2h(
ke-2,2,i_xvz) &
1562 / ( f2h(
ke-2,1,i_xyz) &
1563 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
1564 + f2h(
ke-2,2,i_xyz) &
1565 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
1566 flux(
ke-2,i,j) = j23g(
ke-2,i,j) / mapf(i,j,+1) * vel &
1567 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1568 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
1570 flux(
ke ,i,j) = 0.0_rp
1587 IIS, IIE, JJS, JJE )
1590 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
1591 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1592 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1593 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1594 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1595 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1597 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1599 real(RP),
intent(in) :: CDZ (
ka)
1600 integer,
intent(in) :: IIS, IIE, JJS, JJE
1611 call check( __line__, mom(k,i ,j) )
1612 call check( __line__, mom(k,i,j-1) )
1614 call check( __line__, val(k,i,j) )
1615 call check( __line__, val(k,i+1,j) )
1617 call check( __line__, val(k,i-1,j) )
1618 call check( __line__, val(k,i+2,j) )
1620 call check( __line__, val(k,i-2,j) )
1621 call check( __line__, val(k,i+3,j) )
1624 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j+1) ) ) &
1625 / ( 0.25_rp * ( dens(k,i,j)+dens(k,i+1,j)+dens(k,i,j+1)+dens(k,i+1,j+1) ) )
1626 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+2) * vel &
1627 * ( f61 * ( val(k,i+1,j)+val(k,i,j) ) &
1628 + f62 * ( val(k,i+2,j)+val(k,i-1,j) ) &
1629 + f63 * ( val(k,i+3,j)+val(k,i-2,j) ) ) &
1630 + gsqrt(k,i,j) * num_diff(k,i,j)
1635 k = iundef; i = iundef; j = iundef
1651 IIS, IIE, JJS, JJE )
1654 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
1655 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1656 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1657 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1658 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1659 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1661 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1663 real(RP),
intent(in) :: CDZ (
ka)
1664 integer,
intent(in) :: IIS, IIE, JJS, JJE
1677 call check( __line__, mom(k,i ,j) )
1678 call check( __line__, mom(k,i,j-1) )
1680 call check( __line__, val(k,i,j-1) )
1681 call check( __line__, val(k,i,j) )
1683 call check( __line__, val(k,i,j-2) )
1684 call check( __line__, val(k,i,j+1) )
1686 call check( __line__, val(k,i,j-3) )
1687 call check( __line__, val(k,i,j+2) )
1690 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j-1) ) ) &
1692 flux(k,i,j-1) = gsqrt(k,i,j) / mapf(i,j,+1) * vel &
1693 * ( f61 * ( val(k,i,j)+val(k,i,j-1) ) &
1694 + f62 * ( val(k,i,j+1)+val(k,i,j-2) ) &
1695 + f63 * ( val(k,i,j+2)+val(k,i,j-3) ) ) &
1696 + gsqrt(k,i,j) * num_diff(k,i,j)
1701 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 x whole cells (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 z whole cells (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 y whole cells (local, with HALO)