70 & LBi, UBi, LBj, UBj, LBk, UBk, &
80 integer,
intent(in) :: ng, tile
81 integer,
intent(in) :: LBi, UBi, LBj, UBj, LBk, UBk, LBl, UBl
84 real(r8),
intent(inout) :: A(LBi:,LBj:,LBk:,LBl:)
86 real(r8),
intent(inout) :: A(LBi:UBi,LBj:UBj,LBk:UBk,LBl:UBl)
91 logical :: EW_exchange
92 logical :: NS_exchange
94 integer :: Imin, Imax, Jmin, Jmax
97# include "set_bounds.h"
105 ew_exchange=
ntilei(ng).eq.1
115 ns_exchange=
ntilej(ng).eq.1
136 IF (ew_exchange)
THEN
137 IF (
domain(ng)%Western_Edge(tile))
THEN
141 a(
lm(ng)+1,j,k,l)=a(1,j,k,l)
142 a(
lm(ng)+2,j,k,l)=a(2,j,k,l)
150 a(
lm(ng)+3,j,k,l)=a(3,j,k,l)
156 IF (
domain(ng)%Eastern_Edge(tile))
THEN
160 a(-2,j,k,l)=a(
lm(ng)-2,j,k,l)
161 a(-1,j,k,l)=a(
lm(ng)-1,j,k,l)
162 a( 0,j,k,l)=a(
lm(ng) ,j,k,l)
183 IF (ns_exchange)
THEN
184 IF (
domain(ng)%Southern_Edge(tile))
THEN
188 a(i,
mm(ng)+1,k,l)=a(i,1,k,l)
189 a(i,
mm(ng)+2,k,l)=a(i,2,k,l)
197 a(i,
mm(ng)+3,k,l)=a(i,3,k,l)
203 IF (
domain(ng)%Northern_Edge(tile))
THEN
207 a(i,-2,k,l)=a(i,
mm(ng)-2,k,l)
208 a(i,-1,k,l)=a(i,
mm(ng)-1,k,l)
209 a(i, 0,k,l)=a(i,
mm(ng) ,k,l)
222 IF (ew_exchange.and.ns_exchange)
THEN
223 IF (
domain(ng)%SouthWest_Corner(tile))
THEN
226 a(
lm(ng)+1,
mm(ng)+1,k,l)=a(1,1,k,l)
227 a(
lm(ng)+1,
mm(ng)+2,k,l)=a(1,2,k,l)
228 a(
lm(ng)+2,
mm(ng)+1,k,l)=a(2,1,k,l)
229 a(
lm(ng)+2,
mm(ng)+2,k,l)=a(2,2,k,l)
235 a(
lm(ng)+1,
mm(ng)+3,k,l)=a(1,3,k,l)
236 a(
lm(ng)+2,
mm(ng)+3,k,l)=a(2,3,k,l)
237 a(
lm(ng)+3,
mm(ng)+1,k,l)=a(3,1,k,l)
238 a(
lm(ng)+3,
mm(ng)+2,k,l)=a(3,2,k,l)
239 a(
lm(ng)+3,
mm(ng)+3,k,l)=a(3,3,k,l)
244 IF (
domain(ng)%SouthEast_Corner(tile))
THEN
247 a(-2,
mm(ng)+1,k,l)=a(
lm(ng)-2,1,k,l)
248 a(-1,
mm(ng)+1,k,l)=a(
lm(ng)-1,1,k,l)
249 a( 0,
mm(ng)+1,k,l)=a(
lm(ng) ,1,k,l)
250 a(-2,
mm(ng)+2,k,l)=a(
lm(ng)-2,2,k,l)
251 a(-1,
mm(ng)+2,k,l)=a(
lm(ng)-1,2,k,l)
252 a( 0,
mm(ng)+2,k,l)=a(
lm(ng) ,2,k,l)
258 a(-2,
mm(ng)+3,k,l)=a(
lm(ng)-2,3,k,l)
259 a(-1,
mm(ng)+3,k,l)=a(
lm(ng)-1,3,k,l)
260 a( 0,
mm(ng)+3,k,l)=a(
lm(ng) ,3,k,l)
265 IF (
domain(ng)%NorthWest_Corner(tile))
THEN
268 a(
lm(ng)+1,-2,k,l)=a(1,
mm(ng)-2,k,l)
269 a(
lm(ng)+1,-1,k,l)=a(1,
mm(ng)-1,k,l)
270 a(
lm(ng)+1, 0,k,l)=a(1,
mm(ng) ,k,l)
271 a(
lm(ng)+2,-2,k,l)=a(2,
mm(ng)-2,k,l)
272 a(
lm(ng)+2,-1,k,l)=a(2,
mm(ng)-1,k,l)
273 a(
lm(ng)+2, 0,k,l)=a(2,
mm(ng) ,k,l)
279 a(
lm(ng)+3,-2,k,l)=a(3,
mm(ng)-2,k,l)
280 a(
lm(ng)+3,-1,k,l)=a(3,
mm(ng)-1,k,l)
281 a(
lm(ng)+3, 0,k,l)=a(3,
mm(ng) ,k,l)
286 IF (
domain(ng)%NorthEast_Corner(tile))
THEN
289 a(-2,-2,k,l)=a(
lm(ng)-2,
mm(ng)-2,k,l)
290 a(-2,-1,k,l)=a(
lm(ng)-2,
mm(ng)-1,k,l)
291 a(-2, 0,k,l)=a(
lm(ng)-2,
mm(ng) ,k,l)
292 a(-1,-2,k,l)=a(
lm(ng)-1,
mm(ng)-2,k,l)
293 a(-1,-1,k,l)=a(
lm(ng)-1,
mm(ng)-1,k,l)
294 a(-1, 0,k,l)=a(
lm(ng)-1,
mm(ng) ,k,l)
295 a( 0,-2,k,l)=a(
lm(ng) ,
mm(ng)-2,k,l)
296 a( 0,-1,k,l)=a(
lm(ng) ,
mm(ng)-1,k,l)
297 a( 0, 0,k,l)=a(
lm(ng) ,
mm(ng) ,k,l)
310 & LBi, UBi, LBj, UBj, LBk, UBk, &
320 integer,
intent(in) :: ng, tile
321 integer,
intent(in) :: LBi, UBi, LBj, UBj, LBk, UBk, LBl, UBl
324 real(r8),
intent(inout) :: A(LBi:,LBj:,LBk:,LBl:)
326 real(r8),
intent(inout) :: A(LBi:UBi,LBj:UBj,LBk:UBk,LBl:UBl)
331 logical :: EW_exchange
332 logical :: NS_exchange
334 integer :: Imin, Imax, Jmin, Jmax
335 integer :: i, j, k, l
337# include "set_bounds.h"
345 ew_exchange=
ntilei(ng).eq.1
355 ns_exchange=
ntilej(ng).eq.1
376 IF (ew_exchange)
THEN
377 IF (
domain(ng)%Western_Edge(tile))
THEN
381 a(
lm(ng)+1,j,k,l)=a(1,j,k,l)
382 a(
lm(ng)+2,j,k,l)=a(2,j,k,l)
390 a(
lm(ng)+3,j,k,l)=a(3,j,k,l)
396 IF (
domain(ng)%Eastern_Edge(tile))
THEN
400 a(-2,j,k,l)=a(
lm(ng)-2,j,k,l)
401 a(-1,j,k,l)=a(
lm(ng)-1,j,k,l)
402 a( 0,j,k,l)=a(
lm(ng) ,j,k,l)
423 IF (ns_exchange)
THEN
424 IF (
domain(ng)%Southern_Edge(tile))
THEN
428 a(i,
mm(ng)+1,k,l)=a(i,1,k,l)
429 a(i,
mm(ng)+2,k,l)=a(i,2,k,l)
437 a(i,
mm(ng)+3,k,l)=a(i,3,k,l)
443 IF (
domain(ng)%Northern_Edge(tile))
THEN
447 a(i,-2,k,l)=a(i,
mm(ng)-2,k,l)
448 a(i,-1,k,l)=a(i,
mm(ng)-1,k,l)
449 a(i, 0,k,l)=a(i,
mm(ng) ,k,l)
462 IF (ew_exchange.and.ns_exchange)
THEN
463 IF (
domain(ng)%SouthWest_Corner(tile))
THEN
466 a(
lm(ng)+1,
mm(ng)+1,k,l)=a(1,1,k,l)
467 a(
lm(ng)+1,
mm(ng)+2,k,l)=a(1,2,k,l)
468 a(
lm(ng)+2,
mm(ng)+1,k,l)=a(2,1,k,l)
469 a(
lm(ng)+2,
mm(ng)+2,k,l)=a(2,2,k,l)
475 a(
lm(ng)+1,
mm(ng)+3,k,l)=a(1,3,k,l)
476 a(
lm(ng)+2,
mm(ng)+3,k,l)=a(2,3,k,l)
477 a(
lm(ng)+3,
mm(ng)+1,k,l)=a(3,1,k,l)
478 a(
lm(ng)+3,
mm(ng)+2,k,l)=a(3,2,k,l)
479 a(
lm(ng)+3,
mm(ng)+3,k,l)=a(3,3,k,l)
484 IF (
domain(ng)%SouthEast_Corner(tile))
THEN
487 a(-2,
mm(ng)+1,k,l)=a(
lm(ng)-2,1,k,l)
488 a(-1,
mm(ng)+1,k,l)=a(
lm(ng)-1,1,k,l)
489 a( 0,
mm(ng)+1,k,l)=a(
lm(ng) ,1,k,l)
490 a(-2,
mm(ng)+2,k,l)=a(
lm(ng)-2,2,k,l)
491 a(-1,
mm(ng)+2,k,l)=a(
lm(ng)-1,2,k,l)
492 a( 0,
mm(ng)+2,k,l)=a(
lm(ng) ,2,k,l)
498 a(-2,
mm(ng)+3,k,l)=a(
lm(ng)-2,3,k,l)
499 a(-1,
mm(ng)+3,k,l)=a(
lm(ng)-1,3,k,l)
500 a( 0,
mm(ng)+3,k,l)=a(
lm(ng) ,3,k,l)
505 IF (
domain(ng)%NorthWest_Corner(tile))
THEN
508 a(
lm(ng)+1,-2,k,l)=a(1,
mm(ng)-2,k,l)
509 a(
lm(ng)+1,-1,k,l)=a(1,
mm(ng)-1,k,l)
510 a(
lm(ng)+1, 0,k,l)=a(1,
mm(ng) ,k,l)
511 a(
lm(ng)+2,-2,k,l)=a(2,
mm(ng)-2,k,l)
512 a(
lm(ng)+2,-1,k,l)=a(2,
mm(ng)-1,k,l)
513 a(
lm(ng)+2, 0,k,l)=a(2,
mm(ng) ,k,l)
519 a(
lm(ng)+3,-2,k,l)=a(3,
mm(ng)-2,k,l)
520 a(
lm(ng)+3,-1,k,l)=a(3,
mm(ng)-1,k,l)
521 a(
lm(ng)+3, 0,k,l)=a(3,
mm(ng) ,k,l)
526 IF (
domain(ng)%NorthEast_Corner(tile))
THEN
529 a(-2,-2,k,l)=a(
lm(ng)-2,
mm(ng)-2,k,l)
530 a(-2,-1,k,l)=a(
lm(ng)-2,
mm(ng)-1,k,l)
531 a(-2, 0,k,l)=a(
lm(ng)-2,
mm(ng) ,k,l)
532 a(-1,-2,k,l)=a(
lm(ng)-1,
mm(ng)-2,k,l)
533 a(-1,-1,k,l)=a(
lm(ng)-1,
mm(ng)-1,k,l)
534 a(-1, 0,k,l)=a(
lm(ng)-1,
mm(ng) ,k,l)
535 a( 0,-2,k,l)=a(
lm(ng) ,
mm(ng)-2,k,l)
536 a( 0,-1,k,l)=a(
lm(ng) ,
mm(ng)-1,k,l)
537 a( 0, 0,k,l)=a(
lm(ng) ,
mm(ng) ,k,l)
549 & LBi, UBi, LBj, UBj, LBk, UBk, &
559 integer,
intent(in) :: ng, tile
560 integer,
intent(in) :: LBi, UBi, LBj, UBj, LBk, UBk, LBl, UBl
563 real(r8),
intent(inout) :: A(LBi:,LBj:,LBk:,LBl:)
565 real(r8),
intent(inout) :: A(LBi:UBi,LBj:UBj,LBk:UBk,LBl:UBl)
570 logical :: EW_exchange
571 logical :: NS_exchange
573 integer :: Imin, Imax, Jmin, Jmax
574 integer :: i, j, k, l
576# include "set_bounds.h"
584 ew_exchange=
ntilei(ng).eq.1
594 ns_exchange=
ntilej(ng).eq.1
615 IF (ew_exchange)
THEN
616 IF (
domain(ng)%Western_Edge(tile))
THEN
620 a(
lm(ng)+1,j,k,l)=a(1,j,k,l)
621 a(
lm(ng)+2,j,k,l)=a(2,j,k,l)
629 a(
lm(ng)+3,j,k,l)=a(3,j,k,l)
635 IF (
domain(ng)%Eastern_Edge(tile))
THEN
639 a(-2,j,k,l)=a(
lm(ng)-2,j,k,l)
640 a(-1,j,k,l)=a(
lm(ng)-1,j,k,l)
641 a( 0,j,k,l)=a(
lm(ng) ,j,k,l)
662 IF (ns_exchange)
THEN
663 IF (
domain(ng)%Southern_Edge(tile))
THEN
667 a(i,
mm(ng)+1,k,l)=a(i,1,k,l)
668 a(i,
mm(ng)+2,k,l)=a(i,2,k,l)
676 a(i,
mm(ng)+3,k,l)=a(i,3,k,l)
682 IF (
domain(ng)%Northern_Edge(tile))
THEN
686 a(i,-2,k,l)=a(i,
mm(ng)-2,k,l)
687 a(i,-1,k,l)=a(i,
mm(ng)-1,k,l)
688 a(i, 0,k,l)=a(i,
mm(ng) ,k,l)
701 IF (ew_exchange.and.ns_exchange)
THEN
702 IF (
domain(ng)%SouthWest_Corner(tile))
THEN
705 a(
lm(ng)+1,
mm(ng)+1,k,l)=a(1,1,k,l)
706 a(
lm(ng)+1,
mm(ng)+2,k,l)=a(1,2,k,l)
707 a(
lm(ng)+2,
mm(ng)+1,k,l)=a(2,1,k,l)
708 a(
lm(ng)+2,
mm(ng)+2,k,l)=a(2,2,k,l)
714 a(
lm(ng)+2,
mm(ng)+3,k,l)=a(2,3,k,l)
715 a(
lm(ng)+3,
mm(ng)+1,k,l)=a(3,1,k,l)
716 a(
lm(ng)+3,
mm(ng)+2,k,l)=a(3,2,k,l)
717 a(
lm(ng)+3,
mm(ng)+3,k,l)=a(3,3,k,l)
722 IF (
domain(ng)%SouthEast_Corner(tile))
THEN
725 a(-2,
mm(ng)+1,k,l)=a(
lm(ng)-2,1,k,l)
726 a(-1,
mm(ng)+1,k,l)=a(
lm(ng)-1,1,k,l)
727 a( 0,
mm(ng)+1,k,l)=a(
lm(ng) ,1,k,l)
728 a(-2,
mm(ng)+2,k,l)=a(
lm(ng)-2,2,k,l)
729 a(-1,
mm(ng)+2,k,l)=a(
lm(ng)-1,2,k,l)
730 a( 0,
mm(ng)+2,k,l)=a(
lm(ng) ,2,k,l)
736 a(-2,
mm(ng)+3,k,l)=a(
lm(ng)-2,3,k,l)
737 a(-1,
mm(ng)+3,k,l)=a(
lm(ng)-1,3,k,l)
738 a( 0,
mm(ng)+3,k,l)=a(
lm(ng) ,3,k,l)
743 IF (
domain(ng)%NorthWest_Corner(tile))
THEN
746 a(
lm(ng)+1,-2,k,l)=a(1,
mm(ng)-2,k,l)
747 a(
lm(ng)+1,-1,k,l)=a(1,
mm(ng)-1,k,l)
748 a(
lm(ng)+1, 0,k,l)=a(1,
mm(ng) ,k,l)
749 a(
lm(ng)+2,-2,k,l)=a(2,
mm(ng)-2,k,l)
750 a(
lm(ng)+2,-1,k,l)=a(2,
mm(ng)-1,k,l)
751 a(
lm(ng)+2, 0,k,l)=a(2,
mm(ng) ,k,l)
757 a(
lm(ng)+3,-2,k,l)=a(3,
mm(ng)-2,k,l)
758 a(
lm(ng)+3,-1,k,l)=a(3,
mm(ng)-1,k,l)
759 a(
lm(ng)+3, 0,k,l)=a(3,
mm(ng) ,k,l)
764 IF (
domain(ng)%NorthEast_Corner(tile))
THEN
767 a(-2,-2,k,l)=a(
lm(ng)-2,
mm(ng)-2,k,l)
768 a(-2,-1,k,l)=a(
lm(ng)-2,
mm(ng)-1,k,l)
769 a(-2, 0,k,l)=a(
lm(ng)-2,
mm(ng) ,k,l)
770 a(-1,-2,k,l)=a(
lm(ng)-1,
mm(ng)-2,k,l)
771 a(-1,-1,k,l)=a(
lm(ng)-1,
mm(ng)-1,k,l)
772 a(-1, 0,k,l)=a(
lm(ng)-1,
mm(ng) ,k,l)
773 a( 0,-2,k,l)=a(
lm(ng) ,
mm(ng)-2,k,l)
774 a( 0,-1,k,l)=a(
lm(ng) ,
mm(ng)-1,k,l)
775 a( 0, 0,k,l)=a(
lm(ng) ,
mm(ng) ,k,l)
788 & LBi, UBi, LBj, UBj, LBk, UBk, &
798 integer,
intent(in) :: ng, tile
799 integer,
intent(in) :: LBi, UBi, LBj, UBj, LBk, UBk, LBl, UBl
802 real(r8),
intent(inout) :: A(LBi:,LBj:,LBk:,LBl:)
804 real(r8),
intent(inout) :: A(LBi:UBi,LBj:UBj,LBk:UBk,LBl:UBl)
809 logical :: EW_exchange
810 logical :: NS_exchange
812 integer :: Imin, Imax, Jmin, Jmax
813 integer :: i, j, k, l
815# include "set_bounds.h"
823 ew_exchange=
ntilei(ng).eq.1
833 ns_exchange=
ntilej(ng).eq.1
854 IF (ew_exchange)
THEN
855 IF (
domain(ng)%Western_Edge(tile))
THEN
859 a(
lm(ng)+1,j,k,l)=a(1,j,k,l)
860 a(
lm(ng)+2,j,k,l)=a(2,j,k,l)
868 a(
lm(ng)+3,j,k,l)=a(3,j,k,l)
874 IF (
domain(ng)%Eastern_Edge(tile))
THEN
878 a(-2,j,k,l)=a(
lm(ng)-2,j,k,l)
879 a(-1,j,k,l)=a(
lm(ng)-1,j,k,l)
880 a( 0,j,k,l)=a(
lm(ng) ,j,k,l)
901 IF (ns_exchange)
THEN
902 IF (
domain(ng)%Southern_Edge(tile))
THEN
906 a(i,
mm(ng)+1,k,l)=a(i,1,k,l)
907 a(i,
mm(ng)+2,k,l)=a(i,2,k,l)
915 a(i,
mm(ng)+3,k,l)=a(i,3,k,l)
921 IF (
domain(ng)%Northern_Edge(tile))
THEN
925 a(i,-2,k,l)=a(i,
mm(ng)-2,k,l)
926 a(i,-1,k,l)=a(i,
mm(ng)-1,k,l)
927 a(i, 0,k,l)=a(i,
mm(ng) ,k,l)
940 IF (ew_exchange.and.ns_exchange)
THEN
941 IF (
domain(ng)%SouthWest_Corner(tile))
THEN
944 a(
lm(ng)+1,
mm(ng)+1,k,l)=a(1,1,k,l)
945 a(
lm(ng)+1,
mm(ng)+2,k,l)=a(1,2,k,l)
946 a(
lm(ng)+2,
mm(ng)+1,k,l)=a(2,1,k,l)
947 a(
lm(ng)+2,
mm(ng)+2,k,l)=a(2,2,k,l)
953 a(
lm(ng)+1,
mm(ng)+3,k,l)=a(1,3,k,l)
954 a(
lm(ng)+2,
mm(ng)+3,k,l)=a(2,3,k,l)
955 a(
lm(ng)+3,
mm(ng)+1,k,l)=a(3,1,k,l)
956 a(
lm(ng)+3,
mm(ng)+2,k,l)=a(3,2,k,l)
957 a(
lm(ng)+3,
mm(ng)+3,k,l)=a(3,3,k,l)
962 IF (
domain(ng)%SouthEast_Corner(tile))
THEN
965 a(-2,
mm(ng)+1,k,l)=a(
lm(ng)-2,1,k,l)
966 a(-1,
mm(ng)+1,k,l)=a(
lm(ng)-1,1,k,l)
967 a( 0,
mm(ng)+1,k,l)=a(
lm(ng) ,1,k,l)
968 a(-2,
mm(ng)+2,k,l)=a(
lm(ng)-2,2,k,l)
969 a(-1,
mm(ng)+2,k,l)=a(
lm(ng)-1,2,k,l)
970 a( 0,
mm(ng)+2,k,l)=a(
lm(ng) ,2,k,l)
976 a(-2,
mm(ng)+3,k,l)=a(
lm(ng)-2,3,k,l)
977 a(-1,
mm(ng)+3,k,l)=a(
lm(ng)-1,3,k,l)
978 a( 0,
mm(ng)+3,k,l)=a(
lm(ng) ,3,k,l)
983 IF (
domain(ng)%NorthWest_Corner(tile))
THEN
986 a(
lm(ng)+1,-2,k,l)=a(1,
mm(ng)-2,k,l)
987 a(
lm(ng)+1,-1,k,l)=a(1,
mm(ng)-1,k,l)
988 a(
lm(ng)+1, 0,k,l)=a(1,
mm(ng) ,k,l)
989 a(
lm(ng)+2,-2,k,l)=a(2,
mm(ng)-2,k,l)
990 a(
lm(ng)+2,-1,k,l)=a(2,
mm(ng)-1,k,l)
991 a(
lm(ng)+2, 0,k,l)=a(2,
mm(ng) ,k,l)
997 a(
lm(ng)+3,-2,k,l)=a(3,
mm(ng)-2,k,l)
998 a(
lm(ng)+3,-1,k,l)=a(3,
mm(ng)-1,k,l)
999 a(
lm(ng)+3, 0,k,l)=a(3,
mm(ng) ,k,l)
1004 IF (
domain(ng)%NorthEast_Corner(tile))
THEN
1007 a(-2,-2,k,l)=a(
lm(ng)-2,
mm(ng)-2,k,l)
1008 a(-2,-1,k,l)=a(
lm(ng)-2,
mm(ng)-1,k,l)
1009 a(-2, 0,k,l)=a(
lm(ng)-2,
mm(ng) ,k,l)
1010 a(-1,-2,k,l)=a(
lm(ng)-1,
mm(ng)-2,k,l)
1011 a(-1,-1,k,l)=a(
lm(ng)-1,
mm(ng)-1,k,l)
1012 a(-1, 0,k,l)=a(
lm(ng)-1,
mm(ng) ,k,l)
1013 a( 0,-2,k,l)=a(
lm(ng) ,
mm(ng)-2,k,l)
1014 a( 0,-1,k,l)=a(
lm(ng) ,
mm(ng)-1,k,l)
1015 a( 0, 0,k,l)=a(
lm(ng) ,
mm(ng) ,k,l)
1028 & LBi, UBi, LBj, UBj, LBk, UBk, &
1038 integer,
intent(in) :: ng, tile
1039 integer,
intent(in) :: LBi, UBi, LBj, UBj, LBk, UBk, LBl, UBl
1041# ifdef ASSUMED_SHAPE
1042 real(r8),
intent(inout) :: A(LBi:,LBj:,LBk:,LBl:)
1044 real(r8),
intent(inout) :: A(LBi:UBi,LBj:UBj,LBk:UBk,LBl:UBl)
1049 logical :: EW_exchange
1050 logical :: NS_exchange
1052 integer :: Imin, Imax, Jmin, Jmax
1053 integer :: i, j, k, l
1055# include "set_bounds.h"
1063 ew_exchange=
ntilei(ng).eq.1
1073 ns_exchange=
ntilej(ng).eq.1
1094 IF (ew_exchange)
THEN
1095 IF (
domain(ng)%Western_Edge(tile))
THEN
1099 a(
lm(ng)+1,j,k,l)=a(1,j,k,l)
1100 a(
lm(ng)+2,j,k,l)=a(2,j,k,l)
1108 a(
lm(ng)+3,j,k,l)=a(3,j,k,l)
1114 IF (
domain(ng)%Eastern_Edge(tile))
THEN
1118 a(-2,j,k,l)=a(
lm(ng)-2,j,k,l)
1119 a(-1,j,k,l)=a(
lm(ng)-1,j,k,l)
1120 a( 0,j,k,l)=a(
lm(ng) ,j,k,l)
1141 IF (ns_exchange)
THEN
1142 IF (
domain(ng)%Southern_Edge(tile))
THEN
1146 a(i,
mm(ng)+1,k,l)=a(i,1,k,l)
1147 a(i,
mm(ng)+2,k,l)=a(i,2,k,l)
1155 a(i,
mm(ng)+3,k,l)=a(i,3,k,l)
1161 IF (
domain(ng)%Northern_Edge(tile))
THEN
1165 a(i,-2,k,l)=a(i,
mm(ng)-2,k,l)
1166 a(i,-1,k,l)=a(i,
mm(ng)-1,k,l)
1167 a(i, 0,k,l)=a(i,
mm(ng) ,k,l)
1180 IF (ew_exchange.and.ns_exchange)
THEN
1181 IF (
domain(ng)%SouthWest_Corner(tile))
THEN
1184 a(
lm(ng)+1,
mm(ng)+1,k,l)=a(1,1,k,l)
1185 a(
lm(ng)+1,
mm(ng)+2,k,l)=a(1,2,k,l)
1186 a(
lm(ng)+2,
mm(ng)+1,k,l)=a(2,1,k,l)
1187 a(
lm(ng)+2,
mm(ng)+2,k,l)=a(2,2,k,l)
1193 a(
lm(ng)+1,
mm(ng)+3,k,l)=a(1,3,k,l)
1194 a(
lm(ng)+2,
mm(ng)+3,k,l)=a(2,3,k,l)
1195 a(
lm(ng)+3,
mm(ng)+1,k,l)=a(3,1,k,l)
1196 a(
lm(ng)+3,
mm(ng)+2,k,l)=a(3,2,k,l)
1197 a(
lm(ng)+3,
mm(ng)+3,k,l)=a(3,3,k,l)
1202 IF (
domain(ng)%SouthEast_Corner(tile))
THEN
1205 a(-2,
mm(ng)+1,k,l)=a(
lm(ng)-2,1,k,l)
1206 a(-1,
mm(ng)+1,k,l)=a(
lm(ng)-1,1,k,l)
1207 a( 0,
mm(ng)+1,k,l)=a(
lm(ng) ,1,k,l)
1208 a(-2,
mm(ng)+2,k,l)=a(
lm(ng)-2,2,k,l)
1209 a(-1,
mm(ng)+2,k,l)=a(
lm(ng)-1,2,k,l)
1210 a( 0,
mm(ng)+2,k,l)=a(
lm(ng) ,2,k,l)
1216 a(-2,
mm(ng)+3,k,l)=a(
lm(ng)-2,3,k,l)
1217 a(-1,
mm(ng)+3,k,l)=a(
lm(ng)-1,3,k,l)
1218 a( 0,
mm(ng)+3,k,l)=a(
lm(ng) ,3,k,l)
1223 IF (
domain(ng)%NorthWest_Corner(tile))
THEN
1226 a(
lm(ng)+1,-2,k,l)=a(1,
mm(ng)-2,k,l)
1227 a(
lm(ng)+1,-1,k,l)=a(1,
mm(ng)-1,k,l)
1228 a(
lm(ng)+1, 0,k,l)=a(1,
mm(ng) ,k,l)
1229 a(
lm(ng)+2,-2,k,l)=a(2,
mm(ng)-2,k,l)
1230 a(
lm(ng)+2,-1,k,l)=a(2,
mm(ng)-1,k,l)
1231 a(
lm(ng)+2, 0,k,l)=a(2,
mm(ng) ,k,l)
1237 a(
lm(ng)+3,-2,k,l)=a(3,
mm(ng)-2,k,l)
1238 a(
lm(ng)+3,-1,k,l)=a(3,
mm(ng)-1,k,l)
1239 a(
lm(ng)+3, 0,k,l)=a(3,
mm(ng) ,k,l)
1244 IF (
domain(ng)%NorthEast_Corner(tile))
THEN
1247 a(-2,-2,k,l)=a(
lm(ng)-2,
mm(ng)-2,k,l)
1248 a(-2,-1,k,l)=a(
lm(ng)-2,
mm(ng)-1,k,l)
1249 a(-2, 0,k,l)=a(
lm(ng)-2,
mm(ng) ,k,l)
1250 a(-1,-2,k,l)=a(
lm(ng)-1,
mm(ng)-2,k,l)
1251 a(-1,-1,k,l)=a(
lm(ng)-1,
mm(ng)-1,k,l)
1252 a(-1, 0,k,l)=a(
lm(ng)-1,
mm(ng) ,k,l)
1253 a( 0,-2,k,l)=a(
lm(ng) ,
mm(ng)-2,k,l)
1254 a( 0,-1,k,l)=a(
lm(ng) ,
mm(ng)-1,k,l)
1255 a( 0, 0,k,l)=a(
lm(ng) ,
mm(ng) ,k,l)
subroutine exchange_u4d_tile(ng, tile, lbi, ubi, lbj, ubj, lbk, ubk, lbl, ubl, a)
subroutine exchange_r4d_tile(ng, tile, lbi, ubi, lbj, ubj, lbk, ubk, lbl, ubl, a)
subroutine exchange_w4d_tile(ng, tile, lbi, ubi, lbj, ubj, lbk, ubk, lbl, ubl, a)
subroutine exchange_v4d_tile(ng, tile, lbi, ubi, lbj, ubj, lbk, ubk, lbl, ubl, a)
subroutine exchange_p4d_tile(ng, tile, lbi, ubi, lbj, ubj, lbk, ubk, lbl, ubl, a)
type(t_domain), dimension(:), allocatable domain
integer, dimension(:), allocatable lm
integer, dimension(:), allocatable ntilei
integer, dimension(:), allocatable mm
integer, dimension(:), allocatable ntilej
logical, dimension(:), allocatable ewperiodic
logical, dimension(:), allocatable nsperiodic