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 8758 for branches/2017/dev_r8126_ROBUST08_no_ghost/NEMOGCM/NEMO/OPA_SRC/LBC/mppini.F90 – NEMO

Ignore:
Timestamp:
2017-11-20T17:29:54+01:00 (6 years ago)
Author:
acc
Message:

Branch 2017/dev_r8126_ROBUST08_no_ghost. Changes to eliminate ghost rows and columns. Currently the halo width is still fixed as 1 but a single variable (nn_hls) has been introduced for the halo-size in preparation for allowing this to vary. nn_hls replaces jpreci and jprecj. These changes have passed full SETTE tests but iceberg exchanges across the north-fold remain untested (SETTE tests only release bergs in the SO) and will require further attention. Note layout.dat now reports the jpi and jpj values for the reporting processor only.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8126_ROBUST08_no_ghost/NEMOGCM/NEMO/OPA_SRC/LBC/mppini.F90

    r8375 r8758  
    153153      !  dimensions divided by the number of processors minus the overlap array. 
    154154      ! 
    155       nreci = 2 * jpreci 
    156       nrecj = 2 * jprecj 
     155      nreci = 2 * nn_hls 
     156      nrecj = 2 * nn_hls 
    157157      iresti = 1 + MOD( jpiglo - nreci -1 , jpni ) 
    158158      irestj = 1 + MOD( jpjglo - nrecj -1 , jpnj ) 
    159159      ! 
     160      !  Need to use jpimax and jpjmax here since jpi and jpj have already been 
     161      !  shrunk to local sizes in nemogcm 
    160162#if defined key_nemocice_decomp 
    161163      ! Change padding to be consistent with CICE 
    162       ilci(1:jpni-1      ,:) = jpi 
    163       ilci(jpni          ,:) = jpiglo - (jpni - 1) * (jpi - nreci) 
    164       ! 
    165       ilcj(:,      1:jpnj-1) = jpj 
    166       ilcj(:,          jpnj) = jpjglo - (jpnj - 1) * (jpj - nrecj) 
     164      ilci(1:jpni-1      ,:) = jpimax 
     165      ilci(jpni          ,:) = jpiglo - (jpni - 1) * (jpimax - nreci) 
     166      ! 
     167      ilcj(:,      1:jpnj-1) = jpjmax 
     168      ilcj(:,          jpnj) = jpjglo - (jpnj - 1) * (jpjmax - nrecj) 
    167169#else 
    168       ilci(1:iresti      ,:) = jpi 
    169       ilci(iresti+1:jpni ,:) = jpi-1 
    170  
    171       ilcj(:,      1:irestj) = jpj 
    172       ilcj(:, irestj+1:jpnj) = jpj-1 
     170      ilci(1:iresti      ,:) = jpimax 
     171      ilci(iresti+1:jpni ,:) = jpimax-1 
     172 
     173      ilcj(:,      1:irestj) = jpjmax 
     174      ilcj(:, irestj+1:jpnj) = jpjmax-1 
    173175#endif 
    174176      ! 
     
    237239         ioea(ii,ij) = iproc + 1 
    238240         iono(ii,ij) = iproc + jpni 
    239          ildi(ii,ij) =  1  + jpreci 
    240          ilei(ii,ij) = ili - jpreci 
     241         ildi(ii,ij) =  1  + nn_hls 
     242         ilei(ii,ij) = ili - nn_hls 
    241243 
    242244         IF( ibondi(ii,ij) == -1 .OR. ibondi(ii,ij) == 2 ) ildi(ii,ij) =  1 
    243245         IF( ibondi(ii,ij) ==  1 .OR. ibondi(ii,ij) == 2 ) ilei(ii,ij) = ili 
    244          ildj(ii,ij) =  1  + jprecj 
    245          ilej(ii,ij) = ilj - jprecj 
     246         ildj(ii,ij) =  1  + nn_hls 
     247         ilej(ii,ij) = ilj - nn_hls 
    246248         IF( ibondj(ii,ij) == -1 .OR. ibondj(ii,ij) == 2 ) ildj(ii,ij) =  1 
    247249         IF( ibondj(ii,ij) ==  1 .OR. ibondj(ii,ij) == 2 ) ilej(ii,ij) = ilj 
     
    441443      IF (lwp) THEN 
    442444         CALL ctl_opn( inum, 'layout.dat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE., narea ) 
    443          WRITE(inum,'(a)') '   jpnij     jpi     jpj     jpk  jpiglo  jpjglo' 
    444          WRITE(inum,'(6i8)') jpnij,jpi,jpj,jpk,jpiglo,jpjglo 
     445         WRITE(inum,'(a)') '   jpnij   jpimax  jpjmax    jpk  jpiglo  jpjglo'//& 
     446   &           ' ( local:    narea     jpi     jpj)' 
     447         WRITE(inum,'(6i8,a,3i8,a)') jpnij,jpimax,jpjmax,jpk,jpiglo,jpjglo,& 
     448   &           ' ( local: ',narea,jpi,jpj,' )' 
    445449         WRITE(inum,'(a)') 'NAREA nlci nlcj nldi nldj nlei nlej nimp njmp nono noso nowe noea nbondi nbondj ' 
    446450 
     
    488492         WRITE(numout,*) ' nreci  = ', nreci   
    489493         WRITE(numout,*) ' nrecj  = ', nrecj   
    490          WRITE(numout,*) ' jpreci = ', jpreci  
    491          WRITE(numout,*) ' jprecj = ', jprecj  
     494         WRITE(numout,*) ' nn_hls = ', nn_hls  
    492495      ENDIF 
    493496 
Note: See TracChangeset for help on using the changeset viewer.