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 7278 for branches/2016/dev_CNRS_2016/NEMOGCM/NEMO/OPA_SRC/LBC/mppini_2.h90 – NEMO

Ignore:
Timestamp:
2016-11-21T10:38:43+01:00 (8 years ago)
Author:
flavoni
Message:

update branch CNRS-2016 to trunk 6720

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_CNRS_2016/NEMOGCM/NEMO/OPA_SRC/LBC/mppini_2.h90

    r7277 r7278  
    276276         ENDIF 
    277277 
     278         ! Check wet points over the entire domain to preserve the MPI communication stencil 
    278279         isurf = 0 
    279          DO jj = 1+jprecj, ilj-jprecj 
    280             DO  ji = 1+jpreci, ili-jpreci 
     280         DO jj = 1, ilj 
     281            DO  ji = 1, ili 
    281282               IF( imask(ji+iimppt(ii,ij)-1, jj+ijmppt(ii,ij)-1) == 1)   isurf = isurf+1 
    282283            END DO 
    283284         END DO 
     285 
    284286         IF(isurf /= 0) THEN 
    285287            icont = icont + 1 
     
    291293 
    292294      nfipproc(:,:) = ipproc(:,:) 
    293  
    294295 
    295296      ! Control 
     
    399400      ii = iin(narea) 
    400401      ij = ijn(narea) 
     402 
     403      ! set default neighbours 
     404      noso = ioso(ii,ij) 
     405      nowe = iowe(ii,ij) 
     406      noea = ioea(ii,ij) 
     407      nono = iono(ii,ij)  
     408      npse = iose(ii,ij) 
     409      npsw = iosw(ii,ij) 
     410      npne = ione(ii,ij) 
     411      npnw = ionw(ii,ij) 
     412 
     413      ! check neighbours location 
    401414      IF( ioso(ii,ij) >= 0 .AND. ioso(ii,ij) <= (jpni*jpnj-1) ) THEN  
    402415         iiso = 1 + MOD(ioso(ii,ij),jpni) 
     
    469482      IF (lwp) THEN 
    470483         CALL ctl_opn( inum, 'layout.dat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE., narea ) 
     484         WRITE(inum,'(a)') '   jpnij     jpi     jpj     jpk  jpiglo  jpjglo' 
    471485         WRITE(inum,'(6i8)') jpnij,jpi,jpj,jpk,jpiglo,jpjglo 
    472486         WRITE(inum,'(a)') 'NAREA nlci nlcj nldi nldj nlei nlej nimpp njmpp' 
     
    481495      END IF 
    482496 
    483       IF( nperio == 1 .AND.jpni /= 1 ) CALL ctl_stop( ' mpp_init2:  error on cyclicity' ) 
    484  
    485       ! Prepare mpp north fold 
    486  
    487       IF( jperio >= 3 .AND. jperio <= 6 .AND. jpni > 1 ) THEN 
    488          CALL mpp_ini_north 
    489          IF(lwp) WRITE(numout,*) ' mpp_init2 : North fold boundary prepared for jpni >1' 
    490       ENDIF 
    491  
    492497      ! Defined npolj, either 0, 3 , 4 , 5 , 6 
    493498      ! In this case the important thing is that npolj /= 0 
     
    506511      ENDIF 
    507512 
     513      ! Periodicity : no corner if nbondi = 2 and nperio != 1 
     514 
     515      IF(lwp) THEN 
     516         WRITE(numout,*) ' nproc  = ', nproc 
     517         WRITE(numout,*) ' nowe   = ', nowe  , ' noea   =  ', noea 
     518         WRITE(numout,*) ' nono   = ', nono  , ' noso   =  ', noso 
     519         WRITE(numout,*) ' nbondi = ', nbondi 
     520         WRITE(numout,*) ' nbondj = ', nbondj 
     521         WRITE(numout,*) ' npolj  = ', npolj 
     522         WRITE(numout,*) ' nperio = ', nperio 
     523         WRITE(numout,*) ' nlci   = ', nlci 
     524         WRITE(numout,*) ' nlcj   = ', nlcj 
     525         WRITE(numout,*) ' nimpp  = ', nimpp 
     526         WRITE(numout,*) ' njmpp  = ', njmpp 
     527         WRITE(numout,*) ' nreci  = ', nreci  , ' npse   = ', npse 
     528         WRITE(numout,*) ' nrecj  = ', nrecj  , ' npsw   = ', npsw 
     529         WRITE(numout,*) ' jpreci = ', jpreci , ' npne   = ', npne 
     530         WRITE(numout,*) ' jprecj = ', jprecj , ' npnw   = ', npnw 
     531         WRITE(numout,*) 
     532      ENDIF 
     533 
     534      IF( nperio == 1 .AND. jpni /= 1 ) CALL ctl_stop( ' mpp_init2: error on cyclicity' ) 
     535 
     536      ! Prepare mpp north fold 
     537 
     538      IF( jperio >= 3 .AND. jperio <= 6 .AND. jpni > 1 ) THEN 
     539         CALL mpp_ini_north 
     540         IF(lwp) WRITE(numout,*) ' mpp_init2 : North fold boundary prepared for jpni >1' 
     541      ENDIF 
     542 
    508543      ! Prepare NetCDF output file (if necessary) 
    509544      CALL mpp_init_ioipsl 
    510545 
    511       ! Periodicity : no corner if nbondi = 2 and nperio != 1 
    512  
    513       IF(lwp) THEN 
    514          WRITE(numout,*) ' nproc=  ',nproc 
    515          WRITE(numout,*) ' nowe=   ',nowe 
    516          WRITE(numout,*) ' noea=   ',noea 
    517          WRITE(numout,*) ' nono=   ',nono 
    518          WRITE(numout,*) ' noso=   ',noso 
    519          WRITE(numout,*) ' nbondi= ',nbondi 
    520          WRITE(numout,*) ' nbondj= ',nbondj 
    521          WRITE(numout,*) ' npolj=  ',npolj 
    522          WRITE(numout,*) ' nperio= ',nperio 
    523          WRITE(numout,*) ' nlci=   ',nlci 
    524          WRITE(numout,*) ' nlcj=   ',nlcj 
    525          WRITE(numout,*) ' nimpp=  ',nimpp 
    526          WRITE(numout,*) ' njmpp=  ',njmpp 
    527          WRITE(numout,*) ' nbse=   ',nbse,' npse= ',npse 
    528          WRITE(numout,*) ' nbsw=   ',nbsw,' npsw= ',npsw 
    529          WRITE(numout,*) ' nbne=   ',nbne,' npne= ',npne 
    530          WRITE(numout,*) ' nbnw=   ',nbnw,' npnw= ',npnw 
    531       ENDIF 
    532546 
    533547   END SUBROUTINE mpp_init2 
Note: See TracChangeset for help on using the changeset viewer.