New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 15345 – NEMO

Changeset 15345


Ignore:
Timestamp:
2021-10-07T17:10:18+02:00 (3 years ago)
Author:
smasson
Message:

trunk: correct bdyini modifications introduced at [15289]

Location:
NEMO/trunk/src/OCE/BDY
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/BDY/bdydyn2d.F90

    r14433 r15345  
    9292               llrecv2(2)   = llrecv2(2)   .OR. lrecv_bdyext(ib_bdy,2,2,ir)     ! might search point towards bdy on the east 
    9393               llsend3(3:4) = llsend3(3:4) .OR. lsend_bdyint(ib_bdy,3,3:4,ir)   ! north/south, V points 
    94                llsend3(3)   = llsend3(3)   .OR. lsend_bdyext(ib_bdy,3,3,ir)     ! neighbour might search point towards its north bdy  
     94               llsend3(3)   = llsend3(3)   .OR. lsend_bdyext(ib_bdy,3,3,ir)     ! neighbour might search point towards its north bdy 
    9595               llrecv3(3:4) = llrecv3(3:4) .OR. lrecv_bdyint(ib_bdy,3,3:4,ir)   ! north/south, V points 
    9696               llrecv3(4)   = llrecv3(4)   .OR. lrecv_bdyext(ib_bdy,3,4,ir)     ! might search point towards bdy on the north 
  • NEMO/trunk/src/OCE/BDY/bdyini.F90

    r15289 r15345  
    739739               ! ==> cannot compute the point x -> need to receive it 
    740740               IF( iibi==0     .OR. ii1==0     .OR. ii2==0     .OR. ii3==0     )   lrecv_bdyint(ib_bdy,igrd,jpwe,ir) = .TRUE. 
     741               IF( iibe==0                                                     )   lrecv_bdyext(ib_bdy,igrd,jpwe,ir) = .TRUE. 
    741742               IF( iibi==jpi+1 .OR. ii1==jpi+1 .OR. ii2==jpi+1 .OR. ii3==jpi+1 )   lrecv_bdyint(ib_bdy,igrd,jpea,ir) = .TRUE.   
    742                IF( iibe==0                                                     )   lrecv_bdyext(ib_bdy,igrd,jpwe,ir) = .TRUE. 
    743743               IF( iibe==jpi+1                                                 )   lrecv_bdyext(ib_bdy,igrd,jpea,ir) = .TRUE.   
    744744               ! Check if neighbour has its rim parallel to its mpi subdomain border and located next to its halo. 
     
    747747               ! :.....|_._:_____|   (1) W neighbour         E neighbour (2)   |_____:_._|.....: 
    748748               ! ==> the neighbour cannot compute the point x -> need to send it 
    749                IF( ii==nn_hls+1   .AND. mpiSnei(nn_hls,jpwe) > -1 .AND. & 
    750                   &     ( iibi==ii+1 .OR. ii1==ii+1 .OR. ii2==ii+1 .OR. ii3==ii+1) )   lsend_bdyint(ib_bdy,igrd,jpwe,ir) = .TRUE. 
    751                IF( ii==jpi-nn_hls .AND. mpiSnei(nn_hls,jpea) > -1 .AND. & 
    752                   &     ( iibi==ii-1 .OR. ii1==ii-1 .OR. ii2==ii-1 .OR. ii3==ii-1) )   lsend_bdyint(ib_bdy,igrd,jpea,ir) = .TRUE. 
    753                IF( ii==nn_hls+1   .AND. mpiSnei(nn_hls,jpwe) > -1 .AND. iibe==ii+1 )   lsend_bdyext(ib_bdy,igrd,jpwe,ir) = .TRUE. 
    754                IF( ii==jpi-nn_hls .AND. mpiSnei(nn_hls,jpea) > -1 .AND. iibe==ii-1 )   lsend_bdyext(ib_bdy,igrd,jpea,ir) = .TRUE. 
     749               IF( ii ==     2*nn_hls   .AND. mpiSnei(nn_hls,jpwe) > -1 ) THEN   ! 2*nn_hls      -> ji=jpi of western neighbour 
     750                  IF( iibi==ii+1 .OR. ii1==ii+1 .OR. ii2==ii+1 .OR. ii3==ii+1 )   lsend_bdyint(ib_bdy,igrd,jpwe,ir) = .TRUE. 
     751                  IF( iibe==ii+1                                              )   lsend_bdyext(ib_bdy,igrd,jpwe,ir) = .TRUE. 
     752               ENDIF 
     753               IF( ii == jpi-2*nn_hls+1 .AND. mpiSnei(nn_hls,jpea) > -1 ) THEN   ! jpi-2*nn_hls+1-> ji=1   of eastern neighbour 
     754                  IF( iibi==ii-1 .OR. ii1==ii-1 .OR. ii2==ii-1 .OR. ii3==ii-1 )   lsend_bdyint(ib_bdy,igrd,jpea,ir) = .TRUE. 
     755                  IF( iibe==ii-1                                              )   lsend_bdyext(ib_bdy,igrd,jpea,ir) = .TRUE. 
     756               ENDIF 
    755757               ! 
    756758               ! search neighbour in the north/south direction    
     
    762764               !  v       o           (4)  |       | 
    763765               IF( ijbi==0     .OR. ij1==0     .OR. ij2==0     .OR. ij3==0     )   lrecv_bdyint(ib_bdy,igrd,jpso,ir) = .TRUE. 
     766               IF( ijbe==0                                                     )   lrecv_bdyext(ib_bdy,igrd,jpso,ir) = .TRUE. 
    764767               IF( ijbi==jpj+1 .OR. ij1==jpj+1 .OR. ij2==jpj+1 .OR. ij3==jpj+1 )   lrecv_bdyint(ib_bdy,igrd,jpno,ir) = .TRUE. 
    765                IF( ijbe==0                                                     )   lrecv_bdyext(ib_bdy,igrd,jpso,ir) = .TRUE. 
    766768               IF( ijbe==jpj+1                                                 )   lrecv_bdyext(ib_bdy,igrd,jpno,ir) = .TRUE. 
    767769               ! Check if neighbour has its rim parallel to its mpi subdomain     _________  border and next to its halo 
     
    770772               !      :_________:  (3) S neighbour          N neighbour (4)   v  |    o    |    
    771773               ! ==> the neighbour cannot compute the point x -> need to send it 
    772                IF( ij==nn_hls+1   .AND. mpiSnei(nn_hls,jpso) > -1 .AND. & 
    773                   &     ( ijbi==ij+1 .OR. ij1==ij+1 .OR. ij2==ij+1 .OR. ij3==ij+1) )   lsend_bdyint(ib_bdy,igrd,jpso,ir) = .TRUE. 
    774                IF( ij==jpj-nn_hls .AND. mpiSnei(nn_hls,jpno) > -1 .AND. & 
    775                   &     ( ijbi==ij-1 .OR. ij1==ij-1 .OR. ij2==ij-1 .OR. ij3==ij-1) )   lsend_bdyint(ib_bdy,igrd,jpno,ir) = .TRUE. 
    776                IF( ij==nn_hls+1   .AND. mpiSnei(nn_hls,jpso) > -1 .AND. ijbe==ij+1 )   lsend_bdyext(ib_bdy,igrd,jpso,ir) = .TRUE. 
    777                IF( ij==jpj-nn_hls .AND. mpiSnei(nn_hls,jpno) > -1 .AND. ijbe==ij-1 )   lsend_bdyext(ib_bdy,igrd,jpno,ir) = .TRUE. 
     774               IF( ij ==     2*nn_hls   .AND. mpiSnei(nn_hls,jpso) > -1 ) THEN   ! 2*nn_hls      -> jj=jpj of southern neighbour  
     775                  IF( ijbi==ij+1 .OR. ij1==ij+1 .OR. ij2==ij+1 .OR. ij3==ij+1 )   lsend_bdyint(ib_bdy,igrd,jpso,ir) = .TRUE. 
     776                  IF( ijbe==ij+1                                              )   lsend_bdyext(ib_bdy,igrd,jpso,ir) = .TRUE. 
     777               ENDIF 
     778               IF( ij == jpj-2*nn_hls+1 .AND. mpiSnei(nn_hls,jpno) > -1 ) THEN   ! jpj-2*nn_hls+1-> jj=1   of northern neighbour 
     779                  IF( ijbi==ij-1 .OR. ij1==ij-1 .OR. ij2==ij-1 .OR. ij3==ij-1 )   lsend_bdyint(ib_bdy,igrd,jpno,ir) = .TRUE. 
     780                  IF( ijbe==ij-1                                              )   lsend_bdyext(ib_bdy,igrd,jpno,ir) = .TRUE. 
     781               ENDIF 
    778782            END DO 
    779783         END DO 
Note: See TracChangeset for help on using the changeset viewer.