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 3849 for branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/LBC/mapcomm_mod.F90 – NEMO

Ignore:
Timestamp:
2013-03-26T11:45:16+01:00 (11 years ago)
Author:
trackstand2
Message:

Merge branch 'partitioner'

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/LBC/mapcomm_mod.F90

    r3837 r3849  
    156156 
    157157  ! Public routines 
    158   PUBLIC :: mapcomms, iprocmap 
     158  PUBLIC :: mapcomms, iprocmap, set_num_subdomains 
    159159 
    160160  ! Public variables 
     
    165165  PUBLIC :: nsendp,nsendp2d,nrecvp,nrecvp2d,npatchsend,npatchrecv, & 
    166166            nxsendp,nysendp,nzsendp,nxrecvp,nyrecvp,nzrecvp,       & 
    167             idesrecvp,jdesrecvp,isrcsendp,jsrcsendp 
     167            idesrecvp,jdesrecvp,isrcsendp,jsrcsendp, nprocp 
    168168 
    169169  PUBLIC :: ielb,  ieub,  pielb, pjelb, pieub, pjeub,                    & 
    170170            iesub, jesub, jeub, ilbext, iubext, jubext, jlbext, pnactive,& 
    171             piesub, pjesub, jelb, pilbext, pjlbext, pjubext, piubext,    & 
    172             nprocp 
     171            piesub, pjesub, jelb, pilbext, pjlbext, pjubext, piubext 
    173172 
    174173  PUBLIC :: NONE         & 
     
    191190 
    192191  ! Switch for trimming points below ocean floor from halo swaps 
    193   !LOGICAL, PARAMETER :: msgtrim_z = .TRUE. ! .FALSE. 
    194   LOGICAL, PUBLIC, SAVE      :: msgtrim_z 
     192  ! Defaults to true unless set via NEMO_MSGTRIM_Z environment var. 
     193  LOGICAL, PUBLIC, SAVE :: msgtrim_z 
    195194 
    196195CONTAINS 
     196 
     197  SUBROUTINE set_num_subdomains(npes) 
     198    IMPLICIT none 
     199    !!------------------------------------------------------------------ 
     200    !! Set the number of subdomains to partition the domain into. 
     201    !!------------------------------------------------------------------ 
     202    INTEGER, INTENT(in) :: npes 
     203 
     204    nprocp = npes 
     205 
     206  END SUBROUTINE set_num_subdomains 
     207 
    197208 
    198209  SUBROUTINE mapcomms ( depth, ibotlvl, nx, ny, jperio, ierr ) 
     
    213224 
    214225    ! Local variables. 
    215     INTEGER :: i, i1, i2, icol, ihalo, iproc, iprocc, iprocx, & 
    216                iprocy, j, j1, j2, lumapout, nadd, naddmaxr, naddmaxs 
     226    INTEGER :: i, i1, i2, ihalo, iproc, iprocc, iprocx, & 
     227               iprocy, j, j1, j2, nadd, naddmaxr, naddmaxs 
    217228    INTEGER :: ldiff0, ldiff1 ! Local vars for coping with wrapping of coords 
    218229    INTEGER :: imax, imin ! Max/min value of i that a halo strip can run  
     
    13021313        IF ( addcorner ) THEN 
    13031314#if defined ARPDEBUG 
    1304           WRITE (*,FMT="(I3,': ARPDBG adding corner send to ',I2,', dir = ',I1)") & 
     1315          WRITE (*,FMT="(I3,': ARPDBG adding corner send to ',I4,', dir = ',I1)") & 
    13051316                 narea-1, procid(iprocc),i 
    13061317#endif 
     
    13141325 
    13151326#if defined ARPDEBUG 
    1316           WRITE (*,FMT="(I3,': ARPDBG adding corner recv. from ',I3,', old dir = ',I1,' new dir = ',I1)") & 
     1327          WRITE (*,FMT="(I3,': ARPDBG adding corner recv. from ',I4,', old dir = ',I1,' new dir = ',I1)") & 
    13171328                 narea-1, procid(iprocc),i, j 
    13181329#endif 
     
    13801391! ARP - for debugging only 
    13811392!!$        IF(iprocmap == 0)THEN 
    1382 !!$           WRITE(*,"('iprocmap: failed to find owner PE for (',I3,I3,')')") ia, ja 
     1393!!$           WRITE(*,"('iprocmap: failed to find owner PE for (',I3,1x,I3,')')") ia, ja 
    13831394!!$           WRITE(*,*) 'PE domains are [xmin:xmax][ymin:ymax]:' 
    13841395!!$           DO iproc=1,nprocp,1 
     
    18261837 
    18271838        ! Can any points along the left (low i) edge be trimmed? 
    1828         left_edge: DO i=ilo, ihi - nextra 
     1839        left_edge: DO i=ilo, ihi 
    18291840          DO j=jlo, jhi 
    18301841             ! depth is global mask, i and j are local coords 
     
    18561867 
    18571868        ! Can any points along the right (high i) edge be trimmed? 
    1858         right_edge: DO i=ihi, ilo + nextra, -1 
     1869        right_edge: DO i=ihi, ilo, -1 
    18591870          DO j=jlo, jhi 
    18601871!            IF (depth(i+nimpp-1-nextra,j+njmpp-1) .ne. land) exit right_edge 
Note: See TracChangeset for help on using the changeset viewer.