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 :: f1 = 0.5_rp
86 real(RP),
parameter :: f2 = 0.5_rp
102 real(RP),
intent(out) :: valW (
ka)
103 real(RP),
intent(in) :: mflx (
ka)
104 real(RP),
intent(in) :: val (
ka)
105 real(RP),
intent(in) :: GSQRT(
ka)
106 real(RP),
intent(in) :: CDZ (
ka)
113 call check( __line__, mflx(k) )
115 call check( __line__, val(k) )
116 call check( __line__, val(k+1) )
119 valw(k) = f1 * ( val(k+1)+val(k) ) - sign(f1,mflx(k)) * ( val(k+1)-val(k) )
145 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
146 real(RP),
intent(in) :: mflx (
ka,
ia,
ja)
147 real(RP),
intent(in) :: val (
ka,
ia,
ja)
148 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
149 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
150 real(RP),
intent(in) :: CDZ (
ka)
151 integer,
intent(in) :: IIS, IIE, JJS, JJE
164 call check( __line__, mflx(k,i,j) )
166 call check( __line__, val(k,i,j) )
167 call check( __line__, val(k+1,i,j) )
172 * ( f1 * ( val(k+1,i,j)+val(k,i,j) ) - sign(f1,vel) * ( val(k+1,i,j)-val(k,i,j) ) )
177 k = iundef; i = iundef; j = iundef
188 flux(
ks-1,i,j) = 0.0_rp
190 flux(
ke ,i,j) = 0.0_rp
194 k = iundef; i = iundef; j = iundef
210 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
211 real(RP),
intent(in) :: mflx (
ka,
ia,
ja)
212 real(RP),
intent(in) :: val (
ka,
ia,
ja)
213 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
214 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
215 real(RP),
intent(in) :: CDZ(
ka)
216 integer,
intent(in) :: IIS, IIE, JJS, JJE
229 call check( __line__, mflx(k,i,j) )
231 call check( __line__, val(k,i,j) )
232 call check( __line__, val(k,i+1,j) )
237 * ( f1 * ( val(k,i+1,j)+val(k,i,j) ) - sign(f1,vel) * ( val(k,i+1,j)-val(k,i,j) ) )
242 k = iundef; i = iundef; j = iundef
258 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
259 real(RP),
intent(in) :: mflx (
ka,
ia,
ja)
260 real(RP),
intent(in) :: val (
ka,
ia,
ja)
261 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
262 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
263 real(RP),
intent(in) :: CDZ(
ka)
264 integer,
intent(in) :: IIS, IIE, JJS, JJE
277 call check( __line__, mflx(k,i,j) )
279 call check( __line__, val(k,i,j) )
280 call check( __line__, val(k,i,j+1) )
285 * ( f1 * ( val(k,i,j+1)+val(k,i,j) ) - sign(f1,vel) * ( val(k,i,j+1)-val(k,i,j) ) )
290 k = iundef; i = iundef; j = iundef
309 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
310 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
311 real(RP),
intent(in) :: val (
ka,
ia,
ja)
312 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
313 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
314 real(RP),
intent(in) :: J33G
315 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
316 real(RP),
intent(in) :: CDZ (
ka)
317 real(RP),
intent(in) :: FDZ (
ka-1)
318 real(RP),
intent(in) :: dtrk
319 integer,
intent(in) :: IIS, IIE, JJS, JJE
334 call check( __line__, mom(k-1,i,j) )
335 call check( __line__, mom(k ,i,j) )
337 call check( __line__, val(k-1,i,j) )
338 call check( __line__, val(k,i,j) )
341 vel = ( 0.5_rp * ( mom(k-1,i,j) &
344 flux(k-1,i,j) = j33g * vel &
345 * ( f1 * ( val(k,i,j)+val(k-1,i,j) ) - sign(f1,vel) * ( val(k,i,j)-val(k-1,i,j) ) )
350 k = iundef; i = iundef; j = iundef
365 flux(
ks-1,i,j) = 0.0_rp
369 flux(
ke-1,i,j) = 0.0_rp
370 flux(
ke ,i,j) = 0.0_rp
388 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
389 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
390 real(RP),
intent(in) :: val (
ka,
ia,
ja)
391 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
392 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
393 real(RP),
intent(in) :: J13G (
ka,
ia,
ja)
394 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
395 real(RP),
intent(in) :: CDZ (
ka)
396 integer,
intent(in) :: IIS, IIE, JJS, JJE
408 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i-1,j) ) ) &
410 vel = vel * j13g(k,i,j)
411 flux(k-1,i,j) = vel / mapf(i,j,+2) &
412 * ( f1 * ( val(k,i,j)+val(k-1,i,j) ) - sign(f1,vel) * ( val(k,i,j)-val(k-1,i,j) ) )
425 flux(
ks-1,i,j) = 0.0_rp
428 vel = ( ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i-1,j) ) ) / dens(
ks+1,i,j) &
429 + ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j) ) ) / dens(
ks ,i,j) ) * 0.5_rp
432 vel = vel * j13g(
ks+1,i,j)
433 flux(
ks,i,j) = vel / mapf(i,j,+2) &
435 * ( 0.5_rp + sign(0.5_rp,vel) ) &
436 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
437 * ( 0.5_rp - sign(0.5_rp,vel) ) )
440 flux(
ke-1,i,j) = 0.0_rp
457 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
458 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
459 real(RP),
intent(in) :: val (
ka,
ia,
ja)
460 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
461 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
462 real(RP),
intent(in) :: J23G (
ka,
ia,
ja)
463 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
464 real(RP),
intent(in) :: CDZ (
ka)
465 integer,
intent(in) :: IIS, IIE, JJS, JJE
477 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j-1) ) ) &
479 vel = vel * j23g(k,i,j)
480 flux(k-1,i,j) = vel / mapf(i,j,+1) &
481 * ( f1 * ( val(k,i,j)+val(k-1,i,j) ) - sign(f1,vel) * ( val(k,i,j)-val(k-1,i,j) ) )
494 flux(
ks-1,i,j) = 0.0_rp
497 vel = ( ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j-1) ) ) / dens(
ks+1,i,j) &
498 + ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j-1) ) ) / dens(
ks ,i,j) ) * 0.5_rp
501 vel = vel * j23g(
ks+1,i,j)
502 flux(
ks,i,j) = vel / mapf(i,j,+1) &
504 * ( 0.5_rp + sign(0.5_rp,vel) ) &
505 + ( 2.0_rp * val(
ks,i,j) + 5.0_rp * val(
ks+1,i,j) - val(
ks+2,i,j) ) / 6.0_rp &
506 * ( 0.5_rp - sign(0.5_rp,vel) ) )
509 flux(
ke-1,i,j) = 0.0_rp
528 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
529 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
530 real(RP),
intent(in) :: val (
ka,
ia,
ja)
531 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
532 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
533 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
534 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
535 real(RP),
intent(in) :: CDZ (
ka)
536 integer,
intent(in) :: IIS, IIE, JJS, JJE
550 call check( __line__, mom(k ,i,j) )
551 call check( __line__, mom(k+1,i,j) )
553 call check( __line__, val(k,i,j) )
554 call check( __line__, val(k,i+1,j) )
557 vel = ( f2h(k,1,
i_uyz) &
562 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
564 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
565 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+2) * vel &
566 * ( f1 * ( val(k,i+1,j)+val(k,i,j) ) - sign(f1,vel) * ( val(k,i+1,j)-val(k,i,j) ) )
571 k = iundef; i = iundef; j = iundef
579 flux(
ke,i,j) = 0.0_rp
583 k = iundef; i = iundef; j = iundef
600 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
601 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
602 real(RP),
intent(in) :: val (
ka,
ia,
ja)
603 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
604 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
605 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
606 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
607 real(RP),
intent(in) :: CDZ (
ka)
608 integer,
intent(in) :: IIS, IIE, JJS, JJE
622 call check( __line__, mom(k ,i,j) )
623 call check( __line__, mom(k+1,i,j) )
625 call check( __line__, val(k,i,j) )
626 call check( __line__, val(k,i,j+1) )
629 vel = ( f2h(k,1,
i_xvz) &
634 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
636 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
637 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+1) * vel &
638 * ( f1 * ( val(k,i,j+1)+val(k,i,j) ) - sign(f1,vel) * ( val(k,i,j+1)-val(k,i,j) ) )
643 k = iundef; i = iundef; j = iundef
651 flux(
ke,i,j) = 0.0_rp
655 k = iundef; i = iundef; j = iundef
673 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
674 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
675 real(RP),
intent(in) :: val (
ka,
ia,
ja)
676 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
677 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
678 real(RP),
intent(in) :: J33G
679 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
680 real(RP),
intent(in) :: CDZ (
ka)
681 integer,
intent(in) :: IIS, IIE, JJS, JJE
695 call check( __line__, mom(k,i,j) )
696 call check( __line__, mom(k,i+1,j) )
698 call check( __line__, val(k,i,j) )
699 call check( __line__, val(k+1,i,j) )
702 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i+1,j) ) ) &
704 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
706 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
707 flux(k,i,j) = j33g * vel &
708 * ( f1 * ( val(k+1,i,j)+val(k,i,j) ) - sign(f1,vel) * ( val(k+1,i,j)-val(k,i,j) ) )
713 k = iundef; i = iundef; j = iundef
727 flux(
ks-1,i,j) = 0.0_rp
729 flux(
ke,i,j) = 0.0_rp
733 k = iundef; i = iundef; j = iundef
749 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
750 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
751 real(RP),
intent(in) :: val (
ka,
ia,
ja)
752 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
753 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
754 real(RP),
intent(in) :: J13G (
ka,
ia,
ja)
755 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
756 real(RP),
intent(in) :: CDZ (
ka)
757 integer,
intent(in) :: IIS, IIE, JJS, JJE
770 vel = ( f2h(k,1,
i_uyz) &
775 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
777 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
778 vel = vel * j13g(k,i,j)
779 flux(k,i,j) = vel / mapf(i,j,+2) &
780 * ( f1 * ( val(k+1,i,j)+val(k,i,j) ) - sign(f1,vel) * ( val(k+1,i,j)-val(k,i,j) ) )
794 flux(
ks-1,i,j) = 0.0_rp
796 flux(
ke ,i,j) = 0.0_rp
813 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
814 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
815 real(RP),
intent(in) :: val (
ka,
ia,
ja)
816 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
817 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
818 real(RP),
intent(in) :: J23G (
ka,
ia,
ja)
819 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
820 real(RP),
intent(in) :: CDZ (
ka)
821 integer,
intent(in) :: IIS, IIE, JJS, JJE
834 vel = ( f2h(k,1,
i_uyz) &
835 * 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) ) &
837 * 0.25_rp * ( mom(k,i,j)+mom(k,i+1,j)+mom(k,i,j-1)+mom(k,i+1,j-1) ) ) &
839 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i+1,j) ) &
841 * 0.5_rp * ( dens(k,i,j)+dens(k,i+1,j) ) )
842 vel = vel * j23g(k,i,j)
843 flux(k,i,j) = vel / mapf(i,j,+1) &
844 * ( f1 * ( val(k+1,i,j)+val(k,i,j) ) - sign(f1,vel) * ( val(k+1,i,j)-val(k,i,j) ) )
858 flux(
ks-1,i,j) = 0.0_rp
860 flux(
ke ,i,j) = 0.0_rp
878 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
879 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
880 real(RP),
intent(in) :: val (
ka,
ia,
ja)
881 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
882 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
883 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
884 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
885 real(RP),
intent(in) :: CDZ (
ka)
886 integer,
intent(in) :: IIS, IIE, JJS, JJE
901 call check( __line__, mom(k,i ,j) )
902 call check( __line__, mom(k,i-1,j) )
904 call check( __line__, val(k,i-1,j) )
905 call check( __line__, val(k,i,j) )
908 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i-1,j) ) ) &
910 flux(k,i-1,j) = gsqrt(k,i,j) / mapf(i,j,+2) * vel &
911 * ( f1 * ( val(k,i,j)+val(k,i-1,j) ) - sign(f1,vel) * ( val(k,i,j)-val(k,i-1,j) ) )
916 k = iundef; i = iundef; j = iundef
933 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
934 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
935 real(RP),
intent(in) :: val (
ka,
ia,
ja)
936 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
937 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
938 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
939 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
940 real(RP),
intent(in) :: CDZ (
ka)
941 integer,
intent(in) :: IIS, IIE, JJS, JJE
954 call check( __line__, mom(k,i ,j) )
955 call check( __line__, mom(k,i-1,j) )
957 call check( __line__, val(k,i,j) )
958 call check( __line__, val(k,i,j+1) )
961 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i+1,j) ) ) &
962 / ( 0.25_rp * ( dens(k,i,j)+dens(k,i+1,j)+dens(k,i,j+1)+dens(k,i+1,j+1) ) )
963 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+1) * vel &
964 * ( f1 * ( val(k,i,j+1)+val(k,i,j) ) - sign(f1,vel) * ( val(k,i,j+1)-val(k,i,j) ) )
969 k = iundef; i = iundef; j = iundef
988 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
989 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
990 real(RP),
intent(in) :: val (
ka,
ia,
ja)
991 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
992 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
993 real(RP),
intent(in) :: J33G
994 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
995 real(RP),
intent(in) :: CDZ (
ka)
996 integer,
intent(in) :: IIS, IIE, JJS, JJE
1010 call check( __line__, mom(k,i,j) )
1011 call check( __line__, mom(k,i,j+1) )
1013 call check( __line__, val(k,i,j) )
1014 call check( __line__, val(k+1,i,j) )
1017 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j+1) ) ) &
1018 / ( f2h(k,1,
i_xvz) &
1019 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
1021 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
1022 flux(k,i,j) = j33g * vel &
1023 * ( f1 * ( val(k+1,i,j)+val(k,i,j) ) - sign(f1,vel) * ( val(k+1,i,j)-val(k,i,j) ) )
1028 k = iundef; i = iundef; j = iundef
1042 flux(
ks-1,i,j) = 0.0_rp
1044 flux(
ke,i,j) = 0.0_rp
1048 k = iundef; i = iundef; j = iundef
1059 GSQRT, J13G, MAPF, &
1061 IIS, IIE, JJS, JJE )
1064 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1065 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1066 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1067 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1068 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1069 real(RP),
intent(in) :: J13G (
ka,
ia,
ja)
1070 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1071 real(RP),
intent(in) :: CDZ (
ka)
1072 integer,
intent(in) :: IIS, IIE, JJS, JJE
1085 vel = ( f2h(k,1,
i_xvz) &
1086 * 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) ) &
1088 * 0.25_rp * ( mom(k,i,j)+mom(k,i-1,j)+mom(k,i,j+1)+mom(k,i-1,j+1) ) ) &
1089 / ( f2h(k,1,
i_xvz) &
1090 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
1092 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
1093 vel = vel * j13g(k,i,j)
1094 flux(k,i,j) = vel / mapf(i,j,+2) &
1095 * ( f1 * ( val(k+1,i,j)+val(k,i,j) ) - sign(f1,vel) * ( val(k+1,i,j)-val(k,i,j) ) )
1109 flux(
ks-1,i,j) = 0.0_rp
1111 flux(
ke ,i,j) = 0.0_rp
1123 GSQRT, J23G, MAPF, &
1125 IIS, IIE, JJS, JJE )
1128 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1129 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1130 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1131 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1132 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1133 real(RP),
intent(in) :: J23G (
ka,
ia,
ja)
1134 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1135 real(RP),
intent(in) :: CDZ (
ka)
1136 integer,
intent(in) :: IIS, IIE, JJS, JJE
1149 vel = ( f2h(k,1,
i_xvz) &
1153 / ( f2h(k,1,
i_xvz) &
1154 * 0.5_rp * ( dens(k+1,i,j)+dens(k+1,i,j+1) ) &
1156 * 0.5_rp * ( dens(k,i,j)+dens(k,i,j+1) ) )
1157 vel = vel * j23g(k,i,j)
1158 flux(k,i,j) = vel / mapf(i,j,+1) &
1159 * ( f1 * ( val(k+1,i,j)+val(k,i,j) ) - sign(f1,vel) * ( val(k+1,i,j)-val(k,i,j) ) )
1173 flux(
ks-1,i,j) = 0.0_rp
1175 flux(
ke ,i,j) = 0.0_rp
1190 IIS, IIE, JJS, JJE )
1193 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1194 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1195 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1196 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1197 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1198 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1199 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1200 real(RP),
intent(in) :: CDZ (
ka)
1201 integer,
intent(in) :: IIS, IIE, JJS, JJE
1214 call check( __line__, mom(k,i ,j) )
1215 call check( __line__, mom(k,i,j-1) )
1217 call check( __line__, val(k,i,j) )
1218 call check( __line__, val(k,i+1,j) )
1221 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j+1) ) ) &
1222 / ( 0.25_rp * ( dens(k,i,j)+dens(k,i+1,j)+dens(k,i,j+1)+dens(k,i+1,j+1) ) )
1223 flux(k,i,j) = gsqrt(k,i,j) / mapf(i,j,+2) * vel &
1224 * ( f1 * ( val(k,i+1,j)+val(k,i,j) ) - sign(f1,vel) * ( val(k,i+1,j)-val(k,i,j) ) )
1229 k = iundef; i = iundef; j = iundef
1243 IIS, IIE, JJS, JJE )
1246 real(RP),
intent(inout) :: flux (
ka,
ia,
ja)
1247 real(RP),
intent(in) :: mom (
ka,
ia,
ja)
1248 real(RP),
intent(in) :: val (
ka,
ia,
ja)
1249 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
1250 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja)
1251 real(RP),
intent(in) :: MAPF (
ia,
ja,2)
1252 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja)
1253 real(RP),
intent(in) :: CDZ (
ka)
1254 integer,
intent(in) :: IIS, IIE, JJS, JJE
1269 call check( __line__, mom(k,i ,j) )
1270 call check( __line__, mom(k,i,j-1) )
1272 call check( __line__, val(k,i,j-1) )
1273 call check( __line__, val(k,i,j) )
1276 vel = ( 0.5_rp * ( mom(k,i,j)+mom(k,i,j-1) ) ) &
1278 flux(k,i,j-1) = gsqrt(k,i,j) / mapf(i,j,+1) * vel &
1279 * ( f1 * ( val(k,i,j)+val(k,i,j-1) ) - sign(f1,vel) * ( val(k,i,j)-val(k,i,j-1) ) )
1284 k = iundef; i = iundef; j = iundef
subroutine, public atmos_dyn_fvm_fluxx_xyw_ud1(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation X-flux at XYW
subroutine, public atmos_dyn_fvm_fluxj23_xvz_ud1(flux, mom, val, DENS, GSQRT, J23G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J23-flux at XVZ
subroutine, public atmos_dyn_fvm_fluxy_xyz_ud1(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation Y-flux at XYZ
subroutine, public atmos_dyn_fvm_fluxy_xyw_ud1(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation Y-flux at XYW
subroutine, public atmos_dyn_fvm_fluxz_xyz_ud1(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation z-flux at XYZ
integer, public ia
of whole cells: x, local, with HALO
subroutine, public atmos_dyn_fvm_fluxy_xvz_ud1(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation Y-flux at XV
subroutine, public atmos_dyn_fvm_fluxj13_uyz_ud1(flux, mom, val, DENS, GSQRT, J13G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J13-flux at UYZ
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_fluxj13_xyw_ud1(flux, mom, val, DENS, GSQRT, J13G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J13-flux at XYW
subroutine, public atmos_dyn_fvm_fluxx_uyz_ud1(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation X-flux at UY
subroutine, public atmos_dyn_fvm_fluxj13_xvz_ud1(flux, mom, val, DENS, GSQRT, J13G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J13-flux at XVZ
subroutine, public atmos_dyn_fvm_fluxz_xvz_ud1(flux, mom, val, DENS, GSQRT, J33G, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation z-flux at XV
module atmosphere / grid / cartesC index
integer, public ke
end point of inner domain: z, local
subroutine, public atmos_dyn_fvm_fluxz_uyz_ud1(flux, mom, val, DENS, GSQRT, J33G, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation z-flux at UY
integer, parameter, public const_undef2
undefined value (INT2)
integer, public ks
start point of inner domain: z, local
subroutine, public atmos_dyn_fvm_fluxy_uyz_ud1(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation Y-flux at UY
subroutine, public atmos_dyn_fvm_fluxx_xvz_ud1(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation X-flux at XV
real(rp), public const_eps
small number
subroutine, public atmos_dyn_fvm_fluxj23_uyz_ud1(flux, mom, val, DENS, GSQRT, J23G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J23-flux at UYZ
subroutine, public atmos_dyn_fvm_fluxj23_xyw_ud1(flux, mom, val, DENS, GSQRT, J23G, MAPF, CDZ, IIS, IIE, JJS, JJE)
calculation J23-flux at XYW
integer, public ka
of whole cells: z, local, with HALO
subroutine, public atmos_dyn_fvm_flux_valuew_z_ud1(valW, mflx, val, GSQRT, CDZ)
value at XYW
subroutine, public atmos_dyn_fvm_fluxz_xyw_ud1(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_xyz_ud1(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation X-flux at XYZ
module scale_atmos_dyn_fvm_flux_ud1