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 13266 for NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/OCE/LBC/mpp_nfd_generic.h90 – NEMO

Ignore:
Timestamp:
2020-07-08T14:49:37+02:00 (4 years ago)
Author:
acc
Message:

Extra_Halo: revert previous bugfix in mppini.F90 and fix, instead, the ordering and treatment of processors in the north-fold communicator. Now passes all SETTE including an extra version of ORCA2_ICE_PISCES, REPRO_8_4 with land-suppression and ln_nnogather=F. run.stat differences from trunk@13218 in ORCA2_ICE_PISCES associated with calving (REPRO tests which have ln_calving=F match). Also tracer.stat differences after 42 timesteps (unexplained).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/OCE/LBC/mpp_nfd_generic.h90

    r13252 r13266  
    9090      INTEGER  ::   ii1, ii2, ij1, ij2 
    9191      INTEGER  ::   ipimax, i0max 
    92       INTEGER  ::   ij, iproc, ipni 
     92      INTEGER  ::   ij, iproc, ipni, ijnr 
    9393      INTEGER, DIMENSION (jpmaxngh)       ::   ml_req_nf   ! for mpi_isend when avoiding mpi_allgather 
    9494      INTEGER                             ::   ml_err      ! for mpi_isend when avoiding mpi_allgather 
     
    298298         i0max = jpimax - 2 * nn_hls 
    299299         ibuffsize = i0max * ipj * ipk * ipl * ipf 
    300          ALLOCATE( znorthloc(i0max,ipj,ipk,ipl,ipf), znorthglo(i0max,ipj,ipk,ipl,ipf,jpni) ) 
     300         ALLOCATE( znorthloc(i0max,ipj,ipk,ipl,ipf), znorthglo(i0max,ipj,ipk,ipl,ipf,ndim_rank_north) ) 
    301301         ! 
    302302         DO jf = 1, ipf   ;   DO jl = 1, ipl   ;   DO jk = 1, ipk               ! put in znorthloc ipj j-lines of ptab 
     
    307307                  znorthloc(ji,jj,jk,jl,jf) = ARRAY_IN(ii2,ij2,jk,jl,jf) 
    308308               END DO 
    309                DO ji = Nie0+1, i0max 
     309               DO ji = Ni_0+1, i0max 
    310310                  znorthloc(ji,jj,jk,jl,jf) = HUGE(0._wp)   ! avoid sending uninitialized values (make sure we don't use it) 
    311311               END DO 
     
    322322         ! 
    323323         ! need to fill only the first ipj lines of ztabglo as lbc_nfd don't use the last nn_hls lines 
     324         ijnr = 0 
    324325         DO jr = 1, jpni                                                        ! recover the global north array 
    325326            iproc = nfproc(jr) 
     
    352353               ! 
    353354            ELSE 
     355               ijnr = ijnr + 1 
    354356               DO jf = 1, ipf   ;   DO jl = 1, ipl   ;   DO jk = 1, ipk 
    355357                  DO jj = 1, ipj 
    356358                     DO ji = 1, ipi 
    357359                        ii1 = impp + nn_hls + ji - 1             ! corresponds to mig(nn_hls + ji) but for subdomain iproc 
    358                         ztabglo(ii1,jj,jk,jl,jf) = znorthglo(ji,jj,jk,jl,jf,jr) 
     360                        ztabglo(ii1,jj,jk,jl,jf) = znorthglo(ji,jj,jk,jl,jf,ijnr) 
    359361                     END DO 
    360362                  END DO 
Note: See TracChangeset for help on using the changeset viewer.