Changeset 13266
- Timestamp:
- 2020-07-08T14:49:37+02:00 (4 years ago)
- Location:
- NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/OCE/LBC
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/OCE/LBC/lib_mpp.F90
r13247 r13266 1098 1098 ! Look for how many procs on the northern boundary 1099 1099 ndim_rank_north = 0 1100 DO jjproc = 1, jpni j1101 IF( n jmppt(jjproc) == njmppmax) ndim_rank_north = ndim_rank_north + 11100 DO jjproc = 1, jpni 1101 IF( nfproc(jjproc) /= -1 ) ndim_rank_north = ndim_rank_north + 1 1102 1102 END DO 1103 1103 ! … … 1109 1109 ! Note : the rank start at 0 in MPI 1110 1110 ii = 0 1111 DO ji = 1, jpni j1112 IF ( n jmppt(ji) == njmppmax) THEN1111 DO ji = 1, jpni 1112 IF ( nfproc(ji) /= -1 ) THEN 1113 1113 ii=ii+1 1114 nrank_north(ii)= ji-11114 nrank_north(ii)=nfproc(ji) 1115 1115 END IF 1116 1116 END DO -
NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/OCE/LBC/mpp_lbc_north_icb_generic.h90
r13247 r13266 36 36 ! 37 37 INTEGER :: ji, jj, jr 38 INTEGER :: ierr, itaille , iis0, iie0, iilb39 INTEGER :: ipj, ij, iproc 38 INTEGER :: ierr, itaille 39 INTEGER :: ipj, ij, iproc, ijnr, ii1, ipi, impp 40 40 ! 41 41 REAL(PRECISION), DIMENSION(:,:) , ALLOCATABLE :: ztab_e, znorthloc_e … … 47 47 ALLOCATE( ztab_e(jpiglo, 1-kextj:ipj+kextj) , & 48 48 & znorthloc_e(jpimax, 1-kextj:ipj+kextj) , & 49 & znorthgloio_e(jpimax, 1-kextj:ipj+kextj, jpni) )49 & znorthgloio_e(jpimax, 1-kextj:ipj+kextj,ndim_rank_north) ) 50 50 ! 51 51 # if defined SINGLE_PRECISION … … 73 73 IF( ln_timing ) CALL tic_tac(.FALSE.) 74 74 ! 75 ijnr = 0 75 76 DO jr = 1, ndim_rank_north ! recover the global north array 76 iproc = nrank_north(jr) + 1 77 iis0 = nis0all(iproc) 78 iie0 = nie0all(iproc) 79 iilb = nimppt(iproc) 80 DO jj = 1-kextj, ipj+kextj 81 DO ji = iis0, iie0 82 ztab_e(ji+iilb-1,jj) = znorthgloio_e(ji,jj,jr) 77 iproc = nfproc(jr) 78 IF( iproc /= -1 ) THEN 79 impp = nfimpp(jr) 80 ipi = nfjpi(jr) 81 ijnr = ijnr + 1 82 DO jj = 1-kextj, ipj+kextj 83 DO ji = 1, ipi 84 ii1 = impp + ji - 1 ! corresponds to mig(ji) but for subdomain iproc 85 ztab_e(ii1,jj) = znorthgloio_e(ji,jj,ijnr) 86 END DO 83 87 END DO 84 END DO88 ENDIF 85 89 END DO 86 90 -
NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/OCE/LBC/mpp_nfd_generic.h90
r13252 r13266 90 90 INTEGER :: ii1, ii2, ij1, ij2 91 91 INTEGER :: ipimax, i0max 92 INTEGER :: ij, iproc, ipni 92 INTEGER :: ij, iproc, ipni, ijnr 93 93 INTEGER, DIMENSION (jpmaxngh) :: ml_req_nf ! for mpi_isend when avoiding mpi_allgather 94 94 INTEGER :: ml_err ! for mpi_isend when avoiding mpi_allgather … … 298 298 i0max = jpimax - 2 * nn_hls 299 299 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) ) 301 301 ! 302 302 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ! put in znorthloc ipj j-lines of ptab … … 307 307 znorthloc(ji,jj,jk,jl,jf) = ARRAY_IN(ii2,ij2,jk,jl,jf) 308 308 END DO 309 DO ji = Ni e0+1, i0max309 DO ji = Ni_0+1, i0max 310 310 znorthloc(ji,jj,jk,jl,jf) = HUGE(0._wp) ! avoid sending uninitialized values (make sure we don't use it) 311 311 END DO … … 322 322 ! 323 323 ! need to fill only the first ipj lines of ztabglo as lbc_nfd don't use the last nn_hls lines 324 ijnr = 0 324 325 DO jr = 1, jpni ! recover the global north array 325 326 iproc = nfproc(jr) … … 352 353 ! 353 354 ELSE 355 ijnr = ijnr + 1 354 356 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk 355 357 DO jj = 1, ipj 356 358 DO ji = 1, ipi 357 359 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) 359 361 END DO 360 362 END DO -
NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/OCE/LBC/mppini.F90
r13256 r13266 351 351 CALL mpp_getnum( llisoce, ipproc, iin, ijn ) 352 352 ! 353 DO jn = 1, jpni 354 jproc = ipproc(jn,jpnj) 355 ii = iin(jproc+1) 356 ij = ijn(jproc+1) 357 nfproc(jn) = jproc 358 nfimpp(jn) = iimppt(ii,ij) 359 nfjpi (jn) = ijpi(ii,ij) 360 END DO 353 !DO jn = 1, jpni 354 ! jproc = ipproc(jn,jpnj) 355 ! ii = iin(jproc+1) 356 ! ij = ijn(jproc+1) 357 ! nfproc(jn) = jproc 358 ! nfimpp(jn) = iimppt(ii,ij) 359 ! nfjpi (jn) = ijpi(ii,ij) 360 !END DO 361 nfproc(:) = ipproc(:,jpnj) 362 nfimpp(:) = iimppt(:,jpnj) 363 nfjpi (:) = ijpi(:,jpnj) 361 364 ! 362 365 IF(lwp) THEN
Note: See TracChangeset
for help on using the changeset viewer.