Go to the documentation of this file.
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 :: F41 = 7.0_rp/12.0_rp
88 real(RP),
parameter :: F42 = -1.0_rp/12.0_rp
105 real(rp),
intent(out) :: valw (
ka)
106 real(rp),
intent(in) :: mflx (
ka)
107 real(rp),
intent(in) :: val (
ka)
108 real(rp),
intent(in) :: gsqrt(
ka)
109 real(rp),
intent(in) :: cdz (
ka)
116 call check( __line__, mflx(
k) )
118 call check( __line__, val(
k) )
119 call check( __line__, val(
k+1) )
121 call check( __line__, val(
k-1) )
122 call check( __line__, val(
k+2) )
125 valw(
k) = f41 * ( val(
k+1)+val(
k) ) &
126 + f42 * ( val(
k+2)+val(
k-1) )
134 call check( __line__, mflx(
ks) )
135 call check( __line__, val(
ks ) )
136 call check( __line__, val(
ks+1) )
137 call check( __line__, mflx(
ke-1) )
138 call check( __line__, val(
ke ) )
139 call check( __line__, val(
ke-1) )
143 valw(
ks) = f2 * ( val(
ks+1)+val(
ks) )
144 valw(
ke-1) = f2 * ( val(
ke)+val(
ke-1) )
162 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
163 real(rp),
intent(in) :: mflx (
ka,
ia,
ja)
164 real(rp),
intent(in) :: val (
ka,
ia,
ja)
165 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
166 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
167 real(rp),
intent(in) :: cdz (
ka)
168 integer,
intent(in) :: iis, iie, jjs, jje
185 call check( __line__, mflx(
k,i,j) )
187 call check( __line__, val(
k,i,j) )
188 call check( __line__, val(
k+1,i,j) )
190 call check( __line__, val(
k-1,i,j) )
191 call check( __line__, val(
k+2,i,j) )
196 * ( f41 * ( val(
k+1,i,j)+val(
k,i,j) ) &
197 + f42 * ( val(
k+2,i,j)+val(
k-1,i,j) ) ) &
198 + gsqrt(
k,i,j) * num_diff(
k,i,j)
205 k = iundef; i = iundef; j = iundef
214 call check( __line__, mflx(
ks,i,j) )
215 call check( __line__, val(
ks ,i,j) )
216 call check( __line__, val(
ks+1,i,j) )
217 call check( __line__, mflx(
ke-1,i,j) )
218 call check( __line__, val(
ke ,i,j) )
219 call check( __line__, val(
ke-1,i,j) )
222 flux(
ks-1,i,j) = 0.0_rp
226 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
227 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
229 flux(
ke-1,i,j) = vel &
230 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
231 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
233 flux(
ke ,i,j) = 0.0_rp
243 k = iundef; i = iundef; j = iundef
259 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
260 real(rp),
intent(in) :: mflx (
ka,
ia,
ja)
261 real(rp),
intent(in) :: val (
ka,
ia,
ja)
262 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
263 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
264 real(rp),
intent(in) :: cdz(
ka)
265 integer,
intent(in) :: iis, iie, jjs, jje
279 call check( __line__, mflx(
k,i,j) )
281 call check( __line__, val(
k,i,j) )
282 call check( __line__, val(
k,i+1,j) )
284 call check( __line__, val(
k,i-1,j) )
285 call check( __line__, val(
k,i+2,j) )
290 * ( f41 * ( val(
k,i+1,j)+val(
k,i,j) ) &
291 + f42 * ( val(
k,i+2,j)+val(
k,i-1,j) ) ) &
292 + gsqrt(
k,i,j) * num_diff(
k,i,j)
298 k = iundef; i = iundef; j = iundef
314 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
315 real(rp),
intent(in) :: mflx (
ka,
ia,
ja)
316 real(rp),
intent(in) :: val (
ka,
ia,
ja)
317 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
318 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
319 real(rp),
intent(in) :: cdz(
ka)
320 integer,
intent(in) :: iis, iie, jjs, jje
334 call check( __line__, mflx(
k,i,j) )
336 call check( __line__, val(
k,i,j) )
337 call check( __line__, val(
k,i,j+1) )
339 call check( __line__, val(
k,i,j-1) )
340 call check( __line__, val(
k,i,j+2) )
345 * ( f41 * ( val(
k,i,j+1)+val(
k,i,j) ) &
346 + f42 * ( val(
k,i,j+2)+val(
k,i,j-1) ) ) &
347 + gsqrt(
k,i,j) * num_diff(
k,i,j)
353 k = iundef; i = iundef; j = iundef
372 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
373 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
374 real(rp),
intent(in) :: val (
ka,
ia,
ja)
375 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
376 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
377 real(rp),
intent(in) :: j33g
378 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
379 real(rp),
intent(in) :: cdz (
ka)
380 real(rp),
intent(in) :: fdz (
ka-1)
381 real(rp),
intent(in) :: dtrk
382 integer,
intent(in) :: iis, iie, jjs, jje
401 call check( __line__, mom(
k-1,i,j) )
402 call check( __line__, mom(
k ,i,j) )
404 call check( __line__, val(
k-1,i,j) )
405 call check( __line__, val(
k,i,j) )
407 call check( __line__, val(
k-2,i,j) )
408 call check( __line__, val(
k+1,i,j) )
411 vel = ( 0.5_rp * ( mom(
k-1,i,j) &
414 flux(
k-1,i,j) = j33g * vel &
415 * ( f41 * ( val(
k,i,j)+val(
k-1,i,j) ) &
416 + f42 * ( val(
k+1,i,j)+val(
k-2,i,j) ) ) &
417 + gsqrt(
k,i,j) * num_diff(
k,i,j)
424 k = iundef; i = iundef; j = iundef
433 call check( __line__, val(
ks,i,j) )
434 call check( __line__, val(
ks+1,i,j) )
441 flux(
ks-1,i,j) = 0.0_rp
443 vel = ( 0.5_rp * ( mom(
ks,i,j) &
444 + mom(
ks+1,i,j) ) ) &
446 flux(
ks,i,j) = j33g * vel &
447 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
448 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
452 flux(
ke-1,i,j) = 0.0_rp
453 flux(
ke ,i,j) = 0.0_rp
477 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
478 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
479 real(rp),
intent(in) :: val (
ka,
ia,
ja)
480 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
481 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
482 real(rp),
intent(in) :: j13g (
ka,
ia,
ja)
483 real(rp),
intent(in) :: mapf (
ia,
ja,2)
484 real(rp),
intent(in) :: cdz (
ka)
485 logical,
intent(in) :: twod
486 integer,
intent(in) :: iis, iie, jjs, jje
502 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i-1,j) ) ) &
504 vel = vel * j13g(
k,i,j)
505 flux(
k-1,i,j) = vel / mapf(i,j,+2) &
506 * ( f41 * ( val(
k,i,j)+val(
k-1,i,j) ) &
507 + f42 * ( val(
k+1,i,j)+val(
k-2,i,j) ) )
521 flux(
ks-1,i,j) = 0.0_rp
524 vel = ( ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i-1,j) ) ) / dens(
ks+1,i,j) &
525 + ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j) ) ) / dens(
ks ,i,j) ) * 0.5_rp
528 vel = vel * j13g(
ks+1,i,j)
529 flux(
ks,i,j) = vel / mapf(i,j,+2) &
530 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
533 flux(
ke-1,i,j) = 0.0_rp
556 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
557 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
558 real(rp),
intent(in) :: val (
ka,
ia,
ja)
559 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
560 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
561 real(rp),
intent(in) :: j23g (
ka,
ia,
ja)
562 real(rp),
intent(in) :: mapf (
ia,
ja,2)
563 real(rp),
intent(in) :: cdz (
ka)
564 logical,
intent(in) :: twod
565 integer,
intent(in) :: iis, iie, jjs, jje
581 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j-1) ) ) &
583 vel = vel * j23g(
k,i,j)
584 flux(
k-1,i,j) = vel / mapf(i,j,+1) &
585 * ( f41 * ( val(
k,i,j)+val(
k-1,i,j) ) &
586 + f42 * ( val(
k+1,i,j)+val(
k-2,i,j) ) )
600 flux(
ks-1,i,j) = 0.0_rp
603 vel = ( ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j-1) ) ) / dens(
ks+1,i,j) &
604 + ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j-1) ) ) / dens(
ks ,i,j) ) * 0.5_rp
607 vel = vel * j23g(
ks+1,i,j)
608 flux(
ks,i,j) = vel / mapf(i,j,+1) &
609 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
612 flux(
ke-1,i,j) = 0.0_rp
637 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
638 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
639 real(rp),
intent(in) :: val (
ka,
ia,
ja)
640 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
641 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
642 real(rp),
intent(in) :: mapf (
ia,
ja,2)
643 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
644 real(rp),
intent(in) :: cdz (
ka)
645 logical,
intent(in) :: twod
646 integer,
intent(in) :: iis, iie, jjs, jje
664 call check( __line__, mom(
k ,i,j) )
665 call check( __line__, mom(
k+1,i,j) )
667 call check( __line__, val(
k,i,j) )
668 call check( __line__, val(
k,i+1,j) )
670 call check( __line__, val(
k,i-1,j) )
671 call check( __line__, val(
k,i+2,j) )
679 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
681 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
682 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+2) * vel &
683 * ( f41 * ( val(
k,i+1,j)+val(
k,i,j) ) &
684 + f42 * ( val(
k,i+2,j)+val(
k,i-1,j) ) ) &
685 + gsqrt(
k,i,j) * num_diff(
k,i,j)
692 k = iundef; i = iundef; j = iundef
699 flux(
ke,i,j) = 0.0_rp
709 k = iundef; i = iundef; j = iundef
726 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
727 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
728 real(rp),
intent(in) :: val (
ka,
ia,
ja)
729 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
730 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
731 real(rp),
intent(in) :: mapf (
ia,
ja,2)
732 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
733 real(rp),
intent(in) :: cdz (
ka)
734 logical,
intent(in) :: twod
735 integer,
intent(in) :: iis, iie, jjs, jje
753 call check( __line__, mom(
k ,i,j) )
754 call check( __line__, mom(
k+1,i,j) )
756 call check( __line__, val(
k,i,j) )
757 call check( __line__, val(
k,i,j+1) )
759 call check( __line__, val(
k,i,j-1) )
760 call check( __line__, val(
k,i,j+2) )
768 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
770 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
771 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
772 * ( f41 * ( val(
k,i,j+1)+val(
k,i,j) ) &
773 + f42 * ( val(
k,i,j+2)+val(
k,i,j-1) ) ) &
774 + gsqrt(
k,i,j) * num_diff(
k,i,j)
781 k = iundef; i = iundef; j = iundef
788 flux(
ke,i,j) = 0.0_rp
798 k = iundef; i = iundef; j = iundef
816 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
817 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
818 real(rp),
intent(in) :: val (
ka,
ia,
ja)
819 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
820 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
821 real(rp),
intent(in) :: j33g
822 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
823 real(rp),
intent(in) :: cdz (
ka)
824 logical,
intent(in) :: twod
825 integer,
intent(in) :: iis, iie, jjs, jje
846 call check( __line__, mom(
k,i,j) )
848 call check( __line__, val(
k,i,j) )
849 call check( __line__, val(
k+1,i,j) )
851 call check( __line__, val(
k-1,i,j) )
852 call check( __line__, val(
k+2,i,j) )
855 vel = ( mom(
k,i,j) ) &
860 flux(
k,i,j) = j33g * vel &
861 * ( f41 * ( val(
k+1,i,j)+val(
k,i,j) ) &
862 + f42 * ( val(
k+2,i,j)+val(
k-1,i,j) ) ) &
863 + gsqrt(
k,i,j) * num_diff(
k,i,j)
869 k = iundef; i = iundef; j = iundef
878 call check( __line__, mom(
ks,i ,j) )
879 call check( __line__, val(
ks+1,i,j) )
880 call check( __line__, val(
ks,i,j) )
886 flux(
ks-1,i,j) = 0.0_rp
888 vel = ( mom(
ks,i,j) ) &
893 flux(
ks,i,j) = j33g * vel &
894 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
895 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
896 vel = ( mom(
ke-1,i,j) ) &
901 flux(
ke-1,i,j) = j33g * vel &
902 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
903 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
905 flux(
ke,i,j) = 0.0_rp
919 call check( __line__, mom(
k,i,j) )
920 call check( __line__, mom(
k,i+1,j) )
922 call check( __line__, val(
k,i,j) )
923 call check( __line__, val(
k+1,i,j) )
925 call check( __line__, val(
k-1,i,j) )
926 call check( __line__, val(
k+2,i,j) )
929 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i+1,j) ) ) &
931 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
933 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
934 flux(
k,i,j) = j33g * vel &
935 * ( f41 * ( val(
k+1,i,j)+val(
k,i,j) ) &
936 + f42 * ( val(
k+2,i,j)+val(
k-1,i,j) ) ) &
937 + gsqrt(
k,i,j) * num_diff(
k,i,j)
944 k = iundef; i = iundef; j = iundef
953 call check( __line__, mom(
ks,i ,j) )
954 call check( __line__, mom(
ks,i+1,j) )
955 call check( __line__, val(
ks+1,i,j) )
956 call check( __line__, val(
ks,i,j) )
962 flux(
ks-1,i,j) = 0.0_rp
964 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j) ) ) &
966 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
968 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
969 flux(
ks,i,j) = j33g * vel &
970 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
971 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
972 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i+1,j) ) ) &
974 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
976 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
977 flux(
ke-1,i,j) = j33g * vel &
978 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
979 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
981 flux(
ke,i,j) = 0.0_rp
994 k = iundef; i = iundef; j = iundef
1005 GSQRT, J13G, MAPF, &
1007 IIS, IIE, JJS, JJE )
1010 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1011 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1012 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1013 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1014 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1015 real(rp),
intent(in) :: j13g (
ka,
ia,
ja)
1016 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1017 real(rp),
intent(in) :: cdz (
ka)
1018 logical,
intent(in) :: twod
1019 integer,
intent(in) :: iis, iie, jjs, jje
1043 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
1045 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
1046 vel = vel * j13g(
k,i,j)
1047 flux(
k,i,j) = vel / mapf(i,j,+2) &
1048 * ( f41 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1049 + f42 * ( val(
k+2,i,j)+val(
k-1,i,j) ) )
1063 flux(
ks-1,i,j) = 0.0_rp
1070 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1072 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1073 vel = vel * j13g(
ks,i,j)
1074 flux(
ks,i,j) = vel / mapf(i,j,+2) &
1075 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1082 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1084 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1085 vel = vel * j13g(
ke-1,i,j)
1086 flux(
ke-1,i,j) = vel / mapf(i,j,+2) &
1087 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1089 flux(
ke ,i,j) = 0.0_rp
1108 GSQRT, J23G, MAPF, &
1110 IIS, IIE, JJS, JJE )
1113 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1114 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1115 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1116 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1117 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1118 real(rp),
intent(in) :: j23g (
ka,
ia,
ja)
1119 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1120 real(rp),
intent(in) :: cdz (
ka)
1121 logical,
intent(in) :: twod
1122 integer,
intent(in) :: iis, iie, jjs, jje
1143 * 0.5_rp * ( mom(
k+1,i,j)+mom(
k+1,i,j-1) ) &
1145 * 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j-1) ) ) &
1150 vel = vel * j23g(
k,i,j)
1151 flux(
k,i,j) = vel * ( f41 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1152 + f42 * ( val(
k+2,i,j)+val(
k-1,i,j) ) )
1165 flux(
ks-1,i,j) = 0.0_rp
1168 * 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j-1) ) &
1170 * 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j-1) ) ) &
1175 vel = vel * j23g(
ks,i,j)
1176 flux(
ks,i,j) = vel / mapf(i,j,+1) &
1177 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1180 * 0.5_rp * ( mom(
ke,i,j)+mom(
ke,i,j-1) ) &
1182 * 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j-1) ) ) &
1187 vel = vel * j23g(
ke-1,i,j)
1188 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
1189 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1191 flux(
ke ,i,j) = 0.0_rp
1205 * 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) ) &
1207 * 0.25_rp * ( mom(
k,i,j)+mom(
k,i+1,j)+mom(
k,i,j-1)+mom(
k,i+1,j-1) ) ) &
1209 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
1211 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
1212 vel = vel * j23g(
k,i,j)
1213 flux(
k,i,j) = vel / mapf(i,j,+1) &
1214 * ( f41 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1215 + f42 * ( val(
k+2,i,j)+val(
k-1,i,j) ) )
1229 flux(
ks-1,i,j) = 0.0_rp
1232 * 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) ) &
1234 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j)+mom(
ks,i,j-1)+mom(
ks,i+1,j-1) ) ) &
1236 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1238 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1239 vel = vel * j23g(
ks,i,j)
1240 flux(
ks,i,j) = vel / mapf(i,j,+1) &
1241 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1244 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i+1,j)+mom(
ke,i,j-1)+mom(
ke,i+1,j-1) ) &
1246 * 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) ) ) &
1248 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1250 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1251 vel = vel * j23g(
ke-1,i,j)
1252 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
1253 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1255 flux(
ke ,i,j) = 0.0_rp
1279 IIS, IIE, JJS, JJE )
1282 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1283 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1284 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1285 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1286 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1287 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1288 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1289 real(rp),
intent(in) :: cdz (
ka)
1290 logical,
intent(in) :: twod
1291 integer,
intent(in) :: iis, iie, jjs, jje
1309 call check( __line__, mom(
k,i ,j) )
1310 call check( __line__, mom(
k,i-1,j) )
1312 call check( __line__, val(
k,i-1,j) )
1313 call check( __line__, val(
k,i,j) )
1315 call check( __line__, val(
k,i-2,j) )
1316 call check( __line__, val(
k,i+1,j) )
1319 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i-1,j) ) ) &
1321 flux(
k,i-1,j) = gsqrt(
k,i,j) / mapf(i,j,+2) * vel &
1322 * ( f41 * ( val(
k,i,j)+val(
k,i-1,j) ) &
1323 + f42 * ( val(
k,i+1,j)+val(
k,i-2,j) ) ) &
1324 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1330 k = iundef; i = iundef; j = iundef
1346 IIS, IIE, JJS, JJE )
1349 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1350 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1351 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1352 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1353 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1354 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1355 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1356 real(rp),
intent(in) :: cdz (
ka)
1357 logical,
intent(in) :: twod
1358 integer,
intent(in) :: iis, iie, jjs, jje
1376 call check( __line__, mom(
k,i ,j) )
1378 call check( __line__, val(
k,i,j) )
1379 call check( __line__, val(
k,i,j+1) )
1381 call check( __line__, val(
k,i,j-1) )
1382 call check( __line__, val(
k,i,j+2) )
1385 vel = ( mom(
k,i,j) ) &
1386 / ( 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
1387 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
1388 * ( f41 * ( val(
k,i,j+1)+val(
k,i,j) ) &
1389 + f42 * ( val(
k,i,j+2)+val(
k,i,j-1) ) ) &
1390 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1395 k = iundef; i = iundef; j = iundef
1409 call check( __line__, mom(
k,i ,j) )
1410 call check( __line__, mom(
k,i-1,j) )
1412 call check( __line__, val(
k,i,j) )
1413 call check( __line__, val(
k,i,j+1) )
1415 call check( __line__, val(
k,i,j-1) )
1416 call check( __line__, val(
k,i,j+2) )
1419 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i+1,j) ) ) &
1420 / ( 0.25_rp * ( dens(
k,i,j)+dens(
k,i+1,j)+dens(
k,i,j+1)+dens(
k,i+1,j+1) ) )
1421 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
1422 * ( f41 * ( val(
k,i,j+1)+val(
k,i,j) ) &
1423 + f42 * ( val(
k,i,j+2)+val(
k,i,j-1) ) ) &
1424 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1430 k = iundef; i = iundef; j = iundef
1450 IIS, IIE, JJS, JJE )
1453 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1454 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1455 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1456 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1457 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1458 real(rp),
intent(in) :: j33g
1459 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1460 real(rp),
intent(in) :: cdz (
ka)
1461 logical,
intent(in) :: twod
1462 integer,
intent(in) :: iis, iie, jjs, jje
1481 call check( __line__, mom(
k,i,j) )
1482 call check( __line__, mom(
k,i,j+1) )
1484 call check( __line__, val(
k,i,j) )
1485 call check( __line__, val(
k+1,i,j) )
1487 call check( __line__, val(
k-1,i,j) )
1488 call check( __line__, val(
k+2,i,j) )
1491 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j+1) ) ) &
1493 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
1495 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
1496 flux(
k,i,j) = j33g * vel &
1497 * ( f41 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1498 + f42 * ( val(
k+2,i,j)+val(
k-1,i,j) ) ) &
1499 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1506 k = iundef; i = iundef; j = iundef
1515 call check( __line__, mom(
ks,i ,j) )
1516 call check( __line__, mom(
ks,i,j+1) )
1517 call check( __line__, val(
ks+1,i,j) )
1518 call check( __line__, val(
ks,i,j) )
1524 flux(
ks-1,i,j) = 0.0_rp
1526 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j+1) ) ) &
1528 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1530 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1531 flux(
ks,i,j) = j33g * vel &
1532 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
1533 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
1534 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j+1) ) ) &
1536 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1538 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1539 flux(
ke-1,i,j) = j33g * vel &
1540 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
1541 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
1543 flux(
ke,i,j) = 0.0_rp
1554 k = iundef; i = iundef; j = iundef
1565 GSQRT, J13G, MAPF, &
1567 IIS, IIE, JJS, JJE )
1570 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1571 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1572 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1573 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1574 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1575 real(rp),
intent(in) :: j13g (
ka,
ia,
ja)
1576 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1577 real(rp),
intent(in) :: cdz (
ka)
1578 logical,
intent(in) :: twod
1579 integer,
intent(in) :: iis, iie, jjs, jje
1599 * 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) ) &
1601 * 0.25_rp * ( mom(
k,i,j)+mom(
k,i-1,j)+mom(
k,i,j+1)+mom(
k,i-1,j+1) ) ) &
1603 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
1605 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
1606 vel = vel * j13g(
k,i,j)
1607 flux(
k,i,j) = vel / mapf(i,j,+2) &
1608 * ( f41 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1609 + f42 * ( val(
k+2,i,j)+val(
k-1,i,j) ) )
1623 flux(
ks-1,i,j) = 0.0_rp
1626 * 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) ) &
1628 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j)+mom(
ks,i,j+1)+mom(
ks,i-1,j+1) ) ) &
1630 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1632 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1633 vel = vel * j13g(
ks,i,j)
1634 flux(
ks,i,j) = vel / mapf(i,j,+2) &
1635 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1638 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i-1,j)+mom(
ke,i,j+1)+mom(
ke,i-1,j+1) ) &
1640 * 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) ) ) &
1642 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1644 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1645 vel = vel * j13g(
ke-1,i,j)
1646 flux(
ke-1,i,j) = vel / mapf(i,j,+2) &
1647 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1649 flux(
ke ,i,j) = 0.0_rp
1668 GSQRT, J23G, MAPF, &
1670 IIS, IIE, JJS, JJE )
1673 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1674 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1675 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1676 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1677 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1678 real(rp),
intent(in) :: j23g (
ka,
ia,
ja)
1679 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1680 real(rp),
intent(in) :: cdz (
ka)
1681 logical,
intent(in) :: twod
1682 integer,
intent(in) :: iis, iie, jjs, jje
1706 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
1708 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
1709 vel = vel * j23g(
k,i,j)
1710 flux(
k,i,j) = vel / mapf(i,j,+1) &
1711 * ( f41 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1712 + f42 * ( val(
k+2,i,j)+val(
k-1,i,j) ) )
1726 flux(
ks-1,i,j) = 0.0_rp
1733 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1735 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1736 vel = vel * j23g(
ks,i,j)
1737 flux(
ks,i,j) = vel / mapf(i,j,+1) &
1738 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1745 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1747 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1748 vel = vel * j23g(
ke-1,i,j)
1749 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
1750 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1752 flux(
ke ,i,j) = 0.0_rp
1774 IIS, IIE, JJS, JJE )
1777 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1778 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1779 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1780 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1781 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1782 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1783 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1784 real(rp),
intent(in) :: cdz (
ka)
1785 logical,
intent(in) :: twod
1786 integer,
intent(in) :: iis, iie, jjs, jje
1802 call check( __line__, mom(
k,i ,j) )
1803 call check( __line__, mom(
k,i,j-1) )
1805 call check( __line__, val(
k,i,j) )
1806 call check( __line__, val(
k,i+1,j) )
1808 call check( __line__, val(
k,i-1,j) )
1809 call check( __line__, val(
k,i+2,j) )
1812 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j+1) ) ) &
1813 / ( 0.25_rp * ( dens(
k,i,j)+dens(
k,i+1,j)+dens(
k,i,j+1)+dens(
k,i+1,j+1) ) )
1814 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+2) * vel &
1815 * ( f41 * ( val(
k,i+1,j)+val(
k,i,j) ) &
1816 + f42 * ( val(
k,i+2,j)+val(
k,i-1,j) ) ) &
1817 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1823 k = iundef; i = iundef; j = iundef
1839 IIS, IIE, JJS, JJE )
1842 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1843 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1844 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1845 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1846 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1847 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1848 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1849 real(rp),
intent(in) :: cdz (
ka)
1850 logical,
intent(in) :: twod
1851 integer,
intent(in) :: iis, iie, jjs, jje
1869 call check( __line__, mom(
k,i ,j) )
1870 call check( __line__, mom(
k,i,j-1) )
1872 call check( __line__, val(
k,i,j-1) )
1873 call check( __line__, val(
k,i,j) )
1875 call check( __line__, val(
k,i,j-2) )
1876 call check( __line__, val(
k,i,j+1) )
1879 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j-1) ) ) &
1881 flux(
k,i,j-1) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
1882 * ( f41 * ( val(
k,i,j)+val(
k,i,j-1) ) &
1883 + f42 * ( val(
k,i,j+1)+val(
k,i,j-2) ) ) &
1884 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1890 k = iundef; i = iundef; j = iundef
subroutine, public atmos_dyn_fvm_fluxx_xyw_cd4(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation X-flux at XYW
subroutine, public atmos_dyn_fvm_fluxz_xyw_cd4(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_fluxj13_xvz_cd4(flux, mom, val, DENS, GSQRT, J13G, MAPF, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation J13-flux at XVZ
integer, public ke
end point of inner domain: z, local
module scale_atmos_dyn_fvm_flux_cd4
subroutine, public atmos_dyn_fvm_fluxz_xyz_cd4(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation z-flux at XYZ
integer, parameter, public const_undef2
undefined value (INT2)
subroutine, public atmos_dyn_fvm_fluxy_xvz_cd4(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation Y-flux at XV
subroutine, public atmos_dyn_fvm_fluxz_xvz_cd4(flux, mom, val, DENS, GSQRT, J33G, num_diff, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation z-flux at XV
real(rp), public const_eps
small number
subroutine, public atmos_dyn_fvm_fluxj23_xvz_cd4(flux, mom, val, DENS, GSQRT, J23G, MAPF, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation J23-flux at XVZ
subroutine, public atmos_dyn_fvm_flux_valuew_z_cd4(valW, mflx, val, GSQRT, CDZ)
value at XYW
subroutine, public atmos_dyn_fvm_fluxj23_xyw_cd4(flux, mom, val, DENS, GSQRT, J23G, MAPF, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation J23-flux at XYW
subroutine, public atmos_dyn_fvm_fluxx_xyz_cd4(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation X-flux at XYZ
module atmosphere / grid / cartesC index
subroutine, public check(current_line, v)
Undefined value checker.
subroutine, public atmos_dyn_fvm_fluxy_uyz_cd4(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation Y-flux at UY
subroutine, public atmos_dyn_fvm_fluxx_uyz_cd4(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation X-flux at UY
subroutine, public atmos_dyn_fvm_fluxz_uyz_cd4(flux, mom, val, DENS, GSQRT, J33G, num_diff, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation z-flux at UY
subroutine, public atmos_dyn_fvm_fluxy_xyw_cd4(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation Y-flux at XYW
integer, public ks
start point of inner domain: z, local
subroutine, public atmos_dyn_fvm_fluxj13_xyw_cd4(flux, mom, val, DENS, GSQRT, J13G, MAPF, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation J13-flux at XYW
real(rp), public const_undef
subroutine, public atmos_dyn_fvm_fluxj13_uyz_cd4(flux, mom, val, DENS, GSQRT, J13G, MAPF, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation J13-flux at UYZ
subroutine, public atmos_dyn_fvm_fluxj23_uyz_cd4(flux, mom, val, DENS, GSQRT, J23G, MAPF, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation J23-flux at UYZ
subroutine, public atmos_dyn_fvm_fluxy_xyz_cd4(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation Y-flux at XYZ
subroutine, public atmos_dyn_fvm_fluxx_xvz_cd4(flux, mom, val, DENS, GSQRT, MAPF, num_diff, CDZ, TwoD, IIS, IIE, JJS, JJE)
calculation X-flux at XV