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
104 real(rp),
intent(out) :: valw (
ka)
105 real(rp),
intent(in) :: mflx (
ka)
106 real(rp),
intent(in) :: val (
ka)
107 real(rp),
intent(in) :: gsqrt(
ka)
108 real(rp),
intent(in) :: cdz (
ka)
115 call check( __line__, mflx(
k) )
117 call check( __line__, val(
k) )
118 call check( __line__, val(
k+1) )
120 call check( __line__, val(
k-1) )
121 call check( __line__, val(
k+2) )
124 valw(
k) = f41 * ( val(
k+1)+val(
k) ) &
125 + f42 * ( val(
k+2)+val(
k-1) )
133 call check( __line__, mflx(
ks) )
134 call check( __line__, val(
ks ) )
135 call check( __line__, val(
ks+1) )
136 call check( __line__, mflx(
ke-1) )
137 call check( __line__, val(
ke ) )
138 call check( __line__, val(
ke-1) )
142 valw(
ks) = f2 * ( val(
ks+1)+val(
ks) )
143 valw(
ke-1) = f2 * ( val(
ke)+val(
ke-1) )
161 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
162 real(rp),
intent(in) :: mflx (
ka,
ia,
ja)
163 real(rp),
intent(in) :: val (
ka,
ia,
ja)
164 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
165 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
166 real(rp),
intent(in) :: cdz (
ka)
167 integer,
intent(in) :: iis, iie, jjs, jje
181 call check( __line__, mflx(
k,i,j) )
183 call check( __line__, val(
k,i,j) )
184 call check( __line__, val(
k+1,i,j) )
186 call check( __line__, val(
k-1,i,j) )
187 call check( __line__, val(
k+2,i,j) )
192 * ( f41 * ( val(
k+1,i,j)+val(
k,i,j) ) &
193 + f42 * ( val(
k+2,i,j)+val(
k-1,i,j) ) ) &
194 + gsqrt(
k,i,j) * num_diff(
k,i,j)
200 k = iundef; i = iundef; j = iundef
208 call check( __line__, mflx(
ks,i,j) )
209 call check( __line__, val(
ks ,i,j) )
210 call check( __line__, val(
ks+1,i,j) )
211 call check( __line__, mflx(
ke-1,i,j) )
212 call check( __line__, val(
ke ,i,j) )
213 call check( __line__, val(
ke-1,i,j) )
216 flux(
ks-1,i,j) = 0.0_rp
220 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
221 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
223 flux(
ke-1,i,j) = vel &
224 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
225 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
227 flux(
ke ,i,j) = 0.0_rp
234 k = iundef; i = iundef; j = iundef
250 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
251 real(rp),
intent(in) :: mflx (
ka,
ia,
ja)
252 real(rp),
intent(in) :: val (
ka,
ia,
ja)
253 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
254 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
255 real(rp),
intent(in) :: cdz(
ka)
256 integer,
intent(in) :: iis, iie, jjs, jje
269 call check( __line__, mflx(
k,i,j) )
271 call check( __line__, val(
k,i,j) )
272 call check( __line__, val(
k,i+1,j) )
274 call check( __line__, val(
k,i-1,j) )
275 call check( __line__, val(
k,i+2,j) )
280 * ( f41 * ( val(
k,i+1,j)+val(
k,i,j) ) &
281 + f42 * ( val(
k,i+2,j)+val(
k,i-1,j) ) ) &
282 + gsqrt(
k,i,j) * num_diff(
k,i,j)
287 k = iundef; i = iundef; j = iundef
303 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
304 real(rp),
intent(in) :: mflx (
ka,
ia,
ja)
305 real(rp),
intent(in) :: val (
ka,
ia,
ja)
306 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
307 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
308 real(rp),
intent(in) :: cdz(
ka)
309 integer,
intent(in) :: iis, iie, jjs, jje
322 call check( __line__, mflx(
k,i,j) )
324 call check( __line__, val(
k,i,j) )
325 call check( __line__, val(
k,i,j+1) )
327 call check( __line__, val(
k,i,j-1) )
328 call check( __line__, val(
k,i,j+2) )
333 * ( f41 * ( val(
k,i,j+1)+val(
k,i,j) ) &
334 + f42 * ( val(
k,i,j+2)+val(
k,i,j-1) ) ) &
335 + gsqrt(
k,i,j) * num_diff(
k,i,j)
340 k = iundef; i = iundef; j = iundef
359 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
360 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
361 real(rp),
intent(in) :: val (
ka,
ia,
ja)
362 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
363 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
364 real(rp),
intent(in) :: j33g
365 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
366 real(rp),
intent(in) :: cdz (
ka)
367 real(rp),
intent(in) :: fdz (
ka-1)
368 real(rp),
intent(in) :: dtrk
369 integer,
intent(in) :: iis, iie, jjs, jje
385 call check( __line__, mom(
k-1,i,j) )
386 call check( __line__, mom(
k ,i,j) )
388 call check( __line__, val(
k-1,i,j) )
389 call check( __line__, val(
k,i,j) )
391 call check( __line__, val(
k-2,i,j) )
392 call check( __line__, val(
k+1,i,j) )
395 vel = ( 0.5_rp * ( mom(
k-1,i,j) &
398 flux(
k-1,i,j) = j33g * vel &
399 * ( f41 * ( val(
k,i,j)+val(
k-1,i,j) ) &
400 + f42 * ( val(
k+1,i,j)+val(
k-2,i,j) ) ) &
401 + gsqrt(
k,i,j) * num_diff(
k,i,j)
407 k = iundef; i = iundef; j = iundef
415 call check( __line__, val(
ks,i,j) )
416 call check( __line__, val(
ks+1,i,j) )
423 flux(
ks-1,i,j) = 0.0_rp
425 vel = ( 0.5_rp * ( mom(
ks,i,j) &
426 + mom(
ks+1,i,j) ) ) &
428 flux(
ks,i,j) = j33g * vel &
429 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
430 + gsqrt(
ks+1,i,j) * num_diff(
ks+1,i,j)
434 flux(
ke-1,i,j) = 0.0_rp
435 flux(
ke ,i,j) = 0.0_rp
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) :: j13g (
ka,
ia,
ja)
462 real(rp),
intent(in) :: mapf (
ia,
ja,2)
463 real(rp),
intent(in) :: cdz (
ka)
464 logical,
intent(in) :: twod
465 integer,
intent(in) :: iis, iie, jjs, jje
478 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i-1,j) ) ) &
480 vel = vel * j13g(
k,i,j)
481 flux(
k-1,i,j) = vel / mapf(i,j,+2) &
482 * ( f41 * ( val(
k,i,j)+val(
k-1,i,j) ) &
483 + f42 * ( val(
k+1,i,j)+val(
k-2,i,j) ) )
495 flux(
ks-1,i,j) = 0.0_rp
498 vel = ( ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i-1,j) ) ) / dens(
ks+1,i,j) &
499 + ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j) ) ) / dens(
ks ,i,j) ) * 0.5_rp
502 vel = vel * j13g(
ks+1,i,j)
503 flux(
ks,i,j) = vel / mapf(i,j,+2) &
504 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
507 flux(
ke-1,i,j) = 0.0_rp
527 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
528 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
529 real(rp),
intent(in) :: val (
ka,
ia,
ja)
530 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
531 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
532 real(rp),
intent(in) :: j23g (
ka,
ia,
ja)
533 real(rp),
intent(in) :: mapf (
ia,
ja,2)
534 real(rp),
intent(in) :: cdz (
ka)
535 logical,
intent(in) :: twod
536 integer,
intent(in) :: iis, iie, jjs, jje
549 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j-1) ) ) &
551 vel = vel * j23g(
k,i,j)
552 flux(
k-1,i,j) = vel / mapf(i,j,+1) &
553 * ( f41 * ( val(
k,i,j)+val(
k-1,i,j) ) &
554 + f42 * ( val(
k+1,i,j)+val(
k-2,i,j) ) )
566 flux(
ks-1,i,j) = 0.0_rp
569 vel = ( ( 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j-1) ) ) / dens(
ks+1,i,j) &
570 + ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j-1) ) ) / dens(
ks ,i,j) ) * 0.5_rp
573 vel = vel * j23g(
ks+1,i,j)
574 flux(
ks,i,j) = vel / mapf(i,j,+1) &
575 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
578 flux(
ke-1,i,j) = 0.0_rp
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 logical,
intent(in) :: twod
609 integer,
intent(in) :: iis, iie, jjs, jje
624 call check( __line__, mom(
k ,i,j) )
625 call check( __line__, mom(
k+1,i,j) )
627 call check( __line__, val(
k,i,j) )
628 call check( __line__, val(
k,i+1,j) )
630 call check( __line__, val(
k,i-1,j) )
631 call check( __line__, val(
k,i+2,j) )
639 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
641 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
642 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+2) * vel &
643 * ( f41 * ( val(
k,i+1,j)+val(
k,i,j) ) &
644 + f42 * ( val(
k,i+2,j)+val(
k,i-1,j) ) ) &
645 + gsqrt(
k,i,j) * num_diff(
k,i,j)
651 k = iundef; i = iundef; j = iundef
657 flux(
ke,i,j) = 0.0_rp
664 k = iundef; i = iundef; j = iundef
681 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
682 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
683 real(rp),
intent(in) :: val (
ka,
ia,
ja)
684 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
685 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
686 real(rp),
intent(in) :: mapf (
ia,
ja,2)
687 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
688 real(rp),
intent(in) :: cdz (
ka)
689 logical,
intent(in) :: twod
690 integer,
intent(in) :: iis, iie, jjs, jje
705 call check( __line__, mom(
k ,i,j) )
706 call check( __line__, mom(
k+1,i,j) )
708 call check( __line__, val(
k,i,j) )
709 call check( __line__, val(
k,i,j+1) )
711 call check( __line__, val(
k,i,j-1) )
712 call check( __line__, val(
k,i,j+2) )
720 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
722 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
723 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
724 * ( f41 * ( val(
k,i,j+1)+val(
k,i,j) ) &
725 + f42 * ( val(
k,i,j+2)+val(
k,i,j-1) ) ) &
726 + gsqrt(
k,i,j) * num_diff(
k,i,j)
732 k = iundef; i = iundef; j = iundef
738 flux(
ke,i,j) = 0.0_rp
745 k = iundef; i = iundef; j = iundef
763 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
764 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
765 real(rp),
intent(in) :: val (
ka,
ia,
ja)
766 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
767 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
768 real(rp),
intent(in) :: j33g
769 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
770 real(rp),
intent(in) :: cdz (
ka)
771 logical,
intent(in) :: twod
772 integer,
intent(in) :: iis, iie, jjs, jje
789 call check( __line__, mom(
k,i,j) )
791 call check( __line__, val(
k,i,j) )
792 call check( __line__, val(
k+1,i,j) )
794 call check( __line__, val(
k-1,i,j) )
795 call check( __line__, val(
k+2,i,j) )
799 vel = ( mom(
k,i,j) ) &
804 flux(
k,i,j) = j33g * vel &
805 * ( f41 * ( val(
k+1,i,j)+val(
k,i,j) ) &
806 + f42 * ( val(
k+2,i,j)+val(
k-1,i,j) ) ) &
807 + gsqrt(
k,i,j) * num_diff(
k,i,j)
812 k = iundef; i = iundef; j = iundef
819 call check( __line__, mom(
ks,i ,j) )
820 call check( __line__, val(
ks+1,i,j) )
821 call check( __line__, val(
ks,i,j) )
828 flux(
ks-1,i,j) = 0.0_rp
830 vel = ( mom(
ks,i,j) ) &
835 flux(
ks,i,j) = j33g * vel &
836 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
837 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
838 vel = ( mom(
ke-1,i,j) ) &
843 flux(
ke-1,i,j) = j33g * vel &
844 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
845 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
847 flux(
ke,i,j) = 0.0_rp
859 call check( __line__, mom(
k,i,j) )
860 call check( __line__, mom(
k,i+1,j) )
862 call check( __line__, val(
k,i,j) )
863 call check( __line__, val(
k+1,i,j) )
865 call check( __line__, val(
k-1,i,j) )
866 call check( __line__, val(
k+2,i,j) )
869 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i+1,j) ) ) &
871 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
873 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
874 flux(
k,i,j) = j33g * vel &
875 * ( f41 * ( val(
k+1,i,j)+val(
k,i,j) ) &
876 + f42 * ( val(
k+2,i,j)+val(
k-1,i,j) ) ) &
877 + gsqrt(
k,i,j) * num_diff(
k,i,j)
883 k = iundef; i = iundef; j = iundef
891 call check( __line__, mom(
ks,i ,j) )
892 call check( __line__, mom(
ks,i+1,j) )
893 call check( __line__, val(
ks+1,i,j) )
894 call check( __line__, val(
ks,i,j) )
900 flux(
ks-1,i,j) = 0.0_rp
902 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j) ) ) &
904 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
906 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
907 flux(
ks,i,j) = j33g * vel &
908 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
909 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
910 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i+1,j) ) ) &
912 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
914 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
915 flux(
ke-1,i,j) = j33g * vel &
916 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
917 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
919 flux(
ke,i,j) = 0.0_rp
929 k = iundef; i = iundef; j = iundef
945 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
946 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
947 real(rp),
intent(in) :: val (
ka,
ia,
ja)
948 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
949 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
950 real(rp),
intent(in) :: j13g (
ka,
ia,
ja)
951 real(rp),
intent(in) :: mapf (
ia,
ja,2)
952 real(rp),
intent(in) :: cdz (
ka)
953 logical,
intent(in) :: twod
954 integer,
intent(in) :: iis, iie, jjs, jje
975 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
977 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
978 vel = vel * j13g(
k,i,j)
979 flux(
k,i,j) = vel / mapf(i,j,+2) &
980 * ( f41 * ( val(
k+1,i,j)+val(
k,i,j) ) &
981 + f42 * ( val(
k+2,i,j)+val(
k-1,i,j) ) )
993 flux(
ks-1,i,j) = 0.0_rp
1000 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1002 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1003 vel = vel * j13g(
ks,i,j)
1004 flux(
ks,i,j) = vel / mapf(i,j,+2) &
1005 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1012 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1014 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1015 vel = vel * j13g(
ke-1,i,j)
1016 flux(
ke-1,i,j) = vel / mapf(i,j,+2) &
1017 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1019 flux(
ke ,i,j) = 0.0_rp
1035 GSQRT, J23G, MAPF, &
1037 IIS, IIE, JJS, JJE )
1040 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1041 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1042 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1043 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1044 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1045 real(rp),
intent(in) :: j23g (
ka,
ia,
ja)
1046 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1047 real(rp),
intent(in) :: cdz (
ka)
1048 logical,
intent(in) :: twod
1049 integer,
intent(in) :: iis, iie, jjs, jje
1067 * 0.5_rp * ( mom(
k+1,i,j)+mom(
k+1,i,j-1) ) &
1069 * 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j-1) ) ) &
1074 vel = vel * j23g(
k,i,j)
1075 flux(
k,i,j) = vel * ( f41 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1076 + f42 * ( val(
k+2,i,j)+val(
k-1,i,j) ) )
1087 flux(
ks-1,i,j) = 0.0_rp
1090 * 0.5_rp * ( mom(
ks+1,i,j)+mom(
ks+1,i,j-1) ) &
1092 * 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j-1) ) ) &
1097 vel = vel * j23g(
ks,i,j)
1098 flux(
ks,i,j) = vel / mapf(i,j,+1) &
1099 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1102 * 0.5_rp * ( mom(
ke,i,j)+mom(
ke,i,j-1) ) &
1104 * 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j-1) ) ) &
1109 vel = vel * j23g(
ke-1,i,j)
1110 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
1111 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1113 flux(
ke ,i,j) = 0.0_rp
1125 * 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) ) &
1127 * 0.25_rp * ( mom(
k,i,j)+mom(
k,i+1,j)+mom(
k,i,j-1)+mom(
k,i+1,j-1) ) ) &
1129 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i+1,j) ) &
1131 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i+1,j) ) )
1132 vel = vel * j23g(
k,i,j)
1133 flux(
k,i,j) = vel / mapf(i,j,+1) &
1134 * ( f41 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1135 + f42 * ( val(
k+2,i,j)+val(
k-1,i,j) ) )
1147 flux(
ks-1,i,j) = 0.0_rp
1150 * 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) ) &
1152 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i+1,j)+mom(
ks,i,j-1)+mom(
ks,i+1,j-1) ) ) &
1154 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i+1,j) ) &
1156 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i+1,j) ) )
1157 vel = vel * j23g(
ks,i,j)
1158 flux(
ks,i,j) = vel / mapf(i,j,+1) &
1159 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1162 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i+1,j)+mom(
ke,i,j-1)+mom(
ke,i+1,j-1) ) &
1164 * 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) ) ) &
1166 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i+1,j) ) &
1168 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i+1,j) ) )
1169 vel = vel * j23g(
ke-1,i,j)
1170 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
1171 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1173 flux(
ke ,i,j) = 0.0_rp
1194 IIS, IIE, JJS, JJE )
1197 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1198 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1199 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1200 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1201 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1202 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1203 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1204 real(rp),
intent(in) :: cdz (
ka)
1205 logical,
intent(in) :: twod
1206 integer,
intent(in) :: iis, iie, jjs, jje
1223 call check( __line__, mom(
k,i ,j) )
1224 call check( __line__, mom(
k,i-1,j) )
1226 call check( __line__, val(
k,i-1,j) )
1227 call check( __line__, val(
k,i,j) )
1229 call check( __line__, val(
k,i-2,j) )
1230 call check( __line__, val(
k,i+1,j) )
1233 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i-1,j) ) ) &
1235 flux(
k,i-1,j) = gsqrt(
k,i,j) / mapf(i,j,+2) * vel &
1236 * ( f41 * ( val(
k,i,j)+val(
k,i-1,j) ) &
1237 + f42 * ( val(
k,i+1,j)+val(
k,i-2,j) ) ) &
1238 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1243 k = iundef; i = iundef; j = iundef
1259 IIS, IIE, JJS, JJE )
1262 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1263 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1264 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1265 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1266 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1267 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1268 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1269 real(rp),
intent(in) :: cdz (
ka)
1270 logical,
intent(in) :: twod
1271 integer,
intent(in) :: iis, iie, jjs, jje
1288 call check( __line__, mom(
k,i ,j) )
1290 call check( __line__, val(
k,i,j) )
1291 call check( __line__, val(
k,i,j+1) )
1293 call check( __line__, val(
k,i,j-1) )
1294 call check( __line__, val(
k,i,j+2) )
1297 vel = ( mom(
k,i,j) ) &
1298 / ( 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
1299 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
1300 * ( f41 * ( val(
k,i,j+1)+val(
k,i,j) ) &
1301 + f42 * ( val(
k,i,j+2)+val(
k,i,j-1) ) ) &
1302 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1306 k = iundef; i = iundef; j = iundef
1319 call check( __line__, mom(
k,i ,j) )
1320 call check( __line__, mom(
k,i-1,j) )
1322 call check( __line__, val(
k,i,j) )
1323 call check( __line__, val(
k,i,j+1) )
1325 call check( __line__, val(
k,i,j-1) )
1326 call check( __line__, val(
k,i,j+2) )
1329 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i+1,j) ) ) &
1330 / ( 0.25_rp * ( dens(
k,i,j)+dens(
k,i+1,j)+dens(
k,i,j+1)+dens(
k,i+1,j+1) ) )
1331 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
1332 * ( f41 * ( val(
k,i,j+1)+val(
k,i,j) ) &
1333 + f42 * ( val(
k,i,j+2)+val(
k,i,j-1) ) ) &
1334 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1339 k = iundef; i = iundef; j = iundef
1359 IIS, IIE, JJS, JJE )
1362 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1363 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1364 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1365 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1366 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1367 real(rp),
intent(in) :: j33g
1368 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1369 real(rp),
intent(in) :: cdz (
ka)
1370 logical,
intent(in) :: twod
1371 integer,
intent(in) :: iis, iie, jjs, jje
1387 call check( __line__, mom(
k,i,j) )
1388 call check( __line__, mom(
k,i,j+1) )
1390 call check( __line__, val(
k,i,j) )
1391 call check( __line__, val(
k+1,i,j) )
1393 call check( __line__, val(
k-1,i,j) )
1394 call check( __line__, val(
k+2,i,j) )
1397 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j+1) ) ) &
1399 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
1401 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
1402 flux(
k,i,j) = j33g * vel &
1403 * ( f41 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1404 + f42 * ( val(
k+2,i,j)+val(
k-1,i,j) ) ) &
1405 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1411 k = iundef; i = iundef; j = iundef
1419 call check( __line__, mom(
ks,i ,j) )
1420 call check( __line__, mom(
ks,i,j+1) )
1421 call check( __line__, val(
ks+1,i,j) )
1422 call check( __line__, val(
ks,i,j) )
1428 flux(
ks-1,i,j) = 0.0_rp
1430 vel = ( 0.5_rp * ( mom(
ks,i,j)+mom(
ks,i,j+1) ) ) &
1432 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1434 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1435 flux(
ks,i,j) = j33g * vel &
1436 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) ) &
1437 + gsqrt(
ks,i,j) * num_diff(
ks,i,j)
1438 vel = ( 0.5_rp * ( mom(
ke-1,i,j)+mom(
ke-1,i,j+1) ) ) &
1440 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1442 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1443 flux(
ke-1,i,j) = j33g * vel &
1444 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) ) &
1445 + gsqrt(
ke-1,i,j) * num_diff(
ke-1,i,j)
1447 flux(
ke,i,j) = 0.0_rp
1455 k = iundef; i = iundef; j = iundef
1466 GSQRT, J13G, MAPF, &
1468 IIS, IIE, JJS, JJE )
1471 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1472 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1473 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1474 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1475 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1476 real(rp),
intent(in) :: j13g (
ka,
ia,
ja)
1477 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1478 real(rp),
intent(in) :: cdz (
ka)
1479 logical,
intent(in) :: twod
1480 integer,
intent(in) :: iis, iie, jjs, jje
1497 * 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) ) &
1499 * 0.25_rp * ( mom(
k,i,j)+mom(
k,i-1,j)+mom(
k,i,j+1)+mom(
k,i-1,j+1) ) ) &
1501 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
1503 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
1504 vel = vel * j13g(
k,i,j)
1505 flux(
k,i,j) = vel / mapf(i,j,+2) &
1506 * ( f41 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1507 + f42 * ( val(
k+2,i,j)+val(
k-1,i,j) ) )
1519 flux(
ks-1,i,j) = 0.0_rp
1522 * 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) ) &
1524 * 0.25_rp * ( mom(
ks,i,j)+mom(
ks,i-1,j)+mom(
ks,i,j+1)+mom(
ks,i-1,j+1) ) ) &
1526 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1528 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1529 vel = vel * j13g(
ks,i,j)
1530 flux(
ks,i,j) = vel / mapf(i,j,+2) &
1531 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1534 * 0.25_rp * ( mom(
ke,i,j)+mom(
ke,i-1,j)+mom(
ke,i,j+1)+mom(
ke,i-1,j+1) ) &
1536 * 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) ) ) &
1538 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1540 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1541 vel = vel * j13g(
ke-1,i,j)
1542 flux(
ke-1,i,j) = vel / mapf(i,j,+2) &
1543 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1545 flux(
ke ,i,j) = 0.0_rp
1561 GSQRT, J23G, MAPF, &
1563 IIS, IIE, JJS, JJE )
1566 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1567 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1568 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1569 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1570 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1571 real(rp),
intent(in) :: j23g (
ka,
ia,
ja)
1572 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1573 real(rp),
intent(in) :: cdz (
ka)
1574 logical,
intent(in) :: twod
1575 integer,
intent(in) :: iis, iie, jjs, jje
1596 * 0.5_rp * ( dens(
k+1,i,j)+dens(
k+1,i,j+1) ) &
1598 * 0.5_rp * ( dens(
k,i,j)+dens(
k,i,j+1) ) )
1599 vel = vel * j23g(
k,i,j)
1600 flux(
k,i,j) = vel / mapf(i,j,+1) &
1601 * ( f41 * ( val(
k+1,i,j)+val(
k,i,j) ) &
1602 + f42 * ( val(
k+2,i,j)+val(
k-1,i,j) ) )
1614 flux(
ks-1,i,j) = 0.0_rp
1621 * 0.5_rp * ( dens(
ks+1,i,j)+dens(
ks+1,i,j+1) ) &
1623 * 0.5_rp * ( dens(
ks,i,j)+dens(
ks,i,j+1) ) )
1624 vel = vel * j23g(
ks,i,j)
1625 flux(
ks,i,j) = vel / mapf(i,j,+1) &
1626 * ( f2 * ( val(
ks+1,i,j)+val(
ks,i,j) ) )
1633 * 0.5_rp * ( dens(
ke,i,j)+dens(
ke,i,j+1) ) &
1635 * 0.5_rp * ( dens(
ke-1,i,j)+dens(
ke-1,i,j+1) ) )
1636 vel = vel * j23g(
ke-1,i,j)
1637 flux(
ke-1,i,j) = vel / mapf(i,j,+1) &
1638 * ( f2 * ( val(
ke,i,j)+val(
ke-1,i,j) ) )
1640 flux(
ke ,i,j) = 0.0_rp
1659 IIS, IIE, JJS, JJE )
1662 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1663 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1664 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1665 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1666 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1667 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1668 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1669 real(rp),
intent(in) :: cdz (
ka)
1670 logical,
intent(in) :: twod
1671 integer,
intent(in) :: iis, iie, jjs, jje
1686 call check( __line__, mom(
k,i ,j) )
1687 call check( __line__, mom(
k,i,j-1) )
1689 call check( __line__, val(
k,i,j) )
1690 call check( __line__, val(
k,i+1,j) )
1692 call check( __line__, val(
k,i-1,j) )
1693 call check( __line__, val(
k,i+2,j) )
1696 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j+1) ) ) &
1697 / ( 0.25_rp * ( dens(
k,i,j)+dens(
k,i+1,j)+dens(
k,i,j+1)+dens(
k,i+1,j+1) ) )
1698 flux(
k,i,j) = gsqrt(
k,i,j) / mapf(i,j,+2) * vel &
1699 * ( f41 * ( val(
k,i+1,j)+val(
k,i,j) ) &
1700 + f42 * ( val(
k,i+2,j)+val(
k,i-1,j) ) ) &
1701 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1706 k = iundef; i = iundef; j = iundef
1722 IIS, IIE, JJS, JJE )
1725 real(rp),
intent(inout) :: flux (
ka,
ia,
ja)
1726 real(rp),
intent(in) :: mom (
ka,
ia,
ja)
1727 real(rp),
intent(in) :: val (
ka,
ia,
ja)
1728 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
1729 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja)
1730 real(rp),
intent(in) :: mapf (
ia,
ja,2)
1731 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja)
1732 real(rp),
intent(in) :: cdz (
ka)
1733 logical,
intent(in) :: twod
1734 integer,
intent(in) :: iis, iie, jjs, jje
1751 call check( __line__, mom(
k,i ,j) )
1752 call check( __line__, mom(
k,i,j-1) )
1754 call check( __line__, val(
k,i,j-1) )
1755 call check( __line__, val(
k,i,j) )
1757 call check( __line__, val(
k,i,j-2) )
1758 call check( __line__, val(
k,i,j+1) )
1761 vel = ( 0.5_rp * ( mom(
k,i,j)+mom(
k,i,j-1) ) ) &
1763 flux(
k,i,j-1) = gsqrt(
k,i,j) / mapf(i,j,+1) * vel &
1764 * ( f41 * ( val(
k,i,j)+val(
k,i,j-1) ) &
1765 + f42 * ( val(
k,i,j+1)+val(
k,i,j-2) ) ) &
1766 + gsqrt(
k,i,j) * num_diff(
k,i,j)
1771 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