Changeset 4027


Ignore:
Timestamp:
2013-09-17T13:19:04+02:00 (8 years ago)
Author:
epico
Message:

bug fix to support also decompositions without land-only processes

Location:
branches/2013/dev_r3948_CMCC_NorthFold_Opt/NEMOGCM/NEMO/OPA_SRC
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_r3948_CMCC_NorthFold_Opt/NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90

    r4021 r4027  
    180180   REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, SAVE    ::   xnorthgloio_e 
    181181 
    182    ! North fold arrays used to minimise the use of allgather operations. Set in nemo_northcomms (nemogcm) so need to be public 
    183 !   INTEGER, PUBLIC,  PARAMETER :: jpmaxngh = 8                 ! Assumed maximum number of active neighbours 
    184 !   INTEGER, PUBLIC,  PARAMETER :: jptyps   = 5                 ! Number of different neighbour lists to be used for northfold exchanges 
    185 !   INTEGER, PUBLIC,  DIMENSION (jpmaxngh,jptyps)    ::   isendto 
    186 !   INTEGER, PUBLIC,  DIMENSION (jptyps)             ::   nsndto 
    187182   LOGICAL, PUBLIC                                  ::   ln_nnogather     = .FALSE.  ! namelist control of northfold comms 
    188183   LOGICAL, PUBLIC                                  ::   l_north_nogather = .FALSE.  ! internal control of northfold comms 
     
    26242619         ! (in nemo_northcomms) as being  involved in this process' northern boundary exchange 
    26252620         ! 
     2621 
     2622         ztabr_3d(:,:,:) = 0 
     2623 
    26262624         DO jk = 1, jpk 
    26272625            DO jj = nlcj-ijpj+1, nlcj          ! First put local values into the global array 
     
    27552753         ! (in nemo_northcomms) as being  involved in this process' northern boundary exchange 
    27562754         ! 
     2755 
     2756         ztabr_2d(:,:) = 0 
     2757 
    27572758         DO jj = nlcj-ijpj+1, nlcj          ! First put local values into the global array 
    27582759            ij = jj - nlcj + ijpj 
  • branches/2013/dev_r3948_CMCC_NorthFold_Opt/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90

    r4021 r4027  
    696696 
    697697      INTEGER  ::   sxM, dxM, sxT, dxT, jn 
    698  
     698      INTEGER  ::   njmppmax 
     699 
     700      njmppmax = MAXVAL( njmppt ) 
     701     
    699702      !initializes the north-fold communication variables 
    700703      isendto(:) = 0 
     
    702705 
    703706      !if I am a process in the north 
    704       IF (narea .ge. jpnij - jpni +1) THEN 
     707      IF ( njmpp == njmppmax ) THEN 
    705708          !sxM is the first point (in the global domain) needed to compute the 
    706709          !north-fold for the current process 
     
    713716          !managing the points belonging to the sxT-dxT range 
    714717          DO jn = jpnij - jpni +1, jpnij 
     718             IF ( njmppt(jn) == njmppmax ) THEN 
    715719                !sxT is the first point (in the global domain) of the jn 
    716720                !process 
     
    729733                   isendto(nsndto) = jn 
    730734                END IF 
     735             END IF 
    731736          END DO 
    732737      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.