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
109 real(rp),
intent(out) :: valw (
ka)
110 real(rp),
intent(in) :: mflx (
ka)
111 real(rp),
intent(in) :: val (
ka)
112 real(rp),
intent(in) :: gsqrt(
ka)
113 real(rp),
intent(in) :: cdz (
ka)
120 call check( __line__, mflx(
k) )
122 call check( __line__, val(
k) )
123 call check( __line__, val(
k+1) )
125 call check( __line__, val(
k-1) )
126 call check( __line__, val(
k+2) )
128 call check( __line__, val(
k-2) )
129 call check( __line__, val(
k+3) )
132 valw(
k) = f61 * ( val(
k+1)+val(
k) ) &
133 + f62 * ( val(
k+2)+val(
k-1) ) &
134 + f63 * ( val(
k+3)+val(
k-2) )
142 call check( __line__, mflx(
ks) )
143 call check( __line__, val(
ks ) )
144 call check( __line__, val(
ks+1) )
145 call check( __line__, mflx(
ke-1) )
146 call check( __line__, val(
ke ) )
147 call check( __line__, val(
ke-1) )
149 call check( __line__, mflx(
ks+1) )
150 call check( __line__, val(
ks+2 ) )
151 call check( __line__, val(
ks+3) )
152 call check( __line__, mflx(
ke-2) )
153 call check( __line__, val(
ke-2 ) )
154 call check( __line__, val(
ke-3) )
158 valw(
ks) = f2 * ( val(
ks+1)+val(
ks) )
159 valw(
ke-1) = f2 * ( val(
ke)+val(
ke-1) )
161 valw(
ks+1) = f41 * ( val(
ks+2)+val(
ks+1) ) &
162 + f42 * ( val(
ks+3)+val(
ks) )
163 valw(
ke-2) = f41 * ( val(
ke-1)+val(
ke-2) ) &
164 + f42 * ( val(
ke)+val(
ke-3) )
182 real(rp),
intent(inout) :: 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)
186 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
187 real(rp),
intent(in) :: cdz (
ka)
188 integer,
intent(in) :: iis, iie, jjs, jje
205 call check( __line__, mflx(
k,i,j) )
207 call check( __line__, val(
k,i,j) )
208 call check( __line__, val(
k+1,i,j) )
210 call check( __line__, val(
k-1,i,j) )
211 call check( __line__, val(
k+2,i,j) )
213 call check( __line__, val(
k-2,i,j) )
214 call check( __line__, val(
k+3,i,j) )
219 * ( f61 * ( val(
k+1,i,j)+val(
k,i,j) ) &
220 + f62 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
221 + f63 * ( val(
k+3,i,j)+val(
k-2,i,j) ) ) &
222 + gsqrt(
k,i,j) * num_diff(
k,i,j)
229 k = iundef; i = iundef; j = iundef
238 call check( __line__, mflx(
ks,i,j) )
239 call check( __line__, val(
ks ,i,j) )
240 call check( __line__, val(
ks+1,i,j) )
241 call check( __line__, mflx(
ke-1,i,j) )
242 call check( __line__, val(
ke ,i,j) )
243 call check( __line__, val(
ke-1,i,j) )
245 call check( __line__, mflx(
ks+1,i,j) )
246 call check( __line__, val(
ks+2 ,i,j) )
247 call check( __line__, val(
ks+3,i,j) )
248 call check( __line__, mflx(
ke-2,i,j) )
249 call check( __line__, val(
ke-2 ,i,j) )
250 call check( __line__, val(
ke-3,i,j) )
253 flux(
ks-1,i,j) = 0.0_rp
257 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
258 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
260 flux(
ke-1,i,j) = vel &
261 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
262 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
265 flux(
ks+1,i,j) = vel &
266 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
267 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) ) &
268 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
270 flux(
ke-2,i,j) = vel &
271 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
272 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) ) &
273 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
275 flux(
ke ,i,j) = 0.0_rp
285 k = iundef; i = iundef; j = iundef
301 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
302 real(rp),
intent(in) :: mflx (
ka,
ia,
ja)
303 real(rp),
intent(in) :: val (
ka,
ia,
ja)
304 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
305 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
306 real(rp),
intent(in) :: cdz(
ka)
307 integer,
intent(in) :: iis, iie, jjs, jje
321 call check( __line__, mflx(
k,i,j) )
323 call check( __line__, val(
k,i,j) )
324 call check( __line__, val(
k,i+1,j) )
326 call check( __line__, val(
k,i-1,j) )
327 call check( __line__, val(
k,i+2,j) )
329 call check( __line__, val(
k,i-2,j) )
330 call check( __line__, val(
k,i+3,j) )
335 * ( f61 * ( val(
k,i+1,j)+val(
k,i,j) ) &
336 + f62 * ( val(
k,i+2,j)+val(
k,i-1,j) ) &
337 + f63 * ( val(
k,i+3,j)+val(
k,i-2,j) ) ) &
338 + gsqrt(
k,i,j) * num_diff(
k,i,j)
344 k = iundef; i = iundef; j = iundef
360 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
361 real(rp),
intent(in) :: mflx (
ka,
ia,
ja)
362 real(rp),
intent(in) :: val (
ka,
ia,
ja)
363 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
364 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
365 real(rp),
intent(in) :: cdz(
ka)
366 integer,
intent(in) :: iis, iie, jjs, jje
380 call check( __line__, mflx(
k,i,j) )
382 call check( __line__, val(
k,i,j) )
383 call check( __line__, val(
k,i,j+1) )
385 call check( __line__, val(
k,i,j-1) )
386 call check( __line__, val(
k,i,j+2) )
388 call check( __line__, val(
k,i,j-2) )
389 call check( __line__, val(
k,i,j+3) )
394 * ( f61 * ( val(
k,i,j+1)+val(
k,i,j) ) &
395 + f62 * ( val(
k,i,j+2)+val(
k,i,j-1) ) &
396 + f63 * ( val(
k,i,j+3)+val(
k,i,j-2) ) ) &
397 + gsqrt(
k,i,j) * num_diff(
k,i,j)
403 k = iundef; i = iundef; j = iundef
422 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
423 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
424 real(rp),
intent(in) :: val (
ka,
ia,
ja)
425 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
426 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
427 real(rp),
intent(in) :: j33g
428 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
429 real(rp),
intent(in) :: cdz (
ka)
430 real(rp),
intent(in) :: fdz (
ka-1)
431 real(rp),
intent(in) :: dtrk
432 integer,
intent(in) :: iis, iie, jjs, jje
451 call check( __line__, mom(
k-1,i,j) )
452 call check( __line__, mom(
k ,i,j) )
454 call check( __line__, val(
k-1,i,j) )
455 call check( __line__, val(
k,i,j) )
457 call check( __line__, val(
k-2,i,j) )
458 call check( __line__, val(
k+1,i,j) )
460 call check( __line__, val(
k-3,i,j) )
461 call check( __line__, val(
k+2,i,j) )
464 vel = ( 0.5_rp * ( mom(
k-1,i,j) &
467 flux(
k-1,i,j) = j33g * vel &
468 * ( f61 * ( val(
k,i,j)+val(
k-1,i,j) ) &
469 + f62 * ( val(
k+1,i,j)+val(
k-2,i,j) ) &
470 + f63 * ( val(
k+2,i,j)+val(
k-3,i,j) ) ) &
471 + gsqrt(
k,i,j) * num_diff(
k,i,j)
478 k = iundef; i = iundef; j = iundef
487 call check( __line__, val(
ks,i,j) )
488 call check( __line__, val(
ks+1,i,j) )
489 call check( __line__, val(
ks+2,i,j) )
490 call check( __line__, val(
ks+3,i,j) )
493 call check( __line__, val(
ke-3,i,j) )
494 call check( __line__, val(
ke-2,i,j) )
495 call check( __line__, val(
ke-1,i,j) )
501 flux(
ks-1,i,j) = 0.0_rp
503 vel = ( 0.5_rp * ( mom(
ks,i,j) &
504 + mom(
ks+1,i,j) ) ) &
506 flux(
ks,i,j) = j33g * vel &
507 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
508 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
510 vel = ( 0.5_rp * ( mom(
ks+1,i,j) &
511 + mom(
ks+2,i,j) ) ) &
513 flux(
ks+1,i,j) = j33g * vel &
514 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
515 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) ) &
516 + gsqrt(
ks+2,i,j) * num_diff(
ks+2,i,j)
520 vel = ( 0.5_rp * ( mom(
ke-2,i,j) &
521 + mom(
ke-1,i,j) ) ) &
523 flux(
ke-2,i,j) = j33g * vel &
524 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
525 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) ) &
526 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
528 flux(
ke-1,i,j) = 0.0_rp
529 flux(
ke ,i,j) = 0.0_rp
553 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
554 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
555 real(rp),
intent(in) :: val (
ka,
ia,
ja)
556 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
557 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
558 real(rp),
intent(in) :: j13g (
ka,
ia,
ja)
559 real(rp),
intent(in) :: mapf (
ia,
ja,2)
560 real(rp),
intent(in) :: cdz (
ka)
561 logical,
intent(in) :: twod
562 integer,
intent(in) :: iis, iie, jjs, jje
578 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i-1,j) ) ) &
580 vel = vel * j13g(
k,i,j)
581 flux(
k-1,i,j) = vel / mapf(i,j,+2) &
582 * ( f61 * ( val(
k,i,j)+val(
k-1,i,j) ) &
583 + f62 * ( val(
k+1,i,j)+val(
k-2,i,j) ) &
584 + f63 * ( val(
k+2,i,j)+val(
k-3,i,j) ) )
598 flux(
ks-1,i,j) = 0.0_rp
601 vel = ( ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i-1,j) ) ) / dens(
ks+1,i,j) &
602 + ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j) ) ) / dens(
ks ,i,j) ) * 0.5_rp
605 vel = vel * j13g(
ks+1,i,j)
606 flux(
ks,i,j) = vel / mapf(i,j,+2) &
607 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
610 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i-1,j) ) ) &
612 vel = vel * j13g(
ke-1,i,j)
613 flux(
ke-2,i,j) = vel / mapf(i,j,+2) &
614 * ( f2 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) )
616 flux(
ke-1,i,j) = 0.0_rp
639 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
640 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
641 real(rp),
intent(in) :: val (
ka,
ia,
ja)
642 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
643 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
644 real(rp),
intent(in) :: j23g (
ka,
ia,
ja)
645 real(rp),
intent(in) :: mapf (
ia,
ja,2)
646 real(rp),
intent(in) :: cdz (
ka)
647 logical,
intent(in) :: twod
648 integer,
intent(in) :: iis, iie, jjs, jje
664 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j-1) ) ) &
666 vel = vel * j23g(
k,i,j)
667 flux(
k-1,i,j) = vel / mapf(i,j,+1) &
668 * ( f61 * ( val(
k,i,j)+val(
k-1,i,j) ) &
669 + f62 * ( val(
k+1,i,j)+val(
k-2,i,j) ) &
670 + f63 * ( val(
k+2,i,j)+val(
k-3,i,j) ) )
684 flux(
ks-1,i,j) = 0.0_rp
687 vel = ( ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j-1) ) ) / dens(
ks+1,i,j) &
688 + ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j-1) ) ) / dens(
ks ,i,j) ) * 0.5_rp
691 vel = vel * j23g(
ks+1,i,j)
692 flux(
ks,i,j) = vel / mapf(i,j,+1) &
693 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
696 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j-1) ) ) &
698 vel = vel * j23g(
ke-1,i,j)
699 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
700 * ( f2 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) )
702 flux(
ke-1,i,j) = 0.0_rp
727 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
728 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
729 real(rp),
intent(in) :: val (
ka,
ia,
ja)
730 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
731 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
732 real(rp),
intent(in) :: mapf (
ia,
ja,2)
733 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
734 real(rp),
intent(in) :: cdz (
ka)
735 logical,
intent(in) :: twod
736 integer,
intent(in) :: iis, iie, jjs, jje
754 call check( __line__, mom(
k ,i,j) )
755 call check( __line__, mom(
k+1,i,j) )
757 call check( __line__, val(
k,i,j) )
758 call check( __line__, val(
k,i+1,j) )
760 call check( __line__, val(
k,i-1,j) )
761 call check( __line__, val(
k,i+2,j) )
763 call check( __line__, val(
k,i-2,j) )
764 call check( __line__, val(
k,i+3,j) )
772 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
774 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
775 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+2) * vel &
776 * ( f61 * ( val(
k,i+1,j)+val(
k,i,j) ) &
777 + f62 * ( val(
k,i+2,j)+val(
k,i-1,j) ) &
778 + f63 * ( val(
k,i+3,j)+val(
k,i-2,j) ) ) &
779 + gsqrt(
k,i,j) * num_diff(
k,i,j)
786 k = iundef; i = iundef; j = iundef
793 flux(
ke,i,j) = 0.0_rp
803 k = iundef; i = iundef; j = iundef
820 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
821 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
822 real(rp),
intent(in) :: val (
ka,
ia,
ja)
823 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
824 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
825 real(rp),
intent(in) :: mapf (
ia,
ja,2)
826 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
827 real(rp),
intent(in) :: cdz (
ka)
828 logical,
intent(in) :: twod
829 integer,
intent(in) :: iis, iie, jjs, jje
847 call check( __line__, mom(
k ,i,j) )
848 call check( __line__, mom(
k+1,i,j) )
850 call check( __line__, val(
k,i,j) )
851 call check( __line__, val(
k,i,j+1) )
853 call check( __line__, val(
k,i,j-1) )
854 call check( __line__, val(
k,i,j+2) )
856 call check( __line__, val(
k,i,j-2) )
857 call check( __line__, val(
k,i,j+3) )
865 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
867 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
868 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
869 * ( f61 * ( val(
k,i,j+1)+val(
k,i,j) ) &
870 + f62 * ( val(
k,i,j+2)+val(
k,i,j-1) ) &
871 + f63 * ( val(
k,i,j+3)+val(
k,i,j-2) ) ) &
872 + gsqrt(
k,i,j) * num_diff(
k,i,j)
879 k = iundef; i = iundef; j = iundef
886 flux(
ke,i,j) = 0.0_rp
896 k = iundef; i = iundef; j = iundef
914 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
915 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
916 real(rp),
intent(in) :: val (
ka,
ia,
ja)
917 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
918 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
919 real(rp),
intent(in) :: j33g
920 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
921 real(rp),
intent(in) :: cdz (
ka)
922 logical,
intent(in) :: twod
923 integer,
intent(in) :: iis, iie, jjs, jje
944 call check( __line__, mom(
k,i,j) )
946 call check( __line__, val(
k,i,j) )
947 call check( __line__, val(
k+1,i,j) )
949 call check( __line__, val(
k-1,i,j) )
950 call check( __line__, val(
k+2,i,j) )
952 call check( __line__, val(
k-2,i,j) )
953 call check( __line__, val(
k+3,i,j) )
956 vel = ( mom(
k,i,j) ) &
961 flux(
k,i,j) = j33g * vel &
962 * ( f61 * ( val(
k+1,i,j)+val(
k,i,j) ) &
963 + f62 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
964 + f63 * ( val(
k+3,i,j)+val(
k-2,i,j) ) ) &
965 + gsqrt(
k,i,j) * num_diff(
k,i,j)
971 k = iundef; i = iundef; j = iundef
980 call check( __line__, mom(
ks,i ,j) )
981 call check( __line__, val(
ks+1,i,j) )
982 call check( __line__, val(
ks,i,j) )
984 call check( __line__, mom(
ks+1,i ,j) )
985 call check( __line__, val(
ks+3,i,j) )
986 call check( __line__, val(
ks+2,i,j) )
992 flux(
ks-1,i,j) = 0.0_rp
994 vel = ( mom(
ks,i,j) ) &
999 flux(
ks,i,j) = j33g * vel &
1000 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
1001 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
1002 vel = ( mom(
ke-1,i,j) ) &
1007 flux(
ke-1,i,j) = j33g * vel &
1008 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
1009 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
1011 vel = ( mom(
ks+1,i,j) ) &
1016 flux(
ks+1,i,j) = j33g * vel &
1017 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1018 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) ) &
1019 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
1020 vel = ( mom(
ke-2,i,j) ) &
1025 flux(
ke-2,i,j) = j33g * vel &
1026 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1027 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) ) &
1028 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
1030 flux(
ke,i,j) = 0.0_rp
1044 call check( __line__, mom(
k,i,j) )
1045 call check( __line__, mom(
k,i+1,j) )
1047 call check( __line__, val(
k,i,j) )
1048 call check( __line__, val(
k+1,i,j) )
1050 call check( __line__, val(
k-1,i,j) )
1051 call check( __line__, val(
k+2,i,j) )
1053 call check( __line__, val(
k-2,i,j) )
1054 call check( __line__, val(
k+3,i,j) )
1057 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i+1,j) ) ) &
1059 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
1061 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
1062 flux(
k,i,j) = j33g * vel &
1063 * ( f61 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1064 + f62 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1065 + f63 * ( val(
k+3,i,j)+val(
k-2,i,j) ) ) &
1066 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1073 k = iundef; i = iundef; j = iundef
1082 call check( __line__, mom(
ks,i ,j) )
1083 call check( __line__, mom(
ks,i+1,j) )
1084 call check( __line__, val(
ks+1,i,j) )
1085 call check( __line__, val(
ks,i,j) )
1087 call check( __line__, mom(
ks+1,i ,j) )
1088 call check( __line__, mom(
ks+1,i+1,j) )
1089 call check( __line__, val(
ks+3,i,j) )
1090 call check( __line__, val(
ks+2,i,j) )
1096 flux(
ks-1,i,j) = 0.0_rp
1098 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j) ) ) &
1100 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1102 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1103 flux(
ks,i,j) = j33g * vel &
1104 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
1105 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
1106 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i+1,j) ) ) &
1108 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1110 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1111 flux(
ke-1,i,j) = j33g * vel &
1112 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
1113 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
1115 vel = ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i+1,j) ) ) &
1117 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
1119 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
1120 flux(
ks+1,i,j) = j33g * vel &
1121 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1122 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) ) &
1123 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
1124 vel = ( 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i+1,j) ) ) &
1126 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
1128 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
1129 flux(
ke-2,i,j) = j33g * vel &
1130 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1131 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) ) &
1132 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
1134 flux(
ke,i,j) = 0.0_rp
1147 k = iundef; i = iundef; j = iundef
1158 GSQRT, J13G, MAPF, &
1160 IIS, IIE, JJS, JJE )
1163 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1164 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1165 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1166 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1167 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1168 real(rp),
intent(in) :: j13g (
ka,
ia,
ja)
1169 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1170 real(rp),
intent(in) :: cdz (
ka)
1171 logical,
intent(in) :: twod
1172 integer,
intent(in) :: iis, iie, jjs, jje
1196 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
1198 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
1199 vel = vel * j13g(
k,i,j)
1200 flux(
k,i,j) = vel / mapf(i,j,+2) &
1201 * ( f61 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1202 + f62 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1203 + f63 * ( val(
k+3,i,j)+val(
k-2,i,j) ) )
1217 flux(
ks-1,i,j) = 0.0_rp
1224 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1226 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1227 vel = vel * j13g(
ks,i,j)
1228 flux(
ks,i,j) = vel / mapf(i,j,+2) &
1229 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1236 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1238 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1239 vel = vel * j13g(
ke-1,i,j)
1240 flux(
ke-1,i,j) = vel / mapf(i,j,+2) &
1241 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1248 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
1250 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
1251 vel = vel * j13g(
ks+1,i,j)
1252 flux(
ks+1,i,j) = vel / mapf(i,j,+2) &
1253 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1254 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
1261 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
1263 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
1264 vel = vel * j13g(
ke-2,i,j)
1265 flux(
ke-2,i,j) = vel / mapf(i,j,+2) &
1266 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1267 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
1269 flux(
ke ,i,j) = 0.0_rp
1288 GSQRT, J23G, MAPF, &
1290 IIS, IIE, JJS, JJE )
1293 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1294 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1295 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1296 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1297 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1298 real(rp),
intent(in) :: j23g (
ka,
ia,
ja)
1299 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1300 real(rp),
intent(in) :: cdz (
ka)
1301 logical,
intent(in) :: twod
1302 integer,
intent(in) :: iis, iie, jjs, jje
1323 * 0.5_rp * ( mom(
k+1,i,j)+mom(
k+1,i,j-1) ) &
1325 * 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j-1) ) ) &
1330 vel = vel * j23g(
k,i,j)
1331 flux(
k,i,j) = vel * ( f61 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1332 + f62 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1333 + f63 * ( val(
k+3,i,j)+val(
k-2,i,j) ) )
1346 flux(
ks-1,i,j) = 0.0_rp
1349 * 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j-1) ) &
1351 * 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j-1) ) ) &
1356 vel = vel * j23g(
ks,i,j)
1357 flux(
ks,i,j) = vel / mapf(i,j,+1) &
1358 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1361 * 0.5_rp * ( mom(
ke,i,j)+mom(
ke,i,j-1) ) &
1363 * 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j-1) ) ) &
1368 vel = vel * j23g(
ke-1,i,j)
1369 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
1370 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1373 * 0.5_rp * ( mom(
ks+2,i,j)+mom(
ks+2,i,j-1) ) &
1375 * 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j-1) ) ) &
1380 vel = vel * j23g(
ks+1,i,j)
1381 flux(
ks+1,i,j) = vel / mapf(i,j,+1) &
1382 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1383 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
1386 * 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j-1) ) &
1388 * 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i,j-1) ) ) &
1393 vel = vel * j23g(
ke-2,i,j)
1394 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
1395 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1396 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
1398 flux(
ke ,i,j) = 0.0_rp
1412 * 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) ) &
1414 * 0.25_rp * ( mom(
k,i,j)+mom(
k,i+1,j)+mom(
k,i,j-1)+mom(
k,i+1,j-1) ) ) &
1416 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
1418 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
1419 vel = vel * j23g(
k,i,j)
1420 flux(
k,i,j) = vel / mapf(i,j,+1) &
1421 * ( f61 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1422 + f62 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1423 + f63 * ( val(
k+3,i,j)+val(
k-2,i,j) ) )
1437 flux(
ks-1,i,j) = 0.0_rp
1440 * 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) ) &
1442 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j)+mom(
ks,i,j-1)+mom(
ks,i+1,j-1) ) ) &
1444 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1446 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1447 vel = vel * j23g(
ks,i,j)
1448 flux(
ks,i,j) = vel / mapf(i,j,+1) &
1449 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1452 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i+1,j)+mom(
ke,i,j-1)+mom(
ke,i+1,j-1) ) &
1454 * 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) ) ) &
1456 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1458 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1459 vel = vel * j23g(
ke-1,i,j)
1460 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
1461 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1464 * 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) ) &
1466 * 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) ) ) &
1468 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
1470 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
1471 vel = vel * j23g(
ks+1,i,j)
1472 flux(
ks+1,i,j) = vel / mapf(i,j,+1) &
1473 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1474 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
1477 * 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) ) &
1479 * 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) ) ) &
1481 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
1483 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
1484 vel = vel * j23g(
ke-2,i,j)
1485 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
1486 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1487 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
1489 flux(
ke ,i,j) = 0.0_rp
1513 IIS, IIE, JJS, JJE )
1516 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1517 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1518 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1519 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1520 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1521 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1522 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1523 real(rp),
intent(in) :: cdz (
ka)
1524 logical,
intent(in) :: twod
1525 integer,
intent(in) :: iis, iie, jjs, jje
1543 call check( __line__, mom(
k,i ,j) )
1544 call check( __line__, mom(
k,i-1,j) )
1546 call check( __line__, val(
k,i-1,j) )
1547 call check( __line__, val(
k,i,j) )
1549 call check( __line__, val(
k,i-2,j) )
1550 call check( __line__, val(
k,i+1,j) )
1552 call check( __line__, val(
k,i-3,j) )
1553 call check( __line__, val(
k,i+2,j) )
1556 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i-1,j) ) ) &
1558 flux(
k,i-1,j) = gsqrt(
k,i,j) / mapf(i,j,+2) * vel &
1559 * ( f61 * ( val(
k,i,j)+val(
k,i-1,j) ) &
1560 + f62 * ( val(
k,i+1,j)+val(
k,i-2,j) ) &
1561 + f63 * ( val(
k,i+2,j)+val(
k,i-3,j) ) ) &
1562 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1568 k = iundef; i = iundef; j = iundef
1584 IIS, IIE, JJS, JJE )
1587 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1588 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1589 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1590 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1591 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1592 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1593 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1594 real(rp),
intent(in) :: cdz (
ka)
1595 logical,
intent(in) :: twod
1596 integer,
intent(in) :: iis, iie, jjs, jje
1614 call check( __line__, mom(
k,i ,j) )
1616 call check( __line__, val(
k,i,j) )
1617 call check( __line__, val(
k,i,j+1) )
1619 call check( __line__, val(
k,i,j-1) )
1620 call check( __line__, val(
k,i,j+2) )
1622 call check( __line__, val(
k,i,j-2) )
1623 call check( __line__, val(
k,i,j+3) )
1626 vel = ( mom(
k,i,j) ) &
1627 / ( 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
1628 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
1629 * ( f61 * ( val(
k,i,j+1)+val(
k,i,j) ) &
1630 + f62 * ( val(
k,i,j+2)+val(
k,i,j-1) ) &
1631 + f63 * ( val(
k,i,j+3)+val(
k,i,j-2) ) ) &
1632 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1637 k = iundef; i = iundef; j = iundef
1651 call check( __line__, mom(
k,i ,j) )
1652 call check( __line__, mom(
k,i-1,j) )
1654 call check( __line__, val(
k,i,j) )
1655 call check( __line__, val(
k,i,j+1) )
1657 call check( __line__, val(
k,i,j-1) )
1658 call check( __line__, val(
k,i,j+2) )
1660 call check( __line__, val(
k,i,j-2) )
1661 call check( __line__, val(
k,i,j+3) )
1664 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i+1,j) ) ) &
1665 / ( 0.25_rp * ( dens(
k,i,j)+dens(
k,i+1,j)+dens(
k,i,j+1)+dens(
k,i+1,j+1) ) )
1666 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
1667 * ( f61 * ( val(
k,i,j+1)+val(
k,i,j) ) &
1668 + f62 * ( val(
k,i,j+2)+val(
k,i,j-1) ) &
1669 + f63 * ( val(
k,i,j+3)+val(
k,i,j-2) ) ) &
1670 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1676 k = iundef; i = iundef; j = iundef
1696 IIS, IIE, JJS, JJE )
1699 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1700 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1701 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1702 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1703 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1704 real(rp),
intent(in) :: j33g
1705 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1706 real(rp),
intent(in) :: cdz (
ka)
1707 logical,
intent(in) :: twod
1708 integer,
intent(in) :: iis, iie, jjs, jje
1727 call check( __line__, mom(
k,i,j) )
1728 call check( __line__, mom(
k,i,j+1) )
1730 call check( __line__, val(
k,i,j) )
1731 call check( __line__, val(
k+1,i,j) )
1733 call check( __line__, val(
k-1,i,j) )
1734 call check( __line__, val(
k+2,i,j) )
1736 call check( __line__, val(
k-2,i,j) )
1737 call check( __line__, val(
k+3,i,j) )
1740 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j+1) ) ) &
1742 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
1744 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
1745 flux(
k,i,j) = j33g * vel &
1746 * ( f61 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1747 + f62 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1748 + f63 * ( val(
k+3,i,j)+val(
k-2,i,j) ) ) &
1749 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1756 k = iundef; i = iundef; j = iundef
1765 call check( __line__, mom(
ks,i ,j) )
1766 call check( __line__, mom(
ks,i,j+1) )
1767 call check( __line__, val(
ks+1,i,j) )
1768 call check( __line__, val(
ks,i,j) )
1770 call check( __line__, mom(
ks+1,i ,j) )
1771 call check( __line__, mom(
ks+1,i,j+1) )
1772 call check( __line__, val(
ks+3,i,j) )
1773 call check( __line__, val(
ks+2,i,j) )
1779 flux(
ks-1,i,j) = 0.0_rp
1781 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j+1) ) ) &
1783 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1785 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1786 flux(
ks,i,j) = j33g * vel &
1787 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
1788 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
1789 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j+1) ) ) &
1791 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1793 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1794 flux(
ke-1,i,j) = j33g * vel &
1795 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
1796 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
1798 vel = ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j+1) ) ) &
1800 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
1802 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
1803 flux(
ks+1,i,j) = j33g * vel &
1804 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1805 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) ) &
1806 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
1807 vel = ( 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i,j+1) ) ) &
1809 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
1811 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
1812 flux(
ke-2,i,j) = j33g * vel &
1813 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1814 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) ) &
1815 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
1817 flux(
ke,i,j) = 0.0_rp
1828 k = iundef; i = iundef; j = iundef
1839 GSQRT, J13G, MAPF, &
1841 IIS, IIE, JJS, JJE )
1844 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1845 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1846 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1847 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1848 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1849 real(rp),
intent(in) :: j13g (
ka,
ia,
ja)
1850 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1851 real(rp),
intent(in) :: cdz (
ka)
1852 logical,
intent(in) :: twod
1853 integer,
intent(in) :: iis, iie, jjs, jje
1873 * 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) ) &
1875 * 0.25_rp * ( mom(
k,i,j)+mom(
k,i-1,j)+mom(
k,i,j+1)+mom(
k,i-1,j+1) ) ) &
1877 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
1879 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
1880 vel = vel * j13g(
k,i,j)
1881 flux(
k,i,j) = vel / mapf(i,j,+2) &
1882 * ( f61 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1883 + f62 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1884 + f63 * ( val(
k+3,i,j)+val(
k-2,i,j) ) )
1898 flux(
ks-1,i,j) = 0.0_rp
1901 * 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) ) &
1903 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j)+mom(
ks,i,j+1)+mom(
ks,i-1,j+1) ) ) &
1905 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1907 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1908 vel = vel * j13g(
ks,i,j)
1909 flux(
ks,i,j) = vel / mapf(i,j,+2) &
1910 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1913 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i-1,j)+mom(
ke,i,j+1)+mom(
ke,i-1,j+1) ) &
1915 * 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) ) ) &
1917 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1919 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1920 vel = vel * j13g(
ke-1,i,j)
1921 flux(
ke-1,i,j) = vel / mapf(i,j,+2) &
1922 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1925 * 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) ) &
1927 * 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) ) ) &
1929 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
1931 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
1932 vel = vel * j13g(
ks+1,i,j)
1933 flux(
ks+1,i,j) = vel / mapf(i,j,+2) &
1934 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
1935 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
1938 * 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) ) &
1940 * 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) ) ) &
1942 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
1944 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
1945 vel = vel * j13g(
ke-2,i,j)
1946 flux(
ke-2,i,j) = vel / mapf(i,j,+2) &
1947 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
1948 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
1950 flux(
ke ,i,j) = 0.0_rp
1969 GSQRT, J23G, MAPF, &
1971 IIS, IIE, JJS, JJE )
1974 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1975 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1976 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1977 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1978 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1979 real(rp),
intent(in) :: j23g (
ka,
ia,
ja)
1980 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1981 real(rp),
intent(in) :: cdz (
ka)
1982 logical,
intent(in) :: twod
1983 integer,
intent(in) :: iis, iie, jjs, jje
2007 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
2009 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
2010 vel = vel * j23g(
k,i,j)
2011 flux(
k,i,j) = vel / mapf(i,j,+1) &
2012 * ( f61 * ( val(
k+1,i,j)+val(
k,i,j) ) &
2013 + f62 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
2014 + f63 * ( val(
k+3,i,j)+val(
k-2,i,j) ) )
2028 flux(
ks-1,i,j) = 0.0_rp
2035 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
2037 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
2038 vel = vel * j23g(
ks,i,j)
2039 flux(
ks,i,j) = vel / mapf(i,j,+1) &
2040 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
2047 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
2049 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
2050 vel = vel * j23g(
ke-1,i,j)
2051 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
2052 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
2059 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
2061 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
2062 vel = vel * j23g(
ks+1,i,j)
2063 flux(
ks+1,i,j) = vel / mapf(i,j,+1) &
2064 * ( f41 * ( val(
ks+2,i,j)+val(
ks+1,i,j) ) &
2065 + f42 * ( val(
ks+3,i,j)+val(
ks,i,j) ) )
2072 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
2074 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
2075 vel = vel * j23g(
ke-2,i,j)
2076 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
2077 * ( f41 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
2078 + f42 * ( val(
ke,i,j)+val(
ke-3,i,j) ) )
2080 flux(
ke ,i,j) = 0.0_rp
2102 IIS, IIE, JJS, JJE )
2105 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
2106 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
2107 real(rp),
intent(in) :: val (
ka,
ia,
ja)
2108 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
2109 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
2110 real(rp),
intent(in) :: mapf (
ia,
ja,2)
2111 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
2112 real(rp),
intent(in) :: cdz (
ka)
2113 logical,
intent(in) :: twod
2114 integer,
intent(in) :: iis, iie, jjs, jje
2130 call check( __line__, mom(
k,i ,j) )
2131 call check( __line__, mom(
k,i,j-1) )
2133 call check( __line__, val(
k,i,j) )
2134 call check( __line__, val(
k,i+1,j) )
2136 call check( __line__, val(
k,i-1,j) )
2137 call check( __line__, val(
k,i+2,j) )
2139 call check( __line__, val(
k,i-2,j) )
2140 call check( __line__, val(
k,i+3,j) )
2143 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j+1) ) ) &
2144 / ( 0.25_rp * ( dens(
k,i,j)+dens(
k,i+1,j)+dens(
k,i,j+1)+dens(
k,i+1,j+1) ) )
2145 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+2) * vel &
2146 * ( f61 * ( val(
k,i+1,j)+val(
k,i,j) ) &
2147 + f62 * ( val(
k,i+2,j)+val(
k,i-1,j) ) &
2148 + f63 * ( val(
k,i+3,j)+val(
k,i-2,j) ) ) &
2149 + gsqrt(
k,i,j) * num_diff(
k,i,j)
2155 k = iundef; i = iundef; j = iundef
2171 IIS, IIE, JJS, JJE )
2174 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
2175 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
2176 real(rp),
intent(in) :: val (
ka,
ia,
ja)
2177 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
2178 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
2179 real(rp),
intent(in) :: mapf (
ia,
ja,2)
2180 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
2181 real(rp),
intent(in) :: cdz (
ka)
2182 logical,
intent(in) :: twod
2183 integer,
intent(in) :: iis, iie, jjs, jje
2201 call check( __line__, mom(
k,i ,j) )
2202 call check( __line__, mom(
k,i,j-1) )
2204 call check( __line__, val(
k,i,j-1) )
2205 call check( __line__, val(
k,i,j) )
2207 call check( __line__, val(
k,i,j-2) )
2208 call check( __line__, val(
k,i,j+1) )
2210 call check( __line__, val(
k,i,j-3) )
2211 call check( __line__, val(
k,i,j+2) )
2214 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j-1) ) ) &
2216 flux(
k,i,j-1) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
2217 * ( f61 * ( val(
k,i,j)+val(
k,i,j-1) ) &
2218 + f62 * ( val(
k,i,j+1)+val(
k,i,j-2) ) &
2219 + f63 * ( val(
k,i,j+2)+val(
k,i,j-3) ) ) &
2220 + gsqrt(
k,i,j) * num_diff(
k,i,j)
2226 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