Go to the documentation of this file.
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
108 real(rp),
intent(out) :: valw (
ka)
109 real(rp),
intent(in) :: mflx (
ka)
110 real(rp),
intent(in) :: val (
ka)
111 real(rp),
intent(in) :: gsqrt(
ka)
112 real(rp),
intent(in) :: cdz (
ka)
119 call check( __line__, mflx(
k) )
121 call check( __line__, val(
k) )
122 call check( __line__, val(
k+1) )
124 call check( __line__, val(
k-1) )
125 call check( __line__, val(
k+2) )
127 call check( __line__, val(
k-2) )
128 call check( __line__, val(
k+3) )
131 valw(
k) = f61 * ( val(
k+1)+val(
k) ) &
132 + f62 * ( val(
k+2)+val(
k-1) ) &
133 + f63 * ( val(
k+3)+val(
k-2) )
141 call check( __line__, mflx(
ks) )
142 call check( __line__, val(
ks ) )
143 call check( __line__, val(
ks+1) )
144 call check( __line__, mflx(
ke-1) )
145 call check( __line__, val(
ke ) )
146 call check( __line__, val(
ke-1) )
148 call check( __line__, mflx(
ks+1) )
149 call check( __line__, val(
ks+2 ) )
150 call check( __line__, val(
ks+3) )
151 call check( __line__, mflx(
ke-2) )
152 call check( __line__, val(
ke-2 ) )
153 call check( __line__, val(
ke-3) )
157 valw(
ks) = f2 * ( val(
ks+1)+val(
ks) )
158 valw(
ke-1) = f2 * ( val(
ke)+val(
ke-1) )
160 valw(
ks+1) = f41 * ( val(
ks+2)+val(
ks+1) ) &
161 + f42 * ( val(
ks+3)+val(
ks) )
162 valw(
ke-2) = f41 * ( val(
ke-1)+val(
ke-2) ) &
163 + f42 * ( val(
ke)+val(
ke-3) )
181 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
182 real(rp),
intent(in) :: mflx (
ka,
ia,
ja)
183 real(rp),
intent(in) :: val (
ka,
ia,
ja)
184 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
185 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
186 real(rp),
intent(in) :: cdz (
ka)
187 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)
224 k = iundef; i = iundef; j = iundef
232 call check( __line__, mflx(
ks,i,j) )
233 call check( __line__, val(
ks ,i,j) )
234 call check( __line__, val(
ks+1,i,j) )
235 call check( __line__, mflx(
ke-1,i,j) )
236 call check( __line__, val(
ke ,i,j) )
237 call check( __line__, val(
ke-1,i,j) )
239 call check( __line__, mflx(
ks+1,i,j) )
240 call check( __line__, val(
ks+2 ,i,j) )
241 call check( __line__, val(
ks+3,i,j) )
242 call check( __line__, mflx(
ke-2,i,j) )
243 call check( __line__, val(
ke-2 ,i,j) )
244 call check( __line__, val(
ke-3,i,j) )
247 flux(
ks-1,i,j) = 0.0_rp
251 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
252 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
254 flux(
ke-1,i,j) = vel &
255 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
256 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
259 flux(
ks+1,i,j) = vel &
260 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
261 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) ) &
262 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
264 flux(
ke-2,i,j) = vel &
265 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
266 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) ) &
267 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
269 flux(
ke ,i,j) = 0.0_rp
276 k = iundef; i = iundef; j = iundef
292 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
293 real(rp),
intent(in) :: mflx (
ka,
ia,
ja)
294 real(rp),
intent(in) :: val (
ka,
ia,
ja)
295 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
296 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
297 real(rp),
intent(in) :: cdz(
ka)
298 integer,
intent(in) :: iis, iie, jjs, jje
311 call check( __line__, mflx(
k,i,j) )
313 call check( __line__, val(
k,i,j) )
314 call check( __line__, val(
k,i+1,j) )
316 call check( __line__, val(
k,i-1,j) )
317 call check( __line__, val(
k,i+2,j) )
319 call check( __line__, val(
k,i-2,j) )
320 call check( __line__, val(
k,i+3,j) )
325 * ( f61 * ( val(
k,i+1,j)+val(
k,i,j) ) &
326 + f62 * ( val(
k,i+2,j)+val(
k,i-1,j) ) &
327 + f63 * ( val(
k,i+3,j)+val(
k,i-2,j) ) ) &
328 + gsqrt(
k,i,j) * num_diff(
k,i,j)
333 k = iundef; i = iundef; j = iundef
349 real(rp),
intent(inout) :: 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)
353 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
354 real(rp),
intent(in) :: cdz(
ka)
355 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
409 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
410 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
411 real(rp),
intent(in) :: val (
ka,
ia,
ja)
412 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
413 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
414 real(rp),
intent(in) :: j33g
415 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
416 real(rp),
intent(in) :: cdz (
ka)
417 real(rp),
intent(in) :: fdz (
ka-1)
418 real(rp),
intent(in) :: dtrk
419 integer,
intent(in) :: iis, iie, jjs, jje
435 call check( __line__, mom(
k-1,i,j) )
436 call check( __line__, mom(
k ,i,j) )
438 call check( __line__, val(
k-1,i,j) )
439 call check( __line__, val(
k,i,j) )
441 call check( __line__, val(
k-2,i,j) )
442 call check( __line__, val(
k+1,i,j) )
444 call check( __line__, val(
k-3,i,j) )
445 call check( __line__, val(
k+2,i,j) )
448 vel = ( 0.5_rp * ( mom(
k-1,i,j) &
451 flux(
k-1,i,j) = j33g * vel &
452 * ( f61 * ( val(
k,i,j)+val(
k-1,i,j) ) &
453 + f62 * ( val(
k+1,i,j)+val(
k-2,i,j) ) &
454 + f63 * ( val(
k+2,i,j)+val(
k-3,i,j) ) ) &
455 + gsqrt(
k,i,j) * num_diff(
k,i,j)
461 k = iundef; i = iundef; j = iundef
469 call check( __line__, val(
ks,i,j) )
470 call check( __line__, val(
ks+1,i,j) )
471 call check( __line__, val(
ks+2,i,j) )
472 call check( __line__, val(
ks+3,i,j) )
475 call check( __line__, val(
ke-3,i,j) )
476 call check( __line__, val(
ke-2,i,j) )
477 call check( __line__, val(
ke-1,i,j) )
483 flux(
ks-1,i,j) = 0.0_rp
485 vel = ( 0.5_rp * ( mom(
ks,i,j) &
486 + mom(
ks+1,i,j) ) ) &
488 flux(
ks,i,j) = j33g * vel &
489 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
490 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
492 vel = ( 0.5_rp * ( mom(
ks+1,i,j) &
493 + mom(
ks+2,i,j) ) ) &
495 flux(
ks+1,i,j) = j33g * vel &
496 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
497 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) ) &
498 + gsqrt(
ks+2,i,j) * num_diff(
ks+2,i,j)
502 vel = ( 0.5_rp * ( mom(
ke-2,i,j) &
503 + mom(
ke-1,i,j) ) ) &
505 flux(
ke-2,i,j) = j33g * vel &
506 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
507 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) ) &
508 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
510 flux(
ke-1,i,j) = 0.0_rp
511 flux(
ke ,i,j) = 0.0_rp
532 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
533 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
534 real(rp),
intent(in) :: val (
ka,
ia,
ja)
535 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
536 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
537 real(rp),
intent(in) :: j13g (
ka,
ia,
ja)
538 real(rp),
intent(in) :: mapf (
ia,
ja,2)
539 real(rp),
intent(in) :: cdz (
ka)
540 logical,
intent(in) :: twod
541 integer,
intent(in) :: iis, iie, jjs, jje
554 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i-1,j) ) ) &
556 vel = vel * j13g(
k,i,j)
557 flux(
k-1,i,j) = vel / mapf(i,j,+2) &
558 * ( f61 * ( val(
k,i,j)+val(
k-1,i,j) ) &
559 + f62 * ( val(
k+1,i,j)+val(
k-2,i,j) ) &
560 + f63 * ( val(
k+2,i,j)+val(
k-3,i,j) ) )
572 flux(
ks-1,i,j) = 0.0_rp
575 vel = ( ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i-1,j) ) ) / dens(
ks+1,i,j) &
576 + ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j) ) ) / dens(
ks ,i,j) ) * 0.5_rp
579 vel = vel * j13g(
ks+1,i,j)
580 flux(
ks,i,j) = vel / mapf(i,j,+2) &
581 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
584 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i-1,j) ) ) &
586 vel = vel * j13g(
ke-1,i,j)
587 flux(
ke-2,i,j) = vel / mapf(i,j,+2) &
588 * ( f2 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) )
590 flux(
ke-1,i,j) = 0.0_rp
610 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
611 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
612 real(rp),
intent(in) :: val (
ka,
ia,
ja)
613 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
614 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
615 real(rp),
intent(in) :: j23g (
ka,
ia,
ja)
616 real(rp),
intent(in) :: mapf (
ia,
ja,2)
617 real(rp),
intent(in) :: cdz (
ka)
618 logical,
intent(in) :: twod
619 integer,
intent(in) :: iis, iie, jjs, jje
632 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j-1) ) ) &
634 vel = vel * j23g(
k,i,j)
635 flux(
k-1,i,j) = vel / mapf(i,j,+1) &
636 * ( f61 * ( val(
k,i,j)+val(
k-1,i,j) ) &
637 + f62 * ( val(
k+1,i,j)+val(
k-2,i,j) ) &
638 + f63 * ( val(
k+2,i,j)+val(
k-3,i,j) ) )
650 flux(
ks-1,i,j) = 0.0_rp
653 vel = ( ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j-1) ) ) / dens(
ks+1,i,j) &
654 + ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j-1) ) ) / dens(
ks ,i,j) ) * 0.5_rp
657 vel = vel * j23g(
ks+1,i,j)
658 flux(
ks,i,j) = vel / mapf(i,j,+1) &
659 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
662 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j-1) ) ) &
664 vel = vel * j23g(
ke-1,i,j)
665 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
666 * ( f2 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) )
668 flux(
ke-1,i,j) = 0.0_rp
690 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
691 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
692 real(rp),
intent(in) :: val (
ka,
ia,
ja)
693 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
694 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
695 real(rp),
intent(in) :: mapf (
ia,
ja,2)
696 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
697 real(rp),
intent(in) :: cdz (
ka)
698 logical,
intent(in) :: twod
699 integer,
intent(in) :: iis, iie, jjs, jje
714 call check( __line__, mom(
k ,i,j) )
715 call check( __line__, mom(
k+1,i,j) )
717 call check( __line__, val(
k,i,j) )
718 call check( __line__, val(
k,i+1,j) )
720 call check( __line__, val(
k,i-1,j) )
721 call check( __line__, val(
k,i+2,j) )
723 call check( __line__, val(
k,i-2,j) )
724 call check( __line__, val(
k,i+3,j) )
732 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
734 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
735 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+2) * vel &
736 * ( f61 * ( val(
k,i+1,j)+val(
k,i,j) ) &
737 + f62 * ( val(
k,i+2,j)+val(
k,i-1,j) ) &
738 + f63 * ( val(
k,i+3,j)+val(
k,i-2,j) ) ) &
739 + gsqrt(
k,i,j) * num_diff(
k,i,j)
745 k = iundef; i = iundef; j = iundef
751 flux(
ke,i,j) = 0.0_rp
758 k = iundef; i = iundef; j = iundef
775 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
776 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
777 real(rp),
intent(in) :: val (
ka,
ia,
ja)
778 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
779 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
780 real(rp),
intent(in) :: mapf (
ia,
ja,2)
781 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
782 real(rp),
intent(in) :: cdz (
ka)
783 logical,
intent(in) :: twod
784 integer,
intent(in) :: iis, iie, jjs, jje
799 call check( __line__, mom(
k ,i,j) )
800 call check( __line__, mom(
k+1,i,j) )
802 call check( __line__, val(
k,i,j) )
803 call check( __line__, val(
k,i,j+1) )
805 call check( __line__, val(
k,i,j-1) )
806 call check( __line__, val(
k,i,j+2) )
808 call check( __line__, val(
k,i,j-2) )
809 call check( __line__, val(
k,i,j+3) )
817 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
819 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
820 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
821 * ( f61 * ( val(
k,i,j+1)+val(
k,i,j) ) &
822 + f62 * ( val(
k,i,j+2)+val(
k,i,j-1) ) &
823 + f63 * ( val(
k,i,j+3)+val(
k,i,j-2) ) ) &
824 + gsqrt(
k,i,j) * num_diff(
k,i,j)
830 k = iundef; i = iundef; j = iundef
836 flux(
ke,i,j) = 0.0_rp
843 k = iundef; i = iundef; j = iundef
861 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
862 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
863 real(rp),
intent(in) :: val (
ka,
ia,
ja)
864 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
865 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
866 real(rp),
intent(in) :: j33g
867 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
868 real(rp),
intent(in) :: cdz (
ka)
869 logical,
intent(in) :: twod
870 integer,
intent(in) :: iis, iie, jjs, jje
887 call check( __line__, mom(
k,i,j) )
889 call check( __line__, val(
k,i,j) )
890 call check( __line__, val(
k+1,i,j) )
892 call check( __line__, val(
k-1,i,j) )
893 call check( __line__, val(
k+2,i,j) )
895 call check( __line__, val(
k-2,i,j) )
896 call check( __line__, val(
k+3,i,j) )
900 vel = ( mom(
k,i,j) ) &
905 flux(
k,i,j) = j33g * vel &
906 * ( f61 * ( val(
k+1,i,j)+val(
k,i,j) ) &
907 + f62 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
908 + f63 * ( val(
k+3,i,j)+val(
k-2,i,j) ) ) &
909 + gsqrt(
k,i,j) * num_diff(
k,i,j)
914 k = iundef; i = iundef; j = iundef
921 call check( __line__, mom(
ks,i ,j) )
922 call check( __line__, val(
ks+1,i,j) )
923 call check( __line__, val(
ks,i,j) )
925 call check( __line__, mom(
ks+1,i ,j) )
926 call check( __line__, val(
ks+3,i,j) )
927 call check( __line__, val(
ks+2,i,j) )
934 flux(
ks-1,i,j) = 0.0_rp
936 vel = ( mom(
ks,i,j) ) &
941 flux(
ks,i,j) = j33g * vel &
942 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
943 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
944 vel = ( mom(
ke-1,i,j) ) &
949 flux(
ke-1,i,j) = j33g * vel &
950 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
951 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
953 vel = ( mom(
ks+1,i,j) ) &
958 flux(
ks+1,i,j) = j33g * vel &
959 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
960 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) ) &
961 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
962 vel = ( mom(
ke-2,i,j) ) &
967 flux(
ke-2,i,j) = j33g * vel &
968 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
969 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) ) &
970 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
972 flux(
ke,i,j) = 0.0_rp
984 call check( __line__, mom(
k,i,j) )
985 call check( __line__, mom(
k,i+1,j) )
987 call check( __line__, val(
k,i,j) )
988 call check( __line__, val(
k+1,i,j) )
990 call check( __line__, val(
k-1,i,j) )
991 call check( __line__, val(
k+2,i,j) )
993 call check( __line__, val(
k-2,i,j) )
994 call check( __line__, val(
k+3,i,j) )
997 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i+1,j) ) ) &
999 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
1001 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
1002 flux(
k,i,j) = j33g * vel &
1003 * ( f61 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1004 + f62 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1005 + f63 * ( val(
k+3,i,j)+val(
k-2,i,j) ) ) &
1006 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1012 k = iundef; i = iundef; j = iundef
1020 call check( __line__, mom(
ks,i ,j) )
1021 call check( __line__, mom(
ks,i+1,j) )
1022 call check( __line__, val(
ks+1,i,j) )
1023 call check( __line__, val(
ks,i,j) )
1025 call check( __line__, mom(
ks+1,i ,j) )
1026 call check( __line__, mom(
ks+1,i+1,j) )
1027 call check( __line__, val(
ks+3,i,j) )
1028 call check( __line__, val(
ks+2,i,j) )
1034 flux(
ks-1,i,j) = 0.0_rp
1036 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j) ) ) &
1038 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1040 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1041 flux(
ks,i,j) = j33g * vel &
1042 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
1043 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
1044 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i+1,j) ) ) &
1046 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1048 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1049 flux(
ke-1,i,j) = j33g * vel &
1050 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
1051 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
1053 vel = ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i+1,j) ) ) &
1055 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
1057 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
1058 flux(
ks+1,i,j) = j33g * vel &
1059 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1060 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) ) &
1061 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
1062 vel = ( 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i+1,j) ) ) &
1064 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
1066 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
1067 flux(
ke-2,i,j) = j33g * vel &
1068 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1069 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) ) &
1070 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
1072 flux(
ke,i,j) = 0.0_rp
1082 k = iundef; i = iundef; j = iundef
1093 GSQRT, J13G, MAPF, &
1095 IIS, IIE, JJS, JJE )
1098 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1099 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1100 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1101 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1102 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1103 real(rp),
intent(in) :: j13g (
ka,
ia,
ja)
1104 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1105 real(rp),
intent(in) :: cdz (
ka)
1106 logical,
intent(in) :: twod
1107 integer,
intent(in) :: iis, iie, jjs, jje
1128 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
1130 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
1131 vel = vel * j13g(
k,i,j)
1132 flux(
k,i,j) = vel / mapf(i,j,+2) &
1133 * ( f61 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1134 + f62 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1135 + f63 * ( val(
k+3,i,j)+val(
k-2,i,j) ) )
1147 flux(
ks-1,i,j) = 0.0_rp
1154 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1156 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1157 vel = vel * j13g(
ks,i,j)
1158 flux(
ks,i,j) = vel / mapf(i,j,+2) &
1159 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1166 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1168 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1169 vel = vel * j13g(
ke-1,i,j)
1170 flux(
ke-1,i,j) = vel / mapf(i,j,+2) &
1171 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1178 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
1180 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
1181 vel = vel * j13g(
ks+1,i,j)
1182 flux(
ks+1,i,j) = vel / mapf(i,j,+2) &
1183 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1184 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
1191 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
1193 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
1194 vel = vel * j13g(
ke-2,i,j)
1195 flux(
ke-2,i,j) = vel / mapf(i,j,+2) &
1196 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1197 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
1199 flux(
ke ,i,j) = 0.0_rp
1215 GSQRT, J23G, MAPF, &
1217 IIS, IIE, JJS, JJE )
1220 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1221 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1222 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1223 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1224 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1225 real(rp),
intent(in) :: j23g (
ka,
ia,
ja)
1226 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1227 real(rp),
intent(in) :: cdz (
ka)
1228 logical,
intent(in) :: twod
1229 integer,
intent(in) :: iis, iie, jjs, jje
1247 * 0.5_rp * ( mom(
k+1,i,j)+mom(
k+1,i,j-1) ) &
1249 * 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j-1) ) ) &
1254 vel = vel * j23g(
k,i,j)
1255 flux(
k,i,j) = vel * ( f61 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1256 + f62 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1257 + f63 * ( val(
k+3,i,j)+val(
k-2,i,j) ) )
1268 flux(
ks-1,i,j) = 0.0_rp
1271 * 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j-1) ) &
1273 * 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j-1) ) ) &
1278 vel = vel * j23g(
ks,i,j)
1279 flux(
ks,i,j) = vel / mapf(i,j,+1) &
1280 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1283 * 0.5_rp * ( mom(
ke,i,j)+mom(
ke,i,j-1) ) &
1285 * 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j-1) ) ) &
1290 vel = vel * j23g(
ke-1,i,j)
1291 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
1292 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1295 * 0.5_rp * ( mom(
ks+2,i,j)+mom(
ks+2,i,j-1) ) &
1297 * 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j-1) ) ) &
1302 vel = vel * j23g(
ks+1,i,j)
1303 flux(
ks+1,i,j) = vel / mapf(i,j,+1) &
1304 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1305 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
1308 * 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j-1) ) &
1310 * 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i,j-1) ) ) &
1315 vel = vel * j23g(
ke-2,i,j)
1316 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
1317 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1318 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
1320 flux(
ke ,i,j) = 0.0_rp
1332 * 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) ) &
1334 * 0.25_rp * ( mom(
k,i,j)+mom(
k,i+1,j)+mom(
k,i,j-1)+mom(
k,i+1,j-1) ) ) &
1336 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
1338 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
1339 vel = vel * j23g(
k,i,j)
1340 flux(
k,i,j) = vel / mapf(i,j,+1) &
1341 * ( f61 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1342 + f62 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1343 + f63 * ( val(
k+3,i,j)+val(
k-2,i,j) ) )
1355 flux(
ks-1,i,j) = 0.0_rp
1358 * 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) ) &
1360 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j)+mom(
ks,i,j-1)+mom(
ks,i+1,j-1) ) ) &
1362 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1364 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1365 vel = vel * j23g(
ks,i,j)
1366 flux(
ks,i,j) = vel / mapf(i,j,+1) &
1367 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1370 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i+1,j)+mom(
ke,i,j-1)+mom(
ke,i+1,j-1) ) &
1372 * 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) ) ) &
1374 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1376 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1377 vel = vel * j23g(
ke-1,i,j)
1378 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
1379 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1382 * 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) ) &
1384 * 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) ) ) &
1386 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
1388 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
1389 vel = vel * j23g(
ks+1,i,j)
1390 flux(
ks+1,i,j) = vel / mapf(i,j,+1) &
1391 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1392 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
1395 * 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) ) &
1397 * 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) ) ) &
1399 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
1401 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
1402 vel = vel * j23g(
ke-2,i,j)
1403 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
1404 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1405 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
1407 flux(
ke ,i,j) = 0.0_rp
1428 IIS, IIE, JJS, JJE )
1431 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1432 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1433 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1434 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1435 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1436 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1437 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1438 real(rp),
intent(in) :: cdz (
ka)
1439 logical,
intent(in) :: twod
1440 integer,
intent(in) :: iis, iie, jjs, jje
1457 call check( __line__, mom(
k,i ,j) )
1458 call check( __line__, mom(
k,i-1,j) )
1460 call check( __line__, val(
k,i-1,j) )
1461 call check( __line__, val(
k,i,j) )
1463 call check( __line__, val(
k,i-2,j) )
1464 call check( __line__, val(
k,i+1,j) )
1466 call check( __line__, val(
k,i-3,j) )
1467 call check( __line__, val(
k,i+2,j) )
1470 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i-1,j) ) ) &
1472 flux(
k,i-1,j) = gsqrt(
k,i,j) / mapf(i,j,+2) * vel &
1473 * ( f61 * ( val(
k,i,j)+val(
k,i-1,j) ) &
1474 + f62 * ( val(
k,i+1,j)+val(
k,i-2,j) ) &
1475 + f63 * ( val(
k,i+2,j)+val(
k,i-3,j) ) ) &
1476 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1481 k = iundef; i = iundef; j = iundef
1497 IIS, IIE, JJS, JJE )
1500 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1501 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1502 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1503 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1504 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1505 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1506 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1507 real(rp),
intent(in) :: cdz (
ka)
1508 logical,
intent(in) :: twod
1509 integer,
intent(in) :: iis, iie, jjs, jje
1526 call check( __line__, mom(
k,i ,j) )
1528 call check( __line__, val(
k,i,j) )
1529 call check( __line__, val(
k,i,j+1) )
1531 call check( __line__, val(
k,i,j-1) )
1532 call check( __line__, val(
k,i,j+2) )
1534 call check( __line__, val(
k,i,j-2) )
1535 call check( __line__, val(
k,i,j+3) )
1538 vel = ( mom(
k,i,j) ) &
1539 / ( 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
1540 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
1541 * ( f61 * ( val(
k,i,j+1)+val(
k,i,j) ) &
1542 + f62 * ( val(
k,i,j+2)+val(
k,i,j-1) ) &
1543 + f63 * ( val(
k,i,j+3)+val(
k,i,j-2) ) ) &
1544 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1548 k = iundef; i = iundef; j = iundef
1561 call check( __line__, mom(
k,i ,j) )
1562 call check( __line__, mom(
k,i-1,j) )
1564 call check( __line__, val(
k,i,j) )
1565 call check( __line__, val(
k,i,j+1) )
1567 call check( __line__, val(
k,i,j-1) )
1568 call check( __line__, val(
k,i,j+2) )
1570 call check( __line__, val(
k,i,j-2) )
1571 call check( __line__, val(
k,i,j+3) )
1574 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i+1,j) ) ) &
1575 / ( 0.25_rp * ( dens(
k,i,j)+dens(
k,i+1,j)+dens(
k,i,j+1)+dens(
k,i+1,j+1) ) )
1576 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
1577 * ( f61 * ( val(
k,i,j+1)+val(
k,i,j) ) &
1578 + f62 * ( val(
k,i,j+2)+val(
k,i,j-1) ) &
1579 + f63 * ( val(
k,i,j+3)+val(
k,i,j-2) ) ) &
1580 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1585 k = iundef; i = iundef; j = iundef
1605 IIS, IIE, JJS, JJE )
1608 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1609 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1610 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1611 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1612 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1613 real(rp),
intent(in) :: j33g
1614 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1615 real(rp),
intent(in) :: cdz (
ka)
1616 logical,
intent(in) :: twod
1617 integer,
intent(in) :: iis, iie, jjs, jje
1633 call check( __line__, mom(
k,i,j) )
1634 call check( __line__, mom(
k,i,j+1) )
1636 call check( __line__, val(
k,i,j) )
1637 call check( __line__, val(
k+1,i,j) )
1639 call check( __line__, val(
k-1,i,j) )
1640 call check( __line__, val(
k+2,i,j) )
1642 call check( __line__, val(
k-2,i,j) )
1643 call check( __line__, val(
k+3,i,j) )
1646 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j+1) ) ) &
1648 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
1650 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
1651 flux(
k,i,j) = j33g * vel &
1652 * ( f61 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1653 + f62 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1654 + f63 * ( val(
k+3,i,j)+val(
k-2,i,j) ) ) &
1655 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1661 k = iundef; i = iundef; j = iundef
1669 call check( __line__, mom(
ks,i ,j) )
1670 call check( __line__, mom(
ks,i,j+1) )
1671 call check( __line__, val(
ks+1,i,j) )
1672 call check( __line__, val(
ks,i,j) )
1674 call check( __line__, mom(
ks+1,i ,j) )
1675 call check( __line__, mom(
ks+1,i,j+1) )
1676 call check( __line__, val(
ks+3,i,j) )
1677 call check( __line__, val(
ks+2,i,j) )
1683 flux(
ks-1,i,j) = 0.0_rp
1685 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j+1) ) ) &
1687 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1689 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1690 flux(
ks,i,j) = j33g * vel &
1691 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
1692 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
1693 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j+1) ) ) &
1695 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1697 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1698 flux(
ke-1,i,j) = j33g * vel &
1699 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
1700 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
1702 vel = ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j+1) ) ) &
1704 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
1706 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
1707 flux(
ks+1,i,j) = j33g * vel &
1708 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1709 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) ) &
1710 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
1711 vel = ( 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i,j+1) ) ) &
1713 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
1715 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
1716 flux(
ke-2,i,j) = j33g * vel &
1717 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1718 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) ) &
1719 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
1721 flux(
ke,i,j) = 0.0_rp
1729 k = iundef; i = iundef; j = iundef
1740 GSQRT, J13G, MAPF, &
1742 IIS, IIE, JJS, JJE )
1745 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1746 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1747 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1748 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1749 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1750 real(rp),
intent(in) :: j13g (
ka,
ia,
ja)
1751 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1752 real(rp),
intent(in) :: cdz (
ka)
1753 logical,
intent(in) :: twod
1754 integer,
intent(in) :: iis, iie, jjs, jje
1771 * 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) ) &
1773 * 0.25_rp * ( mom(
k,i,j)+mom(
k,i-1,j)+mom(
k,i,j+1)+mom(
k,i-1,j+1) ) ) &
1775 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
1777 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
1778 vel = vel * j13g(
k,i,j)
1779 flux(
k,i,j) = vel / mapf(i,j,+2) &
1780 * ( f61 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1781 + f62 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1782 + f63 * ( val(
k+3,i,j)+val(
k-2,i,j) ) )
1794 flux(
ks-1,i,j) = 0.0_rp
1797 * 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) ) &
1799 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j)+mom(
ks,i,j+1)+mom(
ks,i-1,j+1) ) ) &
1801 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1803 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1804 vel = vel * j13g(
ks,i,j)
1805 flux(
ks,i,j) = vel / mapf(i,j,+2) &
1806 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1809 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i-1,j)+mom(
ke,i,j+1)+mom(
ke,i-1,j+1) ) &
1811 * 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) ) ) &
1813 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1815 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1816 vel = vel * j13g(
ke-1,i,j)
1817 flux(
ke-1,i,j) = vel / mapf(i,j,+2) &
1818 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1821 * 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) ) &
1823 * 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) ) ) &
1825 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
1827 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
1828 vel = vel * j13g(
ks+1,i,j)
1829 flux(
ks+1,i,j) = vel / mapf(i,j,+2) &
1830 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1831 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
1834 * 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) ) &
1836 * 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) ) ) &
1838 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
1840 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
1841 vel = vel * j13g(
ke-2,i,j)
1842 flux(
ke-2,i,j) = vel / mapf(i,j,+2) &
1843 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1844 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
1846 flux(
ke ,i,j) = 0.0_rp
1862 GSQRT, J23G, MAPF, &
1864 IIS, IIE, JJS, JJE )
1867 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1868 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1869 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1870 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1871 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1872 real(rp),
intent(in) :: j23g (
ka,
ia,
ja)
1873 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1874 real(rp),
intent(in) :: cdz (
ka)
1875 logical,
intent(in) :: twod
1876 integer,
intent(in) :: iis, iie, jjs, jje
1897 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
1899 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
1900 vel = vel * j23g(
k,i,j)
1901 flux(
k,i,j) = vel / mapf(i,j,+1) &
1902 * ( f61 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1903 + f62 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1904 + f63 * ( val(
k+3,i,j)+val(
k-2,i,j) ) )
1916 flux(
ks-1,i,j) = 0.0_rp
1923 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1925 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1926 vel = vel * j23g(
ks,i,j)
1927 flux(
ks,i,j) = vel / mapf(i,j,+1) &
1928 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1935 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1937 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1938 vel = vel * j23g(
ke-1,i,j)
1939 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
1940 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1947 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
1949 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
1950 vel = vel * j23g(
ks+1,i,j)
1951 flux(
ks+1,i,j) = vel / mapf(i,j,+1) &
1952 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1953 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
1960 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
1962 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
1963 vel = vel * j23g(
ke-2,i,j)
1964 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
1965 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1966 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
1968 flux(
ke ,i,j) = 0.0_rp
1987 IIS, IIE, JJS, JJE )
1990 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1991 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1992 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1993 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1994 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1995 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1996 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1997 real(rp),
intent(in) :: cdz (
ka)
1998 logical,
intent(in) :: twod
1999 integer,
intent(in) :: iis, iie, jjs, jje
2014 call check( __line__, mom(
k,i ,j) )
2015 call check( __line__, mom(
k,i,j-1) )
2017 call check( __line__, val(
k,i,j) )
2018 call check( __line__, val(
k,i+1,j) )
2020 call check( __line__, val(
k,i-1,j) )
2021 call check( __line__, val(
k,i+2,j) )
2023 call check( __line__, val(
k,i-2,j) )
2024 call check( __line__, val(
k,i+3,j) )
2027 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j+1) ) ) &
2028 / ( 0.25_rp * ( dens(
k,i,j)+dens(
k,i+1,j)+dens(
k,i,j+1)+dens(
k,i+1,j+1) ) )
2029 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+2) * vel &
2030 * ( f61 * ( val(
k,i+1,j)+val(
k,i,j) ) &
2031 + f62 * ( val(
k,i+2,j)+val(
k,i-1,j) ) &
2032 + f63 * ( val(
k,i+3,j)+val(
k,i-2,j) ) ) &
2033 + gsqrt(
k,i,j) * num_diff(
k,i,j)
2038 k = iundef; i = iundef; j = iundef
2054 IIS, IIE, JJS, JJE )
2057 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
2058 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
2059 real(rp),
intent(in) :: val (
ka,
ia,
ja)
2060 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
2061 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
2062 real(rp),
intent(in) :: mapf (
ia,
ja,2)
2063 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
2064 real(rp),
intent(in) :: cdz (
ka)
2065 logical,
intent(in) :: twod
2066 integer,
intent(in) :: iis, iie, jjs, jje
2083 call check( __line__, mom(
k,i ,j) )
2084 call check( __line__, mom(
k,i,j-1) )
2086 call check( __line__, val(
k,i,j-1) )
2087 call check( __line__, val(
k,i,j) )
2089 call check( __line__, val(
k,i,j-2) )
2090 call check( __line__, val(
k,i,j+1) )
2092 call check( __line__, val(
k,i,j-3) )
2093 call check( __line__, val(
k,i,j+2) )
2096 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j-1) ) ) &
2098 flux(
k,i,j-1) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
2099 * ( f61 * ( val(
k,i,j)+val(
k,i,j-1) ) &
2100 + f62 * ( val(
k,i,j+1)+val(
k,i,j-2) ) &
2101 + f63 * ( val(
k,i,j+2)+val(
k,i,j-3) ) ) &
2102 + gsqrt(
k,i,j) * num_diff(
k,i,j)
2107 k = iundef; i = iundef; j = iundef
subroutine, public atmos_dyn_fvm_fluxj13_xvz_cd6(flux, mom, val, DENS, GSQRT, J13G, MAPF, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation J13-flux at XVZ
integer, public ke
end point of inner domain: z, local
subroutine, public atmos_dyn_fvm_fluxj23_xyw_cd6(flux, mom, val, DENS, GSQRT, J23G, MAPF, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation J23-flux at XYW
subroutine, public atmos_dyn_fvm_fluxy_xyz_cd6(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation Y-flux at XYZ
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_fluxx_uyz_cd6(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation X-flux at UY
integer, parameter, public const_undef2
undefined value (INT2)
subroutine, public atmos_dyn_fvm_fluxj13_uyz_cd6(flux, mom, val, DENS, GSQRT, J13G, MAPF, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation J13-flux at UYZ
subroutine, public atmos_dyn_fvm_fluxy_xvz_cd6(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation Y-flux at XV
subroutine, public atmos_dyn_fvm_fluxx_xyw_cd6(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation X-flux at XYW
real(rp), public const_eps
small number
subroutine, public atmos_dyn_fvm_fluxz_xvz_cd6(flux, mom, val, DENS, GSQRT, J33G, num_diff, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation z-flux at XV
subroutine, public atmos_dyn_fvm_fluxy_xyw_cd6(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation Y-flux at XYW
module atmosphere / grid / cartesC index
subroutine, public check(current_line, v)
Undefined value checker.
subroutine, public atmos_dyn_fvm_fluxy_uyz_cd6(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation Y-flux at UY
subroutine, public atmos_dyn_fvm_fluxj13_xyw_cd6(flux, mom, val, DENS, GSQRT, J13G, MAPF, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation J13-flux at XYW
module scale_atmos_dyn_fvm_flux_cd6
subroutine, public atmos_dyn_fvm_fluxj23_xvz_cd6(flux, mom, val, DENS, GSQRT, J23G, MAPF, CDZ, TwoD, 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, TwoD, IIS, IIE, JJS, JJE)
calculation X-flux at XV
integer, public ks
start point of inner domain: z, local
real(rp), public const_undef
subroutine, public atmos_dyn_fvm_flux_valuew_z_cd6(valW, mflx, val, GSQRT, CDZ)
value at XYW
subroutine, public atmos_dyn_fvm_fluxj23_uyz_cd6(flux, mom, val, DENS, GSQRT, J23G, MAPF, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation J23-flux at UYZ
subroutine, public atmos_dyn_fvm_fluxz_uyz_cd6(flux, mom, val, DENS, GSQRT, J33G, num_diff, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation z-flux at UY
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_fluxz_xyw_cd6(flux, mom, val, DENS, GSQRT, J33G, num_diff, CDZ, FDZ, dtrk, IIS, IIE, JJS, JJE)
calculation z-flux at XYW