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/mpp_lnk_generic.h90 – 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/mpp_lnk_generic.h90

    r8591 r8758  
    7272      ipf = F_SIZE(ptab)   ! 5th    -      use in "multi" case (array of pointers) 
    7373      ! 
    74       ALLOCATE( zt3ns(jpi,jprecj,ipk,ipl,ipf,2), zt3sn(jpi,jprecj,ipk,ipl,ipf,2),   & 
    75          &      zt3ew(jpj,jpreci,ipk,ipl,ipf,2), zt3we(jpj,jpreci,ipk,ipl,ipf,2)  ) 
     74      ALLOCATE( zt3ns(jpi,nn_hls,ipk,ipl,ipf,2), zt3sn(jpi,nn_hls,ipk,ipl,ipf,2),   & 
     75         &      zt3ew(jpj,nn_hls,ipk,ipl,ipf,2), zt3we(jpj,nn_hls,ipk,ipl,ipf,2)  ) 
    7676      ! 
    7777      ll_Iperio = nbondi == 2 .AND. (nperio == 1 .OR. nperio == 4 .OR. nperio == 6) 
     
    116116               ARRAY_IN(jpi,:,:,:,jf) = ARRAY_IN(  2  ,:,:,:,jf) 
    117117            ELSE                                   !* closed 
    118                IF( .NOT. NAT_IN(jf) == 'F' )   ARRAY_IN(     1       :jpreci,:,:,:,jf) = zland    ! east except F-point 
    119                                                ARRAY_IN(nlci-jpreci+1:jpi   ,:,:,:,jf) = zland    ! west 
     118               IF( .NOT. NAT_IN(jf) == 'F' )   ARRAY_IN(     1       :nn_hls,:,:,:,jf) = zland    ! east except F-point 
     119                                               ARRAY_IN(nlci-nn_hls+1:jpi   ,:,:,:,jf) = zland    ! west 
    120120            ENDIF 
    121121            !                                ! North-South boundaries 
     
    124124               ARRAY_IN(:,jpj,:,:,jf) = ARRAY_IN(:,   2  ,:,:,jf) 
    125125            ELSE                                   !* closed 
    126                IF( .NOT. NAT_IN(jf) == 'F' )   ARRAY_IN(:,     1       :jprecj,:,:,jf) = zland    ! south except F-point 
    127                                                ARRAY_IN(:,nlcj-jprecj+1:jpj   ,:,:,jf) = zland    ! north 
     126               IF( .NOT. NAT_IN(jf) == 'F' )   ARRAY_IN(:,     1       :nn_hls,:,:,jf) = zland    ! south except F-point 
     127                                               ARRAY_IN(:,nlcj-nn_hls+1:jpj   ,:,:,jf) = zland    ! north 
    128128            ENDIF 
    129129         END DO 
     
    142142            DO jl = 1, ipl 
    143143               DO jk = 1, ipk 
    144                   DO jh = 1, jpreci 
    145                      zt3ew(:,jh,jk,jl,jf,1) = ARRAY_IN(jpreci+jh,:,jk,jl,jf) 
     144                  DO jh = 1, nn_hls 
     145                     zt3ew(:,jh,jk,jl,jf,1) = ARRAY_IN(nn_hls+jh,:,jk,jl,jf) 
    146146                     zt3we(:,jh,jk,jl,jf,1) = ARRAY_IN(iihom +jh,:,jk,jl,jf) 
    147147                  END DO 
     
    152152      ! 
    153153      !                           ! Migrations 
    154       imigr = jpreci * jpj * ipk * ipl * ipf 
     154      imigr = nn_hls * jpj * ipk * ipl * ipf 
    155155      ! 
    156156      SELECT CASE ( nbondi ) 
     
    173173      ! 
    174174      !                           ! Write Dirichlet lateral conditions 
    175       iihom = nlci-jpreci 
     175      iihom = nlci-nn_hls 
    176176      ! 
    177177      SELECT CASE ( nbondi ) 
     
    180180            DO jl = 1, ipl 
    181181               DO jk = 1, ipk 
    182                   DO jh = 1, jpreci 
     182                  DO jh = 1, nn_hls 
    183183                     ARRAY_IN(iihom+jh,:,jk,jl,jf) = zt3ew(:,jh,jk,jl,jf,2) 
    184184                  END DO 
     
    190190            DO jl = 1, ipl 
    191191               DO jk = 1, ipk 
    192                   DO jh = 1, jpreci 
     192                  DO jh = 1, nn_hls 
    193193                     ARRAY_IN(jh      ,:,jk,jl,jf) = zt3we(:,jh,jk,jl,jf,2) 
    194194                     ARRAY_IN(iihom+jh,:,jk,jl,jf) = zt3ew(:,jh,jk,jl,jf,2) 
     
    201201            DO jl = 1, ipl 
    202202               DO jk = 1, ipk 
    203                   DO jh = 1, jpreci 
     203                  DO jh = 1, nn_hls 
    204204                     ARRAY_IN(jh      ,:,jk,jl,jf) = zt3we(:,jh,jk,jl,jf,2) 
    205205                  END DO 
     
    218218            DO jl = 1, ipl 
    219219               DO jk = 1, ipk 
    220                   DO jh = 1, jprecj 
     220                  DO jh = 1, nn_hls 
    221221                     zt3sn(:,jh,jk,jl,jf,1) = ARRAY_IN(:,ijhom +jh,jk,jl,jf) 
    222                      zt3ns(:,jh,jk,jl,jf,1) = ARRAY_IN(:,jprecj+jh,jk,jl,jf) 
     222                     zt3ns(:,jh,jk,jl,jf,1) = ARRAY_IN(:,nn_hls+jh,jk,jl,jf) 
    223223                  END DO 
    224224               END DO 
     
    228228      ! 
    229229      !                           ! Migrations 
    230       imigr = jprecj * jpi * ipk * ipl * ipf 
     230      imigr = nn_hls * jpi * ipk * ipl * ipf 
    231231      ! 
    232232      SELECT CASE ( nbondj ) 
     
    249249      ! 
    250250      !                           ! Write Dirichlet lateral conditions 
    251       ijhom = nlcj-jprecj 
     251      ijhom = nlcj-nn_hls 
    252252      ! 
    253253      SELECT CASE ( nbondj ) 
     
    256256            DO jl = 1, ipl 
    257257               DO jk = 1, ipk 
    258                   DO jh = 1, jprecj 
     258                  DO jh = 1, nn_hls 
    259259                     ARRAY_IN(:,ijhom+jh,jk,jl,jf) = zt3ns(:,jh,jk,jl,jf,2) 
    260260                  END DO 
     
    266266            DO jl = 1, ipl 
    267267               DO jk = 1, ipk 
    268                   DO jh = 1, jprecj 
     268                  DO jh = 1, nn_hls 
    269269                     ARRAY_IN(:,      jh,jk,jl,jf) = zt3sn(:,jh,jk,jl,jf,2) 
    270270                     ARRAY_IN(:,ijhom+jh,jk,jl,jf) = zt3ns(:,jh,jk,jl,jf,2) 
     
    277277            DO jl = 1, ipl 
    278278               DO jk = 1, ipk 
    279                   DO jh = 1, jprecj 
     279                  DO jh = 1, nn_hls 
    280280                     ARRAY_IN(:,jh,jk,jl,jf) = zt3sn(:,jh,jk,jl,jf,2) 
    281281                  END DO 
Note: See TracChangeset for help on using the changeset viewer.