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 :: F31 = -1.0_rp/12.0_rp
88 real(RP),
parameter :: F32 = 7.0_rp/12.0_rp
89 real(RP),
parameter :: F33 = 3.0_rp/12.0_rp
92 real(RP),
parameter :: F51 = 1.0_rp/60.0_rp
93 real(RP),
parameter :: F52 = -8.0_rp/60.0_rp
94 real(RP),
parameter :: F53 = 37.0_rp/60.0_rp
95 real(RP),
parameter :: F54 = -5.0_rp/60.0_rp
96 real(RP),
parameter :: F55 = 10.0_rp/60.0_rp
99 real(RP),
parameter :: F71 = -3.0_rp/840.0_rp
100 real(RP),
parameter :: F72 = 29.0_rp/840.0_rp
101 real(RP),
parameter :: F73 = -139.0_rp/840.0_rp
102 real(RP),
parameter :: F74 = 533.0_rp/840.0_rp
103 real(RP),
parameter :: F75 = 21.0_rp/840.0_rp
104 real(RP),
parameter :: F76 = -63.0_rp/840.0_rp
105 real(RP),
parameter :: F77 = 105.0_rp/840.0_rp
120 real(rp),
intent(out) :: valw (
ka)
121 real(rp),
intent(in) :: mflx (
ka)
122 real(rp),
intent(in) :: val (
ka)
123 real(rp),
intent(in) :: gsqrt(
ka)
124 real(rp),
intent(in) :: cdz (
ka)
131 call check( __line__, mflx(
k) )
133 call check( __line__, val(
k) )
134 call check( __line__, val(
k+1) )
136 call check( __line__, val(
k-1) )
137 call check( __line__, val(
k+2) )
139 call check( __line__, val(
k-2) )
140 call check( __line__, val(
k+3) )
142 call check( __line__, val(
k-3) )
143 call check( __line__, val(
k+4) )
146 valw(
k) = ( f71 * ( val(
k+4)+val(
k-3) ) &
147 + f72 * ( val(
k+3)+val(
k-2) ) &
148 + f73 * ( val(
k+2)+val(
k-1) ) &
149 + f74 * ( val(
k+1)+val(
k) ) ) &
150 - ( f71 * ( val(
k+4)-val(
k-3) ) &
151 + f75 * ( val(
k+3)-val(
k-2) ) &
152 + f76 * ( val(
k+2)-val(
k-1) ) &
153 + f77 * ( val(
k+1)-val(
k) ) ) * sign(1.0_rp,mflx(
k))
161 call check( __line__, mflx(
ks) )
162 call check( __line__, val(
ks ) )
163 call check( __line__, val(
ks+1) )
164 call check( __line__, mflx(
ke-1) )
165 call check( __line__, val(
ke ) )
166 call check( __line__, val(
ke-1) )
168 call check( __line__, mflx(
ks+1) )
169 call check( __line__, val(
ks+2 ) )
170 call check( __line__, val(
ks+3) )
171 call check( __line__, mflx(
ke-2) )
172 call check( __line__, val(
ke-2 ) )
173 call check( __line__, val(
ke-3) )
175 call check( __line__, mflx(
ks+2) )
176 call check( __line__, val(
ks+4 ) )
177 call check( __line__, val(
ks+5) )
178 call check( __line__, mflx(
ke-3) )
179 call check( __line__, val(
ke-4 ) )
180 call check( __line__, val(
ke-5) )
184 valw(
ks) = f2 * ( val(
ks+1)+val(
ks) ) &
185 * ( 0.5_rp + sign(0.5_rp,mflx(
ks)) ) &
186 + ( 2.0_rp * val(
ks) + 5.0_rp * val(
ks+1) - val(
ks+2) ) / 6.0_rp &
187 * ( 0.5_rp - sign(0.5_rp,mflx(
ks)) )
188 valw(
ke-1) = ( 2.0_rp * val(
ke) + 5.0_rp * val(
ke-1) - val(
ke-2) ) / 6.0_rp &
189 * ( 0.5_rp + sign(0.5_rp,mflx(
ke-1)) ) &
190 + f2 * ( val(
ke)+val(
ke-1) ) &
191 * ( 0.5_rp - sign(0.5_rp,mflx(
ke-1)) )
193 valw(
ks+1) = ( 2.0_rp * val(
ks+2) + 5.0_rp * val(
ks+1) - val(
ks) ) / 6.0_rp &
194 * ( 0.5_rp + sign(0.5_rp,mflx(
ks+1)) ) &
195 + ( - 3.0_rp * val(
ks) &
196 + 27.0_rp * val(
ks+1) &
197 + 47.0_rp * val(
ks+2) &
198 - 13.0_rp * val(
ks+3) &
199 + 2.0_rp * val(
ks+4) ) / 60.0_rp &
200 * ( 0.5_rp - sign(0.5_rp,mflx(
ks+1)) )
201 valw(
ke-2) = ( - 3.0_rp * val(
ke) &
202 + 27.0_rp * val(
ke-1) &
203 + 47.0_rp * val(
ke-2) &
204 - 13.0_rp * val(
ke-3) &
205 + 2.0_rp * val(
ke-4) ) / 60.0_rp &
206 * ( 0.5_rp + sign(0.5_rp,mflx(
ke-2)) ) &
207 + ( 2.0_rp * val(
ke-2) + 5.0_rp * val(
ke-1) - val(
ke) ) / 6.0_rp &
208 * ( 0.5_rp - sign(0.5_rp,mflx(
ke-2)) )
210 valw(
ks+2) = ( - 3.0_rp * val(
ks+4) &
211 + 27.0_rp * val(
ks+3) &
212 + 47.0_rp * val(
ks+2) &
213 - 13.0_rp * val(
ks+1) &
214 + 2.0_rp * val(
ks) ) / 60.0_rp &
215 * ( 0.5_rp + sign(0.5_rp,mflx(
ks+2)) ) &
216 + ( 4.0_rp * val(
ks) &
217 - 38.0_rp * val(
ks+1) &
218 + 214.0_rp * val(
ks+2) &
219 + 319.0_rp * val(
ks+3) &
220 - 101.0_rp * val(
ks+4) &
221 + 25.0_rp * val(
ks+5) &
222 - 3.0_rp * val(
ks+6) ) / 420.0_rp &
223 * ( 0.5_rp - sign(0.5_rp,mflx(
ks+2)) )
224 valw(
ke-3) = ( 4.0_rp * val(
ke) &
225 - 38.0_rp * val(
ke-1) &
226 + 214.0_rp * val(
ke-2) &
227 + 319.0_rp * val(
ke-3) &
228 - 101.0_rp * val(
ke-4) &
229 + 25.0_rp * val(
ke-5) &
230 - 3.0_rp * val(
ke-6) ) / 420.0_rp &
231 * ( 0.5_rp + sign(0.5_rp,mflx(
ke-3)) ) &
232 + ( - 3.0_rp * val(
ke-4) &
233 + 27.0_rp * val(
ke-3) &
234 + 47.0_rp * val(
ke-2) &
235 - 13.0_rp * val(
ke-1) &
236 + 2.0_rp * val(
ke) ) / 60.0_rp &
237 * ( 0.5_rp - sign(0.5_rp,mflx(
ke-3)) )
255 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
256 real(rp),
intent(in) :: mflx (
ka,
ia,
ja)
257 real(rp),
intent(in) :: val (
ka,
ia,
ja)
258 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
259 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
260 real(rp),
intent(in) :: cdz (
ka)
261 integer,
intent(in) :: iis, iie, jjs, jje
278 call check( __line__, mflx(
k,i,j) )
280 call check( __line__, val(
k,i,j) )
281 call check( __line__, val(
k+1,i,j) )
283 call check( __line__, val(
k-1,i,j) )
284 call check( __line__, val(
k+2,i,j) )
286 call check( __line__, val(
k-2,i,j) )
287 call check( __line__, val(
k+3,i,j) )
289 call check( __line__, val(
k-3,i,j) )
290 call check( __line__, val(
k+4,i,j) )
295 * ( ( f71 * ( val(
k+4,i,j)+val(
k-3,i,j) ) &
296 + f72 * ( val(
k+3,i,j)+val(
k-2,i,j) ) &
297 + f73 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
298 + f74 * ( val(
k+1,i,j)+val(
k,i,j) ) ) &
299 - ( f71 * ( val(
k+4,i,j)-val(
k-3,i,j) ) &
300 + f75 * ( val(
k+3,i,j)-val(
k-2,i,j) ) &
301 + f76 * ( val(
k+2,i,j)-val(
k-1,i,j) ) &
302 + f77 * ( val(
k+1,i,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
303 + gsqrt(
k,i,j) * num_diff(
k,i,j)
310 k = iundef; i = iundef; j = iundef
319 call check( __line__, mflx(
ks,i,j) )
320 call check( __line__, val(
ks ,i,j) )
321 call check( __line__, val(
ks+1,i,j) )
322 call check( __line__, mflx(
ke-1,i,j) )
323 call check( __line__, val(
ke ,i,j) )
324 call check( __line__, val(
ke-1,i,j) )
326 call check( __line__, mflx(
ks+1,i,j) )
327 call check( __line__, val(
ks+2 ,i,j) )
328 call check( __line__, val(
ks+3,i,j) )
329 call check( __line__, mflx(
ke-2,i,j) )
330 call check( __line__, val(
ke-2 ,i,j) )
331 call check( __line__, val(
ke-3,i,j) )
333 call check( __line__, mflx(
ks+2,i,j) )
334 call check( __line__, val(
ks+4 ,i,j) )
335 call check( __line__, val(
ks+5,i,j) )
336 call check( __line__, mflx(
ke-3,i,j) )
337 call check( __line__, val(
ke-4 ,i,j) )
338 call check( __line__, val(
ke-5,i,j) )
341 flux(
ks-1,i,j) = 0.0_rp
345 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
346 * ( 0.5_rp + sign(0.5_rp,vel) ) &
347 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
348 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
349 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
351 flux(
ke-1,i,j) = vel &
352 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
353 * ( 0.5_rp + sign(0.5_rp,vel) ) &
354 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
355 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
356 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
359 flux(
ks+1,i,j) = vel &
360 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
361 * ( 0.5_rp + sign(0.5_rp,vel) ) &
362 + ( - 3.0_rp * val(
ks,i,j) &
363 + 27.0_rp * val(
ks+1,i,j) &
364 + 47.0_rp * val(
ks+2,i,j) &
365 - 13.0_rp * val(
ks+3,i,j) &
366 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
367 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
368 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
370 flux(
ke-2,i,j) = vel &
371 * ( ( - 3.0_rp * val(
ke,i,j) &
372 + 27.0_rp * val(
ke-1,i,j) &
373 + 47.0_rp * val(
ke-2,i,j) &
374 - 13.0_rp * val(
ke-3,i,j) &
375 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
376 * ( 0.5_rp + sign(0.5_rp,vel) ) &
377 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
378 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
379 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
382 flux(
ks+2,i,j) = vel &
383 * ( ( - 3.0_rp * val(
ks+4,i,j) &
384 + 27.0_rp * val(
ks+3,i,j) &
385 + 47.0_rp * val(
ks+2,i,j) &
386 - 13.0_rp * val(
ks+1,i,j) &
387 + 2.0_rp * val(
ks,i,j) ) / 60.0_rp &
388 * ( 0.5_rp + sign(0.5_rp,vel) ) &
389 + ( 4.0_rp * val(
ks,i,j) &
390 - 38.0_rp * val(
ks+1,i,j) &
391 + 214.0_rp * val(
ks+2,i,j) &
392 + 319.0_rp * val(
ks+3,i,j) &
393 - 101.0_rp * val(
ks+4,i,j) &
394 + 25.0_rp * val(
ks+5,i,j) &
395 - 3.0_rp * val(
ks+6,i,j) ) / 420.0_rp &
396 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
397 + gsqrt(
ks+2,i,j) * num_diff(
ks+2,i,j)
399 flux(
ke-3,i,j) = vel &
400 * ( ( 4.0_rp * val(
ke,i,j) &
401 - 38.0_rp * val(
ke-1,i,j) &
402 + 214.0_rp * val(
ke-2,i,j) &
403 + 319.0_rp * val(
ke-3,i,j) &
404 - 101.0_rp * val(
ke-4,i,j) &
405 + 25.0_rp * val(
ke-5,i,j) &
406 - 3.0_rp * val(
ke-6,i,j) ) / 420.0_rp &
407 * ( 0.5_rp + sign(0.5_rp,vel) ) &
408 + ( - 3.0_rp * val(
ke-4,i,j) &
409 + 27.0_rp * val(
ke-3,i,j) &
410 + 47.0_rp * val(
ke-2,i,j) &
411 - 13.0_rp * val(
ke-1,i,j) &
412 + 2.0_rp * val(
ke,i,j) ) / 60.0_rp &
413 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
414 + gsqrt(
ke-3,i,j) * num_diff(
ke-3,i,j)
416 flux(
ke ,i,j) = 0.0_rp
426 k = iundef; i = iundef; j = iundef
442 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
443 real(rp),
intent(in) :: mflx (
ka,
ia,
ja)
444 real(rp),
intent(in) :: val (
ka,
ia,
ja)
445 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
446 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
447 real(rp),
intent(in) :: cdz(
ka)
448 integer,
intent(in) :: iis, iie, jjs, jje
462 call check( __line__, mflx(
k,i,j) )
464 call check( __line__, val(
k,i,j) )
465 call check( __line__, val(
k,i+1,j) )
467 call check( __line__, val(
k,i-1,j) )
468 call check( __line__, val(
k,i+2,j) )
470 call check( __line__, val(
k,i-2,j) )
471 call check( __line__, val(
k,i+3,j) )
473 call check( __line__, val(
k,i-3,j) )
474 call check( __line__, val(
k,i+4,j) )
479 * ( ( f71 * ( val(
k,i+4,j)+val(
k,i-3,j) ) &
480 + f72 * ( val(
k,i+3,j)+val(
k,i-2,j) ) &
481 + f73 * ( val(
k,i+2,j)+val(
k,i-1,j) ) &
482 + f74 * ( val(
k,i+1,j)+val(
k,i,j) ) ) &
483 - ( f71 * ( val(
k,i+4,j)-val(
k,i-3,j) ) &
484 + f75 * ( val(
k,i+3,j)-val(
k,i-2,j) ) &
485 + f76 * ( val(
k,i+2,j)-val(
k,i-1,j) ) &
486 + f77 * ( val(
k,i+1,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
487 + gsqrt(
k,i,j) * num_diff(
k,i,j)
493 k = iundef; i = iundef; j = iundef
509 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
510 real(rp),
intent(in) :: mflx (
ka,
ia,
ja)
511 real(rp),
intent(in) :: val (
ka,
ia,
ja)
512 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
513 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
514 real(rp),
intent(in) :: cdz(
ka)
515 integer,
intent(in) :: iis, iie, jjs, jje
529 call check( __line__, mflx(
k,i,j) )
531 call check( __line__, val(
k,i,j) )
532 call check( __line__, val(
k,i,j+1) )
534 call check( __line__, val(
k,i,j-1) )
535 call check( __line__, val(
k,i,j+2) )
537 call check( __line__, val(
k,i,j-2) )
538 call check( __line__, val(
k,i,j+3) )
540 call check( __line__, val(
k,i,j-3) )
541 call check( __line__, val(
k,i,j+4) )
546 * ( ( f71 * ( val(
k,i,j+4)+val(
k,i,j-3) ) &
547 + f72 * ( val(
k,i,j+3)+val(
k,i,j-2) ) &
548 + f73 * ( val(
k,i,j+2)+val(
k,i,j-1) ) &
549 + f74 * ( val(
k,i,j+1)+val(
k,i,j) ) ) &
550 - ( f71 * ( val(
k,i,j+4)-val(
k,i,j-3) ) &
551 + f75 * ( val(
k,i,j+3)-val(
k,i,j-2) ) &
552 + f76 * ( val(
k,i,j+2)-val(
k,i,j-1) ) &
553 + f77 * ( val(
k,i,j+1)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
554 + gsqrt(
k,i,j) * num_diff(
k,i,j)
560 k = iundef; i = iundef; j = iundef
579 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
580 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
581 real(rp),
intent(in) :: val (
ka,
ia,
ja)
582 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
583 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
584 real(rp),
intent(in) :: j33g
585 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
586 real(rp),
intent(in) :: cdz (
ka)
587 real(rp),
intent(in) :: fdz (
ka-1)
588 real(rp),
intent(in) :: dtrk
589 integer,
intent(in) :: iis, iie, jjs, jje
608 call check( __line__, mom(
k-1,i,j) )
609 call check( __line__, mom(
k ,i,j) )
611 call check( __line__, val(
k-1,i,j) )
612 call check( __line__, val(
k,i,j) )
614 call check( __line__, val(
k-2,i,j) )
615 call check( __line__, val(
k+1,i,j) )
617 call check( __line__, val(
k-3,i,j) )
618 call check( __line__, val(
k+2,i,j) )
620 call check( __line__, val(
k-4,i,j) )
621 call check( __line__, val(
k+3,i,j) )
624 vel = ( 0.5_rp * ( mom(
k-1,i,j) &
627 flux(
k-1,i,j) = j33g * vel &
628 * ( ( f71 * ( val(
k+3,i,j)+val(
k-4,i,j) ) &
629 + f72 * ( val(
k+2,i,j)+val(
k-3,i,j) ) &
630 + f73 * ( val(
k+1,i,j)+val(
k-2,i,j) ) &
631 + f74 * ( val(
k,i,j)+val(
k-1,i,j) ) ) &
632 - ( f71 * ( val(
k+3,i,j)-val(
k-4,i,j) ) &
633 + f75 * ( val(
k+2,i,j)-val(
k-3,i,j) ) &
634 + f76 * ( val(
k+1,i,j)-val(
k-2,i,j) ) &
635 + f77 * ( val(
k,i,j)-val(
k-1,i,j) ) ) * sign(1.0_rp,vel) ) &
636 + gsqrt(
k,i,j) * num_diff(
k,i,j)
643 k = iundef; i = iundef; j = iundef
652 call check( __line__, val(
ks,i,j) )
653 call check( __line__, val(
ks+1,i,j) )
654 call check( __line__, val(
ks+2,i,j) )
655 call check( __line__, val(
ks+3,i,j) )
656 call check( __line__, val(
ks+4,i,j) )
657 call check( __line__, val(
ks+5,i,j) )
658 call check( __line__, val(
ks+6,i,j) )
661 call check( __line__, val(
ke-6,i,j) )
662 call check( __line__, val(
ke-5,i,j) )
663 call check( __line__, val(
ke-4,i,j) )
664 call check( __line__, val(
ke-3,i,j) )
665 call check( __line__, val(
ke-2,i,j) )
666 call check( __line__, val(
ke-1,i,j) )
672 flux(
ks-1,i,j) = 0.0_rp
674 vel = ( 0.5_rp * ( mom(
ks,i,j) &
675 + mom(
ks+1,i,j) ) ) &
677 flux(
ks,i,j) = j33g * vel &
678 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
679 * ( 0.5_rp + sign(0.5_rp,vel) ) &
680 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
681 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
682 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
684 vel = ( 0.5_rp * ( mom(
ks+1,i,j) &
685 + mom(
ks+2,i,j) ) ) &
687 flux(
ks+1,i,j) = j33g * vel &
688 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
689 * ( 0.5_rp + sign(0.5_rp,vel) ) &
690 + ( - 3.0_rp * val(
ks,i,j) &
691 + 27.0_rp * val(
ks+1,i,j) &
692 + 47.0_rp * val(
ks+2,i,j) &
693 - 13.0_rp * val(
ks+3,i,j) &
694 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
695 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
696 + gsqrt(
ks+2,i,j) * num_diff(
ks+2,i,j)
698 vel = ( 0.5_rp * ( mom(
ks+2,i,j) &
699 + mom(
ks+3,i,j) ) ) &
701 flux(
ks+2,i,j) = j33g * vel &
702 * ( ( - 3.0_rp * val(
ks+4,i,j) &
703 + 27.0_rp * val(
ks+3,i,j) &
704 + 47.0_rp * val(
ks+2,i,j) &
705 - 13.0_rp * val(
ks+1,i,j) &
706 + 2.0_rp * val(
ks,i,j) ) / 60.0_rp &
707 * ( 0.5_rp + sign(0.5_rp,vel) ) &
708 + ( 4.0_rp * val(
ks,i,j) &
709 - 38.0_rp * val(
ks+1,i,j) &
710 + 214.0_rp * val(
ks+2,i,j) &
711 + 319.0_rp * val(
ks+3,i,j) &
712 - 101.0_rp * val(
ks+4,i,j) &
713 + 25.0_rp * val(
ks+5,i,j) &
714 - 3.0_rp * val(
ks+6,i,j) ) / 420.0_rp &
715 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
716 + gsqrt(
ks+3,i,j) * num_diff(
ks+3,i,j)
720 vel = ( 0.5_rp * ( mom(
ke-3,i,j) &
721 + mom(
ke-2,i,j) ) ) &
723 flux(
ke-3,i,j) = j33g * vel &
724 * ( ( 4.0_rp * val(
ke,i,j) &
725 - 38.0_rp * val(
ke-1,i,j) &
726 + 214.0_rp * val(
ke-2,i,j) &
727 + 319.0_rp * val(
ke-3,i,j) &
728 - 101.0_rp * val(
ke-4,i,j) &
729 + 25.0_rp * val(
ke-5,i,j) &
730 - 3.0_rp * val(
ke-6,i,j) ) / 420.0_rp &
731 * ( 0.5_rp + sign(0.5_rp,vel) ) &
732 + ( - 3.0_rp * val(
ke-4,i,j) &
733 + 27.0_rp * val(
ke-3,i,j) &
734 + 47.0_rp * val(
ke-2,i,j) &
735 - 13.0_rp * val(
ke-1,i,j) &
736 + 2.0_rp * val(
ke,i,j) ) / 60.0_rp &
737 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
738 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
740 vel = ( 0.5_rp * ( mom(
ke-2,i,j) &
741 + mom(
ke-1,i,j) ) ) &
743 flux(
ke-2,i,j) = j33g * vel &
744 * ( ( - 3.0_rp * val(
ke,i,j) &
745 + 27.0_rp * val(
ke-1,i,j) &
746 + 47.0_rp * val(
ke-2,i,j) &
747 - 13.0_rp * val(
ke-3,i,j) &
748 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
749 * ( 0.5_rp + sign(0.5_rp,vel) ) &
750 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
751 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
752 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
754 flux(
ke-1,i,j) = 0.0_rp
755 flux(
ke ,i,j) = 0.0_rp
779 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
780 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
781 real(rp),
intent(in) :: val (
ka,
ia,
ja)
782 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
783 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
784 real(rp),
intent(in) :: j13g (
ka,
ia,
ja)
785 real(rp),
intent(in) :: mapf (
ia,
ja,2)
786 real(rp),
intent(in) :: cdz (
ka)
787 logical,
intent(in) :: twod
788 integer,
intent(in) :: iis, iie, jjs, jje
804 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i-1,j) ) ) &
806 vel = vel * j13g(
k,i,j)
807 flux(
k-1,i,j) = vel / mapf(i,j,+2) &
808 * ( ( f71 * ( val(
k+3,i,j)+val(
k-4,i,j) ) &
809 + f72 * ( val(
k+2,i,j)+val(
k-3,i,j) ) &
810 + f73 * ( val(
k+1,i,j)+val(
k-2,i,j) ) &
811 + f74 * ( val(
k,i,j)+val(
k-1,i,j) ) ) &
812 - ( f71 * ( val(
k+3,i,j)-val(
k-4,i,j) ) &
813 + f75 * ( val(
k+2,i,j)-val(
k-3,i,j) ) &
814 + f76 * ( val(
k+1,i,j)-val(
k-2,i,j) ) &
815 + f77 * ( val(
k,i,j)-val(
k-1,i,j) ) ) * sign(1.0_rp,vel) )
829 flux(
ks-1,i,j) = 0.0_rp
832 vel = ( ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i-1,j) ) ) / dens(
ks+1,i,j) &
833 + ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j) ) ) / dens(
ks ,i,j) ) * 0.5_rp
836 vel = vel * j13g(
ks+1,i,j)
837 flux(
ks,i,j) = vel / mapf(i,j,+2) &
838 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
839 * ( 0.5_rp + sign(0.5_rp,vel) ) &
840 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
841 * ( 0.5_rp - sign(0.5_rp,vel) ) )
843 vel = ( 0.5_rp * ( mom(
ks+2,i,j)+mom(
ks+2,i-1,j) ) ) &
845 vel = vel * j13g(
ks,i,j)
846 flux(
ks+1,i,j) = vel / mapf(i,j,+2) &
847 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
848 * ( 0.5_rp + sign(0.5_rp,vel) ) &
849 + ( - 3.0_rp * val(
ks,i,j) &
850 + 27.0_rp * val(
ks+1,i,j) &
851 + 47.0_rp * val(
ks+2,i,j) &
852 - 13.0_rp * val(
ks+3,i,j) &
853 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
854 * ( 0.5_rp - sign(0.5_rp,vel) ) )
857 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i-1,j) ) ) &
859 vel = vel * j13g(
ke-1,i,j)
860 flux(
ke-2,i,j) = vel / mapf(i,j,+2) &
861 * ( ( 2.0_rp * val(
ke-1,i,j) + 5.0_rp * val(
ke-2,i,j) - val(
ke-3,i,j) ) / 6.0_rp &
862 * ( 0.5_rp + sign(0.5_rp,vel) ) &
863 + f2 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
864 * ( 0.5_rp - sign(0.5_rp,vel) ) )
866 vel = ( 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i-1,j) ) ) &
868 vel = vel * j13g(
ke-2,i,j)
869 flux(
ke-3,i,j) = vel / mapf(i,j,+2) &
870 * ( ( - 3.0_rp * val(
ke-1,i,j) &
871 + 27.0_rp * val(
ke-2,i,j) &
872 + 47.0_rp * val(
ke-3,i,j) &
873 - 13.0_rp * val(
ke-4,i,j) &
874 + 2.0_rp * val(
ke-5,i,j) ) / 60.0_rp &
875 * ( 0.5_rp + sign(0.5_rp,vel) ) &
876 + ( 2.0_rp * val(
ke-3,i,j) + 5.0_rp * val(
ke-2,i,j) - val(
ke-1,i,j) ) / 6.0_rp &
877 * ( 0.5_rp - sign(0.5_rp,vel) ) )
879 flux(
ke-1,i,j) = 0.0_rp
902 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
903 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
904 real(rp),
intent(in) :: val (
ka,
ia,
ja)
905 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
906 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
907 real(rp),
intent(in) :: j23g (
ka,
ia,
ja)
908 real(rp),
intent(in) :: mapf (
ia,
ja,2)
909 real(rp),
intent(in) :: cdz (
ka)
910 logical,
intent(in) :: twod
911 integer,
intent(in) :: iis, iie, jjs, jje
927 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j-1) ) ) &
929 vel = vel * j23g(
k,i,j)
930 flux(
k-1,i,j) = vel / mapf(i,j,+1) &
931 * ( ( f71 * ( val(
k+3,i,j)+val(
k-4,i,j) ) &
932 + f72 * ( val(
k+2,i,j)+val(
k-3,i,j) ) &
933 + f73 * ( val(
k+1,i,j)+val(
k-2,i,j) ) &
934 + f74 * ( val(
k,i,j)+val(
k-1,i,j) ) ) &
935 - ( f71 * ( val(
k+3,i,j)-val(
k-4,i,j) ) &
936 + f75 * ( val(
k+2,i,j)-val(
k-3,i,j) ) &
937 + f76 * ( val(
k+1,i,j)-val(
k-2,i,j) ) &
938 + f77 * ( val(
k,i,j)-val(
k-1,i,j) ) ) * sign(1.0_rp,vel) )
952 flux(
ks-1,i,j) = 0.0_rp
955 vel = ( ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j-1) ) ) / dens(
ks+1,i,j) &
956 + ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j-1) ) ) / dens(
ks ,i,j) ) * 0.5_rp
959 vel = vel * j23g(
ks+1,i,j)
960 flux(
ks,i,j) = vel / mapf(i,j,+1) &
961 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
962 * ( 0.5_rp + sign(0.5_rp,vel) ) &
963 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
964 * ( 0.5_rp - sign(0.5_rp,vel) ) )
966 vel = ( 0.5_rp * ( mom(
ks+2,i,j)+mom(
ks+2,i,j-1) ) ) &
968 vel = vel * j23g(
ks,i,j)
969 flux(
ks+1,i,j) = vel / mapf(i,j,+1) &
970 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
971 * ( 0.5_rp + sign(0.5_rp,vel) ) &
972 + ( - 3.0_rp * val(
ks,i,j) &
973 + 27.0_rp * val(
ks+1,i,j) &
974 + 47.0_rp * val(
ks+2,i,j) &
975 - 13.0_rp * val(
ks+3,i,j) &
976 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
977 * ( 0.5_rp - sign(0.5_rp,vel) ) )
980 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j-1) ) ) &
982 vel = vel * j23g(
ke-1,i,j)
983 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
984 * ( ( 2.0_rp * val(
ke-1,i,j) + 5.0_rp * val(
ke-2,i,j) - val(
ke-3,i,j) ) / 6.0_rp &
985 * ( 0.5_rp + sign(0.5_rp,vel) ) &
986 + f2 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
987 * ( 0.5_rp - sign(0.5_rp,vel) ) )
989 vel = ( 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i,j-1) ) ) &
991 vel = vel * j23g(
ke-2,i,j)
992 flux(
ke-3,i,j) = vel / mapf(i,j,+1) &
993 * ( ( - 3.0_rp * val(
ke-1,i,j) &
994 + 27.0_rp * val(
ke-2,i,j) &
995 + 47.0_rp * val(
ke-3,i,j) &
996 - 13.0_rp * val(
ke-4,i,j) &
997 + 2.0_rp * val(
ke-5,i,j) ) / 60.0_rp &
998 * ( 0.5_rp + sign(0.5_rp,vel) ) &
999 + ( 2.0_rp * val(
ke-3,i,j) + 5.0_rp * val(
ke-2,i,j) - val(
ke-1,i,j) ) / 6.0_rp &
1000 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1002 flux(
ke-1,i,j) = 0.0_rp
1024 IIS, IIE, JJS, JJE )
1027 real(rp),
intent(inout) :: 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) :: mapf (
ia,
ja,2)
1033 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1034 real(rp),
intent(in) :: cdz (
ka)
1035 logical,
intent(in) :: twod
1036 integer,
intent(in) :: iis, iie, jjs, jje
1054 call check( __line__, mom(
k ,i,j) )
1055 call check( __line__, mom(
k+1,i,j) )
1057 call check( __line__, val(
k,i,j) )
1058 call check( __line__, val(
k,i+1,j) )
1060 call check( __line__, val(
k,i-1,j) )
1061 call check( __line__, val(
k,i+2,j) )
1063 call check( __line__, val(
k,i-2,j) )
1064 call check( __line__, val(
k,i+3,j) )
1066 call check( __line__, val(
k,i-3,j) )
1067 call check( __line__, val(
k,i+4,j) )
1075 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
1077 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
1078 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+2) * vel &
1079 * ( ( f71 * ( val(
k,i+4,j)+val(
k,i-3,j) ) &
1080 + f72 * ( val(
k,i+3,j)+val(
k,i-2,j) ) &
1081 + f73 * ( val(
k,i+2,j)+val(
k,i-1,j) ) &
1082 + f74 * ( val(
k,i+1,j)+val(
k,i,j) ) ) &
1083 - ( f71 * ( val(
k,i+4,j)-val(
k,i-3,j) ) &
1084 + f75 * ( val(
k,i+3,j)-val(
k,i-2,j) ) &
1085 + f76 * ( val(
k,i+2,j)-val(
k,i-1,j) ) &
1086 + f77 * ( val(
k,i+1,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
1087 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1094 k = iundef; i = iundef; j = iundef
1101 flux(
ke,i,j) = 0.0_rp
1111 k = iundef; i = iundef; j = iundef
1125 IIS, IIE, JJS, JJE )
1128 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1129 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1130 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1131 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1132 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1133 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1134 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1135 real(rp),
intent(in) :: cdz (
ka)
1136 logical,
intent(in) :: twod
1137 integer,
intent(in) :: iis, iie, jjs, jje
1155 call check( __line__, mom(
k ,i,j) )
1156 call check( __line__, mom(
k+1,i,j) )
1158 call check( __line__, val(
k,i,j) )
1159 call check( __line__, val(
k,i,j+1) )
1161 call check( __line__, val(
k,i,j-1) )
1162 call check( __line__, val(
k,i,j+2) )
1164 call check( __line__, val(
k,i,j-2) )
1165 call check( __line__, val(
k,i,j+3) )
1167 call check( __line__, val(
k,i,j-3) )
1168 call check( __line__, val(
k,i,j+4) )
1176 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
1178 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
1179 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
1180 * ( ( f71 * ( val(
k,i,j+4)+val(
k,i,j-3) ) &
1181 + f72 * ( val(
k,i,j+3)+val(
k,i,j-2) ) &
1182 + f73 * ( val(
k,i,j+2)+val(
k,i,j-1) ) &
1183 + f74 * ( val(
k,i,j+1)+val(
k,i,j) ) ) &
1184 - ( f71 * ( val(
k,i,j+4)-val(
k,i,j-3) ) &
1185 + f75 * ( val(
k,i,j+3)-val(
k,i,j-2) ) &
1186 + f76 * ( val(
k,i,j+2)-val(
k,i,j-1) ) &
1187 + f77 * ( val(
k,i,j+1)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
1188 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1195 k = iundef; i = iundef; j = iundef
1202 flux(
ke,i,j) = 0.0_rp
1212 k = iundef; i = iundef; j = iundef
1227 IIS, IIE, JJS, JJE )
1230 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1231 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1232 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1233 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1234 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1235 real(rp),
intent(in) :: j33g
1236 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1237 real(rp),
intent(in) :: cdz (
ka)
1238 logical,
intent(in) :: twod
1239 integer,
intent(in) :: iis, iie, jjs, jje
1260 call check( __line__, mom(
k,i,j) )
1262 call check( __line__, val(
k,i,j) )
1263 call check( __line__, val(
k+1,i,j) )
1265 call check( __line__, val(
k-1,i,j) )
1266 call check( __line__, val(
k+2,i,j) )
1268 call check( __line__, val(
k-2,i,j) )
1269 call check( __line__, val(
k+3,i,j) )
1271 call check( __line__, val(
k-3,i,j) )
1272 call check( __line__, val(
k+4,i,j) )
1275 vel = ( mom(
k,i,j) ) &
1280 flux(
k,i,j) = j33g * vel &
1281 * ( ( f71 * ( val(
k+4,i,j)+val(
k-3,i,j) ) &
1282 + f72 * ( val(
k+3,i,j)+val(
k-2,i,j) ) &
1283 + f73 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1284 + f74 * ( val(
k+1,i,j)+val(
k,i,j) ) ) &
1285 - ( f71 * ( val(
k+4,i,j)-val(
k-3,i,j) ) &
1286 + f75 * ( val(
k+3,i,j)-val(
k-2,i,j) ) &
1287 + f76 * ( val(
k+2,i,j)-val(
k-1,i,j) ) &
1288 + f77 * ( val(
k+1,i,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
1289 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1295 k = iundef; i = iundef; j = iundef
1304 call check( __line__, mom(
ks,i ,j) )
1305 call check( __line__, val(
ks+1,i,j) )
1306 call check( __line__, val(
ks,i,j) )
1308 call check( __line__, mom(
ks+1,i ,j) )
1309 call check( __line__, val(
ks+3,i,j) )
1310 call check( __line__, val(
ks+2,i,j) )
1312 call check( __line__, mom(
ks+2,i ,j) )
1313 call check( __line__, val(
ks+5,i,j) )
1314 call check( __line__, val(
ks+4,i,j) )
1320 flux(
ks-1,i,j) = 0.0_rp
1322 vel = ( mom(
ks,i,j) ) &
1327 flux(
ks,i,j) = j33g * vel &
1328 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
1329 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1330 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
1331 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1332 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
1333 vel = ( mom(
ke-1,i,j) ) &
1338 flux(
ke-1,i,j) = j33g * vel &
1339 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
1340 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1341 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
1342 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1343 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
1345 vel = ( mom(
ks+1,i,j) ) &
1350 flux(
ks+1,i,j) = j33g * vel &
1351 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
1352 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1353 + ( - 3.0_rp * val(
ks,i,j) &
1354 + 27.0_rp * val(
ks+1,i,j) &
1355 + 47.0_rp * val(
ks+2,i,j) &
1356 - 13.0_rp * val(
ks+3,i,j) &
1357 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
1358 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1359 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
1360 vel = ( mom(
ke-2,i,j) ) &
1365 flux(
ke-2,i,j) = j33g * vel &
1366 * ( ( - 3.0_rp * val(
ke,i,j) &
1367 + 27.0_rp * val(
ke-1,i,j) &
1368 + 47.0_rp * val(
ke-2,i,j) &
1369 - 13.0_rp * val(
ke-3,i,j) &
1370 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
1371 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1372 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
1373 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1374 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
1376 vel = ( mom(
ks+2,i,j) ) &
1381 flux(
ks+2,i,j) = j33g * vel &
1382 * ( ( - 3.0_rp * val(
ks+4,i,j) &
1383 + 27.0_rp * val(
ks+3,i,j) &
1384 + 47.0_rp * val(
ks+2,i,j) &
1385 - 13.0_rp * val(
ks+1,i,j) &
1386 + 2.0_rp * val(
ks,i,j) ) / 60.0_rp &
1387 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1388 + ( 4.0_rp * val(
ks,i,j) &
1389 - 38.0_rp * val(
ks+1,i,j) &
1390 + 214.0_rp * val(
ks+2,i,j) &
1391 + 319.0_rp * val(
ks+3,i,j) &
1392 - 101.0_rp * val(
ks+4,i,j) &
1393 + 25.0_rp * val(
ks+5,i,j) &
1394 - 3.0_rp * val(
ks+6,i,j) ) / 420.0_rp &
1395 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1396 + gsqrt(
ks+2,i,j) * num_diff(
ks+2,i,j)
1397 vel = ( mom(
ke-3,i,j) ) &
1402 flux(
ke-3,i,j) = j33g * vel &
1403 * ( ( 4.0_rp * val(
ke,i,j) &
1404 - 38.0_rp * val(
ke-1,i,j) &
1405 + 214.0_rp * val(
ke-2,i,j) &
1406 + 319.0_rp * val(
ke-3,i,j) &
1407 - 101.0_rp * val(
ke-4,i,j) &
1408 + 25.0_rp * val(
ke-5,i,j) &
1409 - 3.0_rp * val(
ke-6,i,j) ) / 420.0_rp &
1410 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1411 + ( - 3.0_rp * val(
ke-4,i,j) &
1412 + 27.0_rp * val(
ke-3,i,j) &
1413 + 47.0_rp * val(
ke-2,i,j) &
1414 - 13.0_rp * val(
ke-1,i,j) &
1415 + 2.0_rp * val(
ke,i,j) ) / 60.0_rp &
1416 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1417 + gsqrt(
ke-3,i,j) * num_diff(
ke-3,i,j)
1419 flux(
ke,i,j) = 0.0_rp
1433 call check( __line__, mom(
k,i,j) )
1434 call check( __line__, mom(
k,i+1,j) )
1436 call check( __line__, val(
k,i,j) )
1437 call check( __line__, val(
k+1,i,j) )
1439 call check( __line__, val(
k-1,i,j) )
1440 call check( __line__, val(
k+2,i,j) )
1442 call check( __line__, val(
k-2,i,j) )
1443 call check( __line__, val(
k+3,i,j) )
1445 call check( __line__, val(
k-3,i,j) )
1446 call check( __line__, val(
k+4,i,j) )
1449 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i+1,j) ) ) &
1451 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
1453 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
1454 flux(
k,i,j) = j33g * vel &
1455 * ( ( f71 * ( val(
k+4,i,j)+val(
k-3,i,j) ) &
1456 + f72 * ( val(
k+3,i,j)+val(
k-2,i,j) ) &
1457 + f73 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1458 + f74 * ( val(
k+1,i,j)+val(
k,i,j) ) ) &
1459 - ( f71 * ( val(
k+4,i,j)-val(
k-3,i,j) ) &
1460 + f75 * ( val(
k+3,i,j)-val(
k-2,i,j) ) &
1461 + f76 * ( val(
k+2,i,j)-val(
k-1,i,j) ) &
1462 + f77 * ( val(
k+1,i,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
1463 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1470 k = iundef; i = iundef; j = iundef
1479 call check( __line__, mom(
ks,i ,j) )
1480 call check( __line__, mom(
ks,i+1,j) )
1481 call check( __line__, val(
ks+1,i,j) )
1482 call check( __line__, val(
ks,i,j) )
1484 call check( __line__, mom(
ks+1,i ,j) )
1485 call check( __line__, mom(
ks+1,i+1,j) )
1486 call check( __line__, val(
ks+3,i,j) )
1487 call check( __line__, val(
ks+2,i,j) )
1489 call check( __line__, mom(
ks+2,i ,j) )
1490 call check( __line__, mom(
ks+2,i+1,j) )
1491 call check( __line__, val(
ks+5,i,j) )
1492 call check( __line__, val(
ks+4,i,j) )
1498 flux(
ks-1,i,j) = 0.0_rp
1500 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j) ) ) &
1502 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1504 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1505 flux(
ks,i,j) = j33g * vel &
1506 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
1507 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1508 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
1509 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1510 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
1511 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i+1,j) ) ) &
1513 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1515 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1516 flux(
ke-1,i,j) = j33g * vel &
1517 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
1518 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1519 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
1520 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1521 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
1523 vel = ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i+1,j) ) ) &
1525 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
1527 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
1528 flux(
ks+1,i,j) = j33g * vel &
1529 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
1530 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1531 + ( - 3.0_rp * val(
ks,i,j) &
1532 + 27.0_rp * val(
ks+1,i,j) &
1533 + 47.0_rp * val(
ks+2,i,j) &
1534 - 13.0_rp * val(
ks+3,i,j) &
1535 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
1536 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1537 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
1538 vel = ( 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i+1,j) ) ) &
1540 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
1542 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
1543 flux(
ke-2,i,j) = j33g * vel &
1544 * ( ( - 3.0_rp * val(
ke,i,j) &
1545 + 27.0_rp * val(
ke-1,i,j) &
1546 + 47.0_rp * val(
ke-2,i,j) &
1547 - 13.0_rp * val(
ke-3,i,j) &
1548 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
1549 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1550 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
1551 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1552 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
1554 vel = ( 0.5_rp * ( mom(
ks+2,i,j)+mom(
ks+2,i+1,j) ) ) &
1556 * 0.5_rp * ( dens(
ks+3,i,j)+dens(
ks+3,i+1,j) ) &
1558 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) )
1559 flux(
ks+2,i,j) = j33g * vel &
1560 * ( ( - 3.0_rp * val(
ks+4,i,j) &
1561 + 27.0_rp * val(
ks+3,i,j) &
1562 + 47.0_rp * val(
ks+2,i,j) &
1563 - 13.0_rp * val(
ks+1,i,j) &
1564 + 2.0_rp * val(
ks,i,j) ) / 60.0_rp &
1565 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1566 + ( 4.0_rp * val(
ks,i,j) &
1567 - 38.0_rp * val(
ks+1,i,j) &
1568 + 214.0_rp * val(
ks+2,i,j) &
1569 + 319.0_rp * val(
ks+3,i,j) &
1570 - 101.0_rp * val(
ks+4,i,j) &
1571 + 25.0_rp * val(
ks+5,i,j) &
1572 - 3.0_rp * val(
ks+6,i,j) ) / 420.0_rp &
1573 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1574 + gsqrt(
ks+2,i,j) * num_diff(
ks+2,i,j)
1575 vel = ( 0.5_rp * ( mom(
ke-3,i,j)+mom(
ke-3,i+1,j) ) ) &
1577 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) &
1579 * 0.5_rp * ( dens(
ke-3,i,j)+dens(
ke-3,i+1,j) ) )
1580 flux(
ke-3,i,j) = j33g * vel &
1581 * ( ( 4.0_rp * val(
ke,i,j) &
1582 - 38.0_rp * val(
ke-1,i,j) &
1583 + 214.0_rp * val(
ke-2,i,j) &
1584 + 319.0_rp * val(
ke-3,i,j) &
1585 - 101.0_rp * val(
ke-4,i,j) &
1586 + 25.0_rp * val(
ke-5,i,j) &
1587 - 3.0_rp * val(
ke-6,i,j) ) / 420.0_rp &
1588 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1589 + ( - 3.0_rp * val(
ke-4,i,j) &
1590 + 27.0_rp * val(
ke-3,i,j) &
1591 + 47.0_rp * val(
ke-2,i,j) &
1592 - 13.0_rp * val(
ke-1,i,j) &
1593 + 2.0_rp * val(
ke,i,j) ) / 60.0_rp &
1594 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1595 + gsqrt(
ke-3,i,j) * num_diff(
ke-3,i,j)
1597 flux(
ke,i,j) = 0.0_rp
1610 k = iundef; i = iundef; j = iundef
1621 GSQRT, J13G, MAPF, &
1623 IIS, IIE, JJS, JJE )
1626 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1627 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1628 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1629 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1630 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1631 real(rp),
intent(in) :: j13g (
ka,
ia,
ja)
1632 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1633 real(rp),
intent(in) :: cdz (
ka)
1634 logical,
intent(in) :: twod
1635 integer,
intent(in) :: iis, iie, jjs, jje
1659 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
1661 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
1662 vel = vel * j13g(
k,i,j)
1663 flux(
k,i,j) = vel / mapf(i,j,+2) &
1664 * ( ( f71 * ( val(
k+4,i,j)+val(
k-3,i,j) ) &
1665 + f72 * ( val(
k+3,i,j)+val(
k-2,i,j) ) &
1666 + f73 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1667 + f74 * ( val(
k+1,i,j)+val(
k,i,j) ) ) &
1668 - ( f71 * ( val(
k+4,i,j)-val(
k-3,i,j) ) &
1669 + f75 * ( val(
k+3,i,j)-val(
k-2,i,j) ) &
1670 + f76 * ( val(
k+2,i,j)-val(
k-1,i,j) ) &
1671 + f77 * ( val(
k+1,i,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) )
1685 flux(
ks-1,i,j) = 0.0_rp
1692 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1694 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1695 vel = vel * j13g(
ks,i,j)
1696 flux(
ks,i,j) = vel / mapf(i,j,+2) &
1697 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
1698 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1699 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
1700 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1707 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1709 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1710 vel = vel * j13g(
ke-1,i,j)
1711 flux(
ke-1,i,j) = vel / mapf(i,j,+2) &
1712 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
1713 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1714 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
1715 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1722 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
1724 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
1725 vel = vel * j13g(
ks+1,i,j)
1726 flux(
ks+1,i,j) = vel / mapf(i,j,+2) &
1727 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
1728 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1729 + ( - 3.0_rp * val(
ks,i,j) &
1730 + 27.0_rp * val(
ks+1,i,j) &
1731 + 47.0_rp * val(
ks+2,i,j) &
1732 - 13.0_rp * val(
ks+3,i,j) &
1733 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
1734 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1741 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
1743 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
1744 vel = vel * j13g(
ke-2,i,j)
1745 flux(
ke-2,i,j) = vel / mapf(i,j,+2) &
1746 * ( ( - 3.0_rp * val(
ke,i,j) &
1747 + 27.0_rp * val(
ke-1,i,j) &
1748 + 47.0_rp * val(
ke-2,i,j) &
1749 - 13.0_rp * val(
ke-3,i,j) &
1750 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
1751 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1752 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
1753 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1760 * 0.5_rp * ( dens(
ks+3,i,j)+dens(
ks+3,i+1,j) ) &
1762 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) )
1763 vel = vel * j13g(
ks+2,i,j)
1764 flux(
ks+2,i,j) = vel / mapf(i,j,+2) &
1765 * ( ( - 3.0_rp * val(
ks+4,i,j) &
1766 + 27.0_rp * val(
ks+3,i,j) &
1767 + 47.0_rp * val(
ks+2,i,j) &
1768 - 13.0_rp * val(
ks+1,i,j) &
1769 + 2.0_rp * val(
ks,i,j) ) / 60.0_rp &
1770 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1771 + ( 4.0_rp * val(
ks,i,j) &
1772 - 38.0_rp * val(
ks+1,i,j) &
1773 + 214.0_rp * val(
ks+2,i,j) &
1774 + 319.0_rp * val(
ks+3,i,j) &
1775 - 101.0_rp * val(
ks+4,i,j) &
1776 + 25.0_rp * val(
ks+5,i,j) &
1777 - 3.0_rp * val(
ks+6,i,j) ) / 420.0_rp &
1778 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1785 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) &
1787 * 0.5_rp * ( dens(
ke-3,i,j)+dens(
ke-3,i+1,j) ) )
1788 vel = vel * j13g(
ke-3,i,j)
1789 flux(
ke-3,i,j) = vel / mapf(i,j,+2) &
1790 * ( ( 4.0_rp * val(
ke,i,j) &
1791 - 38.0_rp * val(
ke-1,i,j) &
1792 + 214.0_rp * val(
ke-2,i,j) &
1793 + 319.0_rp * val(
ke-3,i,j) &
1794 - 101.0_rp * val(
ke-4,i,j) &
1795 + 25.0_rp * val(
ke-5,i,j) &
1796 - 3.0_rp * val(
ke-6,i,j) ) / 420.0_rp &
1797 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1798 + ( - 3.0_rp * val(
ke-4,i,j) &
1799 + 27.0_rp * val(
ke-3,i,j) &
1800 + 47.0_rp * val(
ke-2,i,j) &
1801 - 13.0_rp * val(
ke-1,i,j) &
1802 + 2.0_rp * val(
ke,i,j) ) / 60.0_rp &
1803 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1805 flux(
ke ,i,j) = 0.0_rp
1824 GSQRT, J23G, MAPF, &
1826 IIS, IIE, JJS, JJE )
1829 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1830 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1831 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1832 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1833 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1834 real(rp),
intent(in) :: j23g (
ka,
ia,
ja)
1835 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1836 real(rp),
intent(in) :: cdz (
ka)
1837 logical,
intent(in) :: twod
1838 integer,
intent(in) :: iis, iie, jjs, jje
1859 * 0.5_rp * ( mom(
k+1,i,j)+mom(
k+1,i,j-1) ) &
1861 * 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j-1) ) ) &
1866 vel = vel * j23g(
k,i,j)
1867 flux(
k,i,j) = vel * ( ( f71 * ( val(
k+4,i,j)+val(
k-3,i,j) ) &
1868 + f72 * ( val(
k+3,i,j)+val(
k-2,i,j) ) &
1869 + f73 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1870 + f74 * ( val(
k+1,i,j)+val(
k,i,j) ) ) &
1871 - ( f71 * ( val(
k+4,i,j)-val(
k-3,i,j) ) &
1872 + f75 * ( val(
k+3,i,j)-val(
k-2,i,j) ) &
1873 + f76 * ( val(
k+2,i,j)-val(
k-1,i,j) ) &
1874 + f77 * ( val(
k+1,i,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) )
1887 flux(
ks-1,i,j) = 0.0_rp
1890 * 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j-1) ) &
1892 * 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j-1) ) ) &
1897 vel = vel * j23g(
ks,i,j)
1898 flux(
ks,i,j) = vel / mapf(i,j,+1) &
1899 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
1900 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1901 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
1902 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1905 * 0.5_rp * ( mom(
ke,i,j)+mom(
ke,i,j-1) ) &
1907 * 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j-1) ) ) &
1912 vel = vel * j23g(
ke-1,i,j)
1913 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
1914 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
1915 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1916 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
1917 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1920 * 0.5_rp * ( mom(
ks+2,i,j)+mom(
ks+2,i,j-1) ) &
1922 * 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j-1) ) ) &
1927 vel = vel * j23g(
ks+1,i,j)
1928 flux(
ks+1,i,j) = vel / mapf(i,j,+1) &
1929 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
1930 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1931 + ( - 3.0_rp * val(
ks,i,j) &
1932 + 27.0_rp * val(
ks+1,i,j) &
1933 + 47.0_rp * val(
ks+2,i,j) &
1934 - 13.0_rp * val(
ks+3,i,j) &
1935 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
1936 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1939 * 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j-1) ) &
1941 * 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i,j-1) ) ) &
1946 vel = vel * j23g(
ke-2,i,j)
1947 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
1948 * ( ( - 3.0_rp * val(
ke,i,j) &
1949 + 27.0_rp * val(
ke-1,i,j) &
1950 + 47.0_rp * val(
ke-2,i,j) &
1951 - 13.0_rp * val(
ke-3,i,j) &
1952 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
1953 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1954 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
1955 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1958 * 0.5_rp * ( mom(
ks+3,i,j)+mom(
ks+3,i,j-1) ) &
1960 * 0.5_rp * ( mom(
ks+2,i,j)+mom(
ks+2,i,j-1) ) ) &
1965 vel = vel * j23g(
ks+2,i,j)
1966 flux(
ks+2,i,j) = vel / mapf(i,j,+1) &
1967 * ( ( - 3.0_rp * val(
ks+4,i,j) &
1968 + 27.0_rp * val(
ks+3,i,j) &
1969 + 47.0_rp * val(
ks+2,i,j) &
1970 - 13.0_rp * val(
ks+1,i,j) &
1971 + 2.0_rp * val(
ks,i,j) ) / 60.0_rp &
1972 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1973 + ( 4.0_rp * val(
ks,i,j) &
1974 - 38.0_rp * val(
ks+1,i,j) &
1975 + 214.0_rp * val(
ks+2,i,j) &
1976 + 319.0_rp * val(
ks+3,i,j) &
1977 - 101.0_rp * val(
ks+4,i,j) &
1978 + 25.0_rp * val(
ks+5,i,j) &
1979 - 3.0_rp * val(
ks+6,i,j) ) / 420.0_rp &
1980 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1983 * 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i,j-1) ) &
1985 * 0.5_rp * ( mom(
ke-3,i,j)+mom(
ke-3,i,j-1) ) ) &
1990 vel = vel * j23g(
ke-3,i,j)
1991 flux(
ke-3,i,j) = vel / mapf(i,j,+1) &
1992 * ( ( 4.0_rp * val(
ke,i,j) &
1993 - 38.0_rp * val(
ke-1,i,j) &
1994 + 214.0_rp * val(
ke-2,i,j) &
1995 + 319.0_rp * val(
ke-3,i,j) &
1996 - 101.0_rp * val(
ke-4,i,j) &
1997 + 25.0_rp * val(
ke-5,i,j) &
1998 - 3.0_rp * val(
ke-6,i,j) ) / 420.0_rp &
1999 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2000 + ( - 3.0_rp * val(
ke-4,i,j) &
2001 + 27.0_rp * val(
ke-3,i,j) &
2002 + 47.0_rp * val(
ke-2,i,j) &
2003 - 13.0_rp * val(
ke-1,i,j) &
2004 + 2.0_rp * val(
ke,i,j) ) / 60.0_rp &
2005 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2007 flux(
ke ,i,j) = 0.0_rp
2021 * 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) ) &
2023 * 0.25_rp * ( mom(
k,i,j)+mom(
k,i+1,j)+mom(
k,i,j-1)+mom(
k,i+1,j-1) ) ) &
2025 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
2027 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
2028 vel = vel * j23g(
k,i,j)
2029 flux(
k,i,j) = vel / mapf(i,j,+1) &
2030 * ( ( f71 * ( val(
k+4,i,j)+val(
k-3,i,j) ) &
2031 + f72 * ( val(
k+3,i,j)+val(
k-2,i,j) ) &
2032 + f73 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
2033 + f74 * ( val(
k+1,i,j)+val(
k,i,j) ) ) &
2034 - ( f71 * ( val(
k+4,i,j)-val(
k-3,i,j) ) &
2035 + f75 * ( val(
k+3,i,j)-val(
k-2,i,j) ) &
2036 + f76 * ( val(
k+2,i,j)-val(
k-1,i,j) ) &
2037 + f77 * ( val(
k+1,i,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) )
2051 flux(
ks-1,i,j) = 0.0_rp
2054 * 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) ) &
2056 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j)+mom(
ks,i,j-1)+mom(
ks,i+1,j-1) ) ) &
2058 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
2060 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
2061 vel = vel * j23g(
ks,i,j)
2062 flux(
ks,i,j) = vel / mapf(i,j,+1) &
2063 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
2064 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2065 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
2066 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2069 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i+1,j)+mom(
ke,i,j-1)+mom(
ke,i+1,j-1) ) &
2071 * 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) ) ) &
2073 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
2075 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
2076 vel = vel * j23g(
ke-1,i,j)
2077 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
2078 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
2079 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2080 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
2081 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2084 * 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) ) &
2086 * 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) ) ) &
2088 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
2090 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
2091 vel = vel * j23g(
ks+1,i,j)
2092 flux(
ks+1,i,j) = vel / mapf(i,j,+1) &
2093 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
2094 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2095 + ( - 3.0_rp * val(
ks,i,j) &
2096 + 27.0_rp * val(
ks+1,i,j) &
2097 + 47.0_rp * val(
ks+2,i,j) &
2098 - 13.0_rp * val(
ks+3,i,j) &
2099 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
2100 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2103 * 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) ) &
2105 * 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) ) ) &
2107 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
2109 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
2110 vel = vel * j23g(
ke-2,i,j)
2111 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
2112 * ( ( - 3.0_rp * val(
ke,i,j) &
2113 + 27.0_rp * val(
ke-1,i,j) &
2114 + 47.0_rp * val(
ke-2,i,j) &
2115 - 13.0_rp * val(
ke-3,i,j) &
2116 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
2117 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2118 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
2119 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2122 * 0.25_rp * ( mom(
ks+3,i,j)+mom(
ks+3,i+1,j)+mom(
ks+3,i,j-1)+mom(
ks+3,i+1,j-1) ) &
2124 * 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) ) ) &
2126 * 0.5_rp * ( dens(
ks+3,i,j)+dens(
ks+3,i+1,j) ) &
2128 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) )
2129 vel = vel * j23g(
ks+2,i,j)
2130 flux(
ks+2,i,j) = vel / mapf(i,j,+1) &
2131 * ( ( - 3.0_rp * val(
ks+4,i,j) &
2132 + 27.0_rp * val(
ks+3,i,j) &
2133 + 47.0_rp * val(
ks+2,i,j) &
2134 - 13.0_rp * val(
ks+1,i,j) &
2135 + 2.0_rp * val(
ks,i,j) ) / 60.0_rp &
2136 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2137 + ( 4.0_rp * val(
ks,i,j) &
2138 - 38.0_rp * val(
ks+1,i,j) &
2139 + 214.0_rp * val(
ks+2,i,j) &
2140 + 319.0_rp * val(
ks+3,i,j) &
2141 - 101.0_rp * val(
ks+4,i,j) &
2142 + 25.0_rp * val(
ks+5,i,j) &
2143 - 3.0_rp * val(
ks+6,i,j) ) / 420.0_rp &
2144 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2147 * 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) ) &
2149 * 0.25_rp * ( mom(
ke-3,i,j)+mom(
ke-3,i+1,j)+mom(
ke-3,i,j-1)+mom(
ke-3,i+1,j-1) ) ) &
2151 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) &
2153 * 0.5_rp * ( dens(
ke-3,i,j)+dens(
ke-3,i+1,j) ) )
2154 vel = vel * j23g(
ke-3,i,j)
2155 flux(
ke-3,i,j) = vel / mapf(i,j,+1) &
2156 * ( ( 4.0_rp * val(
ke,i,j) &
2157 - 38.0_rp * val(
ke-1,i,j) &
2158 + 214.0_rp * val(
ke-2,i,j) &
2159 + 319.0_rp * val(
ke-3,i,j) &
2160 - 101.0_rp * val(
ke-4,i,j) &
2161 + 25.0_rp * val(
ke-5,i,j) &
2162 - 3.0_rp * val(
ke-6,i,j) ) / 420.0_rp &
2163 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2164 + ( - 3.0_rp * val(
ke-4,i,j) &
2165 + 27.0_rp * val(
ke-3,i,j) &
2166 + 47.0_rp * val(
ke-2,i,j) &
2167 - 13.0_rp * val(
ke-1,i,j) &
2168 + 2.0_rp * val(
ke,i,j) ) / 60.0_rp &
2169 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2171 flux(
ke ,i,j) = 0.0_rp
2195 IIS, IIE, JJS, JJE )
2198 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
2199 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
2200 real(rp),
intent(in) :: val (
ka,
ia,
ja)
2201 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
2202 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
2203 real(rp),
intent(in) :: mapf (
ia,
ja,2)
2204 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
2205 real(rp),
intent(in) :: cdz (
ka)
2206 logical,
intent(in) :: twod
2207 integer,
intent(in) :: iis, iie, jjs, jje
2225 call check( __line__, mom(
k,i ,j) )
2226 call check( __line__, mom(
k,i-1,j) )
2228 call check( __line__, val(
k,i-1,j) )
2229 call check( __line__, val(
k,i,j) )
2231 call check( __line__, val(
k,i-2,j) )
2232 call check( __line__, val(
k,i+1,j) )
2234 call check( __line__, val(
k,i-3,j) )
2235 call check( __line__, val(
k,i+2,j) )
2237 call check( __line__, val(
k,i-4,j) )
2238 call check( __line__, val(
k,i+3,j) )
2241 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i-1,j) ) ) &
2243 flux(
k,i-1,j) = gsqrt(
k,i,j) / mapf(i,j,+2) * vel &
2244 * ( ( f71 * ( val(
k,i+3,j)+val(
k,i-4,j) ) &
2245 + f72 * ( val(
k,i+2,j)+val(
k,i-3,j) ) &
2246 + f73 * ( val(
k,i+1,j)+val(
k,i-2,j) ) &
2247 + f74 * ( val(
k,i,j)+val(
k,i-1,j) ) ) &
2248 - ( f71 * ( val(
k,i+3,j)-val(
k,i-4,j) ) &
2249 + f75 * ( val(
k,i+2,j)-val(
k,i-3,j) ) &
2250 + f76 * ( val(
k,i+1,j)-val(
k,i-2,j) ) &
2251 + f77 * ( val(
k,i,j)-val(
k,i-1,j) ) ) * sign(1.0_rp,vel) ) &
2252 + gsqrt(
k,i,j) * num_diff(
k,i,j)
2258 k = iundef; i = iundef; j = iundef
2274 IIS, IIE, JJS, JJE )
2277 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
2278 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
2279 real(rp),
intent(in) :: val (
ka,
ia,
ja)
2280 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
2281 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
2282 real(rp),
intent(in) :: mapf (
ia,
ja,2)
2283 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
2284 real(rp),
intent(in) :: cdz (
ka)
2285 logical,
intent(in) :: twod
2286 integer,
intent(in) :: iis, iie, jjs, jje
2304 call check( __line__, mom(
k,i ,j) )
2306 call check( __line__, val(
k,i,j) )
2307 call check( __line__, val(
k,i,j+1) )
2309 call check( __line__, val(
k,i,j-1) )
2310 call check( __line__, val(
k,i,j+2) )
2312 call check( __line__, val(
k,i,j-2) )
2313 call check( __line__, val(
k,i,j+3) )
2315 call check( __line__, val(
k,i,j-3) )
2316 call check( __line__, val(
k,i,j+4) )
2319 vel = ( mom(
k,i,j) ) &
2320 / ( 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
2321 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
2322 * ( ( f71 * ( val(
k,i,j+4)+val(
k,i,j-3) ) &
2323 + f72 * ( val(
k,i,j+3)+val(
k,i,j-2) ) &
2324 + f73 * ( val(
k,i,j+2)+val(
k,i,j-1) ) &
2325 + f74 * ( val(
k,i,j+1)+val(
k,i,j) ) ) &
2326 - ( f71 * ( val(
k,i,j+4)-val(
k,i,j-3) ) &
2327 + f75 * ( val(
k,i,j+3)-val(
k,i,j-2) ) &
2328 + f76 * ( val(
k,i,j+2)-val(
k,i,j-1) ) &
2329 + f77 * ( val(
k,i,j+1)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
2330 + gsqrt(
k,i,j) * num_diff(
k,i,j)
2335 k = iundef; i = iundef; j = iundef
2349 call check( __line__, mom(
k,i ,j) )
2350 call check( __line__, mom(
k,i-1,j) )
2352 call check( __line__, val(
k,i,j) )
2353 call check( __line__, val(
k,i,j+1) )
2355 call check( __line__, val(
k,i,j-1) )
2356 call check( __line__, val(
k,i,j+2) )
2358 call check( __line__, val(
k,i,j-2) )
2359 call check( __line__, val(
k,i,j+3) )
2361 call check( __line__, val(
k,i,j-3) )
2362 call check( __line__, val(
k,i,j+4) )
2365 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i+1,j) ) ) &
2366 / ( 0.25_rp * ( dens(
k,i,j)+dens(
k,i+1,j)+dens(
k,i,j+1)+dens(
k,i+1,j+1) ) )
2367 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
2368 * ( ( f71 * ( val(
k,i,j+4)+val(
k,i,j-3) ) &
2369 + f72 * ( val(
k,i,j+3)+val(
k,i,j-2) ) &
2370 + f73 * ( val(
k,i,j+2)+val(
k,i,j-1) ) &
2371 + f74 * ( val(
k,i,j+1)+val(
k,i,j) ) ) &
2372 - ( f71 * ( val(
k,i,j+4)-val(
k,i,j-3) ) &
2373 + f75 * ( val(
k,i,j+3)-val(
k,i,j-2) ) &
2374 + f76 * ( val(
k,i,j+2)-val(
k,i,j-1) ) &
2375 + f77 * ( val(
k,i,j+1)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
2376 + gsqrt(
k,i,j) * num_diff(
k,i,j)
2382 k = iundef; i = iundef; j = iundef
2402 IIS, IIE, JJS, JJE )
2405 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
2406 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
2407 real(rp),
intent(in) :: val (
ka,
ia,
ja)
2408 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
2409 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
2410 real(rp),
intent(in) :: j33g
2411 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
2412 real(rp),
intent(in) :: cdz (
ka)
2413 logical,
intent(in) :: twod
2414 integer,
intent(in) :: iis, iie, jjs, jje
2433 call check( __line__, mom(
k,i,j) )
2434 call check( __line__, mom(
k,i,j+1) )
2436 call check( __line__, val(
k,i,j) )
2437 call check( __line__, val(
k+1,i,j) )
2439 call check( __line__, val(
k-1,i,j) )
2440 call check( __line__, val(
k+2,i,j) )
2442 call check( __line__, val(
k-2,i,j) )
2443 call check( __line__, val(
k+3,i,j) )
2445 call check( __line__, val(
k-3,i,j) )
2446 call check( __line__, val(
k+4,i,j) )
2449 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j+1) ) ) &
2451 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
2453 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
2454 flux(
k,i,j) = j33g * vel &
2455 * ( ( f71 * ( val(
k+4,i,j)+val(
k-3,i,j) ) &
2456 + f72 * ( val(
k+3,i,j)+val(
k-2,i,j) ) &
2457 + f73 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
2458 + f74 * ( val(
k+1,i,j)+val(
k,i,j) ) ) &
2459 - ( f71 * ( val(
k+4,i,j)-val(
k-3,i,j) ) &
2460 + f75 * ( val(
k+3,i,j)-val(
k-2,i,j) ) &
2461 + f76 * ( val(
k+2,i,j)-val(
k-1,i,j) ) &
2462 + f77 * ( val(
k+1,i,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
2463 + gsqrt(
k,i,j) * num_diff(
k,i,j)
2470 k = iundef; i = iundef; j = iundef
2479 call check( __line__, mom(
ks,i ,j) )
2480 call check( __line__, mom(
ks,i,j+1) )
2481 call check( __line__, val(
ks+1,i,j) )
2482 call check( __line__, val(
ks,i,j) )
2484 call check( __line__, mom(
ks+1,i ,j) )
2485 call check( __line__, mom(
ks+1,i,j+1) )
2486 call check( __line__, val(
ks+3,i,j) )
2487 call check( __line__, val(
ks+2,i,j) )
2489 call check( __line__, mom(
ks+2,i ,j) )
2490 call check( __line__, mom(
ks+2,i,j+1) )
2491 call check( __line__, val(
ks+5,i,j) )
2492 call check( __line__, val(
ks+4,i,j) )
2498 flux(
ks-1,i,j) = 0.0_rp
2500 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j+1) ) ) &
2502 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
2504 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
2505 flux(
ks,i,j) = j33g * vel &
2506 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
2507 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2508 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
2509 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
2510 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
2511 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j+1) ) ) &
2513 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
2515 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
2516 flux(
ke-1,i,j) = j33g * vel &
2517 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
2518 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2519 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
2520 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
2521 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
2523 vel = ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j+1) ) ) &
2525 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
2527 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
2528 flux(
ks+1,i,j) = j33g * vel &
2529 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
2530 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2531 + ( - 3.0_rp * val(
ks,i,j) &
2532 + 27.0_rp * val(
ks+1,i,j) &
2533 + 47.0_rp * val(
ks+2,i,j) &
2534 - 13.0_rp * val(
ks+3,i,j) &
2535 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
2536 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
2537 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
2538 vel = ( 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i,j+1) ) ) &
2540 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
2542 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
2543 flux(
ke-2,i,j) = j33g * vel &
2544 * ( ( - 3.0_rp * val(
ke,i,j) &
2545 + 27.0_rp * val(
ke-1,i,j) &
2546 + 47.0_rp * val(
ke-2,i,j) &
2547 - 13.0_rp * val(
ke-3,i,j) &
2548 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
2549 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2550 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
2551 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
2552 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
2554 vel = ( 0.5_rp * ( mom(
ks+2,i,j)+mom(
ks+2,i,j+1) ) ) &
2556 * 0.5_rp * ( dens(
ks+3,i,j)+dens(
ks+3,i,j+1) ) &
2558 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) )
2559 flux(
ks+2,i,j) = j33g * vel &
2560 * ( ( - 3.0_rp * val(
ks+4,i,j) &
2561 + 27.0_rp * val(
ks+3,i,j) &
2562 + 47.0_rp * val(
ks+2,i,j) &
2563 - 13.0_rp * val(
ks+1,i,j) &
2564 + 2.0_rp * val(
ks,i,j) ) / 60.0_rp &
2565 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2566 + ( 4.0_rp * val(
ks,i,j) &
2567 - 38.0_rp * val(
ks+1,i,j) &
2568 + 214.0_rp * val(
ks+2,i,j) &
2569 + 319.0_rp * val(
ks+3,i,j) &
2570 - 101.0_rp * val(
ks+4,i,j) &
2571 + 25.0_rp * val(
ks+5,i,j) &
2572 - 3.0_rp * val(
ks+6,i,j) ) / 420.0_rp &
2573 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
2574 + gsqrt(
ks+2,i,j) * num_diff(
ks+2,i,j)
2575 vel = ( 0.5_rp * ( mom(
ke-3,i,j)+mom(
ke-3,i,j+1) ) ) &
2577 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) &
2579 * 0.5_rp * ( dens(
ke-3,i,j)+dens(
ke-3,i,j+1) ) )
2580 flux(
ke-3,i,j) = j33g * vel &
2581 * ( ( 4.0_rp * val(
ke,i,j) &
2582 - 38.0_rp * val(
ke-1,i,j) &
2583 + 214.0_rp * val(
ke-2,i,j) &
2584 + 319.0_rp * val(
ke-3,i,j) &
2585 - 101.0_rp * val(
ke-4,i,j) &
2586 + 25.0_rp * val(
ke-5,i,j) &
2587 - 3.0_rp * val(
ke-6,i,j) ) / 420.0_rp &
2588 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2589 + ( - 3.0_rp * val(
ke-4,i,j) &
2590 + 27.0_rp * val(
ke-3,i,j) &
2591 + 47.0_rp * val(
ke-2,i,j) &
2592 - 13.0_rp * val(
ke-1,i,j) &
2593 + 2.0_rp * val(
ke,i,j) ) / 60.0_rp &
2594 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
2595 + gsqrt(
ke-3,i,j) * num_diff(
ke-3,i,j)
2597 flux(
ke,i,j) = 0.0_rp
2608 k = iundef; i = iundef; j = iundef
2619 GSQRT, J13G, MAPF, &
2621 IIS, IIE, JJS, JJE )
2624 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
2625 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
2626 real(rp),
intent(in) :: val (
ka,
ia,
ja)
2627 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
2628 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
2629 real(rp),
intent(in) :: j13g (
ka,
ia,
ja)
2630 real(rp),
intent(in) :: mapf (
ia,
ja,2)
2631 real(rp),
intent(in) :: cdz (
ka)
2632 logical,
intent(in) :: twod
2633 integer,
intent(in) :: iis, iie, jjs, jje
2653 * 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) ) &
2655 * 0.25_rp * ( mom(
k,i,j)+mom(
k,i-1,j)+mom(
k,i,j+1)+mom(
k,i-1,j+1) ) ) &
2657 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
2659 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
2660 vel = vel * j13g(
k,i,j)
2661 flux(
k,i,j) = vel / mapf(i,j,+2) &
2662 * ( ( f71 * ( val(
k+4,i,j)+val(
k-3,i,j) ) &
2663 + f72 * ( val(
k+3,i,j)+val(
k-2,i,j) ) &
2664 + f73 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
2665 + f74 * ( val(
k+1,i,j)+val(
k,i,j) ) ) &
2666 - ( f71 * ( val(
k+4,i,j)-val(
k-3,i,j) ) &
2667 + f75 * ( val(
k+3,i,j)-val(
k-2,i,j) ) &
2668 + f76 * ( val(
k+2,i,j)-val(
k-1,i,j) ) &
2669 + f77 * ( val(
k+1,i,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) )
2683 flux(
ks-1,i,j) = 0.0_rp
2686 * 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) ) &
2688 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j)+mom(
ks,i,j+1)+mom(
ks,i-1,j+1) ) ) &
2690 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
2692 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
2693 vel = vel * j13g(
ks,i,j)
2694 flux(
ks,i,j) = vel / mapf(i,j,+2) &
2695 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
2696 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2697 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
2698 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2701 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i-1,j)+mom(
ke,i,j+1)+mom(
ke,i-1,j+1) ) &
2703 * 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) ) ) &
2705 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
2707 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
2708 vel = vel * j13g(
ke-1,i,j)
2709 flux(
ke-1,i,j) = vel / mapf(i,j,+2) &
2710 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
2711 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2712 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
2713 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2716 * 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) ) &
2718 * 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) ) ) &
2720 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
2722 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
2723 vel = vel * j13g(
ks+1,i,j)
2724 flux(
ks+1,i,j) = vel / mapf(i,j,+2) &
2725 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
2726 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2727 + ( - 3.0_rp * val(
ks,i,j) &
2728 + 27.0_rp * val(
ks+1,i,j) &
2729 + 47.0_rp * val(
ks+2,i,j) &
2730 - 13.0_rp * val(
ks+3,i,j) &
2731 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
2732 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2735 * 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) ) &
2737 * 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) ) ) &
2739 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
2741 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
2742 vel = vel * j13g(
ke-2,i,j)
2743 flux(
ke-2,i,j) = vel / mapf(i,j,+2) &
2744 * ( ( - 3.0_rp * val(
ke,i,j) &
2745 + 27.0_rp * val(
ke-1,i,j) &
2746 + 47.0_rp * val(
ke-2,i,j) &
2747 - 13.0_rp * val(
ke-3,i,j) &
2748 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
2749 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2750 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
2751 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2754 * 0.25_rp * ( mom(
ks+3,i,j)+mom(
ks+3,i-1,j)+mom(
ks+3,i,j+1)+mom(
ks+3,i-1,j+1) ) &
2756 * 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) ) ) &
2758 * 0.5_rp * ( dens(
ks+3,i,j)+dens(
ks+3,i,j+1) ) &
2760 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) )
2761 vel = vel * j13g(
ks+2,i,j)
2762 flux(
ks+2,i,j) = vel / mapf(i,j,+2) &
2763 * ( ( - 3.0_rp * val(
ks+4,i,j) &
2764 + 27.0_rp * val(
ks+3,i,j) &
2765 + 47.0_rp * val(
ks+2,i,j) &
2766 - 13.0_rp * val(
ks+1,i,j) &
2767 + 2.0_rp * val(
ks,i,j) ) / 60.0_rp &
2768 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2769 + ( 4.0_rp * val(
ks,i,j) &
2770 - 38.0_rp * val(
ks+1,i,j) &
2771 + 214.0_rp * val(
ks+2,i,j) &
2772 + 319.0_rp * val(
ks+3,i,j) &
2773 - 101.0_rp * val(
ks+4,i,j) &
2774 + 25.0_rp * val(
ks+5,i,j) &
2775 - 3.0_rp * val(
ks+6,i,j) ) / 420.0_rp &
2776 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2779 * 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) ) &
2781 * 0.25_rp * ( mom(
ke-3,i,j)+mom(
ke-3,i-1,j)+mom(
ke-3,i,j+1)+mom(
ke-3,i-1,j+1) ) ) &
2783 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) &
2785 * 0.5_rp * ( dens(
ke-3,i,j)+dens(
ke-3,i,j+1) ) )
2786 vel = vel * j13g(
ke-3,i,j)
2787 flux(
ke-3,i,j) = vel / mapf(i,j,+2) &
2788 * ( ( 4.0_rp * val(
ke,i,j) &
2789 - 38.0_rp * val(
ke-1,i,j) &
2790 + 214.0_rp * val(
ke-2,i,j) &
2791 + 319.0_rp * val(
ke-3,i,j) &
2792 - 101.0_rp * val(
ke-4,i,j) &
2793 + 25.0_rp * val(
ke-5,i,j) &
2794 - 3.0_rp * val(
ke-6,i,j) ) / 420.0_rp &
2795 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2796 + ( - 3.0_rp * val(
ke-4,i,j) &
2797 + 27.0_rp * val(
ke-3,i,j) &
2798 + 47.0_rp * val(
ke-2,i,j) &
2799 - 13.0_rp * val(
ke-1,i,j) &
2800 + 2.0_rp * val(
ke,i,j) ) / 60.0_rp &
2801 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2803 flux(
ke ,i,j) = 0.0_rp
2822 GSQRT, J23G, MAPF, &
2824 IIS, IIE, JJS, JJE )
2827 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
2828 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
2829 real(rp),
intent(in) :: val (
ka,
ia,
ja)
2830 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
2831 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
2832 real(rp),
intent(in) :: j23g (
ka,
ia,
ja)
2833 real(rp),
intent(in) :: mapf (
ia,
ja,2)
2834 real(rp),
intent(in) :: cdz (
ka)
2835 logical,
intent(in) :: twod
2836 integer,
intent(in) :: iis, iie, jjs, jje
2860 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
2862 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
2863 vel = vel * j23g(
k,i,j)
2864 flux(
k,i,j) = vel / mapf(i,j,+1) &
2865 * ( ( f71 * ( val(
k+4,i,j)+val(
k-3,i,j) ) &
2866 + f72 * ( val(
k+3,i,j)+val(
k-2,i,j) ) &
2867 + f73 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
2868 + f74 * ( val(
k+1,i,j)+val(
k,i,j) ) ) &
2869 - ( f71 * ( val(
k+4,i,j)-val(
k-3,i,j) ) &
2870 + f75 * ( val(
k+3,i,j)-val(
k-2,i,j) ) &
2871 + f76 * ( val(
k+2,i,j)-val(
k-1,i,j) ) &
2872 + f77 * ( val(
k+1,i,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) )
2886 flux(
ks-1,i,j) = 0.0_rp
2893 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
2895 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
2896 vel = vel * j23g(
ks,i,j)
2897 flux(
ks,i,j) = vel / mapf(i,j,+1) &
2898 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
2899 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2900 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
2901 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2908 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
2910 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
2911 vel = vel * j23g(
ke-1,i,j)
2912 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
2913 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
2914 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2915 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
2916 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2923 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
2925 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
2926 vel = vel * j23g(
ks+1,i,j)
2927 flux(
ks+1,i,j) = vel / mapf(i,j,+1) &
2928 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
2929 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2930 + ( - 3.0_rp * val(
ks,i,j) &
2931 + 27.0_rp * val(
ks+1,i,j) &
2932 + 47.0_rp * val(
ks+2,i,j) &
2933 - 13.0_rp * val(
ks+3,i,j) &
2934 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
2935 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2942 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
2944 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
2945 vel = vel * j23g(
ke-2,i,j)
2946 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
2947 * ( ( - 3.0_rp * val(
ke,i,j) &
2948 + 27.0_rp * val(
ke-1,i,j) &
2949 + 47.0_rp * val(
ke-2,i,j) &
2950 - 13.0_rp * val(
ke-3,i,j) &
2951 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
2952 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2953 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
2954 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2961 * 0.5_rp * ( dens(
ks+3,i,j)+dens(
ks+3,i,j+1) ) &
2963 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) )
2964 vel = vel * j23g(
ks+2,i,j)
2965 flux(
ks+2,i,j) = vel / mapf(i,j,+1) &
2966 * ( ( - 3.0_rp * val(
ks+4,i,j) &
2967 + 27.0_rp * val(
ks+3,i,j) &
2968 + 47.0_rp * val(
ks+2,i,j) &
2969 - 13.0_rp * val(
ks+1,i,j) &
2970 + 2.0_rp * val(
ks,i,j) ) / 60.0_rp &
2971 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2972 + ( 4.0_rp * val(
ks,i,j) &
2973 - 38.0_rp * val(
ks+1,i,j) &
2974 + 214.0_rp * val(
ks+2,i,j) &
2975 + 319.0_rp * val(
ks+3,i,j) &
2976 - 101.0_rp * val(
ks+4,i,j) &
2977 + 25.0_rp * val(
ks+5,i,j) &
2978 - 3.0_rp * val(
ks+6,i,j) ) / 420.0_rp &
2979 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2986 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) &
2988 * 0.5_rp * ( dens(
ke-3,i,j)+dens(
ke-3,i,j+1) ) )
2989 vel = vel * j23g(
ke-3,i,j)
2990 flux(
ke-3,i,j) = vel / mapf(i,j,+1) &
2991 * ( ( 4.0_rp * val(
ke,i,j) &
2992 - 38.0_rp * val(
ke-1,i,j) &
2993 + 214.0_rp * val(
ke-2,i,j) &
2994 + 319.0_rp * val(
ke-3,i,j) &
2995 - 101.0_rp * val(
ke-4,i,j) &
2996 + 25.0_rp * val(
ke-5,i,j) &
2997 - 3.0_rp * val(
ke-6,i,j) ) / 420.0_rp &
2998 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2999 + ( - 3.0_rp * val(
ke-4,i,j) &
3000 + 27.0_rp * val(
ke-3,i,j) &
3001 + 47.0_rp * val(
ke-2,i,j) &
3002 - 13.0_rp * val(
ke-1,i,j) &
3003 + 2.0_rp * val(
ke,i,j) ) / 60.0_rp &
3004 * ( 0.5_rp - sign(0.5_rp,vel) ) )
3006 flux(
ke ,i,j) = 0.0_rp
3028 IIS, IIE, JJS, JJE )
3031 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
3032 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
3033 real(rp),
intent(in) :: val (
ka,
ia,
ja)
3034 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
3035 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
3036 real(rp),
intent(in) :: mapf (
ia,
ja,2)
3037 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
3038 real(rp),
intent(in) :: cdz (
ka)
3039 logical,
intent(in) :: twod
3040 integer,
intent(in) :: iis, iie, jjs, jje
3056 call check( __line__, mom(
k,i ,j) )
3057 call check( __line__, mom(
k,i,j-1) )
3059 call check( __line__, val(
k,i,j) )
3060 call check( __line__, val(
k,i+1,j) )
3062 call check( __line__, val(
k,i-1,j) )
3063 call check( __line__, val(
k,i+2,j) )
3065 call check( __line__, val(
k,i-2,j) )
3066 call check( __line__, val(
k,i+3,j) )
3068 call check( __line__, val(
k,i-3,j) )
3069 call check( __line__, val(
k,i+4,j) )
3072 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j+1) ) ) &
3073 / ( 0.25_rp * ( dens(
k,i,j)+dens(
k,i+1,j)+dens(
k,i,j+1)+dens(
k,i+1,j+1) ) )
3074 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+2) * vel &
3075 * ( ( f71 * ( val(
k,i+4,j)+val(
k,i-3,j) ) &
3076 + f72 * ( val(
k,i+3,j)+val(
k,i-2,j) ) &
3077 + f73 * ( val(
k,i+2,j)+val(
k,i-1,j) ) &
3078 + f74 * ( val(
k,i+1,j)+val(
k,i,j) ) ) &
3079 - ( f71 * ( val(
k,i+4,j)-val(
k,i-3,j) ) &
3080 + f75 * ( val(
k,i+3,j)-val(
k,i-2,j) ) &
3081 + f76 * ( val(
k,i+2,j)-val(
k,i-1,j) ) &
3082 + f77 * ( val(
k,i+1,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
3083 + gsqrt(
k,i,j) * num_diff(
k,i,j)
3089 k = iundef; i = iundef; j = iundef
3105 IIS, IIE, JJS, JJE )
3108 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
3109 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
3110 real(rp),
intent(in) :: val (
ka,
ia,
ja)
3111 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
3112 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
3113 real(rp),
intent(in) :: mapf (
ia,
ja,2)
3114 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
3115 real(rp),
intent(in) :: cdz (
ka)
3116 logical,
intent(in) :: twod
3117 integer,
intent(in) :: iis, iie, jjs, jje
3135 call check( __line__, mom(
k,i ,j) )
3136 call check( __line__, mom(
k,i,j-1) )
3138 call check( __line__, val(
k,i,j-1) )
3139 call check( __line__, val(
k,i,j) )
3141 call check( __line__, val(
k,i,j-2) )
3142 call check( __line__, val(
k,i,j+1) )
3144 call check( __line__, val(
k,i,j-3) )
3145 call check( __line__, val(
k,i,j+2) )
3147 call check( __line__, val(
k,i,j-4) )
3148 call check( __line__, val(
k,i,j+3) )
3151 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j-1) ) ) &
3153 flux(
k,i,j-1) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
3154 * ( ( f71 * ( val(
k,i,j+3)+val(
k,i,j-4) ) &
3155 + f72 * ( val(
k,i,j+2)+val(
k,i,j-3) ) &
3156 + f73 * ( val(
k,i,j+1)+val(
k,i,j-2) ) &
3157 + f74 * ( val(
k,i,j)+val(
k,i,j-1) ) ) &
3158 - ( f71 * ( val(
k,i,j+3)-val(
k,i,j-4) ) &
3159 + f75 * ( val(
k,i,j+2)-val(
k,i,j-3) ) &
3160 + f76 * ( val(
k,i,j+1)-val(
k,i,j-2) ) &
3161 + f77 * ( val(
k,i,j)-val(
k,i,j-1) ) ) * sign(1.0_rp,vel) ) &
3162 + gsqrt(
k,i,j) * num_diff(
k,i,j)
3168 k = iundef; i = iundef; j = iundef