Changeset 14314 for NEMO/branches/2021/dev_r14312_MPI_Interface/src/OCE/BDY
- Timestamp:
- 2021-01-19T13:07:35+01:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r14312_MPI_Interface/src/OCE/BDY/bdyini.F90
r13541 r14314 575 575 ! check if point has to be sent to a neighbour 576 576 ! W neighbour and on the inner left side 577 IF( ii == 2 . and. (nbondi == 0 .or. nbondi == 1) ) lsend_bdy(ib_bdy,igrd,1,ir) = .true.577 IF( ii == 2 .AND. mpinei(jpwe) > -1 ) lsend_bdy(ib_bdy,igrd,jpwe,ir) = .TRUE. 578 578 ! E neighbour and on the inner right side 579 IF( ii == jpi-1 . and. (nbondi == 0 .or. nbondi == -1) ) lsend_bdy(ib_bdy,igrd,2,ir) = .true.579 IF( ii == jpi-1 .AND. mpinei(jpea) > -1 ) lsend_bdy(ib_bdy,igrd,jpea,ir) = .TRUE. 580 580 ! S neighbour and on the inner down side 581 IF( ij == 2 . and. (nbondj == 0 .or. nbondj == 1) ) lsend_bdy(ib_bdy,igrd,3,ir) = .true.581 IF( ij == 2 .AND. mpinei(jpso) > -1 ) lsend_bdy(ib_bdy,igrd,jpso,ir) = .TRUE. 582 582 ! N neighbour and on the inner up side 583 IF( ij == jpj-1 . and. (nbondj == 0 .or. nbondj == -1) ) lsend_bdy(ib_bdy,igrd,4,ir) = .true.583 IF( ij == jpj-1 .AND. mpinei(jpno) > -1 ) lsend_bdy(ib_bdy,igrd,jpno,ir) = .TRUE. 584 584 ! 585 585 ! check if point has to be received from a neighbour 586 586 ! W neighbour and on the outter left side 587 IF( ii == 1 . and. (nbondi == 0 .or. nbondi == 1) ) lrecv_bdy(ib_bdy,igrd,1,ir) = .true.587 IF( ii == 1 .AND. mpinei(jpwe) > -1 ) lrecv_bdy(ib_bdy,igrd,jpwe,ir) = .TRUE. 588 588 ! E neighbour and on the outter right side 589 IF( ii == jpi . and. (nbondi == 0 .or. nbondi == -1) ) lrecv_bdy(ib_bdy,igrd,2,ir) = .true.589 IF( ii == jpi .AND. mpinei(jpea) > -1 ) lrecv_bdy(ib_bdy,igrd,jpea,ir) = .TRUE. 590 590 ! S neighbour and on the outter down side 591 IF( ij == 1 . and. (nbondj == 0 .or. nbondj == 1) ) lrecv_bdy(ib_bdy,igrd,3,ir) = .true.591 IF( ij == 1 .AND. mpinei(jpso) > -1 ) lrecv_bdy(ib_bdy,igrd,jpso,ir) = .TRUE. 592 592 ! N neighbour and on the outter up side 593 IF( ij == jpj . and. (nbondj == 0 .or. nbondj == -1) ) lrecv_bdy(ib_bdy,igrd,4,ir) = .true.593 IF( ij == jpj .AND. mpinei(jpno) > -1 ) lrecv_bdy(ib_bdy,igrd,jpno,ir) = .TRUE. 594 594 ! 595 595 END DO … … 739 739 ! <-- (o exterior) --> 740 740 ! (1) o|x OR (2) x|o 741 ! |___ ___| 742 IF( iibi == 0 .OR. ii1 == 0 .OR. ii2 == 0 .OR. ii3 == 0 ) lrecv_bdyint(ib_bdy,igrd,1,ir) = .true.743 IF( iibi == jpi+1 .OR. ii1 == jpi+1 .OR. ii2 == jpi+1 .OR. ii3 == jpi+1 ) lrecv_bdyint(ib_bdy,igrd,2,ir) = .true.744 IF( iibe == 0 ) lrecv_bdyext(ib_bdy,igrd,1,ir) = .true.745 IF( iibe == jpi+1 ) lrecv_bdyext(ib_bdy,igrd,2,ir) = .true.741 ! |___ ___| 742 IF( iibi==0 .OR. ii1==0 .OR. ii2==0 .OR. ii3==0 ) lrecv_bdyint(ib_bdy,igrd,jpwe,ir) = .TRUE. 743 IF( iibi==jpi+1 .OR. ii1==jpi+1 .OR. ii2==jpi+1 .OR. ii3==jpi+1 ) lrecv_bdyint(ib_bdy,igrd,jpea,ir) = .TRUE. 744 IF( iibe==0 ) lrecv_bdyext(ib_bdy,igrd,jpwe,ir) = .TRUE. 745 IF( iibe==jpi+1 ) lrecv_bdyext(ib_bdy,igrd,jpea,ir) = .TRUE. 746 746 ! Check if neighbour has its rim parallel to its mpi subdomain border and located next to its halo 747 747 ! :¨¨¨¨¨|¨¨--> | | <--¨¨|¨¨¨¨¨: 748 748 ! : | x:o | neighbour limited by ... would need o | o:x | : 749 749 ! :.....|_._:_____| (1) W neighbour E neighbour (2) |_____:_._|.....: 750 IF( ii == 2 .AND. ( nbondi == 1 .OR. nbondi == 0 ).AND. &751 & ( iibi == 3 .OR. ii1 == 3 .OR. ii2 == 3 .OR. ii3 == 3 ) ) lsend_bdyint(ib_bdy,igrd,1,ir)=.true.752 IF( ii == jpi-1 .AND. ( nbondi == -1 .OR. nbondi == 0 ).AND. &753 & ( iibi == jpi-2 .OR. ii1 == jpi-2 .OR. ii2 == jpi-2 .OR. ii3 == jpi-2) ) lsend_bdyint(ib_bdy,igrd,2,ir)=.true.754 IF( ii == 2 .AND. ( nbondi == 1 .OR. nbondi == 0 ) .AND. iibe == 3 ) lsend_bdyext(ib_bdy,igrd,1,ir)=.true.755 IF( ii == jpi-1 .AND. ( nbondi == -1 .OR. nbondi == 0 ) .AND. iibe == jpi-2 ) lsend_bdyext(ib_bdy,igrd,2,ir)=.true.750 IF( ii==2 .AND. mpinei(jpwe) > -1 .AND. & 751 & ( iibi==3 .OR. ii1==3 .OR. ii2==3 .OR. ii3==3 ) ) lsend_bdyint(ib_bdy,igrd,jpwe,ir) = .TRUE. 752 IF( ii==jpi-1 .AND. mpinei(jpea) > -1 .AND. & 753 & ( iibi==jpi-2 .OR. ii1==jpi-2 .OR. ii2==jpi-2 .OR. ii3==jpi-2) ) lsend_bdyint(ib_bdy,igrd,jpea,ir) = .TRUE. 754 IF( ii==2 .AND. mpinei(jpwe) > -1 .AND. iibe==3 ) lsend_bdyext(ib_bdy,igrd,jpwe,ir) = .TRUE. 755 IF( ii==jpi-1 .AND. mpinei(jpea) > -1 .AND. iibe==jpi-2 ) lsend_bdyext(ib_bdy,igrd,jpea,ir) = .TRUE. 756 756 ! 757 757 ! search neighbour in the north/south direction … … 760 760 ! | |___x___| OR | | x | 761 761 ! v o (4) | | 762 IF( ijbi == 0 .OR. ij1 == 0 .OR. ij2 == 0 .OR. ij3 == 0 ) lrecv_bdyint(ib_bdy,igrd,3,ir) = .true.763 IF( ijbi == jpj+1 .OR. ij1 == jpj+1 .OR. ij2 == jpj+1 .OR. ij3 == jpj+1 ) lrecv_bdyint(ib_bdy,igrd,4,ir) = .true.764 IF( ijbe == 0 ) lrecv_bdyext(ib_bdy,igrd,3,ir) = .true.765 IF( ijbe == jpj+1 ) lrecv_bdyext(ib_bdy,igrd,4,ir) = .true.762 IF( ijbi==0 .OR. ij1==0 .OR. ij2==0 .OR. ij3==0 ) lrecv_bdyint(ib_bdy,igrd,jpso,ir) = .TRUE. 763 IF( ijbi==jpj+1 .OR. ij1==jpj+1 .OR. ij2==jpj+1 .OR. ij3==jpj+1 ) lrecv_bdyint(ib_bdy,igrd,jpno,ir) = .TRUE. 764 IF( ijbe==0 ) lrecv_bdyext(ib_bdy,igrd,jpso,ir) = .TRUE. 765 IF( ijbe==jpj+1 ) lrecv_bdyext(ib_bdy,igrd,jpno,ir) = .TRUE. 766 766 ! Check if neighbour has its rim parallel to its mpi subdomain _________ border and next to its halo 767 767 ! ^ | o | : : 768 768 ! | |¨¨¨¨x¨¨¨¨| neighbour limited by ... would need o | |....x....| 769 769 ! :_________: (3) S neighbour N neighbour (4) v | o | 770 IF( ij == 2 .AND. ( nbondj == 1 .OR. nbondj == 0 ).AND. &771 & ( ijbi == 3 .OR. ij1 == 3 .OR. ij2 == 3 .OR. ij3 == 3 ) ) lsend_bdyint(ib_bdy,igrd,3,ir)=.true.772 IF( ij == jpj-1 .AND. ( nbondj == -1 .OR. nbondj == 0 ).AND. &773 & ( ijbi == jpj-2 .OR. ij1 == jpj-2 .OR. ij2 == jpj-2 .OR. ij3 == jpj-2) ) lsend_bdyint(ib_bdy,igrd,4,ir)=.true.774 IF( ij == 2 .AND. ( nbondj == 1 .OR. nbondj == 0 ) .AND. ijbe == 3 ) lsend_bdyext(ib_bdy,igrd,3,ir)=.true.775 IF( ij == jpj-1 .AND. ( nbondj == -1 .OR. nbondj == 0 ) .AND. ijbe == jpj-2 ) lsend_bdyext(ib_bdy,igrd,4,ir)=.true.770 IF( ij==2 .AND. mpinei(jpso) > -1 .AND. & 771 & ( ijbi==3 .OR. ij1==3 .OR. ij2==3 .OR. ij3==3 ) ) lsend_bdyint(ib_bdy,igrd,jpso,ir) = .TRUE. 772 IF( ij==jpj-1 .AND. mpinei(jpno) > -1 .AND. & 773 & ( ijbi==jpj-2 .OR. ij1==jpj-2 .OR. ij2==jpj-2 .OR. ij3==jpj-2) ) lsend_bdyint(ib_bdy,igrd,jpno,ir) = .TRUE. 774 IF( ij==2 .AND. mpinei(jpso) > -1 .AND. ijbe==3 ) lsend_bdyext(ib_bdy,igrd,jpso,ir) = .TRUE. 775 IF( ij==jpj-1 .AND. mpinei(jpno) > -1 .AND. ijbe==jpj-2 ) lsend_bdyext(ib_bdy,igrd,jpno,ir) = .TRUE. 776 776 END DO 777 777 END DO
Note: See TracChangeset
for help on using the changeset viewer.