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
110 real(RP),
intent(out) :: valW (
ka)
111 real(RP),
intent(in) :: mflx (
ka)
112 real(RP),
intent(in) :: val (
ka)
113 real(RP),
intent(in) :: GSQRT(
ka)
114 real(RP),
intent(in) :: CDZ (
ka)
121 call check( __line__, mflx(k) )
123 call check( __line__, val(k) )
124 call check( __line__, val(k+1) )
126 call check( __line__, val(k-1) )
127 call check( __line__, val(k+2) )
129 call check( __line__, val(k-2) )
130 call check( __line__, val(k+3) )
133 valw(k) = ( f51 * ( val(k+3)+val(k-2) ) &
134 + f52 * ( val(k+2)+val(k-1) ) &
135 + f53 * ( val(k+1)+val(k) ) ) &
136 - ( f51 * ( val(k+3)-val(k-2) ) &
137 + f54 * ( val(k+2)-val(k-1) ) &
138 + f55 * ( val(k+1)-val(k) ) ) * sign(1.0_rp,mflx(k))
146 call check( __line__, mflx(
ks) )
147 call check( __line__, val(
ks ) )
148 call check( __line__, val(
ks+1) )
149 call check( __line__, mflx(
ke-1) )
150 call check( __line__, val(
ke ) )
151 call check( __line__, val(
ke-1) )
153 call check( __line__, mflx(
ks+1) )
154 call check( __line__, val(
ks+2 ) )
155 call check( __line__, val(
ks+3) )
156 call check( __line__, mflx(
ke-2) )
157 call check( __line__, val(
ke-2 ) )
158 call check( __line__, val(
ke-3) )
162 valw(
ks) = f2 * ( val(
ks+1)+val(
ks) ) &
163 * ( 0.5_rp + sign(0.5_rp,mflx(
ks)) ) &
164 + ( 2.0_rp * val(
ks) + 5.0_rp * val(
ks+1) - val(
ks+2) ) / 6.0_rp &
165 * ( 0.5_rp - sign(0.5_rp,mflx(
ks)) )
166 valw(
ke-1) = ( 2.0_rp * val(
ke) + 5.0_rp * val(
ke-1) - val(
ke-2) ) / 6.0_rp &
167 * ( 0.5_rp + sign(0.5_rp,mflx(
ke-1)) ) &
168 + f2 * ( val(
ke)+val(
ke-1) ) &
169 * ( 0.5_rp - sign(0.5_rp,mflx(
ke-1)) )
171 valw(
ks+1) = ( 2.0_rp * val(
ks+2) + 5.0_rp * val(
ks+1) - val(
ks) ) / 6.0_rp &
172 * ( 0.5_rp + sign(0.5_rp,mflx(
ks+1)) ) &
173 + ( - 3.0_rp * val(
ks) &
174 + 27.0_rp * val(
ks+1) &
175 + 47.0_rp * val(
ks+2) &
176 - 13.0_rp * val(
ks+3) &
177 + 2.0_rp * val(
ks+4) ) / 60.0_rp &
178 * ( 0.5_rp - sign(0.5_rp,mflx(
ks+1)) )
179 valw(
ke-2) = ( - 3.0_rp * val(
ke) &
180 + 27.0_rp * val(
ke-1) &
181 + 47.0_rp * val(
ke-2) &
182 - 13.0_rp * val(
ke-3) &
183 + 2.0_rp * val(
ke-4) ) / 60.0_rp &
184 * ( 0.5_rp + sign(0.5_rp,mflx(
ke-2)) ) &
185 + ( 2.0_rp * val(
ke-2) + 5.0_rp * val(
ke-1) - val(
ke) ) / 6.0_rp &
186 * ( 0.5_rp - sign(0.5_rp,mflx(
ke-2)) )
204 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
205 real(RP),
intent(in) :: mflx (
ka,
ia,
ja)
206 real(RP),
intent(in) :: val (
ka,
ia,
ja)
207 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
208 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
209 real(RP),
intent(in) :: CDZ (
ka)
210 integer,
intent(in) :: IIS, IIE, JJS, JJE
223 call check( __line__, mflx(k,i,j) )
225 call check( __line__, val(k,i,j) )
226 call check( __line__, val(k+1,i,j) )
228 call check( __line__, val(k-1,i,j) )
229 call check( __line__, val(k+2,i,j) )
231 call check( __line__, val(k-2,i,j) )
232 call check( __line__, val(k+3,i,j) )
237 * ( ( f51 * ( val(k+3,i,j)+val(k-2,i,j) ) &
238 + f52 * ( val(k+2,i,j)+val(k-1,i,j) ) &
239 + f53 * ( val(k+1,i,j)+val(k,i,j) ) ) &
240 - ( f51 * ( val(k+3,i,j)-val(k-2,i,j) ) &
241 + f54 * ( val(k+2,i,j)-val(k-1,i,j) ) &
242 + f55 * ( val(k+1,i,j)-val(k,i,j) ) ) * sign(1.0_rp,vel) ) &
243 + gsqrt(k,i,j) * num_diff(k,i,j)
248 k = iundef; i = iundef; j = iundef
258 call check( __line__, mflx(
ks,i,j) )
259 call check( __line__, val(
ks ,i,j) )
260 call check( __line__, val(
ks+1,i,j) )
261 call check( __line__, mflx(
ke-1,i,j) )
262 call check( __line__, val(
ke ,i,j) )
263 call check( __line__, val(
ke-1,i,j) )
265 call check( __line__, mflx(
ks+1,i,j) )
266 call check( __line__, val(
ks+2 ,i,j) )
267 call check( __line__, val(
ks+3,i,j) )
268 call check( __line__, mflx(
ke-2,i,j) )
269 call check( __line__, val(
ke-2 ,i,j) )
270 call check( __line__, val(
ke-3,i,j) )
273 flux(
ks-1,i,j) = 0.0_rp
277 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
278 * ( 0.5_rp + sign(0.5_rp,vel) ) &
279 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
280 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
281 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
283 flux(
ke-1,i,j) = vel &
284 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
285 * ( 0.5_rp + sign(0.5_rp,vel) ) &
286 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
287 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
288 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
291 flux(
ks+1,i,j) = vel &
292 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
293 * ( 0.5_rp + sign(0.5_rp,vel) ) &
294 + ( - 3.0_rp * val(
ks,i,j) &
295 + 27.0_rp * val(
ks+1,i,j) &
296 + 47.0_rp * val(
ks+2,i,j) &
297 - 13.0_rp * val(
ks+3,i,j) &
298 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
299 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
300 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
302 flux(
ke-2,i,j) = vel &
303 * ( ( - 3.0_rp * val(
ke,i,j) &
304 + 27.0_rp * val(
ke-1,i,j) &
305 + 47.0_rp * val(
ke-2,i,j) &
306 - 13.0_rp * val(
ke-3,i,j) &
307 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
308 * ( 0.5_rp + sign(0.5_rp,vel) ) &
309 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
310 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
311 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
313 flux(
ke ,i,j) = 0.0_rp
317 k = iundef; i = iundef; j = iundef
333 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
334 real(RP),
intent(in) :: mflx (
ka,
ia,
ja)
335 real(RP),
intent(in) :: val (
ka,
ia,
ja)
336 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
337 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
338 real(RP),
intent(in) :: CDZ(
ka)
339 integer,
intent(in) :: IIS, IIE, JJS, JJE
352 call check( __line__, mflx(k,i,j) )
354 call check( __line__, val(k,i,j) )
355 call check( __line__, val(k,i+1,j) )
357 call check( __line__, val(k,i-1,j) )
358 call check( __line__, val(k,i+2,j) )
360 call check( __line__, val(k,i-2,j) )
361 call check( __line__, val(k,i+3,j) )
366 * ( ( f51 * ( val(k,i+3,j)+val(k,i-2,j) ) &
367 + f52 * ( val(k,i+2,j)+val(k,i-1,j) ) &
368 + f53 * ( val(k,i+1,j)+val(k,i,j) ) ) &
369 - ( f51 * ( val(k,i+3,j)-val(k,i-2,j) ) &
370 + f54 * ( val(k,i+2,j)-val(k,i-1,j) ) &
371 + f55 * ( val(k,i+1,j)-val(k,i,j) ) ) * sign(1.0_rp,vel) ) &
372 + gsqrt(k,i,j) * num_diff(k,i,j)
377 k = iundef; i = iundef; j = iundef
393 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
394 real(RP),
intent(in) :: mflx (
ka,
ia,
ja)
395 real(RP),
intent(in) :: val (
ka,
ia,
ja)
396 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
397 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
398 real(RP),
intent(in) :: CDZ(
ka)
399 integer,
intent(in) :: IIS, IIE, JJS, JJE
412 call check( __line__, mflx(k,i,j) )
414 call check( __line__, val(k,i,j) )
415 call check( __line__, val(k,i,j+1) )
417 call check( __line__, val(k,i,j-1) )
418 call check( __line__, val(k,i,j+2) )
420 call check( __line__, val(k,i,j-2) )
421 call check( __line__, val(k,i,j+3) )
426 * ( ( f51 * ( val(k,i,j+3)+val(k,i,j-2) ) &
427 + f52 * ( val(k,i,j+2)+val(k,i,j-1) ) &
428 + f53 * ( val(k,i,j+1)+val(k,i,j) ) ) &
429 - ( f51 * ( val(k,i,j+3)-val(k,i,j-2) ) &
430 + f54 * ( val(k,i,j+2)-val(k,i,j-1) ) &
431 + f55 * ( val(k,i,j+1)-val(k,i,j) ) ) * sign(1.0_rp,vel) ) &
432 + gsqrt(k,i,j) * num_diff(k,i,j)
437 k = iundef; i = iundef; j = iundef
456 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
457 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
458 real(RP),
intent(in) :: val (
ka,
ia,
ja)
459 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
460 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
461 real(RP),
intent(in) :: J33G
462 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
463 real(RP),
intent(in) :: CDZ (
ka)
464 real(RP),
intent(in) :: FDZ (
ka-1)
465 real(RP),
intent(in) :: dtrk
466 integer,
intent(in) :: IIS, IIE, JJS, JJE
481 call check( __line__, mom(k-1,i,j) )
482 call check( __line__, mom(k ,i,j) )
484 call check( __line__, val(k-1,i,j) )
485 call check( __line__, val(k,i,j) )
487 call check( __line__, val(k-2,i,j) )
488 call check( __line__, val(k+1,i,j) )
490 call check( __line__, val(k-3,i,j) )
491 call check( __line__, val(k+2,i,j) )
494 vel = ( 0.5_rp * ( mom(k-1,i,j) &
497 flux(k-1,i,j) = j33g * vel &
498 * ( ( f51 * ( val(k+2,i,j)+val(k-3,i,j) ) &
499 + f52 * ( val(k+1,i,j)+val(k-2,i,j) ) &
500 + f53 * ( val(k,i,j)+val(k-1,i,j) ) ) &
501 - ( f51 * ( val(k+2,i,j)-val(k-3,i,j) ) &
502 + f54 * ( val(k+1,i,j)-val(k-2,i,j) ) &
503 + f55 * ( val(k,i,j)-val(k-1,i,j) ) ) * sign(1.0_rp,vel) ) &
504 + gsqrt(k,i,j) * num_diff(k,i,j)
509 k = iundef; i = iundef; j = iundef
519 call check( __line__, val(
ks ,i,j) )
520 call check( __line__, val(
ks+1,i,j) )
523 call check( __line__, val(
ke-2,i,j) )
524 call check( __line__, val(
ke-1,i,j) )
530 flux(
ks-1,i,j) = 0.0_rp
532 vel = ( 0.5_rp * ( mom(
ks,i,j) &
533 + mom(
ks+1,i,j) ) ) &
535 flux(
ks,i,j) = j33g * vel &
536 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
537 * ( 0.5_rp + sign(0.5_rp,vel) ) &
538 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
539 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
540 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
542 vel = ( 0.5_rp * ( mom(
ks+1,i,j) &
543 + mom(
ks+2,i,j) ) ) &
545 flux(
ks+1,i,j) = j33g * vel &
546 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
547 * ( 0.5_rp + sign(0.5_rp,vel) ) &
548 + ( - 3.0_rp * val(
ks,i,j) &
549 + 27.0_rp * val(
ks+1,i,j) &
550 + 47.0_rp * val(
ks+2,i,j) &
551 - 13.0_rp * val(
ks+3,i,j) &
552 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
553 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
554 + gsqrt(
ks+2,i,j) * num_diff(
ks+2,i,j)
558 vel = ( 0.5_rp * ( mom(
ke-2,i,j) &
559 + mom(
ke-1,i,j) ) ) &
561 flux(
ke-2,i,j) = j33g * vel &
562 * ( ( - 3.0_rp * val(
ke,i,j) &
563 + 27.0_rp * val(
ke-1,i,j) &
564 + 47.0_rp * val(
ke-2,i,j) &
565 - 13.0_rp * val(
ke-3,i,j) &
566 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
567 * ( 0.5_rp + sign(0.5_rp,vel) ) &
568 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
569 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
570 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
572 flux(
ke-1,i,j) = 0.0_rp
573 flux(
ke ,i,j) = 0.0_rp
591 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
592 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
593 real(RP),
intent(in) :: val (
ka,
ia,
ja)
594 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
595 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
596 real(RP),
intent(in) :: J13G (
ka,
ia,
ja)
597 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
598 real(RP),
intent(in) :: CDZ (
ka)
599 integer,
intent(in) :: IIS, IIE, JJS, JJE
611 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i-1,j) ) ) &
613 vel = vel * j13g(k,i,j)
614 flux(k-1,i,j) = vel / mapf(i,j,+2) &
615 * ( ( f51 * ( val(k+2,i,j)+val(k-3,i,j) ) &
616 + f52 * ( val(k+1,i,j)+val(k-2,i,j) ) &
617 + f53 * ( val(k,i,j)+val(k-1,i,j) ) ) &
618 - ( f51 * ( val(k+2,i,j)-val(k-3,i,j) ) &
619 + f54 * ( val(k+1,i,j)-val(k-2,i,j) ) &
620 + f55 * ( val(k,i,j)-val(k-1,i,j) ) ) * sign(1.0_rp,vel) )
633 flux(
ks-1,i,j) = 0.0_rp
636 vel = ( ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i-1,j) ) ) / dens(
ks+1,i,j) &
637 + ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j) ) ) / dens(
ks ,i,j) ) * 0.5_rp
640 vel = vel * j13g(
ks+1,i,j)
641 flux(
ks,i,j) = vel / mapf(i,j,+2) &
642 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
643 * ( 0.5_rp + sign(0.5_rp,vel) ) &
644 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
645 * ( 0.5_rp - sign(0.5_rp,vel) ) )
648 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i-1,j) ) ) &
650 vel = vel * j13g(
ke-1,i,j)
651 flux(
ke-2,i,j) = vel / mapf(i,j,+2) &
652 * ( ( 2.0_rp * val(
ke-1,i,j) + 5.0_rp * val(
ke-2,i,j) - val(
ke-3,i,j) ) / 6.0_rp &
653 * ( 0.5_rp + sign(0.5_rp,vel) ) &
654 + f2 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
655 * ( 0.5_rp - sign(0.5_rp,vel) ) )
657 flux(
ke-1,i,j) = 0.0_rp
674 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
675 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
676 real(RP),
intent(in) :: val (
ka,
ia,
ja)
677 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
678 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
679 real(RP),
intent(in) :: J23G (
ka,
ia,
ja)
680 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
681 real(RP),
intent(in) :: CDZ (
ka)
682 integer,
intent(in) :: IIS, IIE, JJS, JJE
694 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j-1) ) ) &
696 vel = vel * j23g(k,i,j)
697 flux(k-1,i,j) = vel / mapf(i,j,+1) &
698 * ( ( f51 * ( val(k+2,i,j)+val(k-3,i,j) ) &
699 + f52 * ( val(k+1,i,j)+val(k-2,i,j) ) &
700 + f53 * ( val(k,i,j)+val(k-1,i,j) ) ) &
701 - ( f51 * ( val(k+2,i,j)-val(k-3,i,j) ) &
702 + f54 * ( val(k+1,i,j)-val(k-2,i,j) ) &
703 + f55 * ( val(k,i,j)-val(k-1,i,j) ) ) * sign(1.0_rp,vel) )
716 flux(
ks-1,i,j) = 0.0_rp
719 vel = ( ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j-1) ) ) / dens(
ks+1,i,j) &
720 + ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j-1) ) ) / dens(
ks ,i,j) ) * 0.5_rp
723 vel = vel * j23g(
ks+1,i,j)
724 flux(
ks,i,j) = vel / mapf(i,j,+1) &
725 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
726 * ( 0.5_rp + sign(0.5_rp,vel) ) &
727 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
728 * ( 0.5_rp - sign(0.5_rp,vel) ) )
731 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j-1) ) ) &
733 vel = vel * j23g(
ke-1,i,j)
734 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
735 * ( ( 2.0_rp * val(
ke-1,i,j) + 5.0_rp * val(
ke-2,i,j) - val(
ke-3,i,j) ) / 6.0_rp &
736 * ( 0.5_rp + sign(0.5_rp,vel) ) &
737 + f2 * ( val(
ke-1,i,j)+val(
ke-2,i,j) ) &
738 * ( 0.5_rp - sign(0.5_rp,vel) ) )
740 flux(
ke-1,i,j) = 0.0_rp
759 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
760 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
761 real(RP),
intent(in) :: val (
ka,
ia,
ja)
762 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
763 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
764 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
765 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
766 real(RP),
intent(in) :: CDZ (
ka)
767 integer,
intent(in) :: IIS, IIE, JJS, JJE
781 call check( __line__, mom(k ,i,j) )
782 call check( __line__, mom(k+1,i,j) )
784 call check( __line__, val(k,i,j) )
785 call check( __line__, val(k,i+1,j) )
787 call check( __line__, val(k,i-1,j) )
788 call check( __line__, val(k,i+2,j) )
790 call check( __line__, val(k,i-2,j) )
791 call check( __line__, val(k,i+3,j) )
794 vel = ( f2h(k,1,
i_uyz) &
799 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
801 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
802 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+2) * vel &
803 * ( ( f51 * ( val(k,i+3,j)+val(k,i-2,j) ) &
804 + f52 * ( val(k,i+2,j)+val(k,i-1,j) ) &
805 + f53 * ( val(k,i+1,j)+val(k,i,j) ) ) &
806 - ( f51 * ( val(k,i+3,j)-val(k,i-2,j) ) &
807 + f54 * ( val(k,i+2,j)-val(k,i-1,j) ) &
808 + f55 * ( val(k,i+1,j)-val(k,i,j) ) ) * sign(1.0_rp,vel) ) &
809 + gsqrt(k,i,j) * num_diff(k,i,j)
814 k = iundef; i = iundef; j = iundef
822 flux(
ke,i,j) = 0.0_rp
826 k = iundef; i = iundef; j = iundef
843 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
844 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
845 real(RP),
intent(in) :: val (
ka,
ia,
ja)
846 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
847 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
848 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
849 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
850 real(RP),
intent(in) :: CDZ (
ka)
851 integer,
intent(in) :: IIS, IIE, JJS, JJE
865 call check( __line__, mom(k ,i,j) )
866 call check( __line__, mom(k+1,i,j) )
868 call check( __line__, val(k,i,j) )
869 call check( __line__, val(k,i,j+1) )
871 call check( __line__, val(k,i,j-1) )
872 call check( __line__, val(k,i,j+2) )
874 call check( __line__, val(k,i,j-2) )
875 call check( __line__, val(k,i,j+3) )
878 vel = ( f2h(k,1,
i_xvz) &
883 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
885 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
886 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+1) * vel &
887 * ( ( f51 * ( val(k,i,j+3)+val(k,i,j-2) ) &
888 + f52 * ( val(k,i,j+2)+val(k,i,j-1) ) &
889 + f53 * ( val(k,i,j+1)+val(k,i,j) ) ) &
890 - ( f51 * ( val(k,i,j+3)-val(k,i,j-2) ) &
891 + f54 * ( val(k,i,j+2)-val(k,i,j-1) ) &
892 + f55 * ( val(k,i,j+1)-val(k,i,j) ) ) * sign(1.0_rp,vel) ) &
893 + gsqrt(k,i,j) * num_diff(k,i,j)
898 k = iundef; i = iundef; j = iundef
906 flux(
ke,i,j) = 0.0_rp
910 k = iundef; i = iundef; j = iundef
928 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
929 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
930 real(RP),
intent(in) :: val (
ka,
ia,
ja)
931 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
932 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
933 real(RP),
intent(in) :: J33G
934 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
935 real(RP),
intent(in) :: CDZ (
ka)
936 integer,
intent(in) :: IIS, IIE, JJS, JJE
950 call check( __line__, mom(k,i,j) )
951 call check( __line__, mom(k,i+1,j) )
953 call check( __line__, val(k,i,j) )
954 call check( __line__, val(k+1,i,j) )
956 call check( __line__, val(k-1,i,j) )
957 call check( __line__, val(k+2,i,j) )
959 call check( __line__, val(k-2,i,j) )
960 call check( __line__, val(k+3,i,j) )
963 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i+1,j) ) ) &
965 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
967 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
968 flux(k,i,j) = j33g * vel &
969 * ( ( f51 * ( val(k+3,i,j)+val(k-2,i,j) ) &
970 + f52 * ( val(k+2,i,j)+val(k-1,i,j) ) &
971 + f53 * ( val(k+1,i,j)+val(k,i,j) ) ) &
972 - ( f51 * ( val(k+3,i,j)-val(k-2,i,j) ) &
973 + f54 * ( val(k+2,i,j)-val(k-1,i,j) ) &
974 + f55 * ( val(k+1,i,j)-val(k,i,j) ) ) * sign(1.0_rp,vel) ) &
975 + gsqrt(k,i,j) * num_diff(k,i,j)
980 k = iundef; i = iundef; j = iundef
990 call check( __line__, mom(
ks,i ,j) )
991 call check( __line__, mom(
ks,i+1,j) )
992 call check( __line__, val(
ks+1,i,j) )
993 call check( __line__, val(
ks,i,j) )
995 call check( __line__, mom(
ks+1,i ,j) )
996 call check( __line__, mom(
ks+1,i+1,j) )
997 call check( __line__, val(
ks+3,i,j) )
998 call check( __line__, val(
ks+2,i,j) )
1004 flux(
ks-1,i,j) = 0.0_rp
1006 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j) ) ) &
1008 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1010 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1011 flux(
ks,i,j) = j33g * vel &
1012 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
1013 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1014 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
1015 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1016 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
1017 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i+1,j) ) ) &
1019 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1021 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1022 flux(
ke-1,i,j) = j33g * vel &
1023 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
1024 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1025 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
1026 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1027 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
1029 vel = ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i+1,j) ) ) &
1031 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
1033 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
1034 flux(
ks+1,i,j) = j33g * vel &
1035 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
1036 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1037 + ( - 3.0_rp * val(
ks,i,j) &
1038 + 27.0_rp * val(
ks+1,i,j) &
1039 + 47.0_rp * val(
ks+2,i,j) &
1040 - 13.0_rp * val(
ks+3,i,j) &
1041 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
1042 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1043 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
1044 vel = ( 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i+1,j) ) ) &
1046 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
1048 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
1049 flux(
ke-2,i,j) = j33g * vel &
1050 * ( ( - 3.0_rp * val(
ke,i,j) &
1051 + 27.0_rp * val(
ke-1,i,j) &
1052 + 47.0_rp * val(
ke-2,i,j) &
1053 - 13.0_rp * val(
ke-3,i,j) &
1054 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
1055 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1056 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
1057 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1058 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
1060 flux(
ke,i,j) = 0.0_rp
1064 k = iundef; i = iundef; j = iundef
1075 GSQRT, J13G, MAPF, &
1077 IIS, IIE, JJS, JJE )
1080 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1081 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1082 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1083 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1084 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1085 real(RP),
intent(in) :: J13G (
ka,
ia,
ja)
1086 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1087 real(RP),
intent(in) :: CDZ (
ka)
1088 integer,
intent(in) :: IIS, IIE, JJS, JJE
1101 vel = ( f2h(k,1,
i_uyz) &
1105 / ( f2h(k,1,
i_uyz) &
1106 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
1108 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
1109 vel = vel * j13g(k,i,j)
1110 flux(k,i,j) = vel / mapf(i,j,+2) &
1111 * ( ( f51 * ( val(k+3,i,j)+val(k-2,i,j) ) &
1112 + f52 * ( val(k+2,i,j)+val(k-1,i,j) ) &
1113 + f53 * ( val(k+1,i,j)+val(k,i,j) ) ) &
1114 - ( f51 * ( val(k+3,i,j)-val(k-2,i,j) ) &
1115 + f54 * ( val(k+2,i,j)-val(k-1,i,j) ) &
1116 + f55 * ( val(k+1,i,j)-val(k,i,j) ) ) * sign(1.0_rp,vel) )
1130 flux(
ks-1,i,j) = 0.0_rp
1137 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1139 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1140 vel = vel * j13g(
ks,i,j)
1141 flux(
ks,i,j) = vel / mapf(i,j,+2) &
1142 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
1143 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1144 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
1145 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1152 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1154 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1155 vel = vel * j13g(
ke-1,i,j)
1156 flux(
ke-1,i,j) = vel / mapf(i,j,+2) &
1157 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
1158 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1159 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
1160 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1167 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
1169 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
1170 vel = vel * j13g(
ks+1,i,j)
1171 flux(
ks+1,i,j) = vel / mapf(i,j,+2) &
1172 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
1173 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1174 + ( - 3.0_rp * val(
ks,i,j) &
1175 + 27.0_rp * val(
ks+1,i,j) &
1176 + 47.0_rp * val(
ks+2,i,j) &
1177 - 13.0_rp * val(
ks+3,i,j) &
1178 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
1179 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1186 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
1188 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
1189 vel = vel * j13g(
ke-2,i,j)
1190 flux(
ke-2,i,j) = vel / mapf(i,j,+2) &
1191 * ( ( - 3.0_rp * val(
ke,i,j) &
1192 + 27.0_rp * val(
ke-1,i,j) &
1193 + 47.0_rp * val(
ke-2,i,j) &
1194 - 13.0_rp * val(
ke-3,i,j) &
1195 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
1196 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1197 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
1198 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1200 flux(
ke ,i,j) = 0.0_rp
1212 GSQRT, J23G, MAPF, &
1214 IIS, IIE, JJS, JJE )
1217 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1218 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1219 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1220 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1221 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1222 real(RP),
intent(in) :: J23G (
ka,
ia,
ja)
1223 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1224 real(RP),
intent(in) :: CDZ (
ka)
1225 integer,
intent(in) :: IIS, IIE, JJS, JJE
1238 vel = ( f2h(k,1,
i_uyz) &
1239 * 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) ) &
1241 * 0.25_rp * ( mom(k,i,j)+mom(k,i+1,j)+mom(k,i,j-1)+mom(k,i+1,j-1) ) ) &
1242 / ( f2h(k,1,
i_uyz) &
1243 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
1245 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
1246 vel = vel * j23g(k,i,j)
1247 flux(k,i,j) = vel / mapf(i,j,+1) &
1248 * ( ( f51 * ( val(k+3,i,j)+val(k-2,i,j) ) &
1249 + f52 * ( val(k+2,i,j)+val(k-1,i,j) ) &
1250 + f53 * ( val(k+1,i,j)+val(k,i,j) ) ) &
1251 - ( f51 * ( val(k+3,i,j)-val(k-2,i,j) ) &
1252 + f54 * ( val(k+2,i,j)-val(k-1,i,j) ) &
1253 + f55 * ( val(k+1,i,j)-val(k,i,j) ) ) * sign(1.0_rp,vel) )
1267 flux(
ks-1,i,j) = 0.0_rp
1270 * 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) ) &
1272 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j)+mom(
ks,i,j-1)+mom(
ks,i+1,j-1) ) ) &
1274 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1276 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1277 vel = vel * j23g(
ks,i,j)
1278 flux(
ks,i,j) = vel / mapf(i,j,+1) &
1279 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
1280 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1281 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
1282 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1285 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i+1,j)+mom(
ke,i,j-1)+mom(
ke,i+1,j-1) ) &
1287 * 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) ) ) &
1289 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1291 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1292 vel = vel * j23g(
ke-1,i,j)
1293 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
1294 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
1295 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1296 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
1297 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1300 * 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) ) &
1302 * 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) ) ) &
1304 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i+1,j) ) &
1306 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) )
1307 vel = vel * j23g(
ks+1,i,j)
1308 flux(
ks+1,i,j) = vel / mapf(i,j,+1) &
1309 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
1310 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1311 + ( - 3.0_rp * val(
ks,i,j) &
1312 + 27.0_rp * val(
ks+1,i,j) &
1313 + 47.0_rp * val(
ks+2,i,j) &
1314 - 13.0_rp * val(
ks+3,i,j) &
1315 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
1316 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1319 * 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) ) &
1321 * 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) ) ) &
1323 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) &
1325 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i+1,j) ) )
1326 vel = vel * j23g(
ke-2,i,j)
1327 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
1328 * ( ( - 3.0_rp * val(
ke,i,j) &
1329 + 27.0_rp * val(
ke-1,i,j) &
1330 + 47.0_rp * val(
ke-2,i,j) &
1331 - 13.0_rp * val(
ke-3,i,j) &
1332 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
1333 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1334 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
1335 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1337 flux(
ke ,i,j) = 0.0_rp
1352 IIS, IIE, JJS, JJE )
1355 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1356 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1357 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1358 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1359 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1360 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1361 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1362 real(RP),
intent(in) :: CDZ (
ka)
1363 integer,
intent(in) :: IIS, IIE, JJS, JJE
1378 call check( __line__, mom(k,i ,j) )
1379 call check( __line__, mom(k,i-1,j) )
1381 call check( __line__, val(k,i-1,j) )
1382 call check( __line__, val(k,i,j) )
1384 call check( __line__, val(k,i-2,j) )
1385 call check( __line__, val(k,i+1,j) )
1387 call check( __line__, val(k,i-3,j) )
1388 call check( __line__, val(k,i+2,j) )
1391 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i-1,j) ) ) &
1393 flux(k,i-1,j) = gsqrt(k,i,j) / mapf(i,j,+2) * vel &
1394 * ( ( f51 * ( val(k,i+2,j)+val(k,i-3,j) ) &
1395 + f52 * ( val(k,i+1,j)+val(k,i-2,j) ) &
1396 + f53 * ( val(k,i,j)+val(k,i-1,j) ) ) &
1397 - ( f51 * ( val(k,i+2,j)-val(k,i-3,j) ) &
1398 + f54 * ( val(k,i+1,j)-val(k,i-2,j) ) &
1399 + f55 * ( val(k,i,j)-val(k,i-1,j) ) ) * sign(1.0_rp,vel) ) &
1400 + gsqrt(k,i,j) * num_diff(k,i,j)
1405 k = iundef; i = iundef; j = iundef
1419 IIS, IIE, JJS, JJE )
1422 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1423 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1424 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1425 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1426 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1427 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1428 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1429 real(RP),
intent(in) :: CDZ (
ka)
1430 integer,
intent(in) :: IIS, IIE, JJS, JJE
1443 call check( __line__, mom(k,i ,j) )
1444 call check( __line__, mom(k,i-1,j) )
1446 call check( __line__, val(k,i,j) )
1447 call check( __line__, val(k,i,j+1) )
1449 call check( __line__, val(k,i,j-1) )
1450 call check( __line__, val(k,i,j+2) )
1452 call check( __line__, val(k,i,j-2) )
1453 call check( __line__, val(k,i,j+3) )
1456 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i+1,j) ) ) &
1457 / ( 0.25_rp * ( dens(k,i,j)+dens(k,i+1,j)+dens(k,i,j+1)+dens(k,i+1,j+1) ) )
1458 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+1) * vel &
1459 * ( ( f51 * ( val(k,i,j+3)+val(k,i,j-2) ) &
1460 + f52 * ( val(k,i,j+2)+val(k,i,j-1) ) &
1461 + f53 * ( val(k,i,j+1)+val(k,i,j) ) ) &
1462 - ( f51 * ( val(k,i,j+3)-val(k,i,j-2) ) &
1463 + f54 * ( val(k,i,j+2)-val(k,i,j-1) ) &
1464 + f55 * ( val(k,i,j+1)-val(k,i,j) ) ) * sign(1.0_rp,vel) ) &
1465 + gsqrt(k,i,j) * num_diff(k,i,j)
1470 k = iundef; i = iundef; j = iundef
1486 IIS, IIE, JJS, JJE )
1489 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1490 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1491 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1492 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1493 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1494 real(RP),
intent(in) :: J33G
1495 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1496 real(RP),
intent(in) :: CDZ (
ka)
1497 integer,
intent(in) :: IIS, IIE, JJS, JJE
1511 call check( __line__, mom(k,i,j) )
1512 call check( __line__, mom(k,i,j+1) )
1514 call check( __line__, val(k,i,j) )
1515 call check( __line__, val(k+1,i,j) )
1517 call check( __line__, val(k-1,i,j) )
1518 call check( __line__, val(k+2,i,j) )
1520 call check( __line__, val(k-2,i,j) )
1521 call check( __line__, val(k+3,i,j) )
1524 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j+1) ) ) &
1525 / ( f2h(k,1,
i_xvz) &
1526 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
1528 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
1529 flux(k,i,j) = j33g * vel &
1530 * ( ( f51 * ( val(k+3,i,j)+val(k-2,i,j) ) &
1531 + f52 * ( val(k+2,i,j)+val(k-1,i,j) ) &
1532 + f53 * ( val(k+1,i,j)+val(k,i,j) ) ) &
1533 - ( f51 * ( val(k+3,i,j)-val(k-2,i,j) ) &
1534 + f54 * ( val(k+2,i,j)-val(k-1,i,j) ) &
1535 + f55 * ( val(k+1,i,j)-val(k,i,j) ) ) * sign(1.0_rp,vel) ) &
1536 + gsqrt(k,i,j) * num_diff(k,i,j)
1541 k = iundef; i = iundef; j = iundef
1551 call check( __line__, mom(
ks,i ,j) )
1552 call check( __line__, mom(
ks,i,j+1) )
1553 call check( __line__, val(
ks+1,i,j) )
1554 call check( __line__, val(
ks,i,j) )
1556 call check( __line__, mom(
ks+1,i ,j) )
1557 call check( __line__, mom(
ks+1,i,j+1) )
1558 call check( __line__, val(
ks+3,i,j) )
1559 call check( __line__, val(
ks+2,i,j) )
1565 flux(
ks-1,i,j) = 0.0_rp
1567 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j+1) ) ) &
1569 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1571 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1572 flux(
ks,i,j) = j33g * vel &
1573 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
1574 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1575 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
1576 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1577 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
1578 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j+1) ) ) &
1580 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1582 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1583 flux(
ke-1,i,j) = j33g * vel &
1584 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
1585 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1586 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
1587 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1588 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
1590 vel = ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j+1) ) ) &
1592 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
1594 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
1595 flux(
ks+1,i,j) = j33g * vel &
1596 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
1597 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1598 + ( - 3.0_rp * val(
ks,i,j) &
1599 + 27.0_rp * val(
ks+1,i,j) &
1600 + 47.0_rp * val(
ks+2,i,j) &
1601 - 13.0_rp * val(
ks+3,i,j) &
1602 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
1603 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1604 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
1605 vel = ( 0.5_rp * ( mom(
ke-2,i,j)+mom(
ke-2,i,j+1) ) ) &
1607 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
1609 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
1610 flux(
ke-2,i,j) = j33g * vel &
1611 * ( ( - 3.0_rp * val(
ke,i,j) &
1612 + 27.0_rp * val(
ke-1,i,j) &
1613 + 47.0_rp * val(
ke-2,i,j) &
1614 - 13.0_rp * val(
ke-3,i,j) &
1615 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
1616 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1617 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
1618 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1619 + gsqrt(
ke-2,i,j) * num_diff(
ke-2,i,j)
1621 flux(
ke,i,j) = 0.0_rp
1625 k = iundef; i = iundef; j = iundef
1636 GSQRT, J13G, MAPF, &
1638 IIS, IIE, JJS, JJE )
1641 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1642 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1643 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1644 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1645 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1646 real(RP),
intent(in) :: J13G (
ka,
ia,
ja)
1647 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1648 real(RP),
intent(in) :: CDZ (
ka)
1649 integer,
intent(in) :: IIS, IIE, JJS, JJE
1662 vel = ( f2h(k,1,
i_xvz) &
1663 * 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) ) &
1665 * 0.25_rp * ( mom(k,i,j)+mom(k,i-1,j)+mom(k,i,j+1)+mom(k,i-1,j+1) ) ) &
1666 / ( f2h(k,1,
i_xvz) &
1667 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
1669 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
1670 vel = vel * j13g(k,i,j)
1671 flux(k,i,j) = vel / mapf(i,j,+2) &
1672 * ( ( f51 * ( val(k+3,i,j)+val(k-2,i,j) ) &
1673 + f52 * ( val(k+2,i,j)+val(k-1,i,j) ) &
1674 + f53 * ( val(k+1,i,j)+val(k,i,j) ) ) &
1675 - ( f51 * ( val(k+3,i,j)-val(k-2,i,j) ) &
1676 + f54 * ( val(k+2,i,j)-val(k-1,i,j) ) &
1677 + f55 * ( val(k+1,i,j)-val(k,i,j) ) ) * sign(1.0_rp,vel) )
1691 flux(
ks-1,i,j) = 0.0_rp
1694 * 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) ) &
1696 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j)+mom(
ks,i,j+1)+mom(
ks,i-1,j+1) ) ) &
1698 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1700 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1701 vel = vel * j13g(
ks,i,j)
1702 flux(
ks,i,j) = vel / mapf(i,j,+2) &
1703 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
1704 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1705 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
1706 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1709 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i-1,j)+mom(
ke,i,j+1)+mom(
ke,i-1,j+1) ) &
1711 * 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) ) ) &
1713 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1715 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1716 vel = vel * j13g(
ke-1,i,j)
1717 flux(
ke-1,i,j) = vel / mapf(i,j,+2) &
1718 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
1719 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1720 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
1721 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1724 * 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) ) &
1726 * 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) ) ) &
1728 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
1730 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
1731 vel = vel * j13g(
ks+1,i,j)
1732 flux(
ks+1,i,j) = vel / mapf(i,j,+2) &
1733 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
1734 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1735 + ( - 3.0_rp * val(
ks,i,j) &
1736 + 27.0_rp * val(
ks+1,i,j) &
1737 + 47.0_rp * val(
ks+2,i,j) &
1738 - 13.0_rp * val(
ks+3,i,j) &
1739 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
1740 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1743 * 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) ) &
1745 * 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) ) ) &
1747 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
1749 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
1750 vel = vel * j13g(
ke-2,i,j)
1751 flux(
ke-2,i,j) = vel / mapf(i,j,+2) &
1752 * ( ( - 3.0_rp * val(
ke,i,j) &
1753 + 27.0_rp * val(
ke-1,i,j) &
1754 + 47.0_rp * val(
ke-2,i,j) &
1755 - 13.0_rp * val(
ke-3,i,j) &
1756 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
1757 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1758 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
1759 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1761 flux(
ke ,i,j) = 0.0_rp
1773 GSQRT, J23G, MAPF, &
1775 IIS, IIE, JJS, JJE )
1778 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1779 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1780 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1781 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1782 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1783 real(RP),
intent(in) :: J23G (
ka,
ia,
ja)
1784 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1785 real(RP),
intent(in) :: CDZ (
ka)
1786 integer,
intent(in) :: IIS, IIE, JJS, JJE
1799 vel = ( f2h(k,1,
i_xvz) &
1803 / ( f2h(k,1,
i_xvz) &
1804 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
1806 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
1807 vel = vel * j23g(k,i,j)
1808 flux(k,i,j) = vel / mapf(i,j,+1) &
1809 * ( ( f51 * ( val(k+3,i,j)+val(k-2,i,j) ) &
1810 + f52 * ( val(k+2,i,j)+val(k-1,i,j) ) &
1811 + f53 * ( val(k+1,i,j)+val(k,i,j) ) ) &
1812 - ( f51 * ( val(k+3,i,j)-val(k-2,i,j) ) &
1813 + f54 * ( val(k+2,i,j)-val(k-1,i,j) ) &
1814 + f55 * ( val(k+1,i,j)-val(k,i,j) ) ) * sign(1.0_rp,vel) )
1828 flux(
ks-1,i,j) = 0.0_rp
1835 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1837 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1838 vel = vel * j23g(
ks,i,j)
1839 flux(
ks,i,j) = vel / mapf(i,j,+1) &
1840 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) &
1841 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1842 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
1843 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1850 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1852 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1853 vel = vel * j23g(
ke-1,i,j)
1854 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
1855 * ( ( 2.0_rp * val(
ke,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke-2,i,j) ) / 6.0_rp &
1856 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1857 + f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) &
1858 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1865 * 0.5_rp * ( dens(
ks+2,i,j)+dens(
ks+2,i,j+1) ) &
1867 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) )
1868 vel = vel * j23g(
ks+1,i,j)
1869 flux(
ks+1,i,j) = vel / mapf(i,j,+1) &
1870 * ( ( 2.0_rp * val(
ks+2,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks,i,j) ) / 6.0_rp &
1871 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1872 + ( - 3.0_rp * val(
ks,i,j) &
1873 + 27.0_rp * val(
ks+1,i,j) &
1874 + 47.0_rp * val(
ks+2,i,j) &
1875 - 13.0_rp * val(
ks+3,i,j) &
1876 + 2.0_rp * val(
ks+4,i,j) ) / 60.0_rp &
1877 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1884 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) &
1886 * 0.5_rp * ( dens(
ke-2,i,j)+dens(
ke-2,i,j+1) ) )
1887 vel = vel * j23g(
ke-2,i,j)
1888 flux(
ke-2,i,j) = vel / mapf(i,j,+1) &
1889 * ( ( - 3.0_rp * val(
ke,i,j) &
1890 + 27.0_rp * val(
ke-1,i,j) &
1891 + 47.0_rp * val(
ke-2,i,j) &
1892 - 13.0_rp * val(
ke-3,i,j) &
1893 + 2.0_rp * val(
ke-4,i,j) ) / 60.0_rp &
1894 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1895 + ( 2.0_rp * val(
ke-2,i,j) + 5.0_rp * val(
ke-1,i,j) - val(
ke,i,j) ) / 6.0_rp &
1896 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1898 flux(
ke ,i,j) = 0.0_rp
1913 IIS, IIE, JJS, JJE )
1916 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1917 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1918 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1919 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1920 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1921 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1922 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1923 real(RP),
intent(in) :: CDZ (
ka)
1924 integer,
intent(in) :: IIS, IIE, JJS, JJE
1937 call check( __line__, mom(k,i ,j) )
1938 call check( __line__, mom(k,i,j-1) )
1940 call check( __line__, val(k,i,j) )
1941 call check( __line__, val(k,i+1,j) )
1943 call check( __line__, val(k,i-1,j) )
1944 call check( __line__, val(k,i+2,j) )
1946 call check( __line__, val(k,i-2,j) )
1947 call check( __line__, val(k,i+3,j) )
1950 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j+1) ) ) &
1951 / ( 0.25_rp * ( dens(k,i,j)+dens(k,i+1,j)+dens(k,i,j+1)+dens(k,i+1,j+1) ) )
1952 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+2) * vel &
1953 * ( ( f51 * ( val(k,i+3,j)+val(k,i-2,j) ) &
1954 + f52 * ( val(k,i+2,j)+val(k,i-1,j) ) &
1955 + f53 * ( val(k,i+1,j)+val(k,i,j) ) ) &
1956 - ( f51 * ( val(k,i+3,j)-val(k,i-2,j) ) &
1957 + f54 * ( val(k,i+2,j)-val(k,i-1,j) ) &
1958 + f55 * ( val(k,i+1,j)-val(k,i,j) ) ) * sign(1.0_rp,vel) ) &
1959 + gsqrt(k,i,j) * num_diff(k,i,j)
1964 k = iundef; i = iundef; j = iundef
1978 IIS, IIE, JJS, JJE )
1981 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1982 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1983 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1984 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1985 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1986 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1987 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1988 real(RP),
intent(in) :: CDZ (
ka)
1989 integer,
intent(in) :: IIS, IIE, JJS, JJE
2004 call check( __line__, mom(k,i ,j) )
2005 call check( __line__, mom(k,i,j-1) )
2007 call check( __line__, val(k,i,j-1) )
2008 call check( __line__, val(k,i,j) )
2010 call check( __line__, val(k,i,j-2) )
2011 call check( __line__, val(k,i,j+1) )
2013 call check( __line__, val(k,i,j-3) )
2014 call check( __line__, val(k,i,j+2) )
2017 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j-1) ) ) &
2019 flux(k,i,j-1) = gsqrt(k,i,j) / mapf(i,j,+1) * vel &
2020 * ( ( f51 * ( val(k,i,j+2)+val(k,i,j-3) ) &
2021 + f52 * ( val(k,i,j+1)+val(k,i,j-2) ) &
2022 + f53 * ( val(k,i,j)+val(k,i,j-1) ) ) &
2023 - ( f51 * ( val(k,i,j+2)-val(k,i,j-3) ) &
2024 + f54 * ( val(k,i,j+1)-val(k,i,j-2) ) &
2025 + f55 * ( val(k,i,j)-val(k,i,j-1) ) ) * sign(1.0_rp,vel) ) &
2026 + gsqrt(k,i,j) * num_diff(k,i,j)
2031 k = iundef; i = iundef; j = iundef
subroutine, public atmos_dyn_fvm_fluxy_xyw_ud5(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation Y-flux at XYW
integer, public ia
of whole cells: x, local, with HALO
subroutine, public atmos_dyn_fvm_fluxj23_uyz_ud5(flux, mom, val, DENS, GSQRT, J23G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J23-flux at UYZ
subroutine, public atmos_dyn_fvm_fluxz_xvz_ud5(flux, mom, val, DENS, GSQRT, J33G, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation z-flux at XV
subroutine, public atmos_dyn_fvm_fluxj23_xvz_ud5(flux, mom, val, DENS, GSQRT, J23G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J23-flux at XVZ
subroutine, public atmos_dyn_fvm_fluxj13_xyw_ud5(flux, mom, val, DENS, GSQRT, J13G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J13-flux at XYW
integer, public ja
of whole cells: y, local, with HALO
subroutine, public check(current_line, v)
Undefined value checker.
real(rp), public const_undef
subroutine, public atmos_dyn_fvm_fluxz_xyw_ud5(flux, mom, val, DENS, GSQRT, J33G, num_diff, CDZ, FDZ, dtrk, IIS, IIE, JJS, JJE)
calculation z-flux at XYW
module scale_atmos_dyn_fvm_flux_ud5
subroutine, public atmos_dyn_fvm_fluxj23_xyw_ud5(flux, mom, val, DENS, GSQRT, J23G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J23-flux at XYW
subroutine, public atmos_dyn_fvm_fluxx_xyw_ud5(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation X-flux at XYW
module atmosphere / grid / cartesC index
integer, public ke
end point of inner domain: z, local
subroutine, public atmos_dyn_fvm_fluxy_xvz_ud5(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation Y-flux at XV
integer, parameter, public const_undef2
undefined value (INT2)
subroutine, public atmos_dyn_fvm_fluxj13_uyz_ud5(flux, mom, val, DENS, GSQRT, J13G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J13-flux at UYZ
integer, public ks
start point of inner domain: z, local
subroutine, public atmos_dyn_fvm_fluxx_uyz_ud5(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation X-flux at UY
subroutine, public atmos_dyn_fvm_fluxy_uyz_ud5(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation Y-flux at UY
subroutine, public atmos_dyn_fvm_fluxj13_xvz_ud5(flux, mom, val, DENS, GSQRT, J13G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J13-flux at XVZ
real(rp), public const_eps
small number
subroutine, public atmos_dyn_fvm_fluxz_uyz_ud5(flux, mom, val, DENS, GSQRT, J33G, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation z-flux at UY
integer, public ka
of whole cells: z, local, with HALO
subroutine, public atmos_dyn_fvm_fluxz_xyz_ud5(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation z-flux at XYZ
subroutine, public atmos_dyn_fvm_fluxx_xvz_ud5(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation X-flux at XV
subroutine, public atmos_dyn_fvm_fluxx_xyz_ud5(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation X-flux at XYZ
subroutine, public atmos_dyn_fvm_flux_valuew_z_ud5(valW, mflx, val, GSQRT, CDZ)
value at XYW
subroutine, public atmos_dyn_fvm_fluxy_xyz_ud5(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation Y-flux at XYZ