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
119 real(rp),
intent(out) :: valw (
ka)
120 real(rp),
intent(in) :: mflx (
ka)
121 real(rp),
intent(in) :: val (
ka)
122 real(rp),
intent(in) :: gsqrt(
ka)
123 real(rp),
intent(in) :: cdz (
ka)
130 call check( __line__, mflx(
k) )
132 call check( __line__, val(
k) )
133 call check( __line__, val(
k+1) )
135 call check( __line__, val(
k-1) )
136 call check( __line__, val(
k+2) )
138 call check( __line__, val(
k-2) )
139 call check( __line__, val(
k+3) )
141 call check( __line__, val(
k-3) )
142 call check( __line__, val(
k+4) )
145 valw(
k) = ( f71 * ( val(
k+4)+val(
k-3) ) &
146 + f72 * ( val(
k+3)+val(
k-2) ) &
147 + f73 * ( val(
k+2)+val(
k-1) ) &
148 + f74 * ( val(
k+1)+val(
k) ) ) &
149 - ( f71 * ( val(
k+4)-val(
k-3) ) &
150 + f75 * ( val(
k+3)-val(
k-2) ) &
151 + f76 * ( val(
k+2)-val(
k-1) ) &
152 + f77 * ( val(
k+1)-val(
k) ) ) * sign(1.0_rp,mflx(
k))
160 call check( __line__, mflx(
ks) )
161 call check( __line__, val(
ks ) )
162 call check( __line__, val(
ks+1) )
163 call check( __line__, mflx(
ke-1) )
164 call check( __line__, val(
ke ) )
165 call check( __line__, val(
ke-1) )
167 call check( __line__, mflx(
ks+1) )
168 call check( __line__, val(
ks+2 ) )
169 call check( __line__, val(
ks+3) )
170 call check( __line__, mflx(
ke-2) )
171 call check( __line__, val(
ke-2 ) )
172 call check( __line__, val(
ke-3) )
174 call check( __line__, mflx(
ks+2) )
175 call check( __line__, val(
ks+4 ) )
176 call check( __line__, val(
ks+5) )
177 call check( __line__, mflx(
ke-3) )
178 call check( __line__, val(
ke-4 ) )
179 call check( __line__, val(
ke-5) )
183 valw(
ks) = f2 * ( val(
ks+1)+val(
ks) ) &
184 * ( 0.5_rp + sign(0.5_rp,mflx(
ks)) ) &
185 + ( 2.0_rp * val(
ks) + 5.0_rp * val(
ks+1) - val(
ks+2) ) / 6.0_rp &
186 * ( 0.5_rp - sign(0.5_rp,mflx(
ks)) )
187 valw(
ke-1) = ( 2.0_rp * val(
ke) + 5.0_rp * val(
ke-1) - val(
ke-2) ) / 6.0_rp &
188 * ( 0.5_rp + sign(0.5_rp,mflx(
ke-1)) ) &
189 + f2 * ( val(
ke)+val(
ke-1) ) &
190 * ( 0.5_rp - sign(0.5_rp,mflx(
ke-1)) )
192 valw(
ks+1) = ( 2.0_rp * val(
ks+2) + 5.0_rp * val(
ks+1) - val(
ks) ) / 6.0_rp &
193 * ( 0.5_rp + sign(0.5_rp,mflx(
ks+1)) ) &
194 + ( - 3.0_rp * val(
ks) &
195 + 27.0_rp * val(
ks+1) &
196 + 47.0_rp * val(
ks+2) &
197 - 13.0_rp * val(
ks+3) &
198 + 2.0_rp * val(
ks+4) ) / 60.0_rp &
199 * ( 0.5_rp - sign(0.5_rp,mflx(
ks+1)) )
200 valw(
ke-2) = ( - 3.0_rp * val(
ke) &
201 + 27.0_rp * val(
ke-1) &
202 + 47.0_rp * val(
ke-2) &
203 - 13.0_rp * val(
ke-3) &
204 + 2.0_rp * val(
ke-4) ) / 60.0_rp &
205 * ( 0.5_rp + sign(0.5_rp,mflx(
ke-2)) ) &
206 + ( 2.0_rp * val(
ke-2) + 5.0_rp * val(
ke-1) - val(
ke) ) / 6.0_rp &
207 * ( 0.5_rp - sign(0.5_rp,mflx(
ke-2)) )
209 valw(
ks+2) = ( - 3.0_rp * val(
ks+4) &
210 + 27.0_rp * val(
ks+3) &
211 + 47.0_rp * val(
ks+2) &
212 - 13.0_rp * val(
ks+1) &
213 + 2.0_rp * val(
ks) ) / 60.0_rp &
214 * ( 0.5_rp + sign(0.5_rp,mflx(
ks+2)) ) &
215 + ( 4.0_rp * val(
ks) &
216 - 38.0_rp * val(
ks+1) &
217 + 214.0_rp * val(
ks+2) &
218 + 319.0_rp * val(
ks+3) &
219 - 101.0_rp * val(
ks+4) &
220 + 25.0_rp * val(
ks+5) &
221 - 3.0_rp * val(
ks+6) ) / 420.0_rp &
222 * ( 0.5_rp - sign(0.5_rp,mflx(
ks+2)) )
223 valw(
ke-3) = ( 4.0_rp * val(
ke) &
224 - 38.0_rp * val(
ke-1) &
225 + 214.0_rp * val(
ke-2) &
226 + 319.0_rp * val(
ke-3) &
227 - 101.0_rp * val(
ke-4) &
228 + 25.0_rp * val(
ke-5) &
229 - 3.0_rp * val(
ke-6) ) / 420.0_rp &
230 * ( 0.5_rp + sign(0.5_rp,mflx(
ke-3)) ) &
231 + ( - 3.0_rp * val(
ke-4) &
232 + 27.0_rp * val(
ke-3) &
233 + 47.0_rp * val(
ke-2) &
234 - 13.0_rp * val(
ke-1) &
235 + 2.0_rp * val(
ke) ) / 60.0_rp &
236 * ( 0.5_rp - sign(0.5_rp,mflx(
ke-3)) )
254 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
255 real(rp),
intent(in) :: mflx (
ka,
ia,
ja)
256 real(rp),
intent(in) :: val (
ka,
ia,
ja)
257 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
258 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
259 real(rp),
intent(in) :: cdz (
ka)
260 integer,
intent(in) :: iis, iie, jjs, jje
274 call check( __line__, mflx(
k,i,j) )
276 call check( __line__, val(
k,i,j) )
277 call check( __line__, val(
k+1,i,j) )
279 call check( __line__, val(
k-1,i,j) )
280 call check( __line__, val(
k+2,i,j) )
282 call check( __line__, val(
k-2,i,j) )
283 call check( __line__, val(
k+3,i,j) )
285 call check( __line__, val(
k-3,i,j) )
286 call check( __line__, val(
k+4,i,j) )
291 * ( ( f71 * ( val(
k+4,i,j)+val(
k-3,i,j) ) &
292 + f72 * ( val(
k+3,i,j)+val(
k-2,i,j) ) &
293 + f73 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
294 + f74 * ( val(
k+1,i,j)+val(
k,i,j) ) ) &
295 - ( f71 * ( val(
k+4,i,j)-val(
k-3,i,j) ) &
296 + f75 * ( val(
k+3,i,j)-val(
k-2,i,j) ) &
297 + f76 * ( val(
k+2,i,j)-val(
k-1,i,j) ) &
298 + f77 * ( val(
k+1,i,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
299 + gsqrt(
k,i,j) * num_diff(
k,i,j)
305 k = iundef; i = iundef; j = iundef
313 call check( __line__, mflx(
ks,i,j) )
314 call check( __line__, val(
ks ,i,j) )
315 call check( __line__, val(
ks+1,i,j) )
316 call check( __line__, mflx(
ke-1,i,j) )
317 call check( __line__, val(
ke ,i,j) )
318 call check( __line__, val(
ke-1,i,j) )
320 call check( __line__, mflx(
ks+1,i,j) )
321 call check( __line__, val(
ks+2 ,i,j) )
322 call check( __line__, val(
ks+3,i,j) )
323 call check( __line__, mflx(
ke-2,i,j) )
324 call check( __line__, val(
ke-2 ,i,j) )
325 call check( __line__, val(
ke-3,i,j) )
327 call check( __line__, mflx(
ks+2,i,j) )
328 call check( __line__, val(
ks+4 ,i,j) )
329 call check( __line__, val(
ks+5,i,j) )
330 call check( __line__, mflx(
ke-3,i,j) )
331 call check( __line__, val(
ke-4 ,i,j) )
332 call check( __line__, val(
ke-5,i,j) )
335 flux(
ks-1,i,j) = 0.0_rp
339 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
340 * ( 0.5_rp + sign(0.5_rp,vel) ) &
341 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
342 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
343 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
345 flux(
ke-1,i,j) = vel &
346 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
347 * ( 0.5_rp + sign(0.5_rp,vel) ) &
348 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
349 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
350 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
353 flux(
ks+1,i,j) = vel &
354 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
355 * ( 0.5_rp + sign(0.5_rp,vel) ) &
356 + ( - 3.0_rp * val(
ks,i,j) &
357 + 27.0_rp * val(
ks+1,i,j) &
358 + 47.0_rp * val(
ks+2,i,j) &
359 - 13.0_rp * val(
ks+3,i,j) &
360 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
361 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
362 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
364 flux(
ke-2,i,j) = vel &
365 * ( ( - 3.0_rp * val(
ke,i,j) &
366 + 27.0_rp * val(
ke-1,i,j) &
367 + 47.0_rp * val(
ke-2,i,j) &
368 - 13.0_rp * val(
ke-3,i,j) &
369 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
370 * ( 0.5_rp + sign(0.5_rp,vel) ) &
371 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
372 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
373 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
376 flux(
ks+2,i,j) = vel &
377 * ( ( - 3.0_rp * val(
ks+4,i,j) &
378 + 27.0_rp * val(
ks+3,i,j) &
379 + 47.0_rp * val(
ks+2,i,j) &
380 - 13.0_rp * val(
ks+1,i,j) &
381 + 2.0_rp * val(
ks,i,j) ) / 60.0_rp &
382 * ( 0.5_rp + sign(0.5_rp,vel) ) &
383 + ( 4.0_rp * val(
ks,i,j) &
384 - 38.0_rp * val(
ks+1,i,j) &
385 + 214.0_rp * val(
ks+2,i,j) &
386 + 319.0_rp * val(
ks+3,i,j) &
387 - 101.0_rp * val(
ks+4,i,j) &
388 + 25.0_rp * val(
ks+5,i,j) &
389 - 3.0_rp * val(
ks+6,i,j) ) / 420.0_rp &
390 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
391 + gsqrt(
ks+2,i,j) * num_diff(
ks+2,i,j)
393 flux(
ke-3,i,j) = vel &
394 * ( ( 4.0_rp * val(
ke,i,j) &
395 - 38.0_rp * val(
ke-1,i,j) &
396 + 214.0_rp * val(
ke-2,i,j) &
397 + 319.0_rp * val(
ke-3,i,j) &
398 - 101.0_rp * val(
ke-4,i,j) &
399 + 25.0_rp * val(
ke-5,i,j) &
400 - 3.0_rp * val(
ke-6,i,j) ) / 420.0_rp &
401 * ( 0.5_rp + sign(0.5_rp,vel) ) &
402 + ( - 3.0_rp * val(
ke-4,i,j) &
403 + 27.0_rp * val(
ke-3,i,j) &
404 + 47.0_rp * val(
ke-2,i,j) &
405 - 13.0_rp * val(
ke-1,i,j) &
406 + 2.0_rp * val(
ke,i,j) ) / 60.0_rp &
407 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
408 + gsqrt(
ke-3,i,j) * num_diff(
ke-3,i,j)
410 flux(
ke ,i,j) = 0.0_rp
417 k = iundef; i = iundef; j = iundef
433 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
434 real(rp),
intent(in) :: mflx (
ka,
ia,
ja)
435 real(rp),
intent(in) :: val (
ka,
ia,
ja)
436 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
437 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
438 real(rp),
intent(in) :: cdz(
ka)
439 integer,
intent(in) :: iis, iie, jjs, jje
452 call check( __line__, mflx(
k,i,j) )
454 call check( __line__, val(
k,i,j) )
455 call check( __line__, val(
k,i+1,j) )
457 call check( __line__, val(
k,i-1,j) )
458 call check( __line__, val(
k,i+2,j) )
460 call check( __line__, val(
k,i-2,j) )
461 call check( __line__, val(
k,i+3,j) )
463 call check( __line__, val(
k,i-3,j) )
464 call check( __line__, val(
k,i+4,j) )
469 * ( ( f71 * ( val(
k,i+4,j)+val(
k,i-3,j) ) &
470 + f72 * ( val(
k,i+3,j)+val(
k,i-2,j) ) &
471 + f73 * ( val(
k,i+2,j)+val(
k,i-1,j) ) &
472 + f74 * ( val(
k,i+1,j)+val(
k,i,j) ) ) &
473 - ( f71 * ( val(
k,i+4,j)-val(
k,i-3,j) ) &
474 + f75 * ( val(
k,i+3,j)-val(
k,i-2,j) ) &
475 + f76 * ( val(
k,i+2,j)-val(
k,i-1,j) ) &
476 + f77 * ( val(
k,i+1,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
477 + gsqrt(
k,i,j) * num_diff(
k,i,j)
482 k = iundef; i = iundef; j = iundef
498 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
499 real(rp),
intent(in) :: mflx (
ka,
ia,
ja)
500 real(rp),
intent(in) :: val (
ka,
ia,
ja)
501 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
502 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
503 real(rp),
intent(in) :: cdz(
ka)
504 integer,
intent(in) :: iis, iie, jjs, jje
517 call check( __line__, mflx(
k,i,j) )
519 call check( __line__, val(
k,i,j) )
520 call check( __line__, val(
k,i,j+1) )
522 call check( __line__, val(
k,i,j-1) )
523 call check( __line__, val(
k,i,j+2) )
525 call check( __line__, val(
k,i,j-2) )
526 call check( __line__, val(
k,i,j+3) )
528 call check( __line__, val(
k,i,j-3) )
529 call check( __line__, val(
k,i,j+4) )
534 * ( ( f71 * ( val(
k,i,j+4)+val(
k,i,j-3) ) &
535 + f72 * ( val(
k,i,j+3)+val(
k,i,j-2) ) &
536 + f73 * ( val(
k,i,j+2)+val(
k,i,j-1) ) &
537 + f74 * ( val(
k,i,j+1)+val(
k,i,j) ) ) &
538 - ( f71 * ( val(
k,i,j+4)-val(
k,i,j-3) ) &
539 + f75 * ( val(
k,i,j+3)-val(
k,i,j-2) ) &
540 + f76 * ( val(
k,i,j+2)-val(
k,i,j-1) ) &
541 + f77 * ( val(
k,i,j+1)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
542 + gsqrt(
k,i,j) * num_diff(
k,i,j)
547 k = iundef; i = iundef; j = iundef
566 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
567 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
568 real(rp),
intent(in) :: val (
ka,
ia,
ja)
569 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
570 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
571 real(rp),
intent(in) :: j33g
572 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
573 real(rp),
intent(in) :: cdz (
ka)
574 real(rp),
intent(in) :: fdz (
ka-1)
575 real(rp),
intent(in) :: dtrk
576 integer,
intent(in) :: iis, iie, jjs, jje
592 call check( __line__, mom(
k-1,i,j) )
593 call check( __line__, mom(
k ,i,j) )
595 call check( __line__, val(
k-1,i,j) )
596 call check( __line__, val(
k,i,j) )
598 call check( __line__, val(
k-2,i,j) )
599 call check( __line__, val(
k+1,i,j) )
601 call check( __line__, val(
k-3,i,j) )
602 call check( __line__, val(
k+2,i,j) )
604 call check( __line__, val(
k-4,i,j) )
605 call check( __line__, val(
k+3,i,j) )
608 vel = ( 0.5_rp * ( mom(
k-1,i,j) &
611 flux(
k-1,i,j) = j33g * vel &
612 * ( ( f71 * ( val(
k+3,i,j)+val(
k-4,i,j) ) &
613 + f72 * ( val(
k+2,i,j)+val(
k-3,i,j) ) &
614 + f73 * ( val(
k+1,i,j)+val(
k-2,i,j) ) &
615 + f74 * ( val(
k,i,j)+val(
k-1,i,j) ) ) &
616 - ( f71 * ( val(
k+3,i,j)-val(
k-4,i,j) ) &
617 + f75 * ( val(
k+2,i,j)-val(
k-3,i,j) ) &
618 + f76 * ( val(
k+1,i,j)-val(
k-2,i,j) ) &
619 + f77 * ( val(
k,i,j)-val(
k-1,i,j) ) ) * sign(1.0_rp,vel) ) &
620 + gsqrt(
k,i,j) * num_diff(
k,i,j)
626 k = iundef; i = iundef; j = iundef
634 call check( __line__, val(
ks,i,j) )
635 call check( __line__, val(
ks+1,i,j) )
636 call check( __line__, val(
ks+2,i,j) )
637 call check( __line__, val(
ks+3,i,j) )
638 call check( __line__, val(
ks+4,i,j) )
639 call check( __line__, val(
ks+5,i,j) )
640 call check( __line__, val(
ks+6,i,j) )
643 call check( __line__, val(
ke-6,i,j) )
644 call check( __line__, val(
ke-5,i,j) )
645 call check( __line__, val(
ke-4,i,j) )
646 call check( __line__, val(
ke-3,i,j) )
647 call check( __line__, val(
ke-2,i,j) )
648 call check( __line__, val(
ke-1,i,j) )
654 flux(
ks-1,i,j) = 0.0_rp
656 vel = ( 0.5_rp * ( mom(
ks,i,j) &
657 + mom(
ks+1,i,j) ) ) &
659 flux(
ks,i,j) = j33g * vel &
660 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
661 * ( 0.5_rp + sign(0.5_rp,vel) ) &
662 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
663 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
664 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
666 vel = ( 0.5_rp * ( mom(
ks+1,i,j) &
667 + mom(
ks+2,i,j) ) ) &
669 flux(
ks+1,i,j) = j33g * vel &
670 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
671 * ( 0.5_rp + sign(0.5_rp,vel) ) &
672 + ( - 3.0_rp * val(
ks,i,j) &
673 + 27.0_rp * val(
ks+1,i,j) &
674 + 47.0_rp * val(
ks+2,i,j) &
675 - 13.0_rp * val(
ks+3,i,j) &
676 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
677 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
678 + gsqrt(
ks+2,i,j) * num_diff(
ks+2,i,j)
680 vel = ( 0.5_rp * ( mom(
ks+2,i,j) &
681 + mom(
ks+3,i,j) ) ) &
683 flux(
ks+2,i,j) = j33g * vel &
684 * ( ( - 3.0_rp * val(
ks+4,i,j) &
685 + 27.0_rp * val(
ks+3,i,j) &
686 + 47.0_rp * val(
ks+2,i,j) &
687 - 13.0_rp * val(
ks+1,i,j) &
688 + 2.0_rp * val(
ks,i,j) ) / 60.0_rp &
689 * ( 0.5_rp + sign(0.5_rp,vel) ) &
690 + ( 4.0_rp * val(
ks,i,j) &
691 - 38.0_rp * val(
ks+1,i,j) &
692 + 214.0_rp * val(
ks+2,i,j) &
693 + 319.0_rp * val(
ks+3,i,j) &
694 - 101.0_rp * val(
ks+4,i,j) &
695 + 25.0_rp * val(
ks+5,i,j) &
696 - 3.0_rp * val(
ks+6,i,j) ) / 420.0_rp &
697 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
698 + gsqrt(
ks+3,i,j) * num_diff(
ks+3,i,j)
702 vel = ( 0.5_rp * ( mom(
ke-3,i,j) &
703 + mom(
ke-2,i,j) ) ) &
705 flux(
ke-3,i,j) = j33g * vel &
706 * ( ( 4.0_rp * val(
ke,i,j) &
707 - 38.0_rp * val(
ke-1,i,j) &
708 + 214.0_rp * val(
ke-2,i,j) &
709 + 319.0_rp * val(
ke-3,i,j) &
710 - 101.0_rp * val(
ke-4,i,j) &
711 + 25.0_rp * val(
ke-5,i,j) &
712 - 3.0_rp * val(
ke-6,i,j) ) / 420.0_rp &
713 * ( 0.5_rp + sign(0.5_rp,vel) ) &
714 + ( - 3.0_rp * val(
ke-4,i,j) &
715 + 27.0_rp * val(
ke-3,i,j) &
716 + 47.0_rp * val(
ke-2,i,j) &
717 - 13.0_rp * val(
ke-1,i,j) &
718 + 2.0_rp * val(
ke,i,j) ) / 60.0_rp &
719 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
720 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
722 vel = ( 0.5_rp * ( mom(
ke-2,i,j) &
723 + mom(
ke-1,i,j) ) ) &
725 flux(
ke-2,i,j) = j33g * vel &
726 * ( ( - 3.0_rp * val(
ke,i,j) &
727 + 27.0_rp * val(
ke-1,i,j) &
728 + 47.0_rp * val(
ke-2,i,j) &
729 - 13.0_rp * val(
ke-3,i,j) &
730 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
731 * ( 0.5_rp + sign(0.5_rp,vel) ) &
732 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
733 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
734 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
736 flux(
ke-1,i,j) = 0.0_rp
737 flux(
ke ,i,j) = 0.0_rp
758 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
759 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
760 real(rp),
intent(in) :: val (
ka,
ia,
ja)
761 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
762 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
763 real(rp),
intent(in) :: j13g (
ka,
ia,
ja)
764 real(rp),
intent(in) :: mapf (
ia,
ja,2)
765 real(rp),
intent(in) :: cdz (
ka)
766 logical,
intent(in) :: twod
767 integer,
intent(in) :: iis, iie, jjs, jje
780 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i-1,j) ) ) &
782 vel = vel * j13g(
k,i,j)
783 flux(
k-1,i,j) = vel / mapf(i,j,+2) &
784 * ( ( f71 * ( val(
k+3,i,j)+val(
k-4,i,j) ) &
785 + f72 * ( val(
k+2,i,j)+val(
k-3,i,j) ) &
786 + f73 * ( val(
k+1,i,j)+val(
k-2,i,j) ) &
787 + f74 * ( val(
k,i,j)+val(
k-1,i,j) ) ) &
788 - ( f71 * ( val(
k+3,i,j)-val(
k-4,i,j) ) &
789 + f75 * ( val(
k+2,i,j)-val(
k-3,i,j) ) &
790 + f76 * ( val(
k+1,i,j)-val(
k-2,i,j) ) &
791 + f77 * ( val(
k,i,j)-val(
k-1,i,j) ) ) * sign(1.0_rp,vel) )
803 flux(
ks-1,i,j) = 0.0_rp
806 vel = ( ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i-1,j) ) ) / dens(
ks+1,i,j) &
807 + ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j) ) ) / dens(
ks ,i,j) ) * 0.5_rp
810 vel = vel * j13g(
ks+1,i,j)
811 flux(
ks,i,j) = vel / mapf(i,j,+2) &
812 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
813 * ( 0.5_rp + sign(0.5_rp,vel) ) &
814 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
815 * ( 0.5_rp - sign(0.5_rp,vel) ) )
817 vel = ( 0.5_rp * ( mom(
ks+2,i,j)+mom(
ks+2,i-1,j) ) ) &
819 vel = vel * j13g(
ks,i,j)
820 flux(
ks+1,i,j) = vel / mapf(i,j,+2) &
821 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
822 * ( 0.5_rp + sign(0.5_rp,vel) ) &
823 + ( - 3.0_rp * val(
ks,i,j) &
824 + 27.0_rp * val(
ks+1,i,j) &
825 + 47.0_rp * val(
ks+2,i,j) &
826 - 13.0_rp * val(
ks+3,i,j) &
827 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
828 * ( 0.5_rp - sign(0.5_rp,vel) ) )
831 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i-1,j) ) ) &
833 vel = vel * j13g(
ke-1,i,j)
834 flux(
ke-2,i,j) = vel / mapf(i,j,+2) &
835 * ( ( 2.0_rp * val(
ke-1,i,j) + 5.0_rp * val(
ke-2,i,j) - val(
ke-3,i,j) ) / 6.0_rp &
836 * ( 0.5_rp + sign(0.5_rp,vel) ) &
837 + f2 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
838 * ( 0.5_rp - sign(0.5_rp,vel) ) )
840 vel = ( 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i-1,j) ) ) &
842 vel = vel * j13g(
ke-2,i,j)
843 flux(
ke-3,i,j) = vel / mapf(i,j,+2) &
844 * ( ( - 3.0_rp * val(
ke-1,i,j) &
845 + 27.0_rp * val(
ke-2,i,j) &
846 + 47.0_rp * val(
ke-3,i,j) &
847 - 13.0_rp * val(
ke-4,i,j) &
848 + 2.0_rp * val(
ke-5,i,j) ) / 60.0_rp &
849 * ( 0.5_rp + sign(0.5_rp,vel) ) &
850 + ( 2.0_rp * val(
ke-3,i,j) + 5.0_rp * val(
ke-2,i,j) - val(
ke-1,i,j) ) / 6.0_rp &
851 * ( 0.5_rp - sign(0.5_rp,vel) ) )
853 flux(
ke-1,i,j) = 0.0_rp
873 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
874 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
875 real(rp),
intent(in) :: val (
ka,
ia,
ja)
876 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
877 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
878 real(rp),
intent(in) :: j23g (
ka,
ia,
ja)
879 real(rp),
intent(in) :: mapf (
ia,
ja,2)
880 real(rp),
intent(in) :: cdz (
ka)
881 logical,
intent(in) :: twod
882 integer,
intent(in) :: iis, iie, jjs, jje
895 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j-1) ) ) &
897 vel = vel * j23g(
k,i,j)
898 flux(
k-1,i,j) = vel / mapf(i,j,+1) &
899 * ( ( f71 * ( val(
k+3,i,j)+val(
k-4,i,j) ) &
900 + f72 * ( val(
k+2,i,j)+val(
k-3,i,j) ) &
901 + f73 * ( val(
k+1,i,j)+val(
k-2,i,j) ) &
902 + f74 * ( val(
k,i,j)+val(
k-1,i,j) ) ) &
903 - ( f71 * ( val(
k+3,i,j)-val(
k-4,i,j) ) &
904 + f75 * ( val(
k+2,i,j)-val(
k-3,i,j) ) &
905 + f76 * ( val(
k+1,i,j)-val(
k-2,i,j) ) &
906 + f77 * ( val(
k,i,j)-val(
k-1,i,j) ) ) * sign(1.0_rp,vel) )
918 flux(
ks-1,i,j) = 0.0_rp
921 vel = ( ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j-1) ) ) / dens(
ks+1,i,j) &
922 + ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j-1) ) ) / dens(
ks ,i,j) ) * 0.5_rp
925 vel = vel * j23g(
ks+1,i,j)
926 flux(
ks,i,j) = vel / mapf(i,j,+1) &
927 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
928 * ( 0.5_rp + sign(0.5_rp,vel) ) &
929 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
930 * ( 0.5_rp - sign(0.5_rp,vel) ) )
932 vel = ( 0.5_rp * ( mom(
ks+2,i,j)+mom(
ks+2,i,j-1) ) ) &
934 vel = vel * j23g(
ks,i,j)
935 flux(
ks+1,i,j) = vel / mapf(i,j,+1) &
936 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
937 * ( 0.5_rp + sign(0.5_rp,vel) ) &
938 + ( - 3.0_rp * val(
ks,i,j) &
939 + 27.0_rp * val(
ks+1,i,j) &
940 + 47.0_rp * val(
ks+2,i,j) &
941 - 13.0_rp * val(
ks+3,i,j) &
942 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
943 * ( 0.5_rp - sign(0.5_rp,vel) ) )
946 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j-1) ) ) &
948 vel = vel * j23g(
ke-1,i,j)
949 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
950 * ( ( 2.0_rp * val(
ke-1,i,j) + 5.0_rp * val(
ke-2,i,j) - val(
ke-3,i,j) ) / 6.0_rp &
951 * ( 0.5_rp + sign(0.5_rp,vel) ) &
952 + f2 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
953 * ( 0.5_rp - sign(0.5_rp,vel) ) )
955 vel = ( 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i,j-1) ) ) &
957 vel = vel * j23g(
ke-2,i,j)
958 flux(
ke-3,i,j) = vel / mapf(i,j,+1) &
959 * ( ( - 3.0_rp * val(
ke-1,i,j) &
960 + 27.0_rp * val(
ke-2,i,j) &
961 + 47.0_rp * val(
ke-3,i,j) &
962 - 13.0_rp * val(
ke-4,i,j) &
963 + 2.0_rp * val(
ke-5,i,j) ) / 60.0_rp &
964 * ( 0.5_rp + sign(0.5_rp,vel) ) &
965 + ( 2.0_rp * val(
ke-3,i,j) + 5.0_rp * val(
ke-2,i,j) - val(
ke-1,i,j) ) / 6.0_rp &
966 * ( 0.5_rp - sign(0.5_rp,vel) ) )
968 flux(
ke-1,i,j) = 0.0_rp
990 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
991 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
992 real(rp),
intent(in) :: val (
ka,
ia,
ja)
993 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
994 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
995 real(rp),
intent(in) :: mapf (
ia,
ja,2)
996 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
997 real(rp),
intent(in) :: cdz (
ka)
998 logical,
intent(in) :: twod
999 integer,
intent(in) :: iis, iie, jjs, jje
1014 call check( __line__, mom(
k ,i,j) )
1015 call check( __line__, mom(
k+1,i,j) )
1017 call check( __line__, val(
k,i,j) )
1018 call check( __line__, val(
k,i+1,j) )
1020 call check( __line__, val(
k,i-1,j) )
1021 call check( __line__, val(
k,i+2,j) )
1023 call check( __line__, val(
k,i-2,j) )
1024 call check( __line__, val(
k,i+3,j) )
1026 call check( __line__, val(
k,i-3,j) )
1027 call check( __line__, val(
k,i+4,j) )
1035 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
1037 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
1038 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+2) * vel &
1039 * ( ( f71 * ( val(
k,i+4,j)+val(
k,i-3,j) ) &
1040 + f72 * ( val(
k,i+3,j)+val(
k,i-2,j) ) &
1041 + f73 * ( val(
k,i+2,j)+val(
k,i-1,j) ) &
1042 + f74 * ( val(
k,i+1,j)+val(
k,i,j) ) ) &
1043 - ( f71 * ( val(
k,i+4,j)-val(
k,i-3,j) ) &
1044 + f75 * ( val(
k,i+3,j)-val(
k,i-2,j) ) &
1045 + f76 * ( val(
k,i+2,j)-val(
k,i-1,j) ) &
1046 + f77 * ( val(
k,i+1,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
1047 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1053 k = iundef; i = iundef; j = iundef
1059 flux(
ke,i,j) = 0.0_rp
1066 k = iundef; i = iundef; j = iundef
1080 IIS, IIE, JJS, JJE )
1083 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1084 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1085 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1086 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1087 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1088 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1089 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1090 real(rp),
intent(in) :: cdz (
ka)
1091 logical,
intent(in) :: twod
1092 integer,
intent(in) :: iis, iie, jjs, jje
1107 call check( __line__, mom(
k ,i,j) )
1108 call check( __line__, mom(
k+1,i,j) )
1110 call check( __line__, val(
k,i,j) )
1111 call check( __line__, val(
k,i,j+1) )
1113 call check( __line__, val(
k,i,j-1) )
1114 call check( __line__, val(
k,i,j+2) )
1116 call check( __line__, val(
k,i,j-2) )
1117 call check( __line__, val(
k,i,j+3) )
1119 call check( __line__, val(
k,i,j-3) )
1120 call check( __line__, val(
k,i,j+4) )
1128 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
1130 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
1131 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
1132 * ( ( f71 * ( val(
k,i,j+4)+val(
k,i,j-3) ) &
1133 + f72 * ( val(
k,i,j+3)+val(
k,i,j-2) ) &
1134 + f73 * ( val(
k,i,j+2)+val(
k,i,j-1) ) &
1135 + f74 * ( val(
k,i,j+1)+val(
k,i,j) ) ) &
1136 - ( f71 * ( val(
k,i,j+4)-val(
k,i,j-3) ) &
1137 + f75 * ( val(
k,i,j+3)-val(
k,i,j-2) ) &
1138 + f76 * ( val(
k,i,j+2)-val(
k,i,j-1) ) &
1139 + f77 * ( val(
k,i,j+1)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
1140 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1146 k = iundef; i = iundef; j = iundef
1152 flux(
ke,i,j) = 0.0_rp
1159 k = iundef; i = iundef; j = iundef
1174 IIS, IIE, JJS, JJE )
1177 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1178 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1179 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1180 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1181 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1182 real(rp),
intent(in) :: j33g
1183 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1184 real(rp),
intent(in) :: cdz (
ka)
1185 logical,
intent(in) :: twod
1186 integer,
intent(in) :: iis, iie, jjs, jje
1203 call check( __line__, mom(
k,i,j) )
1205 call check( __line__, val(
k,i,j) )
1206 call check( __line__, val(
k+1,i,j) )
1208 call check( __line__, val(
k-1,i,j) )
1209 call check( __line__, val(
k+2,i,j) )
1211 call check( __line__, val(
k-2,i,j) )
1212 call check( __line__, val(
k+3,i,j) )
1214 call check( __line__, val(
k-3,i,j) )
1215 call check( __line__, val(
k+4,i,j) )
1219 vel = ( mom(
k,i,j) ) &
1224 flux(
k,i,j) = j33g * vel &
1225 * ( ( f71 * ( val(
k+4,i,j)+val(
k-3,i,j) ) &
1226 + f72 * ( val(
k+3,i,j)+val(
k-2,i,j) ) &
1227 + f73 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1228 + f74 * ( val(
k+1,i,j)+val(
k,i,j) ) ) &
1229 - ( f71 * ( val(
k+4,i,j)-val(
k-3,i,j) ) &
1230 + f75 * ( val(
k+3,i,j)-val(
k-2,i,j) ) &
1231 + f76 * ( val(
k+2,i,j)-val(
k-1,i,j) ) &
1232 + f77 * ( val(
k+1,i,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
1233 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1238 k = iundef; i = iundef; j = iundef
1245 call check( __line__, mom(
ks,i ,j) )
1246 call check( __line__, val(
ks+1,i,j) )
1247 call check( __line__, val(
ks,i,j) )
1249 call check( __line__, mom(
ks+1,i ,j) )
1250 call check( __line__, val(
ks+3,i,j) )
1251 call check( __line__, val(
ks+2,i,j) )
1253 call check( __line__, mom(
ks+2,i ,j) )
1254 call check( __line__, val(
ks+5,i,j) )
1255 call check( __line__, val(
ks+4,i,j) )
1262 flux(
ks-1,i,j) = 0.0_rp
1264 vel = ( mom(
ks,i,j) ) &
1269 flux(
ks,i,j) = j33g * vel &
1270 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
1271 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1272 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
1273 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1274 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
1275 vel = ( mom(
ke-1,i,j) ) &
1280 flux(
ke-1,i,j) = j33g * vel &
1281 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
1282 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1283 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
1284 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1285 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
1287 vel = ( mom(
ks+1,i,j) ) &
1292 flux(
ks+1,i,j) = j33g * vel &
1293 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
1294 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1295 + ( - 3.0_rp * val(
ks,i,j) &
1296 + 27.0_rp * val(
ks+1,i,j) &
1297 + 47.0_rp * val(
ks+2,i,j) &
1298 - 13.0_rp * val(
ks+3,i,j) &
1299 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
1300 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1301 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
1302 vel = ( mom(
ke-2,i,j) ) &
1307 flux(
ke-2,i,j) = j33g * vel &
1308 * ( ( - 3.0_rp * val(
ke,i,j) &
1309 + 27.0_rp * val(
ke-1,i,j) &
1310 + 47.0_rp * val(
ke-2,i,j) &
1311 - 13.0_rp * val(
ke-3,i,j) &
1312 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
1313 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1314 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
1315 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1316 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
1318 vel = ( mom(
ks+2,i,j) ) &
1323 flux(
ks+2,i,j) = j33g * vel &
1324 * ( ( - 3.0_rp * val(
ks+4,i,j) &
1325 + 27.0_rp * val(
ks+3,i,j) &
1326 + 47.0_rp * val(
ks+2,i,j) &
1327 - 13.0_rp * val(
ks+1,i,j) &
1328 + 2.0_rp * val(
ks,i,j) ) / 60.0_rp &
1329 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1330 + ( 4.0_rp * val(
ks,i,j) &
1331 - 38.0_rp * val(
ks+1,i,j) &
1332 + 214.0_rp * val(
ks+2,i,j) &
1333 + 319.0_rp * val(
ks+3,i,j) &
1334 - 101.0_rp * val(
ks+4,i,j) &
1335 + 25.0_rp * val(
ks+5,i,j) &
1336 - 3.0_rp * val(
ks+6,i,j) ) / 420.0_rp &
1337 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1338 + gsqrt(
ks+2,i,j) * num_diff(
ks+2,i,j)
1339 vel = ( mom(
ke-3,i,j) ) &
1344 flux(
ke-3,i,j) = j33g * vel &
1345 * ( ( 4.0_rp * val(
ke,i,j) &
1346 - 38.0_rp * val(
ke-1,i,j) &
1347 + 214.0_rp * val(
ke-2,i,j) &
1348 + 319.0_rp * val(
ke-3,i,j) &
1349 - 101.0_rp * val(
ke-4,i,j) &
1350 + 25.0_rp * val(
ke-5,i,j) &
1351 - 3.0_rp * val(
ke-6,i,j) ) / 420.0_rp &
1352 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1353 + ( - 3.0_rp * val(
ke-4,i,j) &
1354 + 27.0_rp * val(
ke-3,i,j) &
1355 + 47.0_rp * val(
ke-2,i,j) &
1356 - 13.0_rp * val(
ke-1,i,j) &
1357 + 2.0_rp * val(
ke,i,j) ) / 60.0_rp &
1358 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1359 + gsqrt(
ke-3,i,j) * num_diff(
ke-3,i,j)
1361 flux(
ke,i,j) = 0.0_rp
1373 call check( __line__, mom(
k,i,j) )
1374 call check( __line__, mom(
k,i+1,j) )
1376 call check( __line__, val(
k,i,j) )
1377 call check( __line__, val(
k+1,i,j) )
1379 call check( __line__, val(
k-1,i,j) )
1380 call check( __line__, val(
k+2,i,j) )
1382 call check( __line__, val(
k-2,i,j) )
1383 call check( __line__, val(
k+3,i,j) )
1385 call check( __line__, val(
k-3,i,j) )
1386 call check( __line__, val(
k+4,i,j) )
1389 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i+1,j) ) ) &
1391 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
1393 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
1394 flux(
k,i,j) = j33g * vel &
1395 * ( ( f71 * ( val(
k+4,i,j)+val(
k-3,i,j) ) &
1396 + f72 * ( val(
k+3,i,j)+val(
k-2,i,j) ) &
1397 + f73 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1398 + f74 * ( val(
k+1,i,j)+val(
k,i,j) ) ) &
1399 - ( f71 * ( val(
k+4,i,j)-val(
k-3,i,j) ) &
1400 + f75 * ( val(
k+3,i,j)-val(
k-2,i,j) ) &
1401 + f76 * ( val(
k+2,i,j)-val(
k-1,i,j) ) &
1402 + f77 * ( val(
k+1,i,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
1403 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1409 k = iundef; i = iundef; j = iundef
1417 call check( __line__, mom(
ks,i ,j) )
1418 call check( __line__, mom(
ks,i+1,j) )
1419 call check( __line__, val(
ks+1,i,j) )
1420 call check( __line__, val(
ks,i,j) )
1422 call check( __line__, mom(
ks+1,i ,j) )
1423 call check( __line__, mom(
ks+1,i+1,j) )
1424 call check( __line__, val(
ks+3,i,j) )
1425 call check( __line__, val(
ks+2,i,j) )
1427 call check( __line__, mom(
ks+2,i ,j) )
1428 call check( __line__, mom(
ks+2,i+1,j) )
1429 call check( __line__, val(
ks+5,i,j) )
1430 call check( __line__, val(
ks+4,i,j) )
1436 flux(
ks-1,i,j) = 0.0_rp
1438 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j) ) ) &
1440 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1442 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1443 flux(
ks,i,j) = j33g * vel &
1444 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
1445 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1446 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
1447 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1448 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
1449 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i+1,j) ) ) &
1451 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1453 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1454 flux(
ke-1,i,j) = j33g * vel &
1455 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
1456 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1457 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
1458 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1459 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
1461 vel = ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i+1,j) ) ) &
1463 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
1465 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
1466 flux(
ks+1,i,j) = j33g * vel &
1467 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
1468 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1469 + ( - 3.0_rp * val(
ks,i,j) &
1470 + 27.0_rp * val(
ks+1,i,j) &
1471 + 47.0_rp * val(
ks+2,i,j) &
1472 - 13.0_rp * val(
ks+3,i,j) &
1473 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
1474 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1475 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
1476 vel = ( 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i+1,j) ) ) &
1478 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
1480 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
1481 flux(
ke-2,i,j) = j33g * vel &
1482 * ( ( - 3.0_rp * val(
ke,i,j) &
1483 + 27.0_rp * val(
ke-1,i,j) &
1484 + 47.0_rp * val(
ke-2,i,j) &
1485 - 13.0_rp * val(
ke-3,i,j) &
1486 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
1487 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1488 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
1489 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1490 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
1492 vel = ( 0.5_rp * ( mom(
ks+2,i,j)+mom(
ks+2,i+1,j) ) ) &
1494 * 0.5_rp * ( dens(
ks+3,i,j)+dens(
ks+3,i+1,j) ) &
1496 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) )
1497 flux(
ks+2,i,j) = j33g * vel &
1498 * ( ( - 3.0_rp * val(
ks+4,i,j) &
1499 + 27.0_rp * val(
ks+3,i,j) &
1500 + 47.0_rp * val(
ks+2,i,j) &
1501 - 13.0_rp * val(
ks+1,i,j) &
1502 + 2.0_rp * val(
ks,i,j) ) / 60.0_rp &
1503 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1504 + ( 4.0_rp * val(
ks,i,j) &
1505 - 38.0_rp * val(
ks+1,i,j) &
1506 + 214.0_rp * val(
ks+2,i,j) &
1507 + 319.0_rp * val(
ks+3,i,j) &
1508 - 101.0_rp * val(
ks+4,i,j) &
1509 + 25.0_rp * val(
ks+5,i,j) &
1510 - 3.0_rp * val(
ks+6,i,j) ) / 420.0_rp &
1511 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1512 + gsqrt(
ks+2,i,j) * num_diff(
ks+2,i,j)
1513 vel = ( 0.5_rp * ( mom(
ke-3,i,j)+mom(
ke-3,i+1,j) ) ) &
1515 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) &
1517 * 0.5_rp * ( dens(
ke-3,i,j)+dens(
ke-3,i+1,j) ) )
1518 flux(
ke-3,i,j) = j33g * vel &
1519 * ( ( 4.0_rp * val(
ke,i,j) &
1520 - 38.0_rp * val(
ke-1,i,j) &
1521 + 214.0_rp * val(
ke-2,i,j) &
1522 + 319.0_rp * val(
ke-3,i,j) &
1523 - 101.0_rp * val(
ke-4,i,j) &
1524 + 25.0_rp * val(
ke-5,i,j) &
1525 - 3.0_rp * val(
ke-6,i,j) ) / 420.0_rp &
1526 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1527 + ( - 3.0_rp * val(
ke-4,i,j) &
1528 + 27.0_rp * val(
ke-3,i,j) &
1529 + 47.0_rp * val(
ke-2,i,j) &
1530 - 13.0_rp * val(
ke-1,i,j) &
1531 + 2.0_rp * val(
ke,i,j) ) / 60.0_rp &
1532 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1533 + gsqrt(
ke-3,i,j) * num_diff(
ke-3,i,j)
1535 flux(
ke,i,j) = 0.0_rp
1545 k = iundef; i = iundef; j = iundef
1556 GSQRT, J13G, MAPF, &
1558 IIS, IIE, JJS, JJE )
1561 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1562 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1563 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1564 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1565 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1566 real(rp),
intent(in) :: j13g (
ka,
ia,
ja)
1567 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1568 real(rp),
intent(in) :: cdz (
ka)
1569 logical,
intent(in) :: twod
1570 integer,
intent(in) :: iis, iie, jjs, jje
1591 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
1593 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
1594 vel = vel * j13g(
k,i,j)
1595 flux(
k,i,j) = vel / mapf(i,j,+2) &
1596 * ( ( f71 * ( val(
k+4,i,j)+val(
k-3,i,j) ) &
1597 + f72 * ( val(
k+3,i,j)+val(
k-2,i,j) ) &
1598 + f73 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1599 + f74 * ( val(
k+1,i,j)+val(
k,i,j) ) ) &
1600 - ( f71 * ( val(
k+4,i,j)-val(
k-3,i,j) ) &
1601 + f75 * ( val(
k+3,i,j)-val(
k-2,i,j) ) &
1602 + f76 * ( val(
k+2,i,j)-val(
k-1,i,j) ) &
1603 + f77 * ( val(
k+1,i,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) )
1615 flux(
ks-1,i,j) = 0.0_rp
1622 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1624 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1625 vel = vel * j13g(
ks,i,j)
1626 flux(
ks,i,j) = vel / mapf(i,j,+2) &
1627 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
1628 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1629 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
1630 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1637 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1639 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1640 vel = vel * j13g(
ke-1,i,j)
1641 flux(
ke-1,i,j) = vel / mapf(i,j,+2) &
1642 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
1643 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1644 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
1645 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1652 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
1654 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
1655 vel = vel * j13g(
ks+1,i,j)
1656 flux(
ks+1,i,j) = vel / mapf(i,j,+2) &
1657 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
1658 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1659 + ( - 3.0_rp * val(
ks,i,j) &
1660 + 27.0_rp * val(
ks+1,i,j) &
1661 + 47.0_rp * val(
ks+2,i,j) &
1662 - 13.0_rp * val(
ks+3,i,j) &
1663 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
1664 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1671 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
1673 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
1674 vel = vel * j13g(
ke-2,i,j)
1675 flux(
ke-2,i,j) = vel / mapf(i,j,+2) &
1676 * ( ( - 3.0_rp * val(
ke,i,j) &
1677 + 27.0_rp * val(
ke-1,i,j) &
1678 + 47.0_rp * val(
ke-2,i,j) &
1679 - 13.0_rp * val(
ke-3,i,j) &
1680 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
1681 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1682 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
1683 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1690 * 0.5_rp * ( dens(
ks+3,i,j)+dens(
ks+3,i+1,j) ) &
1692 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) )
1693 vel = vel * j13g(
ks+2,i,j)
1694 flux(
ks+2,i,j) = vel / mapf(i,j,+2) &
1695 * ( ( - 3.0_rp * val(
ks+4,i,j) &
1696 + 27.0_rp * val(
ks+3,i,j) &
1697 + 47.0_rp * val(
ks+2,i,j) &
1698 - 13.0_rp * val(
ks+1,i,j) &
1699 + 2.0_rp * val(
ks,i,j) ) / 60.0_rp &
1700 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1701 + ( 4.0_rp * val(
ks,i,j) &
1702 - 38.0_rp * val(
ks+1,i,j) &
1703 + 214.0_rp * val(
ks+2,i,j) &
1704 + 319.0_rp * val(
ks+3,i,j) &
1705 - 101.0_rp * val(
ks+4,i,j) &
1706 + 25.0_rp * val(
ks+5,i,j) &
1707 - 3.0_rp * val(
ks+6,i,j) ) / 420.0_rp &
1708 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1715 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) &
1717 * 0.5_rp * ( dens(
ke-3,i,j)+dens(
ke-3,i+1,j) ) )
1718 vel = vel * j13g(
ke-3,i,j)
1719 flux(
ke-3,i,j) = vel / mapf(i,j,+2) &
1720 * ( ( 4.0_rp * val(
ke,i,j) &
1721 - 38.0_rp * val(
ke-1,i,j) &
1722 + 214.0_rp * val(
ke-2,i,j) &
1723 + 319.0_rp * val(
ke-3,i,j) &
1724 - 101.0_rp * val(
ke-4,i,j) &
1725 + 25.0_rp * val(
ke-5,i,j) &
1726 - 3.0_rp * val(
ke-6,i,j) ) / 420.0_rp &
1727 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1728 + ( - 3.0_rp * val(
ke-4,i,j) &
1729 + 27.0_rp * val(
ke-3,i,j) &
1730 + 47.0_rp * val(
ke-2,i,j) &
1731 - 13.0_rp * val(
ke-1,i,j) &
1732 + 2.0_rp * val(
ke,i,j) ) / 60.0_rp &
1733 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1735 flux(
ke ,i,j) = 0.0_rp
1751 GSQRT, J23G, MAPF, &
1753 IIS, IIE, JJS, JJE )
1756 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1757 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1758 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1759 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1760 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1761 real(rp),
intent(in) :: j23g (
ka,
ia,
ja)
1762 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1763 real(rp),
intent(in) :: cdz (
ka)
1764 logical,
intent(in) :: twod
1765 integer,
intent(in) :: iis, iie, jjs, jje
1783 * 0.5_rp * ( mom(
k+1,i,j)+mom(
k+1,i,j-1) ) &
1785 * 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j-1) ) ) &
1790 vel = vel * j23g(
k,i,j)
1791 flux(
k,i,j) = vel * ( ( f71 * ( val(
k+4,i,j)+val(
k-3,i,j) ) &
1792 + f72 * ( val(
k+3,i,j)+val(
k-2,i,j) ) &
1793 + f73 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1794 + f74 * ( val(
k+1,i,j)+val(
k,i,j) ) ) &
1795 - ( f71 * ( val(
k+4,i,j)-val(
k-3,i,j) ) &
1796 + f75 * ( val(
k+3,i,j)-val(
k-2,i,j) ) &
1797 + f76 * ( val(
k+2,i,j)-val(
k-1,i,j) ) &
1798 + f77 * ( val(
k+1,i,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) )
1809 flux(
ks-1,i,j) = 0.0_rp
1812 * 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j-1) ) &
1814 * 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j-1) ) ) &
1819 vel = vel * j23g(
ks,i,j)
1820 flux(
ks,i,j) = vel / mapf(i,j,+1) &
1821 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
1822 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1823 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
1824 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1827 * 0.5_rp * ( mom(
ke,i,j)+mom(
ke,i,j-1) ) &
1829 * 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j-1) ) ) &
1834 vel = vel * j23g(
ke-1,i,j)
1835 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
1836 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
1837 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1838 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
1839 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1842 * 0.5_rp * ( mom(
ks+2,i,j)+mom(
ks+2,i,j-1) ) &
1844 * 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j-1) ) ) &
1849 vel = vel * j23g(
ks+1,i,j)
1850 flux(
ks+1,i,j) = vel / mapf(i,j,+1) &
1851 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
1852 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1853 + ( - 3.0_rp * val(
ks,i,j) &
1854 + 27.0_rp * val(
ks+1,i,j) &
1855 + 47.0_rp * val(
ks+2,i,j) &
1856 - 13.0_rp * val(
ks+3,i,j) &
1857 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
1858 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1861 * 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j-1) ) &
1863 * 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i,j-1) ) ) &
1868 vel = vel * j23g(
ke-2,i,j)
1869 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
1870 * ( ( - 3.0_rp * val(
ke,i,j) &
1871 + 27.0_rp * val(
ke-1,i,j) &
1872 + 47.0_rp * val(
ke-2,i,j) &
1873 - 13.0_rp * val(
ke-3,i,j) &
1874 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
1875 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1876 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
1877 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1880 * 0.5_rp * ( mom(
ks+3,i,j)+mom(
ks+3,i,j-1) ) &
1882 * 0.5_rp * ( mom(
ks+2,i,j)+mom(
ks+2,i,j-1) ) ) &
1887 vel = vel * j23g(
ks+2,i,j)
1888 flux(
ks+2,i,j) = vel / mapf(i,j,+1) &
1889 * ( ( - 3.0_rp * val(
ks+4,i,j) &
1890 + 27.0_rp * val(
ks+3,i,j) &
1891 + 47.0_rp * val(
ks+2,i,j) &
1892 - 13.0_rp * val(
ks+1,i,j) &
1893 + 2.0_rp * val(
ks,i,j) ) / 60.0_rp &
1894 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1895 + ( 4.0_rp * val(
ks,i,j) &
1896 - 38.0_rp * val(
ks+1,i,j) &
1897 + 214.0_rp * val(
ks+2,i,j) &
1898 + 319.0_rp * val(
ks+3,i,j) &
1899 - 101.0_rp * val(
ks+4,i,j) &
1900 + 25.0_rp * val(
ks+5,i,j) &
1901 - 3.0_rp * val(
ks+6,i,j) ) / 420.0_rp &
1902 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1905 * 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i,j-1) ) &
1907 * 0.5_rp * ( mom(
ke-3,i,j)+mom(
ke-3,i,j-1) ) ) &
1912 vel = vel * j23g(
ke-3,i,j)
1913 flux(
ke-3,i,j) = vel / mapf(i,j,+1) &
1914 * ( ( 4.0_rp * val(
ke,i,j) &
1915 - 38.0_rp * val(
ke-1,i,j) &
1916 + 214.0_rp * val(
ke-2,i,j) &
1917 + 319.0_rp * val(
ke-3,i,j) &
1918 - 101.0_rp * val(
ke-4,i,j) &
1919 + 25.0_rp * val(
ke-5,i,j) &
1920 - 3.0_rp * val(
ke-6,i,j) ) / 420.0_rp &
1921 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1922 + ( - 3.0_rp * val(
ke-4,i,j) &
1923 + 27.0_rp * val(
ke-3,i,j) &
1924 + 47.0_rp * val(
ke-2,i,j) &
1925 - 13.0_rp * val(
ke-1,i,j) &
1926 + 2.0_rp * val(
ke,i,j) ) / 60.0_rp &
1927 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1929 flux(
ke ,i,j) = 0.0_rp
1941 * 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) ) &
1943 * 0.25_rp * ( mom(
k,i,j)+mom(
k,i+1,j)+mom(
k,i,j-1)+mom(
k,i+1,j-1) ) ) &
1945 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
1947 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
1948 vel = vel * j23g(
k,i,j)
1949 flux(
k,i,j) = vel / mapf(i,j,+1) &
1950 * ( ( f71 * ( val(
k+4,i,j)+val(
k-3,i,j) ) &
1951 + f72 * ( val(
k+3,i,j)+val(
k-2,i,j) ) &
1952 + f73 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
1953 + f74 * ( val(
k+1,i,j)+val(
k,i,j) ) ) &
1954 - ( f71 * ( val(
k+4,i,j)-val(
k-3,i,j) ) &
1955 + f75 * ( val(
k+3,i,j)-val(
k-2,i,j) ) &
1956 + f76 * ( val(
k+2,i,j)-val(
k-1,i,j) ) &
1957 + f77 * ( val(
k+1,i,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) )
1969 flux(
ks-1,i,j) = 0.0_rp
1972 * 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) ) &
1974 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j)+mom(
ks,i,j-1)+mom(
ks,i+1,j-1) ) ) &
1976 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1978 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1979 vel = vel * j23g(
ks,i,j)
1980 flux(
ks,i,j) = vel / mapf(i,j,+1) &
1981 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
1982 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1983 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
1984 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1987 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i+1,j)+mom(
ke,i,j-1)+mom(
ke,i+1,j-1) ) &
1989 * 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) ) ) &
1991 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1993 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1994 vel = vel * j23g(
ke-1,i,j)
1995 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
1996 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
1997 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1998 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
1999 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2002 * 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) ) &
2004 * 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) ) ) &
2006 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
2008 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
2009 vel = vel * j23g(
ks+1,i,j)
2010 flux(
ks+1,i,j) = vel / mapf(i,j,+1) &
2011 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
2012 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2013 + ( - 3.0_rp * val(
ks,i,j) &
2014 + 27.0_rp * val(
ks+1,i,j) &
2015 + 47.0_rp * val(
ks+2,i,j) &
2016 - 13.0_rp * val(
ks+3,i,j) &
2017 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
2018 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2021 * 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) ) &
2023 * 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) ) ) &
2025 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
2027 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
2028 vel = vel * j23g(
ke-2,i,j)
2029 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
2030 * ( ( - 3.0_rp * val(
ke,i,j) &
2031 + 27.0_rp * val(
ke-1,i,j) &
2032 + 47.0_rp * val(
ke-2,i,j) &
2033 - 13.0_rp * val(
ke-3,i,j) &
2034 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
2035 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2036 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
2037 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2040 * 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) ) &
2042 * 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) ) ) &
2044 * 0.5_rp * ( dens(
ks+3,i,j)+dens(
ks+3,i+1,j) ) &
2046 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) )
2047 vel = vel * j23g(
ks+2,i,j)
2048 flux(
ks+2,i,j) = vel / mapf(i,j,+1) &
2049 * ( ( - 3.0_rp * val(
ks+4,i,j) &
2050 + 27.0_rp * val(
ks+3,i,j) &
2051 + 47.0_rp * val(
ks+2,i,j) &
2052 - 13.0_rp * val(
ks+1,i,j) &
2053 + 2.0_rp * val(
ks,i,j) ) / 60.0_rp &
2054 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2055 + ( 4.0_rp * val(
ks,i,j) &
2056 - 38.0_rp * val(
ks+1,i,j) &
2057 + 214.0_rp * val(
ks+2,i,j) &
2058 + 319.0_rp * val(
ks+3,i,j) &
2059 - 101.0_rp * val(
ks+4,i,j) &
2060 + 25.0_rp * val(
ks+5,i,j) &
2061 - 3.0_rp * val(
ks+6,i,j) ) / 420.0_rp &
2062 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2065 * 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) ) &
2067 * 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) ) ) &
2069 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) &
2071 * 0.5_rp * ( dens(
ke-3,i,j)+dens(
ke-3,i+1,j) ) )
2072 vel = vel * j23g(
ke-3,i,j)
2073 flux(
ke-3,i,j) = vel / mapf(i,j,+1) &
2074 * ( ( 4.0_rp * val(
ke,i,j) &
2075 - 38.0_rp * val(
ke-1,i,j) &
2076 + 214.0_rp * val(
ke-2,i,j) &
2077 + 319.0_rp * val(
ke-3,i,j) &
2078 - 101.0_rp * val(
ke-4,i,j) &
2079 + 25.0_rp * val(
ke-5,i,j) &
2080 - 3.0_rp * val(
ke-6,i,j) ) / 420.0_rp &
2081 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2082 + ( - 3.0_rp * val(
ke-4,i,j) &
2083 + 27.0_rp * val(
ke-3,i,j) &
2084 + 47.0_rp * val(
ke-2,i,j) &
2085 - 13.0_rp * val(
ke-1,i,j) &
2086 + 2.0_rp * val(
ke,i,j) ) / 60.0_rp &
2087 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2089 flux(
ke ,i,j) = 0.0_rp
2110 IIS, IIE, JJS, JJE )
2113 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
2114 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
2115 real(rp),
intent(in) :: val (
ka,
ia,
ja)
2116 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
2117 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
2118 real(rp),
intent(in) :: mapf (
ia,
ja,2)
2119 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
2120 real(rp),
intent(in) :: cdz (
ka)
2121 logical,
intent(in) :: twod
2122 integer,
intent(in) :: iis, iie, jjs, jje
2139 call check( __line__, mom(
k,i ,j) )
2140 call check( __line__, mom(
k,i-1,j) )
2142 call check( __line__, val(
k,i-1,j) )
2143 call check( __line__, val(
k,i,j) )
2145 call check( __line__, val(
k,i-2,j) )
2146 call check( __line__, val(
k,i+1,j) )
2148 call check( __line__, val(
k,i-3,j) )
2149 call check( __line__, val(
k,i+2,j) )
2151 call check( __line__, val(
k,i-4,j) )
2152 call check( __line__, val(
k,i+3,j) )
2155 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i-1,j) ) ) &
2157 flux(
k,i-1,j) = gsqrt(
k,i,j) / mapf(i,j,+2) * vel &
2158 * ( ( f71 * ( val(
k,i+3,j)+val(
k,i-4,j) ) &
2159 + f72 * ( val(
k,i+2,j)+val(
k,i-3,j) ) &
2160 + f73 * ( val(
k,i+1,j)+val(
k,i-2,j) ) &
2161 + f74 * ( val(
k,i,j)+val(
k,i-1,j) ) ) &
2162 - ( f71 * ( val(
k,i+3,j)-val(
k,i-4,j) ) &
2163 + f75 * ( val(
k,i+2,j)-val(
k,i-3,j) ) &
2164 + f76 * ( val(
k,i+1,j)-val(
k,i-2,j) ) &
2165 + f77 * ( val(
k,i,j)-val(
k,i-1,j) ) ) * sign(1.0_rp,vel) ) &
2166 + gsqrt(
k,i,j) * num_diff(
k,i,j)
2171 k = iundef; i = iundef; j = iundef
2187 IIS, IIE, JJS, JJE )
2190 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
2191 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
2192 real(rp),
intent(in) :: val (
ka,
ia,
ja)
2193 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
2194 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
2195 real(rp),
intent(in) :: mapf (
ia,
ja,2)
2196 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
2197 real(rp),
intent(in) :: cdz (
ka)
2198 logical,
intent(in) :: twod
2199 integer,
intent(in) :: iis, iie, jjs, jje
2216 call check( __line__, mom(
k,i ,j) )
2218 call check( __line__, val(
k,i,j) )
2219 call check( __line__, val(
k,i,j+1) )
2221 call check( __line__, val(
k,i,j-1) )
2222 call check( __line__, val(
k,i,j+2) )
2224 call check( __line__, val(
k,i,j-2) )
2225 call check( __line__, val(
k,i,j+3) )
2227 call check( __line__, val(
k,i,j-3) )
2228 call check( __line__, val(
k,i,j+4) )
2231 vel = ( mom(
k,i,j) ) &
2232 / ( 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
2233 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
2234 * ( ( f71 * ( val(
k,i,j+4)+val(
k,i,j-3) ) &
2235 + f72 * ( val(
k,i,j+3)+val(
k,i,j-2) ) &
2236 + f73 * ( val(
k,i,j+2)+val(
k,i,j-1) ) &
2237 + f74 * ( val(
k,i,j+1)+val(
k,i,j) ) ) &
2238 - ( f71 * ( val(
k,i,j+4)-val(
k,i,j-3) ) &
2239 + f75 * ( val(
k,i,j+3)-val(
k,i,j-2) ) &
2240 + f76 * ( val(
k,i,j+2)-val(
k,i,j-1) ) &
2241 + f77 * ( val(
k,i,j+1)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
2242 + gsqrt(
k,i,j) * num_diff(
k,i,j)
2246 k = iundef; i = iundef; j = iundef
2259 call check( __line__, mom(
k,i ,j) )
2260 call check( __line__, mom(
k,i-1,j) )
2262 call check( __line__, val(
k,i,j) )
2263 call check( __line__, val(
k,i,j+1) )
2265 call check( __line__, val(
k,i,j-1) )
2266 call check( __line__, val(
k,i,j+2) )
2268 call check( __line__, val(
k,i,j-2) )
2269 call check( __line__, val(
k,i,j+3) )
2271 call check( __line__, val(
k,i,j-3) )
2272 call check( __line__, val(
k,i,j+4) )
2275 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i+1,j) ) ) &
2276 / ( 0.25_rp * ( dens(
k,i,j)+dens(
k,i+1,j)+dens(
k,i,j+1)+dens(
k,i+1,j+1) ) )
2277 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
2278 * ( ( f71 * ( val(
k,i,j+4)+val(
k,i,j-3) ) &
2279 + f72 * ( val(
k,i,j+3)+val(
k,i,j-2) ) &
2280 + f73 * ( val(
k,i,j+2)+val(
k,i,j-1) ) &
2281 + f74 * ( val(
k,i,j+1)+val(
k,i,j) ) ) &
2282 - ( f71 * ( val(
k,i,j+4)-val(
k,i,j-3) ) &
2283 + f75 * ( val(
k,i,j+3)-val(
k,i,j-2) ) &
2284 + f76 * ( val(
k,i,j+2)-val(
k,i,j-1) ) &
2285 + f77 * ( val(
k,i,j+1)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
2286 + gsqrt(
k,i,j) * num_diff(
k,i,j)
2291 k = iundef; i = iundef; j = iundef
2311 IIS, IIE, JJS, JJE )
2314 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
2315 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
2316 real(rp),
intent(in) :: val (
ka,
ia,
ja)
2317 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
2318 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
2319 real(rp),
intent(in) :: j33g
2320 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
2321 real(rp),
intent(in) :: cdz (
ka)
2322 logical,
intent(in) :: twod
2323 integer,
intent(in) :: iis, iie, jjs, jje
2339 call check( __line__, mom(
k,i,j) )
2340 call check( __line__, mom(
k,i,j+1) )
2342 call check( __line__, val(
k,i,j) )
2343 call check( __line__, val(
k+1,i,j) )
2345 call check( __line__, val(
k-1,i,j) )
2346 call check( __line__, val(
k+2,i,j) )
2348 call check( __line__, val(
k-2,i,j) )
2349 call check( __line__, val(
k+3,i,j) )
2351 call check( __line__, val(
k-3,i,j) )
2352 call check( __line__, val(
k+4,i,j) )
2355 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j+1) ) ) &
2357 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
2359 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
2360 flux(
k,i,j) = j33g * vel &
2361 * ( ( f71 * ( val(
k+4,i,j)+val(
k-3,i,j) ) &
2362 + f72 * ( val(
k+3,i,j)+val(
k-2,i,j) ) &
2363 + f73 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
2364 + f74 * ( val(
k+1,i,j)+val(
k,i,j) ) ) &
2365 - ( f71 * ( val(
k+4,i,j)-val(
k-3,i,j) ) &
2366 + f75 * ( val(
k+3,i,j)-val(
k-2,i,j) ) &
2367 + f76 * ( val(
k+2,i,j)-val(
k-1,i,j) ) &
2368 + f77 * ( val(
k+1,i,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
2369 + gsqrt(
k,i,j) * num_diff(
k,i,j)
2375 k = iundef; i = iundef; j = iundef
2383 call check( __line__, mom(
ks,i ,j) )
2384 call check( __line__, mom(
ks,i,j+1) )
2385 call check( __line__, val(
ks+1,i,j) )
2386 call check( __line__, val(
ks,i,j) )
2388 call check( __line__, mom(
ks+1,i ,j) )
2389 call check( __line__, mom(
ks+1,i,j+1) )
2390 call check( __line__, val(
ks+3,i,j) )
2391 call check( __line__, val(
ks+2,i,j) )
2393 call check( __line__, mom(
ks+2,i ,j) )
2394 call check( __line__, mom(
ks+2,i,j+1) )
2395 call check( __line__, val(
ks+5,i,j) )
2396 call check( __line__, val(
ks+4,i,j) )
2402 flux(
ks-1,i,j) = 0.0_rp
2404 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j+1) ) ) &
2406 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
2408 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
2409 flux(
ks,i,j) = j33g * vel &
2410 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
2411 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2412 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
2413 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
2414 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
2415 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j+1) ) ) &
2417 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
2419 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
2420 flux(
ke-1,i,j) = j33g * vel &
2421 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
2422 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2423 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
2424 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
2425 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
2427 vel = ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j+1) ) ) &
2429 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
2431 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
2432 flux(
ks+1,i,j) = j33g * vel &
2433 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
2434 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2435 + ( - 3.0_rp * val(
ks,i,j) &
2436 + 27.0_rp * val(
ks+1,i,j) &
2437 + 47.0_rp * val(
ks+2,i,j) &
2438 - 13.0_rp * val(
ks+3,i,j) &
2439 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
2440 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
2441 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
2442 vel = ( 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i,j+1) ) ) &
2444 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
2446 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
2447 flux(
ke-2,i,j) = j33g * vel &
2448 * ( ( - 3.0_rp * val(
ke,i,j) &
2449 + 27.0_rp * val(
ke-1,i,j) &
2450 + 47.0_rp * val(
ke-2,i,j) &
2451 - 13.0_rp * val(
ke-3,i,j) &
2452 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
2453 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2454 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
2455 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
2456 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
2458 vel = ( 0.5_rp * ( mom(
ks+2,i,j)+mom(
ks+2,i,j+1) ) ) &
2460 * 0.5_rp * ( dens(
ks+3,i,j)+dens(
ks+3,i,j+1) ) &
2462 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) )
2463 flux(
ks+2,i,j) = j33g * vel &
2464 * ( ( - 3.0_rp * val(
ks+4,i,j) &
2465 + 27.0_rp * val(
ks+3,i,j) &
2466 + 47.0_rp * val(
ks+2,i,j) &
2467 - 13.0_rp * val(
ks+1,i,j) &
2468 + 2.0_rp * val(
ks,i,j) ) / 60.0_rp &
2469 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2470 + ( 4.0_rp * val(
ks,i,j) &
2471 - 38.0_rp * val(
ks+1,i,j) &
2472 + 214.0_rp * val(
ks+2,i,j) &
2473 + 319.0_rp * val(
ks+3,i,j) &
2474 - 101.0_rp * val(
ks+4,i,j) &
2475 + 25.0_rp * val(
ks+5,i,j) &
2476 - 3.0_rp * val(
ks+6,i,j) ) / 420.0_rp &
2477 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
2478 + gsqrt(
ks+2,i,j) * num_diff(
ks+2,i,j)
2479 vel = ( 0.5_rp * ( mom(
ke-3,i,j)+mom(
ke-3,i,j+1) ) ) &
2481 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) &
2483 * 0.5_rp * ( dens(
ke-3,i,j)+dens(
ke-3,i,j+1) ) )
2484 flux(
ke-3,i,j) = j33g * vel &
2485 * ( ( 4.0_rp * val(
ke,i,j) &
2486 - 38.0_rp * val(
ke-1,i,j) &
2487 + 214.0_rp * val(
ke-2,i,j) &
2488 + 319.0_rp * val(
ke-3,i,j) &
2489 - 101.0_rp * val(
ke-4,i,j) &
2490 + 25.0_rp * val(
ke-5,i,j) &
2491 - 3.0_rp * val(
ke-6,i,j) ) / 420.0_rp &
2492 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2493 + ( - 3.0_rp * val(
ke-4,i,j) &
2494 + 27.0_rp * val(
ke-3,i,j) &
2495 + 47.0_rp * val(
ke-2,i,j) &
2496 - 13.0_rp * val(
ke-1,i,j) &
2497 + 2.0_rp * val(
ke,i,j) ) / 60.0_rp &
2498 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
2499 + gsqrt(
ke-3,i,j) * num_diff(
ke-3,i,j)
2501 flux(
ke,i,j) = 0.0_rp
2509 k = iundef; i = iundef; j = iundef
2520 GSQRT, J13G, MAPF, &
2522 IIS, IIE, JJS, JJE )
2525 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
2526 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
2527 real(rp),
intent(in) :: val (
ka,
ia,
ja)
2528 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
2529 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
2530 real(rp),
intent(in) :: j13g (
ka,
ia,
ja)
2531 real(rp),
intent(in) :: mapf (
ia,
ja,2)
2532 real(rp),
intent(in) :: cdz (
ka)
2533 logical,
intent(in) :: twod
2534 integer,
intent(in) :: iis, iie, jjs, jje
2551 * 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) ) &
2553 * 0.25_rp * ( mom(
k,i,j)+mom(
k,i-1,j)+mom(
k,i,j+1)+mom(
k,i-1,j+1) ) ) &
2555 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
2557 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
2558 vel = vel * j13g(
k,i,j)
2559 flux(
k,i,j) = vel / mapf(i,j,+2) &
2560 * ( ( f71 * ( val(
k+4,i,j)+val(
k-3,i,j) ) &
2561 + f72 * ( val(
k+3,i,j)+val(
k-2,i,j) ) &
2562 + f73 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
2563 + f74 * ( val(
k+1,i,j)+val(
k,i,j) ) ) &
2564 - ( f71 * ( val(
k+4,i,j)-val(
k-3,i,j) ) &
2565 + f75 * ( val(
k+3,i,j)-val(
k-2,i,j) ) &
2566 + f76 * ( val(
k+2,i,j)-val(
k-1,i,j) ) &
2567 + f77 * ( val(
k+1,i,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) )
2579 flux(
ks-1,i,j) = 0.0_rp
2582 * 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) ) &
2584 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j)+mom(
ks,i,j+1)+mom(
ks,i-1,j+1) ) ) &
2586 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
2588 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
2589 vel = vel * j13g(
ks,i,j)
2590 flux(
ks,i,j) = vel / mapf(i,j,+2) &
2591 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
2592 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2593 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
2594 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2597 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i-1,j)+mom(
ke,i,j+1)+mom(
ke,i-1,j+1) ) &
2599 * 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) ) ) &
2601 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
2603 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
2604 vel = vel * j13g(
ke-1,i,j)
2605 flux(
ke-1,i,j) = vel / mapf(i,j,+2) &
2606 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
2607 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2608 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
2609 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2612 * 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) ) &
2614 * 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) ) ) &
2616 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
2618 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
2619 vel = vel * j13g(
ks+1,i,j)
2620 flux(
ks+1,i,j) = vel / mapf(i,j,+2) &
2621 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
2622 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2623 + ( - 3.0_rp * val(
ks,i,j) &
2624 + 27.0_rp * val(
ks+1,i,j) &
2625 + 47.0_rp * val(
ks+2,i,j) &
2626 - 13.0_rp * val(
ks+3,i,j) &
2627 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
2628 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2631 * 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) ) &
2633 * 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) ) ) &
2635 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
2637 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
2638 vel = vel * j13g(
ke-2,i,j)
2639 flux(
ke-2,i,j) = vel / mapf(i,j,+2) &
2640 * ( ( - 3.0_rp * val(
ke,i,j) &
2641 + 27.0_rp * val(
ke-1,i,j) &
2642 + 47.0_rp * val(
ke-2,i,j) &
2643 - 13.0_rp * val(
ke-3,i,j) &
2644 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
2645 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2646 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
2647 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2650 * 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) ) &
2652 * 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) ) ) &
2654 * 0.5_rp * ( dens(
ks+3,i,j)+dens(
ks+3,i,j+1) ) &
2656 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) )
2657 vel = vel * j13g(
ks+2,i,j)
2658 flux(
ks+2,i,j) = vel / mapf(i,j,+2) &
2659 * ( ( - 3.0_rp * val(
ks+4,i,j) &
2660 + 27.0_rp * val(
ks+3,i,j) &
2661 + 47.0_rp * val(
ks+2,i,j) &
2662 - 13.0_rp * val(
ks+1,i,j) &
2663 + 2.0_rp * val(
ks,i,j) ) / 60.0_rp &
2664 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2665 + ( 4.0_rp * val(
ks,i,j) &
2666 - 38.0_rp * val(
ks+1,i,j) &
2667 + 214.0_rp * val(
ks+2,i,j) &
2668 + 319.0_rp * val(
ks+3,i,j) &
2669 - 101.0_rp * val(
ks+4,i,j) &
2670 + 25.0_rp * val(
ks+5,i,j) &
2671 - 3.0_rp * val(
ks+6,i,j) ) / 420.0_rp &
2672 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2675 * 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) ) &
2677 * 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) ) ) &
2679 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) &
2681 * 0.5_rp * ( dens(
ke-3,i,j)+dens(
ke-3,i,j+1) ) )
2682 vel = vel * j13g(
ke-3,i,j)
2683 flux(
ke-3,i,j) = vel / mapf(i,j,+2) &
2684 * ( ( 4.0_rp * val(
ke,i,j) &
2685 - 38.0_rp * val(
ke-1,i,j) &
2686 + 214.0_rp * val(
ke-2,i,j) &
2687 + 319.0_rp * val(
ke-3,i,j) &
2688 - 101.0_rp * val(
ke-4,i,j) &
2689 + 25.0_rp * val(
ke-5,i,j) &
2690 - 3.0_rp * val(
ke-6,i,j) ) / 420.0_rp &
2691 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2692 + ( - 3.0_rp * val(
ke-4,i,j) &
2693 + 27.0_rp * val(
ke-3,i,j) &
2694 + 47.0_rp * val(
ke-2,i,j) &
2695 - 13.0_rp * val(
ke-1,i,j) &
2696 + 2.0_rp * val(
ke,i,j) ) / 60.0_rp &
2697 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2699 flux(
ke ,i,j) = 0.0_rp
2715 GSQRT, J23G, MAPF, &
2717 IIS, IIE, JJS, JJE )
2720 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
2721 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
2722 real(rp),
intent(in) :: val (
ka,
ia,
ja)
2723 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
2724 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
2725 real(rp),
intent(in) :: j23g (
ka,
ia,
ja)
2726 real(rp),
intent(in) :: mapf (
ia,
ja,2)
2727 real(rp),
intent(in) :: cdz (
ka)
2728 logical,
intent(in) :: twod
2729 integer,
intent(in) :: iis, iie, jjs, jje
2750 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
2752 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
2753 vel = vel * j23g(
k,i,j)
2754 flux(
k,i,j) = vel / mapf(i,j,+1) &
2755 * ( ( f71 * ( val(
k+4,i,j)+val(
k-3,i,j) ) &
2756 + f72 * ( val(
k+3,i,j)+val(
k-2,i,j) ) &
2757 + f73 * ( val(
k+2,i,j)+val(
k-1,i,j) ) &
2758 + f74 * ( val(
k+1,i,j)+val(
k,i,j) ) ) &
2759 - ( f71 * ( val(
k+4,i,j)-val(
k-3,i,j) ) &
2760 + f75 * ( val(
k+3,i,j)-val(
k-2,i,j) ) &
2761 + f76 * ( val(
k+2,i,j)-val(
k-1,i,j) ) &
2762 + f77 * ( val(
k+1,i,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) )
2774 flux(
ks-1,i,j) = 0.0_rp
2781 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
2783 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
2784 vel = vel * j23g(
ks,i,j)
2785 flux(
ks,i,j) = vel / mapf(i,j,+1) &
2786 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
2787 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2788 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
2789 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2796 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
2798 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
2799 vel = vel * j23g(
ke-1,i,j)
2800 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
2801 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
2802 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2803 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
2804 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2811 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
2813 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
2814 vel = vel * j23g(
ks+1,i,j)
2815 flux(
ks+1,i,j) = vel / mapf(i,j,+1) &
2816 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
2817 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2818 + ( - 3.0_rp * val(
ks,i,j) &
2819 + 27.0_rp * val(
ks+1,i,j) &
2820 + 47.0_rp * val(
ks+2,i,j) &
2821 - 13.0_rp * val(
ks+3,i,j) &
2822 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
2823 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2830 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
2832 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
2833 vel = vel * j23g(
ke-2,i,j)
2834 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
2835 * ( ( - 3.0_rp * val(
ke,i,j) &
2836 + 27.0_rp * val(
ke-1,i,j) &
2837 + 47.0_rp * val(
ke-2,i,j) &
2838 - 13.0_rp * val(
ke-3,i,j) &
2839 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
2840 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2841 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
2842 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2849 * 0.5_rp * ( dens(
ks+3,i,j)+dens(
ks+3,i,j+1) ) &
2851 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) )
2852 vel = vel * j23g(
ks+2,i,j)
2853 flux(
ks+2,i,j) = vel / mapf(i,j,+1) &
2854 * ( ( - 3.0_rp * val(
ks+4,i,j) &
2855 + 27.0_rp * val(
ks+3,i,j) &
2856 + 47.0_rp * val(
ks+2,i,j) &
2857 - 13.0_rp * val(
ks+1,i,j) &
2858 + 2.0_rp * val(
ks,i,j) ) / 60.0_rp &
2859 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2860 + ( 4.0_rp * val(
ks,i,j) &
2861 - 38.0_rp * val(
ks+1,i,j) &
2862 + 214.0_rp * val(
ks+2,i,j) &
2863 + 319.0_rp * val(
ks+3,i,j) &
2864 - 101.0_rp * val(
ks+4,i,j) &
2865 + 25.0_rp * val(
ks+5,i,j) &
2866 - 3.0_rp * val(
ks+6,i,j) ) / 420.0_rp &
2867 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2874 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) &
2876 * 0.5_rp * ( dens(
ke-3,i,j)+dens(
ke-3,i,j+1) ) )
2877 vel = vel * j23g(
ke-3,i,j)
2878 flux(
ke-3,i,j) = vel / mapf(i,j,+1) &
2879 * ( ( 4.0_rp * val(
ke,i,j) &
2880 - 38.0_rp * val(
ke-1,i,j) &
2881 + 214.0_rp * val(
ke-2,i,j) &
2882 + 319.0_rp * val(
ke-3,i,j) &
2883 - 101.0_rp * val(
ke-4,i,j) &
2884 + 25.0_rp * val(
ke-5,i,j) &
2885 - 3.0_rp * val(
ke-6,i,j) ) / 420.0_rp &
2886 * ( 0.5_rp + sign(0.5_rp,vel) ) &
2887 + ( - 3.0_rp * val(
ke-4,i,j) &
2888 + 27.0_rp * val(
ke-3,i,j) &
2889 + 47.0_rp * val(
ke-2,i,j) &
2890 - 13.0_rp * val(
ke-1,i,j) &
2891 + 2.0_rp * val(
ke,i,j) ) / 60.0_rp &
2892 * ( 0.5_rp - sign(0.5_rp,vel) ) )
2894 flux(
ke ,i,j) = 0.0_rp
2913 IIS, IIE, JJS, JJE )
2916 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
2917 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
2918 real(rp),
intent(in) :: val (
ka,
ia,
ja)
2919 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
2920 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
2921 real(rp),
intent(in) :: mapf (
ia,
ja,2)
2922 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
2923 real(rp),
intent(in) :: cdz (
ka)
2924 logical,
intent(in) :: twod
2925 integer,
intent(in) :: iis, iie, jjs, jje
2940 call check( __line__, mom(
k,i ,j) )
2941 call check( __line__, mom(
k,i,j-1) )
2943 call check( __line__, val(
k,i,j) )
2944 call check( __line__, val(
k,i+1,j) )
2946 call check( __line__, val(
k,i-1,j) )
2947 call check( __line__, val(
k,i+2,j) )
2949 call check( __line__, val(
k,i-2,j) )
2950 call check( __line__, val(
k,i+3,j) )
2952 call check( __line__, val(
k,i-3,j) )
2953 call check( __line__, val(
k,i+4,j) )
2956 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j+1) ) ) &
2957 / ( 0.25_rp * ( dens(
k,i,j)+dens(
k,i+1,j)+dens(
k,i,j+1)+dens(
k,i+1,j+1) ) )
2958 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+2) * vel &
2959 * ( ( f71 * ( val(
k,i+4,j)+val(
k,i-3,j) ) &
2960 + f72 * ( val(
k,i+3,j)+val(
k,i-2,j) ) &
2961 + f73 * ( val(
k,i+2,j)+val(
k,i-1,j) ) &
2962 + f74 * ( val(
k,i+1,j)+val(
k,i,j) ) ) &
2963 - ( f71 * ( val(
k,i+4,j)-val(
k,i-3,j) ) &
2964 + f75 * ( val(
k,i+3,j)-val(
k,i-2,j) ) &
2965 + f76 * ( val(
k,i+2,j)-val(
k,i-1,j) ) &
2966 + f77 * ( val(
k,i+1,j)-val(
k,i,j) ) ) * sign(1.0_rp,vel) ) &
2967 + gsqrt(
k,i,j) * num_diff(
k,i,j)
2972 k = iundef; i = iundef; j = iundef
2988 IIS, IIE, JJS, JJE )
2991 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
2992 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
2993 real(rp),
intent(in) :: val (
ka,
ia,
ja)
2994 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
2995 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
2996 real(rp),
intent(in) :: mapf (
ia,
ja,2)
2997 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
2998 real(rp),
intent(in) :: cdz (
ka)
2999 logical,
intent(in) :: twod
3000 integer,
intent(in) :: iis, iie, jjs, jje
3017 call check( __line__, mom(
k,i ,j) )
3018 call check( __line__, mom(
k,i,j-1) )
3020 call check( __line__, val(
k,i,j-1) )
3021 call check( __line__, val(
k,i,j) )
3023 call check( __line__, val(
k,i,j-2) )
3024 call check( __line__, val(
k,i,j+1) )
3026 call check( __line__, val(
k,i,j-3) )
3027 call check( __line__, val(
k,i,j+2) )
3029 call check( __line__, val(
k,i,j-4) )
3030 call check( __line__, val(
k,i,j+3) )
3033 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j-1) ) ) &
3035 flux(
k,i,j-1) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
3036 * ( ( f71 * ( val(
k,i,j+3)+val(
k,i,j-4) ) &
3037 + f72 * ( val(
k,i,j+2)+val(
k,i,j-3) ) &
3038 + f73 * ( val(
k,i,j+1)+val(
k,i,j-2) ) &
3039 + f74 * ( val(
k,i,j)+val(
k,i,j-1) ) ) &
3040 - ( f71 * ( val(
k,i,j+3)-val(
k,i,j-4) ) &
3041 + f75 * ( val(
k,i,j+2)-val(
k,i,j-3) ) &
3042 + f76 * ( val(
k,i,j+1)-val(
k,i,j-2) ) &
3043 + f77 * ( val(
k,i,j)-val(
k,i,j-1) ) ) * sign(1.0_rp,vel) ) &
3044 + gsqrt(
k,i,j) * num_diff(
k,i,j)
3049 k = iundef; i = iundef; j = iundef