77 #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))) 79 #define F2H(k,p,q) 0.5_RP 86 real(RP),
parameter :: f2 = 0.5_rp
90 real(RP),
parameter :: f31 = -1.0_rp/12.0_rp
91 real(RP),
parameter :: f32 = 7.0_rp/12.0_rp
92 real(RP),
parameter :: f33 = 3.0_rp/12.0_rp
107 real(RP),
intent(out) :: valW (
ka)
108 real(RP),
intent(in) :: mflx (
ka)
109 real(RP),
intent(in) :: val (
ka)
110 real(RP),
intent(in) :: GSQRT(
ka)
111 real(RP),
intent(in) :: CDZ (
ka)
118 call check( __line__, mflx(k) )
120 call check( __line__, val(k) )
121 call check( __line__, val(k+1) )
123 call check( __line__, val(k-1) )
124 call check( __line__, val(k+2) )
128 + 0.5_rp * phi(val(k+1),val(k),val(k-1)) * ( val(k)-val(k-1) ) ) &
129 * ( 0.5_rp + sign(0.5_rp,mflx(k)) ) &
131 + 0.5_rp * phi(val(k),val(k+1),val(k+2)) * ( val(k+1)-val(k+2) ) ) &
132 * ( 0.5_rp - sign(0.5_rp,mflx(k)) )
140 call check( __line__, mflx(
ks) )
141 call check( __line__, val(
ks ) )
142 call check( __line__, val(
ks+1) )
143 call check( __line__, mflx(
ke-1) )
144 call check( __line__, val(
ke ) )
145 call check( __line__, val(
ke-1) )
149 valw(
ks) = f2 * ( val(
ks+1)+val(
ks) )
150 valw(
ke-1) = f2 * ( val(
ke)+val(
ke-1) )
167 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
168 real(RP),
intent(in) :: mflx (
ka,
ia,
ja)
169 real(RP),
intent(in) :: val (
ka,
ia,
ja)
170 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
172 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
174 real(RP),
intent(in) :: CDZ (
ka)
175 integer,
intent(in) :: IIS, IIE, JJS, JJE
186 call check( __line__, mflx(k,i,j) )
188 call check( __line__, val(k,i,j) )
189 call check( __line__, val(k+1,i,j) )
191 call check( __line__, val(k-1,i,j) )
192 call check( __line__, val(k+2,i,j) )
198 + 0.5_rp * phi(val(k+1,i,j),val(k,i,j),val(k-1,i,j)) * ( val(k,i,j)-val(k-1,i,j) ) ) &
199 * ( 0.5_rp + sign(0.5_rp,vel) ) &
201 + 0.5_rp * phi(val(k,i,j),val(k+1,i,j),val(k+2,i,j)) * ( val(k+1,i,j)-val(k+2,i,j) ) ) &
202 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
203 + gsqrt(k,i,j) * num_diff(k,i,j)
208 k = iundef; i = iundef; j = iundef
216 call check( __line__, mflx(
ks,i,j) )
217 call check( __line__, val(
ks ,i,j) )
218 call check( __line__, val(
ks+1,i,j) )
219 call check( __line__, mflx(
ke-1,i,j) )
220 call check( __line__, val(
ke ,i,j) )
221 call check( __line__, val(
ke-1,i,j) )
224 flux(
ks-1,i,j) = 0.0_rp
228 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
229 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
231 flux(
ke-1,i,j) = vel &
232 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
233 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
235 flux(
ke ,i,j) = 0.0_rp
239 k = iundef; i = iundef; j = iundef
257 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
258 real(RP),
intent(in) :: mflx (
ka,
ia,
ja)
259 real(RP),
intent(in) :: val (
ka,
ia,
ja)
260 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
262 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
264 real(RP),
intent(in) :: CDZ(
ka)
265 integer,
intent(in) :: IIS, IIE, JJS, JJE
276 call check( __line__, mflx(k,i,j) )
278 call check( __line__, val(k,i,j) )
279 call check( __line__, val(k,i+1,j) )
281 call check( __line__, val(k,i-1,j) )
282 call check( __line__, val(k,i+2,j) )
288 + 0.5_rp * phi(val(k,i+1,j),val(k,i,j),val(k,i-1,j)) * ( val(k,i,j)-val(k,i-1,j) ) ) &
289 * ( 0.5_rp + sign(0.5_rp,vel) ) &
291 + 0.5_rp * phi(val(k,i,j),val(k,i+1,j),val(k,i+2,j)) * ( val(k,i+1,j)-val(k,i+2,j) ) ) &
292 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
293 + gsqrt(k,i,j) * num_diff(k,i,j)
298 k = iundef; i = iundef; j = iundef
316 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
317 real(RP),
intent(in) :: mflx (
ka,
ia,
ja)
318 real(RP),
intent(in) :: val (
ka,
ia,
ja)
319 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
321 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
323 real(RP),
intent(in) :: CDZ(
ka)
324 integer,
intent(in) :: IIS, IIE, JJS, JJE
335 call check( __line__, mflx(k,i,j) )
337 call check( __line__, val(k,i,j) )
338 call check( __line__, val(k,i,j+1) )
340 call check( __line__, val(k,i,j-1) )
341 call check( __line__, val(k,i,j+2) )
347 + 0.5_rp * phi(val(k,i,j+1),val(k,i,j),val(k,i,j-1)) * ( val(k,i,j)-val(k,i,j-1) ) ) &
348 * ( 0.5_rp + sign(0.5_rp,vel) ) &
350 + 0.5_rp * phi(val(k,i,j),val(k,i,j+1),val(k,i,j+2)) * ( val(k,i,j+1)-val(k,i,j+2) ) ) &
351 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
352 + gsqrt(k,i,j) * num_diff(k,i,j)
357 k = iundef; i = iundef; j = iundef
378 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
379 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
380 real(RP),
intent(in) :: val (
ka,
ia,
ja)
381 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
382 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
383 real(RP),
intent(in) :: J33G
385 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
387 real(RP),
intent(in) :: CDZ (
ka)
388 real(RP),
intent(in) :: FDZ (
ka-1)
389 real(RP),
intent(in) :: dtrk
390 integer,
intent(in) :: IIS, IIE, JJS, JJE
404 call check( __line__, mom(k-1,i,j) )
405 call check( __line__, mom(k ,i,j) )
407 call check( __line__, val(k-1,i,j) )
408 call check( __line__, val(k,i,j) )
410 call check( __line__, val(k-2,i,j) )
411 call check( __line__, val(k+1,i,j) )
414 vel = ( 0.5_rp * ( mom(k-1,i,j) &
417 flux(k-1,i,j) = j33g * vel &
419 + 0.5_rp * phi(val(k,i,j),val(k-1,i,j),val(k-2,i,j)) * ( val(k-1,i,j)-val(k-2,i,j) ) ) &
420 * ( 0.5_rp + sign(0.5_rp,vel) ) &
422 + 0.5_rp * phi(val(k-1,i,j),val(k,i,j),val(k+1,i,j)) * ( val(k,i,j)-val(k+1,i,j) ) ) &
423 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
424 + gsqrt(k,i,j) * num_diff(k,i,j)
429 k = iundef; i = iundef; j = iundef
438 flux(
ks-1,i,j) = 0.0_rp
442 sw = sign( 1.0_rp, mom(
ks,i,j) )
443 flux(
ks ,i,j) = sw * min( sw*flux(
ks,i,j), sw*val(
ks,i,j)*gsqrt(
ks,i,j)*fdz(
ks)/dtrk )
446 flux(
ke-1,i,j) = 0.0_rp
447 flux(
ke ,i,j) = 0.0_rp
465 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
466 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
467 real(RP),
intent(in) :: val (
ka,
ia,
ja)
468 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
469 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
470 real(RP),
intent(in) :: J13G (
ka,
ia,
ja)
471 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
472 real(RP),
intent(in) :: CDZ (
ka)
473 integer,
intent(in) :: IIS, IIE, JJS, JJE
483 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i-1,j) ) ) &
485 flux(k-1,i,j) = j13g(k,i,j) / mapf(i,j,+2) * vel &
487 + 0.5_rp * phi(val(k,i,j),val(k-1,i,j),val(k-2,i,j)) * ( val(k-1,i,j)-val(k-2,i,j) ) ) &
488 * ( 0.5_rp + sign(0.5_rp,vel) ) &
490 + 0.5_rp * phi(val(k-1,i,j),val(k,i,j),val(k+1,i,j)) * ( val(k,i,j)-val(k+1,i,j) ) ) &
491 * ( 0.5_rp - sign(0.5_rp,vel) ) )
499 flux(
ks-1,i,j) = 0.0_rp
501 flux(
ke-1,i,j) = 0.0_rp
518 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
519 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
520 real(RP),
intent(in) :: val (
ka,
ia,
ja)
521 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
522 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
523 real(RP),
intent(in) :: J23G (
ka,
ia,
ja)
524 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
525 real(RP),
intent(in) :: CDZ (
ka)
526 integer,
intent(in) :: IIS, IIE, JJS, JJE
536 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j-1) ) ) &
538 flux(k-1,i,j) = j23g(k,i,j) / mapf(i,j,+1) * vel &
540 + 0.5_rp * phi(val(k,i,j),val(k-1,i,j),val(k-2,i,j)) * ( val(k-1,i,j)-val(k-2,i,j) ) ) &
541 * ( 0.5_rp + sign(0.5_rp,vel) ) &
543 + 0.5_rp * phi(val(k-1,i,j),val(k,i,j),val(k+1,i,j)) * ( val(k,i,j)-val(k+1,i,j) ) ) &
544 * ( 0.5_rp - sign(0.5_rp,vel) ) )
552 flux(
ks-1,i,j) = 0.0_rp
554 flux(
ke-1,i,j) = 0.0_rp
575 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
576 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
577 real(RP),
intent(in) :: val (
ka,
ia,
ja)
578 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
579 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
580 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
582 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
584 real(RP),
intent(in) :: CDZ (
ka)
585 integer,
intent(in) :: IIS, IIE, JJS, JJE
596 call check( __line__, mom(k ,i,j) )
597 call check( __line__, mom(k+1,i,j) )
599 call check( __line__, val(k,i,j) )
600 call check( __line__, val(k,i+1,j) )
602 call check( __line__, val(k,i-1,j) )
603 call check( __line__, val(k,i+2,j) )
606 vel = ( f2h(k,1,i_uyz) &
611 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
613 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
614 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+2) * vel &
616 + 0.5_rp * phi(val(k,i+1,j),val(k,i,j),val(k,i-1,j)) * ( val(k,i,j)-val(k,i-1,j) ) ) &
617 * ( 0.5_rp + sign(0.5_rp,vel) ) &
619 + 0.5_rp * phi(val(k,i,j),val(k,i+1,j),val(k,i+2,j)) * ( val(k,i+1,j)-val(k,i+2,j) ) ) &
620 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
621 + gsqrt(k,i,j) * num_diff(k,i,j)
626 k = iundef; i = iundef; j = iundef
632 flux(
ke,i,j) = 0.0_rp
636 k = iundef; i = iundef; j = iundef
655 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
656 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
657 real(RP),
intent(in) :: val (
ka,
ia,
ja)
658 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
659 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
660 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
662 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
664 real(RP),
intent(in) :: CDZ (
ka)
665 integer,
intent(in) :: IIS, IIE, JJS, JJE
676 call check( __line__, mom(k ,i,j) )
677 call check( __line__, mom(k+1,i,j) )
679 call check( __line__, val(k,i,j) )
680 call check( __line__, val(k,i,j+1) )
682 call check( __line__, val(k,i,j-1) )
683 call check( __line__, val(k,i,j+2) )
686 vel = ( f2h(k,1,i_xvz) &
691 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
693 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
694 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+1) * vel &
696 + 0.5_rp * phi(val(k,i,j+1),val(k,i,j),val(k,i,j-1)) * ( val(k,i,j)-val(k,i,j-1) ) ) &
697 * ( 0.5_rp + sign(0.5_rp,vel) ) &
699 + 0.5_rp * phi(val(k,i,j),val(k,i,j+1),val(k,i,j+2)) * ( val(k,i,j+1)-val(k,i,j+2) ) ) &
700 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
701 + gsqrt(k,i,j) * num_diff(k,i,j)
706 k = iundef; i = iundef; j = iundef
712 flux(
ke,i,j) = 0.0_rp
716 k = iundef; i = iundef; j = iundef
736 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
737 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
738 real(RP),
intent(in) :: val (
ka,
ia,
ja)
739 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
740 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
741 real(RP),
intent(in) :: J33G
743 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
745 real(RP),
intent(in) :: CDZ (
ka)
746 integer,
intent(in) :: IIS, IIE, JJS, JJE
757 call check( __line__, mom(k,i,j) )
758 call check( __line__, mom(k,i+1,j) )
760 call check( __line__, val(k,i,j) )
761 call check( __line__, val(k+1,i,j) )
763 call check( __line__, val(k-1,i,j) )
764 call check( __line__, val(k+2,i,j) )
767 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i+1,j) ) ) &
769 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
771 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
772 flux(k,i,j) = j33g * vel &
774 + 0.5_rp * phi(val(k+1,i,j),val(k,i,j),val(k-1,i,j)) * ( val(k,i,j)-val(k-1,i,j) ) ) &
775 * ( 0.5_rp + sign(0.5_rp,vel) ) &
777 + 0.5_rp * phi(val(k,i,j),val(k+1,i,j),val(k+2,i,j)) * ( val(k+1,i,j)-val(k+2,i,j) ) ) &
778 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
779 + gsqrt(k,i,j) * num_diff(k,i,j)
784 k = iundef; i = iundef; j = iundef
792 call check( __line__, mom(
ks,i ,j) )
793 call check( __line__, mom(
ks,i+1,j) )
794 call check( __line__, val(
ks+1,i,j) )
795 call check( __line__, val(
ks,i,j) )
798 flux(
ks-1,i,j) = 0.0_rp
800 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j) ) ) &
801 / ( f2h(
ks,1,i_xyz) &
802 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
804 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
805 flux(
ks,i,j) = j33g * vel &
806 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
807 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
808 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i+1,j) ) ) &
809 / ( f2h(
ke-1,1,i_xyz) &
810 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
811 + f2h(
ke-1,2,i_xyz) &
812 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
813 flux(
ke-1,i,j) = j33g * vel &
814 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
815 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
817 flux(
ke,i,j) = 0.0_rp
821 k = iundef; i = iundef; j = iundef
837 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
838 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
839 real(RP),
intent(in) :: val (
ka,
ia,
ja)
840 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
841 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
842 real(RP),
intent(in) :: J13G (
ka,
ia,
ja)
843 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
844 real(RP),
intent(in) :: CDZ (
ka)
845 integer,
intent(in) :: IIS, IIE, JJS, JJE
855 vel = ( f2h(k,1,i_uyz) &
860 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
862 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
863 flux(k,i,j) = j13g(k,i,j) / mapf(i,j,+2) * vel &
865 + 0.5_rp * phi(val(k+1,i,j),val(k,i,j),val(k-1,i,j)) * ( val(k,i,j)-val(k-1,i,j) ) ) &
866 * ( 0.5_rp + sign(0.5_rp,vel) ) &
868 + 0.5_rp * phi(val(k,i,j),val(k+1,i,j),val(k+2,i,j)) * ( val(k+1,i,j)-val(k+2,i,j) ) ) &
869 * ( 0.5_rp - sign(0.5_rp,vel) ) )
877 flux(
ks-1,i,j) = 0.0_rp
879 vel = ( f2h(
ks,1,i_uyz) &
883 / ( f2h(
ks,1,i_xyz) &
884 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
886 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
887 flux(
ks,i,j) = j13g(
ks,i,j) / mapf(i,j,+2) * vel &
888 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
889 vel = ( f2h(
ke-1,1,i_uyz) &
891 + f2h(
ke-1,2,i_uyz) &
893 / ( f2h(
ke-1,1,i_xyz) &
894 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
895 + f2h(
ke-1,2,i_xyz) &
896 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
897 flux(
ke-1,i,j) = j13g(
ke-1,i,j) / mapf(i,j,+2) * vel &
898 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
900 flux(
ke ,i,j) = 0.0_rp
917 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
918 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
919 real(RP),
intent(in) :: val (
ka,
ia,
ja)
920 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
921 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
922 real(RP),
intent(in) :: J23G (
ka,
ia,
ja)
923 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
924 real(RP),
intent(in) :: CDZ (
ka)
925 integer,
intent(in) :: IIS, IIE, JJS, JJE
935 vel = ( f2h(k,1,i_xvz) &
936 * 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) ) &
938 * 0.25_rp * ( mom(k,i,j)+mom(k,i+1,j)+mom(k,i,j-1)+mom(k,i+1,j-1) ) ) &
940 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
942 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
943 flux(k,i,j) = j23g(k,i,j) / mapf(i,j,+1) * vel &
945 + 0.5_rp * phi(val(k+1,i,j),val(k,i,j),val(k-1,i,j)) * ( val(k,i,j)-val(k-1,i,j) ) ) &
946 * ( 0.5_rp + sign(0.5_rp,vel) ) &
948 + 0.5_rp * phi(val(k,i,j),val(k+1,i,j),val(k+2,i,j)) * ( val(k+1,i,j)-val(k+2,i,j) ) ) &
949 * ( 0.5_rp - sign(0.5_rp,vel) ) )
957 flux(
ks-1,i,j) = 0.0_rp
959 vel = ( f2h(
ks,1,i_xvz) &
960 * 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) ) &
962 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j)+mom(
ks,i,j-1)+mom(
ks,i+1,j-1) ) ) &
963 / ( f2h(
ks,1,i_xyz) &
964 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
966 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
967 flux(
ks,i,j) = j23g(
ks,i,j) / mapf(i,j,+1) * vel &
968 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
969 vel = ( f2h(
ke-1,1,i_xvz) &
970 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i+1,j)+mom(
ke,i,j-1)+mom(
ke,i+1,j-1) ) &
971 + f2h(
ke-1,2,i_xvz) &
972 * 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) ) ) &
973 / ( f2h(
ke-1,1,i_xyz) &
974 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
975 + f2h(
ke-1,2,i_xyz) &
976 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
977 flux(
ke-1,i,j) = j23g(
ke-1,i,j) / mapf(i,j,+1) * vel &
978 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
980 flux(
ke ,i,j) = 0.0_rp
1000 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
1001 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1002 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1003 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1004 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1005 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1007 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1009 real(RP),
intent(in) :: CDZ (
ka)
1010 integer,
intent(in) :: IIS, IIE, JJS, JJE
1023 call check( __line__, mom(k,i ,j) )
1024 call check( __line__, mom(k,i-1,j) )
1026 call check( __line__, val(k,i-1,j) )
1027 call check( __line__, val(k,i,j) )
1029 call check( __line__, val(k,i-2,j) )
1030 call check( __line__, val(k,i+1,j) )
1033 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i-1,j) ) ) &
1035 flux(k,i-1,j) = gsqrt(k,i,j) / mapf(i,j,+2) * vel &
1036 * ( ( val(k,i-1,j) &
1037 + 0.5_rp * phi(val(k,i,j),val(k,i-1,j),val(k,i-2,j)) * ( val(k,i-1,j)-val(k,i-2,j) ) ) &
1038 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1040 + 0.5_rp * phi(val(k,i-1,j),val(k,i,j),val(k,i+1,j)) * ( val(k,i,j)-val(k,i+1,j) ) ) &
1041 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1042 + gsqrt(k,i,j) * num_diff(k,i,j)
1047 k = iundef; i = iundef; j = iundef
1063 IIS, IIE, JJS, JJE )
1066 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
1067 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1068 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1069 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1070 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1071 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1073 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1075 real(RP),
intent(in) :: CDZ (
ka)
1076 integer,
intent(in) :: IIS, IIE, JJS, JJE
1087 call check( __line__, mom(k,i ,j) )
1088 call check( __line__, mom(k,i-1,j) )
1090 call check( __line__, val(k,i,j) )
1091 call check( __line__, val(k,i,j+1) )
1093 call check( __line__, val(k,i,j-1) )
1094 call check( __line__, val(k,i,j+2) )
1097 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i+1,j) ) ) &
1098 / ( 0.25_rp * ( dens(k,i,j)+dens(k,i+1,j)+dens(k,i,j+1)+dens(k,i+1,j+1) ) )
1099 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+1) * vel &
1101 + 0.5_rp * phi(val(k,i,j+1),val(k,i,j),val(k,i,j-1)) * ( val(k,i,j)-val(k,i,j-1) ) ) &
1102 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1104 + 0.5_rp * phi(val(k,i,j),val(k,i,j+1),val(k,i,j+2)) * ( val(k,i,j+1)-val(k,i,j+2) ) ) &
1105 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1106 + gsqrt(k,i,j) * num_diff(k,i,j)
1111 k = iundef; i = iundef; j = iundef
1129 IIS, IIE, JJS, JJE )
1132 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
1133 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1134 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1135 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1136 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1137 real(RP),
intent(in) :: J33G
1139 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1141 real(RP),
intent(in) :: CDZ (
ka)
1142 integer,
intent(in) :: IIS, IIE, JJS, JJE
1153 call check( __line__, mom(k,i,j) )
1154 call check( __line__, mom(k,i,j+1) )
1156 call check( __line__, val(k,i,j) )
1157 call check( __line__, val(k+1,i,j) )
1159 call check( __line__, val(k-1,i,j) )
1160 call check( __line__, val(k+2,i,j) )
1163 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j+1) ) ) &
1164 / ( f2h(k,1,i_xyz) &
1165 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
1167 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
1168 flux(k,i,j) = j33g * vel &
1170 + 0.5_rp * phi(val(k+1,i,j),val(k,i,j),val(k-1,i,j)) * ( val(k,i,j)-val(k-1,i,j) ) ) &
1171 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1173 + 0.5_rp * phi(val(k,i,j),val(k+1,i,j),val(k+2,i,j)) * ( val(k+1,i,j)-val(k+2,i,j) ) ) &
1174 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1175 + gsqrt(k,i,j) * num_diff(k,i,j)
1180 k = iundef; i = iundef; j = iundef
1188 call check( __line__, mom(
ks,i ,j) )
1189 call check( __line__, mom(
ks,i,j+1) )
1190 call check( __line__, val(
ks+1,i,j) )
1191 call check( __line__, val(
ks,i,j) )
1194 flux(
ks-1,i,j) = 0.0_rp
1196 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j+1) ) ) &
1197 / ( f2h(
ks,1,i_xyz) &
1198 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1200 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1201 flux(
ks,i,j) = j33g * vel &
1202 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
1203 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
1204 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j+1) ) ) &
1205 / ( f2h(
ke-1,1,i_xyz) &
1206 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1207 + f2h(
ke-1,2,i_xyz) &
1208 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1209 flux(
ke-1,i,j) = j33g * vel &
1210 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
1211 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
1213 flux(
ke,i,j) = 0.0_rp
1217 k = iundef; i = iundef; j = iundef
1228 GSQRT, J13G, MAPF, &
1230 IIS, IIE, JJS, JJE )
1233 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
1234 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1235 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1236 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1237 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1238 real(RP),
intent(in) :: J13G (
ka,
ia,
ja)
1239 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1240 real(RP),
intent(in) :: CDZ (
ka)
1241 integer,
intent(in) :: IIS, IIE, JJS, JJE
1251 vel = ( f2h(k,1,i_uyz) &
1252 * 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) ) &
1254 * 0.25_rp * ( mom(k,i,j)+mom(k,i-1,j)+mom(k,i,j+1)+mom(k,i-1,j+1) ) ) &
1255 / ( f2h(k,1,i_xyz) &
1256 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
1258 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
1259 flux(k,i,j) = j13g(k,i,j) / mapf(i,j,+2) * vel &
1261 + 0.5_rp * phi(val(k+1,i,j),val(k,i,j),val(k-1,i,j)) * ( val(k,i,j)-val(k-1,i,j) ) ) &
1262 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1264 + 0.5_rp * phi(val(k,i,j),val(k+1,i,j),val(k+2,i,j)) * ( val(k+1,i,j)-val(k+2,i,j) ) ) &
1265 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1273 flux(
ks-1,i,j) = 0.0_rp
1275 vel = ( f2h(
ks,1,i_uyz) &
1276 * 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) ) &
1278 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j)+mom(
ks,i,j+1)+mom(
ks,i-1,j+1) ) ) &
1279 / ( f2h(
ks,1,i_xyz) &
1280 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1282 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1283 flux(
ks,i,j) = j13g(
ks,i,j) / mapf(i,j,+2) * vel &
1284 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1285 vel = ( f2h(
ke-1,1,i_uyz) &
1286 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i-1,j)+mom(
ke,i,j+1)+mom(
ke,i-1,j+1) ) &
1287 + f2h(
ke-1,2,i_uyz) &
1288 * 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 / ( f2h(
ke-1,1,i_xyz) &
1290 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1291 + f2h(
ke-1,2,i_xyz) &
1292 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1293 flux(
ke-1,i,j) = j13g(
ke-1,i,j) / mapf(i,j,+2) * vel &
1294 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1296 flux(
ke ,i,j) = 0.0_rp
1308 GSQRT, J23G, MAPF, &
1310 IIS, IIE, JJS, JJE )
1313 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
1314 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1315 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1316 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1317 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1318 real(RP),
intent(in) :: J23G (
ka,
ia,
ja)
1319 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1320 real(RP),
intent(in) :: CDZ (
ka)
1321 integer,
intent(in) :: IIS, IIE, JJS, JJE
1331 vel = ( f2h(k,1,i_xvz) &
1335 / ( f2h(k,1,i_xyz) &
1336 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
1338 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
1339 flux(k,i,j) = j23g(k,i,j) / mapf(i,j,+1) * vel &
1341 + 0.5_rp * phi(val(k+1,i,j),val(k,i,j),val(k-1,i,j)) * ( val(k,i,j)-val(k-1,i,j) ) ) &
1342 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1344 + 0.5_rp * phi(val(k,i,j),val(k+1,i,j),val(k+2,i,j)) * ( val(k+1,i,j)-val(k+2,i,j) ) ) &
1345 * ( 0.5_rp - sign(0.5_rp,vel) ) )
1353 flux(
ks-1,i,j) = 0.0_rp
1355 vel = ( f2h(
ks,1,i_xvz) &
1359 / ( f2h(
ks,1,i_xyz) &
1360 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1362 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1363 flux(
ks,i,j) = j23g(
ks,i,j) / mapf(i,j,+1) * vel &
1364 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1365 vel = ( f2h(
ke-1,1,i_xvz) &
1367 + f2h(
ke-1,2,i_xvz) &
1369 / ( f2h(
ke-1,1,i_xyz) &
1370 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1371 + f2h(
ke-1,2,i_xyz) &
1372 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1373 flux(
ke-1,i,j) = j23g(
ke-1,i,j) / mapf(i,j,+1) * vel &
1374 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1376 flux(
ke ,i,j) = 0.0_rp
1393 IIS, IIE, JJS, JJE )
1396 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
1397 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1398 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1399 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1400 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1401 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1403 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1405 real(RP),
intent(in) :: CDZ (
ka)
1406 integer,
intent(in) :: IIS, IIE, JJS, JJE
1417 call check( __line__, mom(k,i ,j) )
1418 call check( __line__, mom(k,i,j-1) )
1420 call check( __line__, val(k,i,j) )
1421 call check( __line__, val(k,i+1,j) )
1423 call check( __line__, val(k,i-1,j) )
1424 call check( __line__, val(k,i+2,j) )
1427 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j+1) ) ) &
1428 / ( 0.25_rp * ( dens(k,i,j)+dens(k,i+1,j)+dens(k,i,j+1)+dens(k,i+1,j+1) ) )
1429 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+2) * vel &
1431 + 0.5_rp * phi(val(k,i+1,j),val(k,i,j),val(k,i-1,j)) * ( val(k,i,j)-val(k,i-1,j) ) ) &
1432 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1434 + 0.5_rp * phi(val(k,i,j),val(k,i+1,j),val(k,i+2,j)) * ( val(k,i+1,j)-val(k,i+2,j) ) ) &
1435 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1436 + gsqrt(k,i,j) * num_diff(k,i,j)
1441 k = iundef; i = iundef; j = iundef
1457 IIS, IIE, JJS, JJE )
1460 real(RP),
intent(out) :: flux (
ka,
ia,
ja)
1461 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1462 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1463 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1464 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1465 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1467 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1469 real(RP),
intent(in) :: CDZ (
ka)
1470 integer,
intent(in) :: IIS, IIE, JJS, JJE
1483 call check( __line__, mom(k,i ,j) )
1484 call check( __line__, mom(k,i,j-1) )
1486 call check( __line__, val(k,i,j-1) )
1487 call check( __line__, val(k,i,j) )
1489 call check( __line__, val(k,i,j-2) )
1490 call check( __line__, val(k,i,j+1) )
1493 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j-1) ) ) &
1495 flux(k,i,j-1) = gsqrt(k,i,j) / mapf(i,j,+1) * vel &
1496 * ( ( val(k,i,j-1) &
1497 + 0.5_rp * phi(val(k,i,j),val(k,i,j-1),val(k,i,j-2)) * ( val(k,i,j-1)-val(k,i,j-2) ) ) &
1498 * ( 0.5_rp + sign(0.5_rp,vel) ) &
1500 + 0.5_rp * phi(val(k,i,j-1),val(k,i,j),val(k,i,j+1)) * ( val(k,i,j)-val(k,i,j+1) ) ) &
1501 * ( 0.5_rp - sign(0.5_rp,vel) ) ) &
1502 + gsqrt(k,i,j) * num_diff(k,i,j)
1507 k = iundef; i = iundef; j = iundef
1519 function phi(v1, v2, v3)
1525 real(RP),
intent(in) :: v1
1526 real(RP),
intent(in) :: v2
1527 real(RP),
intent(in) :: v3
1530 real(RP) :: zerosw1, zerosw2
1533 zerosw1 = eps - sign(eps, abs(v1-v2)-eps)
1534 zerosw2 = eps - sign(eps, abs(v2-v3)-eps)
1535 r2 = 2.0_rp * (v1-v2+zerosw1*zerosw2) / (v2-v3+zerosw2)
1537 phi = max(0.0_rp, min(r2, min((1.0_rp+r2)/3.0_rp, 2.0_rp) ) )
subroutine, public atmos_dyn_fvm_fluxx_xvz_ud3koren1993(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation X-flux at XV
subroutine, public atmos_dyn_fvm_flux_valuew_z_ud3koren1993(valW, mflx, val, GSQRT, CDZ)
value at XYW
subroutine, public atmos_dyn_fvm_fluxy_xyz_ud3koren1993(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation Y-flux at XYZ
subroutine, public atmos_dyn_fvm_fluxz_uyz_ud3koren1993(flux, mom, val, DENS, GSQRT, J33G, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation z-flux at UY
subroutine, public atmos_dyn_fvm_fluxy_xvz_ud3koren1993(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation Y-flux at XV
integer, public ke
end point of inner domain: z, local
subroutine, public atmos_dyn_fvm_fluxx_xyz_ud3koren1993(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation X-flux at XYZ
subroutine, public check(current_line, v)
Undefined value checker.
real(rp), public const_undef
integer, public ia
of x whole cells (local, with HALO)
subroutine, public atmos_dyn_fvm_fluxj13_uyz_ud3koren1993(flux, mom, val, DENS, GSQRT, J13G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J13-flux at UYZ
integer, public ka
of z whole cells (local, with HALO)
subroutine, public atmos_dyn_fvm_fluxz_xyz_ud3koren1993(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation z-flux at XYZ
subroutine, public atmos_dyn_fvm_fluxj13_xyw_ud3koren1993(flux, mom, val, DENS, GSQRT, J13G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J13-flux at XYW
integer, parameter, public const_undef2
undefined value (INT2)
subroutine, public atmos_dyn_fvm_fluxj23_uyz_ud3koren1993(flux, mom, val, DENS, GSQRT, J23G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J23-flux at UYZ
subroutine, public atmos_dyn_fvm_fluxj23_xyw_ud3koren1993(flux, mom, val, DENS, GSQRT, J23G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J23-flux at XYW
subroutine, public atmos_dyn_fvm_fluxx_uyz_ud3koren1993(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation X-flux at UY
subroutine, public atmos_dyn_fvm_fluxj23_xvz_ud3koren1993(flux, mom, val, DENS, GSQRT, J23G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J23-flux at XVZ
integer, public ks
start point of inner domain: z, local
subroutine, public atmos_dyn_fvm_fluxj13_xvz_ud3koren1993(flux, mom, val, DENS, GSQRT, J13G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J13-flux at XVZ
subroutine, public atmos_dyn_fvm_fluxy_uyz_ud3koren1993(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation Y-flux at UY
real(rp), public const_eps
small number
module scale_atmos_dyn_fvm_flux_ud3Koren1993
subroutine, public atmos_dyn_fvm_fluxz_xyw_ud3koren1993(flux, mom, val, DENS, GSQRT, J33G, num_diff, CDZ, FDZ, dtrk, IIS, IIE, JJS, JJE)
calculation z-flux at XYW
subroutine, public atmos_dyn_fvm_fluxx_xyw_ud3koren1993(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation X-flux at XYW
subroutine, public atmos_dyn_fvm_fluxz_xvz_ud3koren1993(flux, mom, val, DENS, GSQRT, J33G, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation z-flux at XV
subroutine, public atmos_dyn_fvm_fluxy_xyw_ud3koren1993(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation Y-flux at XYW
integer, public ja
of y whole cells (local, with HALO)