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 13963 for NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE – NEMO

Ignore:
Timestamp:
2020-12-02T06:43:12+01:00 (4 years ago)
Author:
mocavero
Message:

Cleanup mpi3 calls and key_mpi3 moved inside lbc_lnk routine

Location:
NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE
Files:
75 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/ASM/asminc.F90

    r13906 r13963  
    422422                     &            / e3t(ji,jj,jk,Kmm) 
    423423               END_2D 
    424 #if defined key_mpi3 
    425                CALL lbc_lnk_nc_multi( 'asminc', zhdiv, 'T', 1.0_wp )   ! lateral boundary cond. (no sign change) 
    426 #else 
    427424               CALL lbc_lnk( 'asminc', zhdiv, 'T', 1.0_wp )   ! lateral boundary cond. (no sign change) 
    428 #endif 
    429425               ! 
    430426               DO_2D( 0, 0, 0, 0 ) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/BDY/bdydyn2d.F90

    r13906 r13963  
    102102         END DO 
    103103         IF( ANY(llsend2) .OR. ANY(llrecv2) ) THEN   ! if need to send/recv in at least one direction 
    104 #if defined key_mpi3 
    105             CALL lbc_lnk_nc_multi( 'bdydyn2d', pua2d, 'U', -1.0_wp, kfillmode=jpfillnothing ,lsend=llsend2, lrecv=llrecv2 ) 
    106 #else 
    107104            CALL lbc_lnk( 'bdydyn2d', pua2d, 'U', -1.0_wp, kfillmode=jpfillnothing ,lsend=llsend2, lrecv=llrecv2 ) 
    108 #endif 
    109105         END IF 
    110106         IF( ANY(llsend3) .OR. ANY(llrecv3) ) THEN   ! if need to send/recv in at least one direction 
    111 #if defined key_mpi3 
    112             CALL lbc_lnk_nc_multi( 'bdydyn2d', pva2d, 'V', -1.0_wp, kfillmode=jpfillnothing ,lsend=llsend3, lrecv=llrecv3 ) 
    113 #else 
    114107            CALL lbc_lnk( 'bdydyn2d', pva2d, 'V', -1.0_wp, kfillmode=jpfillnothing ,lsend=llsend3, lrecv=llrecv3 ) 
    115 #endif 
    116108         END IF 
    117109         ! 
     
    332324         IF( nn_hls > 1 .AND. ir == 1 ) CYCLE   ! at least 2 halos will be corrected -> no need to correct rim 1 before rim 0 
    333325         IF( ANY(llsend1) .OR. ANY(llrecv1) ) THEN   ! if need to send/recv in at least one direction 
    334 #if defined key_mpi3 
    335             CALL lbc_lnk_nc_multi( 'bdydyn2d', zssh(:,:,1), 'T',  1.0_wp, kfillmode=jpfillnothing ,lsend=llsend1, lrecv=llrecv1 ) 
    336 #else 
    337326            CALL lbc_lnk( 'bdydyn2d', zssh(:,:,1), 'T',  1.0_wp, kfillmode=jpfillnothing ,lsend=llsend1, lrecv=llrecv1 ) 
    338 #endif 
    339327         END IF 
    340328      END DO 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/BDY/bdydyn3d.F90

    r13906 r13963  
    9999         ! 
    100100         IF( ANY(llsend2) .OR. ANY(llrecv2) ) THEN   ! if need to send/recv in at least one direction 
    101 #if defined key_mpi3 
    102             CALL lbc_lnk_nc_multi( 'bdydyn2d', puu(:,:,:,Kaa), 'U', -1.0_wp, kfillmode=jpfillnothing ,lsend=llsend2, lrecv=llrecv2 ) 
    103 #else 
    104101            CALL lbc_lnk( 'bdydyn2d', puu(:,:,:,Kaa), 'U', -1.0_wp, kfillmode=jpfillnothing ,lsend=llsend2, lrecv=llrecv2 ) 
    105 #endif 
    106102         END IF 
    107103         IF( ANY(llsend3) .OR. ANY(llrecv3) ) THEN   ! if need to send/recv in at least one direction 
    108 #if defined key_mpi3 
    109             CALL lbc_lnk_nc_multi( 'bdydyn2d', pvv(:,:,:,Kaa), 'V', -1.0_wp, kfillmode=jpfillnothing ,lsend=llsend3, lrecv=llrecv3 ) 
    110 #else 
    111104            CALL lbc_lnk( 'bdydyn2d', pvv(:,:,:,Kaa), 'V', -1.0_wp, kfillmode=jpfillnothing ,lsend=llsend3, lrecv=llrecv3 ) 
    112 #endif 
    113105         END IF 
    114106      END DO   ! ir 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/BDY/bdyice.F90

    r13906 r13963  
    9191         END DO   ! jbdy 
    9292         IF( ANY(llsend1) .OR. ANY(llrecv1) ) THEN   ! if need to send/recv in at least one direction 
    93 #if defined key_mpi3 
    94             ! exchange 3d arrays 
    95             CALL lbc_lnk_nc_multi('bdyice', a_i , 'T', 1._wp, h_i , 'T', 1._wp, h_s , 'T', 1._wp, oa_i, 'T', 1._wp                   & 
    96                &                       , s_i , 'T', 1._wp, t_su, 'T', 1._wp, v_i , 'T', 1._wp, v_s , 'T', 1._wp, sv_i, 'T', 1._wp & 
    97                &                       , a_ip, 'T', 1._wp, v_ip, 'T', 1._wp, v_il, 'T', 1._wp                                     & 
    98                &                       , kfillmode=jpfillnothing ,lsend=llsend1, lrecv=llrecv1 ) 
    99             ! exchange 4d arrays :   third dimension = 1   and then   third dimension = jpk 
    100             CALL lbc_lnk_nc_multi('bdyice', t_s , 'T', 1._wp, e_s , 'T', 1._wp, kfillmode=jpfillnothing ,lsend=llsend1, lrecv=llrecv1 ) 
    101             CALL lbc_lnk_nc_multi('bdyice', t_i , 'T', 1._wp, e_i , 'T', 1._wp, kfillmode=jpfillnothing ,lsend=llsend1, lrecv=llrecv1 ) 
    102 #else 
    10393            ! exchange 3d arrays 
    10494            CALL lbc_lnk_multi('bdyice', a_i , 'T', 1._wp, h_i , 'T', 1._wp, h_s , 'T', 1._wp, oa_i, 'T', 1._wp                   & 
     
    10999            CALL lbc_lnk_multi('bdyice', t_s , 'T', 1._wp, e_s , 'T', 1._wp, kfillmode=jpfillnothing ,lsend=llsend1, lrecv=llrecv1 ) 
    110100            CALL lbc_lnk_multi('bdyice', t_i , 'T', 1._wp, e_i , 'T', 1._wp, kfillmode=jpfillnothing ,lsend=llsend1, lrecv=llrecv1 ) 
    111 #endif 
    112101         END IF 
    113102      END DO   ! ir 
     
    445434            END DO 
    446435            IF( ANY(llsend2) .OR. ANY(llrecv2) ) THEN   ! if need to send/recv in at least one direction 
    447 #if defined key_mpi3 
    448                CALL lbc_lnk_nc_multi( 'bdyice', u_ice, 'U', -1.0_wp, kfillmode=jpfillnothing ,lsend=llsend2, lrecv=llrecv2 ) 
    449 #else 
    450436               CALL lbc_lnk( 'bdyice', u_ice, 'U', -1.0_wp, kfillmode=jpfillnothing ,lsend=llsend2, lrecv=llrecv2 ) 
    451 #endif 
    452437            END IF 
    453438         CASE ( 'V' ) 
     
    463448            END DO 
    464449            IF( ANY(llsend3) .OR. ANY(llrecv3) ) THEN   ! if need to send/recv in at least one direction 
    465 #if defined key_mpi3 
    466                CALL lbc_lnk_nc_multi( 'bdyice', v_ice, 'V', -1.0_wp, kfillmode=jpfillnothing ,lsend=llsend3, lrecv=llrecv3 ) 
    467 #else 
    468450               CALL lbc_lnk( 'bdyice', v_ice, 'V', -1.0_wp, kfillmode=jpfillnothing ,lsend=llsend3, lrecv=llrecv3 ) 
    469 #endif 
    470451            END IF 
    471452         END SELECT 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/BDY/bdyini.F90

    r13906 r13963  
    638638         END DO 
    639639      END DO 
    640 #if defined key_mpi3 
    641       CALL lbc_lnk_nc_multi( 'bdyini', zfmask, 'F', 1.0_wp ) 
    642 #else 
    643640      CALL lbc_lnk( 'bdyini', zfmask, 'F', 1.0_wp ) 
    644 #endif 
    645641 
    646642      ! Read global 2D mask at T-points: bdytmask 
     
    658654         END DO 
    659655      END DO 
    660 #if defined key_mpi3 
    661       CALL lbc_lnk_nc_multi( 'bdyini', bdyumask, 'U', 1.0_wp , bdyvmask, 'V', 1.0_wp )   ! Lateral boundary cond.  
    662 #else 
    663656      CALL lbc_lnk_multi( 'bdyini', bdyumask, 'U', 1.0_wp , bdyvmask, 'V', 1.0_wp )   ! Lateral boundary cond.  
    664 #endif 
    665657 
    666658      ! bdy masks are now set to zero on rim 0 points: 
     
    703695         END DO 
    704696      END DO 
    705 #if defined key_mpi3 
    706       CALL lbc_lnk_nc_multi( 'bdyini', zfmask, 'F', 1.0_wp ) 
    707 #else 
    708697      CALL lbc_lnk( 'bdyini', zfmask, 'F', 1.0_wp ) 
    709 #endif 
    710698 
    711699      ! bdy masks are now set to zero on rim1 points: 
     
    883871            ENDIF  
    884872            SELECT CASE( igrd ) 
    885 #if defined key_mpi3 
    886                CASE( 1 )   ;   CALL lbc_lnk_nc_multi( 'bdyini', ztmp, 'T', 1.0_wp ) 
    887                CASE( 2 )   ;   CALL lbc_lnk_nc_multi( 'bdyini', ztmp, 'U', 1.0_wp ) 
    888                CASE( 3 )   ;   CALL lbc_lnk_nc_multi( 'bdyini', ztmp, 'V', 1.0_wp ) 
    889 #else 
    890873               CASE( 1 )   ;   CALL lbc_lnk( 'bdyini', ztmp, 'T', 1.0_wp ) 
    891874               CASE( 2 )   ;   CALL lbc_lnk( 'bdyini', ztmp, 'U', 1.0_wp ) 
    892875               CASE( 3 )   ;   CALL lbc_lnk( 'bdyini', ztmp, 'V', 1.0_wp ) 
    893 #endif 
    894876            END SELECT  
    895877            DO ib = ibeg, iend 
     
    937919            ENDIF 
    938920            SELECT CASE( igrd ) 
    939 #if defined key_mpi3 
    940                CASE( 1 )   ;   CALL lbc_lnk_nc_multi( 'bdyini', ztmp, 'T', 1.0_wp ) 
    941                CASE( 2 )   ;   CALL lbc_lnk_nc_multi( 'bdyini', ztmp, 'U', 1.0_wp ) 
    942                CASE( 3 )   ;   CALL lbc_lnk_nc_multi( 'bdyini', ztmp, 'V', 1.0_wp ) 
    943 #else 
    944921               CASE( 1 )   ;   CALL lbc_lnk( 'bdyini', ztmp, 'T', 1.0_wp ) 
    945922               CASE( 2 )   ;   CALL lbc_lnk( 'bdyini', ztmp, 'U', 1.0_wp ) 
    946923               CASE( 3 )   ;   CALL lbc_lnk( 'bdyini', ztmp, 'V', 1.0_wp ) 
    947 #endif 
    948924            END SELECT  
    949925            DO ib = ibeg, iend 
     
    10311007            END DO 
    10321008            SELECT CASE( igrd ) 
    1033 #if defined key_mpi3 
    1034                CASE( 1 )   ;   CALL lbc_lnk_nc_multi( 'bdyini', ztmp, 'T', 1.0_wp ) 
    1035                CASE( 2 )   ;   CALL lbc_lnk_nc_multi( 'bdyini', ztmp, 'U', 1.0_wp ) 
    1036                CASE( 3 )   ;   CALL lbc_lnk_nc_multi( 'bdyini', ztmp, 'V', 1.0_wp ) 
    1037 #else 
    10381009               CASE( 1 )   ;   CALL lbc_lnk( 'bdyini', ztmp, 'T', 1.0_wp ) 
    10391010               CASE( 2 )   ;   CALL lbc_lnk( 'bdyini', ztmp, 'U', 1.0_wp ) 
    10401011               CASE( 3 )   ;   CALL lbc_lnk( 'bdyini', ztmp, 'V', 1.0_wp ) 
    1041 #endif 
    10421012            END SELECT  
    10431013            DO ib = ibeg, iend 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/BDY/bdytra.F90

    r13906 r13963  
    100100         END DO 
    101101         IF( ANY(llsend1) .OR. ANY(llrecv1) ) THEN   ! if need to send/recv in at least one direction 
    102 #if defined key_mpi3 
    103             CALL lbc_lnk_nc_multi( 'bdytra', pts(:,:,:,jn,Kaa), 'T',  1.0_wp, kfillmode=jpfillnothing ,lsend=llsend1, lrecv=llrecv1 ) 
    104 #else 
    105102            CALL lbc_lnk( 'bdytra', pts(:,:,:,jn,Kaa), 'T',  1.0_wp, kfillmode=jpfillnothing ,lsend=llsend1, lrecv=llrecv1 ) 
    106 #endif 
    107103         ENDIF 
    108104         ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/CRS/crsfld.F90

    r13906 r13963  
    156156               &          + vv(ji,jj  ,jk,Kmm)**2 * e1v(ji,jj  ) * e3v(ji,jj  ,jk,Kmm)   ) 
    157157         END_3D 
    158 #if defined key_mpi3 
    159          CALL lbc_lnk_nc_multi( 'crsfld', z3d, 'T', 1.0_wp ) 
    160 #else 
    161158         CALL lbc_lnk( 'crsfld', z3d, 'T', 1.0_wp ) 
    162 #endif 
    163159         ! 
    164160         CALL crs_dom_ope( z3d, 'VOL', 'T', tmask, zt_crs, p_e12=e1e2t, p_e3=ze3t, psgn=1.0_wp ) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/DOM/dommsk.F90

    r13906 r13963  
    162162            &            * tmask(ji,jj+1,jk) * tmask(ji+1,jj+1,jk) 
    163163      END_3D 
    164 #if defined key_mpi3 
    165       CALL lbc_lnk_nc_multi( 'dommsk', umask, 'U', 1.0_wp, vmask, 'V', 1.0_wp, fmask, 'F', 1.0_wp )      ! Lateral boundary conditions 
    166 #else 
    167164      CALL lbc_lnk_multi( 'dommsk', umask, 'U', 1.0_wp, vmask, 'V', 1.0_wp, fmask, 'F', 1.0_wp )      ! Lateral boundary conditions 
    168 #endif 
    169165  
    170166      ! Ocean/land mask at wu-, wv- and w points    (computed from tmask) 
     
    223219         END DO 
    224220         ! 
    225 #if defined key_mpi3 
    226          CALL lbc_lnk_nc_multi( 'dommsk', fmask, 'F', 1._wp )      ! Lateral boundary conditions on fmask 
    227 #else 
    228221         CALL lbc_lnk( 'dommsk', fmask, 'F', 1._wp )      ! Lateral boundary conditions on fmask 
    229 #endif 
    230222         ! 
    231223         ! CAUTION : The fmask may be further modified in dyn_vor_init ( dynvor.F90 ) depending on ln_vorlat 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/DOM/domqco.F90

    r13906 r13963  
    163163      ! 
    164164      IF( .NOT.PRESENT( pr3f ) ) THEN              !- lbc on ratio at u-, v-points only 
    165 #if defined key_mpi3 
    166          CALL lbc_lnk_nc_multi( 'dom_qco_r3c', pr3u, 'U', 1._wp, pr3v, 'V', 1._wp ) 
    167 #else 
    168165         CALL lbc_lnk_multi( 'dom_qco_r3c', pr3u, 'U', 1._wp, pr3v, 'V', 1._wp ) 
    169 #endif 
    170166         ! 
    171167         ! 
     
    186182         ENDIF 
    187183         !                                                 ! lbc on ratio at u-,v-,f-points 
    188 #if defined key_mpi3 
    189          CALL lbc_lnk_nc_multi( 'dom_qco_r3c', pr3u, 'U', 1._wp, pr3v, 'V', 1._wp, pr3f, 'F', 1._wp ) 
    190 #else 
    191184         CALL lbc_lnk_multi( 'dom_qco_r3c', pr3u, 'U', 1._wp, pr3v, 'V', 1._wp, pr3f, 'F', 1._wp ) 
    192 #endif 
    193185         ! 
    194186      ENDIF 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/DOM/domutl.F90

    r13906 r13963  
    108108      ! 
    109109      puniq(:,:) = ztstref(:,:)                    ! default definition 
    110 #if defined key_mpi3 
    111       CALL lbc_lnk_nc_multi( 'domwri', puniq, cdgrd, 1. )   ! apply boundary conditions 
    112 #else 
    113110      CALL lbc_lnk( 'domwri', puniq, cdgrd, 1. )   ! apply boundary conditions 
    114 #endif 
    115111      lluniq(:,:,1) = puniq(:,:) == ztstref(:,:)   ! check which values have not been changed  
    116112      ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/DOM/domvvl.F90

    r13906 r13963  
    439439         !                               ! d - thickness diffusion transport: boundary conditions 
    440440         !                             (stored for tracer advction and continuity equation) 
    441 #if defined key_mpi3 
    442          CALL lbc_lnk_nc_multi( 'domvvl', un_td , 'U' , -1._wp, vn_td , 'V' , -1._wp) 
    443 #else 
    444441         CALL lbc_lnk_multi( 'domvvl', un_td , 'U' , -1._wp, vn_td , 'V' , -1._wp) 
    445 #endif 
    446442         ! 4 - Time stepping of baroclinic scale factors 
    447443         ! --------------------------------------------- 
    448 #if defined key_mpi3 
    449          CALL lbc_lnk_nc_multi( 'domvvl', tilde_e3t_a(:,:,:), 'T', 1._wp ) 
    450 #else 
    451444         CALL lbc_lnk( 'domvvl', tilde_e3t_a(:,:,:), 'T', 1._wp ) 
    452 #endif 
    453445         tilde_e3t_a(:,:,:) = tilde_e3t_b(:,:,:) + rDt * tmask(:,:,:) * tilde_e3t_a(:,:,:) 
    454446 
     
    724716               &                           + e1e2t(ji+1,jj) * ( pe3_in(ji+1,jj,jk) - e3t_0(ji+1,jj,jk) ) ) 
    725717         END_3D 
    726 #if defined key_mpi3 
    727          CALL lbc_lnk_nc_multi( 'domvvl', pe3_out(:,:,:), 'U', 1._wp ) 
    728 #else 
    729718         CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'U', 1._wp ) 
    730 #endif 
    731719         pe3_out(:,:,:) = pe3_out(:,:,:) + e3u_0(:,:,:) 
    732720         ! 
     
    737725               &                           + e1e2t(ji,jj+1) * ( pe3_in(ji,jj+1,jk) - e3t_0(ji,jj+1,jk) ) ) 
    738726         END_3D 
    739 #if defined key_mpi3 
    740          CALL lbc_lnk_nc_multi( 'domvvl', pe3_out(:,:,:), 'V', 1._wp ) 
    741 #else 
    742727         CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'V', 1._wp ) 
    743 #endif 
    744728         pe3_out(:,:,:) = pe3_out(:,:,:) + e3v_0(:,:,:) 
    745729         ! 
     
    751735               &                           + e1e2u(ji,jj+1) * ( pe3_in(ji,jj+1,jk) - e3u_0(ji,jj+1,jk) ) ) 
    752736         END_3D 
    753 #if defined key_mpi3 
    754          CALL lbc_lnk_nc_multi( 'domvvl', pe3_out(:,:,:), 'F', 1._wp ) 
    755 #else 
    756737         CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'F', 1._wp ) 
    757 #endif 
    758738         pe3_out(:,:,:) = pe3_out(:,:,:) + e3f_0(:,:,:) 
    759739         ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/DOM/domwri.F90

    r13906 r13963  
    229229         END DO 
    230230      END DO 
    231 #if defined key_mpi3 
    232       CALL lbc_lnk_nc_multi( 'domwri', zx1, 'T', 1.0_wp ) 
    233 #else 
    234231      CALL lbc_lnk( 'domwri', zx1, 'T', 1.0_wp ) 
    235 #endif 
    236232      ! 
    237233      IF( PRESENT( px1 ) )    px1 = zx1 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/DOM/domzgr.F90

    r13906 r13963  
    125125         zmsk(:,mj0(jpjglo-nn_hls):mj1(jpjglo-nn_hls)  ) = 0._wp   ! last    line of inner global domain at 0 
    126126      ENDIF 
    127 #if defined key_mpi3 
    128       CALL lbc_lnk_nc_multi( 'usrdef_zgr', zmsk, 'T', 1. )             ! set halos 
    129 #else 
    130127      CALL lbc_lnk( 'usrdef_zgr', zmsk, 'T', 1. )             ! set halos 
    131 #endif 
    132128      k_top(:,:) = k_top(:,:) * NINT( zmsk(:,:) ) 
    133129      ! 
     
    344340      END_2D 
    345341      ! converte into REAL to use lbc_lnk ; impose a min value of 1 as a zero can be set in lbclnk  
    346 #if defined key_mpi3 
    347       zk(:,:) = REAL( miku(:,:), wp )   ;   CALL lbc_lnk_nc_multi( 'domzgr', zk, 'U', 1.0_wp )   ;   miku(:,:) = MAX( NINT( zk(:,:) ), 1 ) 
    348       zk(:,:) = REAL( mikv(:,:), wp )   ;   CALL lbc_lnk_nc_multi( 'domzgr', zk, 'V', 1.0_wp )   ;   mikv(:,:) = MAX( NINT( zk(:,:) ), 1 ) 
    349       zk(:,:) = REAL( mikf(:,:), wp )   ;   CALL lbc_lnk_nc_multi( 'domzgr', zk, 'F', 1.0_wp )   ;   mikf(:,:) = MAX( NINT( zk(:,:) ), 1 ) 
    350       ! 
    351       zk(:,:) = REAL( mbku(:,:), wp )   ;   CALL lbc_lnk_nc_multi( 'domzgr', zk, 'U', 1.0_wp )   ;   mbku(:,:) = MAX( NINT( zk(:,:) ), 1 ) 
    352       zk(:,:) = REAL( mbkv(:,:), wp )   ;   CALL lbc_lnk_nc_multi( 'domzgr', zk, 'V', 1.0_wp )   ;   mbkv(:,:) = MAX( NINT( zk(:,:) ), 1 ) 
    353 #else 
    354342      zk(:,:) = REAL( miku(:,:), wp )   ;   CALL lbc_lnk( 'domzgr', zk, 'U', 1.0_wp )   ;   miku(:,:) = MAX( NINT( zk(:,:) ), 1 ) 
    355343      zk(:,:) = REAL( mikv(:,:), wp )   ;   CALL lbc_lnk( 'domzgr', zk, 'V', 1.0_wp )   ;   mikv(:,:) = MAX( NINT( zk(:,:) ), 1 ) 
     
    358346      zk(:,:) = REAL( mbku(:,:), wp )   ;   CALL lbc_lnk( 'domzgr', zk, 'U', 1.0_wp )   ;   mbku(:,:) = MAX( NINT( zk(:,:) ), 1 ) 
    359347      zk(:,:) = REAL( mbkv(:,:), wp )   ;   CALL lbc_lnk( 'domzgr', zk, 'V', 1.0_wp )   ;   mbkv(:,:) = MAX( NINT( zk(:,:) ), 1 ) 
    360 #endif 
    361348      ! 
    362349   END SUBROUTINE zgr_top_bot 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/DYN/divhor.F90

    r13906 r13963  
    9494      IF( ln_isf )                      CALL isf_hdiv( kt, Kmm, hdiv )           !==  ice shelf         ==!   (update hdiv field) 
    9595      ! 
    96 #if defined key_mpi3 
    97       CALL lbc_lnk_nc_multi( 'divhor', hdiv, 'T', 1.0_wp )   !   (no sign change) 
    98 #else 
    9996      CALL lbc_lnk( 'divhor', hdiv, 'T', 1.0_wp )   !   (no sign change) 
    100 #endif 
    10197      ! 
    10298      IF( ln_timing )   CALL timing_stop('div_hor') 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/DYN/dynadv_ubs.F90

    r13906 r13963  
    124124         END_2D 
    125125      END DO 
    126 #if defined key_mpi3 
    127       CALL lbc_lnk_nc_multi( 'dynadv_ubs', zlu_uu(:,:,:,1), 'U', 1.0_wp , zlu_uv(:,:,:,1), 'U', 1.0_wp,  & 
    128                       &   zlu_uu(:,:,:,2), 'U', 1.0_wp , zlu_uv(:,:,:,2), 'U', 1.0_wp,  &  
    129                       &   zlv_vv(:,:,:,1), 'V', 1.0_wp , zlv_vu(:,:,:,1), 'V', 1.0_wp,  & 
    130                       &   zlv_vv(:,:,:,2), 'V', 1.0_wp , zlv_vu(:,:,:,2), 'V', 1.0_wp   ) 
    131 #else 
    132126      CALL lbc_lnk_multi( 'dynadv_ubs', zlu_uu(:,:,:,1), 'U', 1.0_wp , zlu_uv(:,:,:,1), 'U', 1.0_wp,  & 
    133127                      &   zlu_uu(:,:,:,2), 'U', 1.0_wp , zlu_uv(:,:,:,2), 'U', 1.0_wp,  &  
    134128                      &   zlv_vv(:,:,:,1), 'V', 1.0_wp , zlv_vu(:,:,:,1), 'V', 1.0_wp,  & 
    135129                      &   zlv_vv(:,:,:,2), 'V', 1.0_wp , zlv_vu(:,:,:,2), 'V', 1.0_wp   ) 
    136 #endif 
    137130      ! 
    138131      !                                      ! ====================== ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/DYN/dynatf.F90

    r13906 r13963  
    167167# endif 
    168168      ! 
    169 #if defined key_mpi3 
    170       CALL lbc_lnk_nc_multi( 'dynatf', puu(:,:,:,Kaa), 'U', -1.0_wp, pvv(:,:,:,Kaa), 'V', -1.0_wp )     !* local domain boundaries 
    171 #else 
    172169      CALL lbc_lnk_multi( 'dynatf', puu(:,:,:,Kaa), 'U', -1.0_wp, pvv(:,:,:,Kaa), 'V', -1.0_wp )     !* local domain boundaries 
    173 #endif 
    174170      ! 
    175171      !                                !* BDY open boundaries 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/DYN/dynhpg.F90

    r13906 r13963  
    449449          END IF 
    450450        END_2D 
    451 #if defined key_mpi3 
    452         CALL lbc_lnk_nc_multi( 'dynhpg', zcpx, 'U', 1.0_wp, zcpy, 'V', 1.0_wp ) 
    453 #else 
    454451        CALL lbc_lnk_multi( 'dynhpg', zcpx, 'U', 1.0_wp, zcpy, 'V', 1.0_wp ) 
    455 #endif 
    456452      END IF 
    457453 
     
    684680          END IF 
    685681        END_2D 
    686 #if defined key_mpi3 
    687         CALL lbc_lnk_nc_multi( 'dynhpg', zcpx, 'U', 1.0_wp, zcpy, 'V', 1.0_wp ) 
    688 #else 
    689682        CALL lbc_lnk_multi( 'dynhpg', zcpx, 'U', 1.0_wp, zcpy, 'V', 1.0_wp ) 
    690 #endif 
    691683      END IF 
    692684 
     
    834826 
    835827      END_3D 
    836 #if defined key_mpi3 
    837       CALL lbc_lnk_nc_multi( 'dynhpg', rho_k, 'W', 1.0_wp, rho_i, 'U', 1.0_wp, rho_j, 'V', 1.0_wp ) 
    838 #else 
    839828      CALL lbc_lnk_multi( 'dynhpg', rho_k, 'W', 1.0_wp, rho_i, 'U', 1.0_wp, rho_j, 'V', 1.0_wp ) 
    840 #endif 
    841829 
    842830      ! --------------- 
     
    965953            ENDIF 
    966954         END_2D 
    967 #if defined key_mpi3 
    968          CALL lbc_lnk_nc_multi( 'dynhpg', zcpx, 'U', 1.0_wp, zcpy, 'V', 1.0_wp ) 
    969 #else 
    970955         CALL lbc_lnk_multi( 'dynhpg', zcpx, 'U', 1.0_wp, zcpy, 'V', 1.0_wp ) 
    971 #endif 
    972956      ENDIF 
    973957 
     
    10391023      END_2D 
    10401024 
    1041 #if defined key_mpi3 
    1042       CALL lbc_lnk_nc_multi ('dynhpg', zsshu_n, 'U', 1.0_wp, zsshv_n, 'V', 1.0_wp ) 
    1043 #else 
    10441025      CALL lbc_lnk_multi ('dynhpg', zsshu_n, 'U', 1.0_wp, zsshv_n, 'V', 1.0_wp ) 
    1045 #endif 
    10461026 
    10471027      DO_2D( 0, 0, 0, 0 ) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/DYN/dynkeg.F90

    r13906 r13963  
    121121            zhke(ji,jj,jk) = r1_48 * ( zv + zu ) 
    122122         END_3D 
    123 #if defined key_mpi3 
    124          CALL lbc_lnk_nc_multi( 'dynkeg', zhke, 'T', 1.0_wp ) 
    125 #else 
    126123         CALL lbc_lnk( 'dynkeg', zhke, 'T', 1.0_wp ) 
    127 #endif 
    128124         ! 
    129125      END SELECT  
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/DYN/dynldf_iso.F90

    r13906 r13963  
    135135         END_3D 
    136136         ! Lateral boundary conditions on the slopes 
    137 #if defined key_mpi3 
    138          CALL lbc_lnk_nc_multi( 'dynldf_iso', uslp , 'U', -1.0_wp, vslp , 'V', -1.0_wp, wslpi, 'W', -1.0_wp, wslpj, 'W', -1.0_wp ) 
    139 #else 
    140137         CALL lbc_lnk_multi( 'dynldf_iso', uslp , 'U', -1.0_wp, vslp , 'V', -1.0_wp, wslpi, 'W', -1.0_wp, wslpj, 'W', -1.0_wp ) 
    141 #endif 
    142138         ! 
    143139       ENDIF 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/DYN/dynldf_lap_blp.F90

    r13906 r13963  
    132132      CALL dyn_ldf_lap( kt, Kbb, Kmm, pu, pv, zulap, zvlap, 1 )   ! rotated laplacian applied to pt (output in zlap,Kbb) 
    133133      ! 
    134 #if defined key_mpi3 
    135       CALL lbc_lnk_nc_multi( 'dynldf_lap_blp', zulap, 'U', -1.0_wp, zvlap, 'V', -1.0_wp )             ! Lateral boundary conditions 
    136 #else 
    137134      CALL lbc_lnk_multi( 'dynldf_lap_blp', zulap, 'U', -1.0_wp, zvlap, 'V', -1.0_wp )             ! Lateral boundary conditions 
    138 #endif 
    139135      ! 
    140136      CALL dyn_ldf_lap( kt, Kbb, Kmm, zulap, zvlap, pu_rhs, pv_rhs, 2 )   ! rotated laplacian applied to zlap (output in pt(:,:,:,:,Krhs)) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/DYN/dynspg_ts.F90

    r13906 r13963  
    520520         END_2D 
    521521         ! 
    522 #if defined key_mpi3 
    523          CALL lbc_lnk_nc_multi( 'dynspg_ts', ssha_e, 'T', 1._wp,  zhU, 'U', -1._wp,  zhV, 'V', -1._wp ) 
    524 #else 
    525522         CALL lbc_lnk_multi( 'dynspg_ts', ssha_e, 'T', 1._wp,  zhU, 'U', -1._wp,  zhV, 'V', -1._wp ) 
    526 #endif 
    527523         ! 
    528524         ! Duplicate sea level across open boundaries (this is only cosmetic if linssh=T) 
     
    663659         ! 
    664660         IF( .NOT.ln_linssh ) THEN   !* Update ocean depth (variable volume case only) 
    665 #if defined key_mpi3 
    666             CALL lbc_lnk_nc_multi( 'dynspg_ts', ua_e , 'U', -1._wp, va_e , 'V', -1._wp  & 
    667                  &                         , hu_e , 'U',  1._wp, hv_e , 'V',  1._wp  & 
    668                  &                         , hur_e, 'U',  1._wp, hvr_e, 'V',  1._wp  ) 
    669 #else 
    670661            CALL lbc_lnk_multi( 'dynspg_ts', ua_e , 'U', -1._wp, va_e , 'V', -1._wp  & 
    671662                 &                         , hu_e , 'U',  1._wp, hv_e , 'V',  1._wp  & 
    672663                 &                         , hur_e, 'U',  1._wp, hvr_e, 'V',  1._wp  ) 
    673 #endif 
    674664         ELSE 
    675 #if defined key_mpi3 
    676             CALL lbc_lnk_nc_multi( 'dynspg_ts', ua_e , 'U', -1._wp, va_e , 'V', -1._wp  ) 
    677 #else 
    678665            CALL lbc_lnk_multi( 'dynspg_ts', ua_e , 'U', -1._wp, va_e , 'V', -1._wp  ) 
    679 #endif 
    680666         ENDIF 
    681667         !                                                 ! open boundaries 
     
    765751               &              +   e1e2t(ji,jj+1) * pssh(ji,jj+1,Kaa) ) 
    766752         END_2D 
    767 #if defined key_mpi3 
    768          CALL lbc_lnk_nc_multi( 'dynspg_ts', zsshu_a, 'U', 1._wp, zsshv_a, 'V', 1._wp ) ! Boundary conditions 
    769 #else 
    770753         CALL lbc_lnk_multi( 'dynspg_ts', zsshu_a, 'U', 1._wp, zsshv_a, 'V', 1._wp ) ! Boundary conditions 
    771 #endif 
    772754         ! 
    773755         DO jk=1,jpkm1 
     
    11321114            END_2D 
    11331115         END SELECT 
    1134 #if defined key_mpi3 
    1135          CALL lbc_lnk_nc_multi( 'dynspg_ts', zwz, 'F', 1._wp ) 
    1136 #else 
    11371116         CALL lbc_lnk( 'dynspg_ts', zwz, 'F', 1._wp ) 
    1138 #endif 
    11391117         ! 
    11401118         ftne(1,:) = 0._wp ; ftnw(1,:) = 0._wp ; ftse(1,:) = 0._wp ; ftsw(1,:) = 0._wp 
     
    11981176            END DO 
    11991177         END DO 
    1200 #if defined key_mpi3 
    1201          CALL lbc_lnk_nc_multi( 'dynspg_ts', zhf, 'F', 1._wp ) 
    1202 #else 
    12031178         CALL lbc_lnk( 'dynspg_ts', zhf, 'F', 1._wp ) 
    1204 #endif 
    12051179         ! JC: TBC. hf should be greater than 0  
    12061180         DO_2D( 1, 1, 1, 1 ) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/DYN/dynvor.F90

    r13906 r13963  
    242242         END DO 
    243243 
    244 #if defined key_mpi3 
    245          CALL lbc_lnk_nc_multi( 'dynvor', zwz, 'F', 1.0_wp ) 
    246 #else 
    247244         CALL lbc_lnk( 'dynvor', zwz, 'F', 1.0_wp ) 
    248 #endif 
    249245 
    250246      CASE ( np_CRV )                           !* Coriolis + relative vorticity 
     
    261257         END DO 
    262258 
    263 #if defined key_mpi3 
    264          CALL lbc_lnk_nc_multi( 'dynvor', zwz, 'F', 1.0_wp ) 
    265 #else 
    266259         CALL lbc_lnk( 'dynvor', zwz, 'F', 1.0_wp ) 
    267 #endif 
    268260 
    269261      END SELECT 
     
    618610      END DO                                           !   End of slab 
    619611         ! 
    620 #if defined key_mpi3 
    621       CALL lbc_lnk_nc_multi( 'dynvor', zwz, 'F', 1.0_wp ) 
    622 #else 
    623612      CALL lbc_lnk( 'dynvor', zwz, 'F', 1.0_wp ) 
    624 #endif 
    625613 
    626614      DO jk = 1, jpkm1                                 ! Horizontal slab 
     
    743731      END DO 
    744732      ! 
    745 #if defined key_mpi3 
    746       CALL lbc_lnk_nc_multi( 'dynvor', zwz, 'F', 1.0_wp ) 
    747 #else 
    748733      CALL lbc_lnk( 'dynvor', zwz, 'F', 1.0_wp ) 
    749 #endif 
    750734      ! 
    751735      DO jk = 1, jpkm1                                 ! Horizontal slab 
     
    839823         END_3D 
    840824         ! 
    841 #if defined key_mpi3 
    842          CALL lbc_lnk_nc_multi( 'dynvor', fmask, 'F', 1._wp )      ! Lateral boundary conditions on fmask 
    843 #else 
    844825         CALL lbc_lnk( 'dynvor', fmask, 'F', 1._wp )      ! Lateral boundary conditions on fmask 
    845 #endif 
    846826         ! 
    847827      ENDIF 
     
    881861               dj_e1v_2(ji,jj) = ( e1v(ji,jj) - e1v(ji  ,jj-1) ) * 0.5_wp 
    882862            END_2D 
    883 #if defined key_mpi3 
    884             CALL lbc_lnk_nc_multi( 'dynvor', di_e2u_2, 'T', -1.0_wp , dj_e1v_2, 'T', -1.0_wp )   ! Lateral boundary conditions 
    885 #else 
    886863            CALL lbc_lnk_multi( 'dynvor', di_e2u_2, 'T', -1.0_wp , dj_e1v_2, 'T', -1.0_wp )   ! Lateral boundary conditions 
    887 #endif 
    888864            ! 
    889865         CASE DEFAULT                        !* F-point metric term :   pre-compute di(e2u)/(2*e1e2f) and dj(e1v)/(2*e1e2f) 
     
    893869               dj_e1u_2e1e2f(ji,jj) = ( e1u(ji  ,jj+1) - e1u(ji,jj) )  * 0.5 * r1_e1e2f(ji,jj) 
    894870            END_2D 
    895 #if defined key_mpi3 
    896             CALL lbc_lnk_nc_multi( 'dynvor', di_e2v_2e1e2f, 'F', -1.0_wp , dj_e1u_2e1e2f, 'F', -1.0_wp )   ! Lateral boundary conditions 
    897 #else 
    898871            CALL lbc_lnk_multi( 'dynvor', di_e2v_2e1e2f, 'F', -1.0_wp , dj_e1u_2e1e2f, 'F', -1.0_wp )   ! Lateral boundary conditions 
    899 #endif 
    900872         END SELECT 
    901873         ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/DYN/sshwzv.F90

    r13906 r13963  
    119119      IF ( .NOT.ln_dynspg_ts ) THEN 
    120120         IF( ln_bdy ) THEN 
    121 #if defined key_mpi3 
    122             CALL lbc_lnk_nc_multi( 'sshwzv', pssh(:,:,Kaa), 'T', 1.0_wp )    ! Not sure that's necessary 
    123 #else 
    124121            CALL lbc_lnk( 'sshwzv', pssh(:,:,Kaa), 'T', 1.0_wp )    ! Not sure that's necessary 
    125 #endif 
    126122            CALL bdy_ssh( pssh(:,:,Kaa) )             ! Duplicate sea level across open boundaries 
    127123         ENDIF 
     
    186182            END_2D 
    187183         END DO 
    188 #if defined key_mpi3 
    189          CALL lbc_lnk_nc_multi('sshwzv', zhdiv, 'T', 1.0_wp)  ! - ML - Perhaps not necessary: not used for horizontal "connexions" 
    190 #else 
    191184         CALL lbc_lnk('sshwzv', zhdiv, 'T', 1.0_wp)  ! - ML - Perhaps not necessary: not used for horizontal "connexions" 
    192 #endif 
    193185         !                             ! Is it problematic to have a wrong vertical velocity in boundary cells? 
    194186         !                             ! Same question holds for hdiv. Perhaps just for security 
     
    396388         END_3D 
    397389      ENDIF 
    398 #if defined key_mpi3 
    399       CALL lbc_lnk_nc_multi( 'sshwzv', Cu_adv, 'T', 1.0_wp ) 
    400 #else 
    401390      CALL lbc_lnk( 'sshwzv', Cu_adv, 'T', 1.0_wp ) 
    402 #endif 
    403391      ! 
    404392      CALL iom_put("Courant",Cu_adv) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/DYN/wet_dry.F90

    r13906 r13963  
    241241            ENDIF 
    242242         END_2D 
    243 #if defined key_mpi3 
    244          CALL lbc_lnk_nc_multi( 'wet_dry', zwdlmtu, 'U', 1.0_wp, zwdlmtv, 'V', 1.0_wp ) 
    245 #else 
    246243         CALL lbc_lnk_multi( 'wet_dry', zwdlmtu, 'U', 1.0_wp, zwdlmtv, 'V', 1.0_wp ) 
    247 #endif 
    248244         ! 
    249245         CALL mpp_max('wet_dry', jflag)   !max over the global domain 
     
    261257      ! 
    262258!!gm TO BE SUPPRESSED ?  these lbc_lnk are useless since zwdlmtu and zwdlmtv are defined everywhere ! 
    263 #if defined key_mpi3 
    264       CALL lbc_lnk_nc_multi( 'wet_dry', puu(:,:,:,Kmm)  , 'U', -1.0_wp, pvv(:,:,:,Kmm)  , 'V', -1.0_wp ) 
    265       CALL lbc_lnk_nc_multi( 'wet_dry', uu_b(:,:,Kmm), 'U', -1.0_wp, vv_b(:,:,Kmm), 'V', -1.0_wp ) 
    266 #else 
    267259      CALL lbc_lnk_multi( 'wet_dry', puu(:,:,:,Kmm)  , 'U', -1.0_wp, pvv(:,:,:,Kmm)  , 'V', -1.0_wp ) 
    268260      CALL lbc_lnk_multi( 'wet_dry', uu_b(:,:,Kmm), 'U', -1.0_wp, vv_b(:,:,Kmm), 'V', -1.0_wp ) 
    269 #endif 
    270261!!gm 
    271262      ! 
     
    375366         END_2D 
    376367         ! 
    377 #if defined key_mpi3 
    378          CALL lbc_lnk_nc_multi( 'wet_dry', zwdlmtu, 'U', 1.0_wp, zwdlmtv, 'V', 1.0_wp ) 
    379 #else 
    380368         CALL lbc_lnk_multi( 'wet_dry', zwdlmtu, 'U', 1.0_wp, zwdlmtv, 'V', 1.0_wp ) 
    381 #endif 
    382369         ! 
    383370         CALL mpp_max('wet_dry', jflag)   !max over the global domain 
     
    391378      ! 
    392379!!gm THIS lbc_lnk is useless since it is already done at the end of the jk1-loop 
    393 #if defined key_mpi3 
    394       CALL lbc_lnk_nc_multi( 'wet_dry', zflxu, 'U', -1.0_wp, zflxv, 'V', -1.0_wp ) 
    395 #else 
    396380      CALL lbc_lnk_multi( 'wet_dry', zflxu, 'U', -1.0_wp, zflxv, 'V', -1.0_wp ) 
    397 #endif 
    398381!!gm end 
    399382      ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/ICB/icbclv.F90

    r13906 r13963  
    173173      ! 
    174174      DO jn = 1, nclasses 
    175 #if defined key_mpi3 
    176          CALL lbc_lnk_nc_multi( 'icbclv', berg_grid%stored_ice(:,:,jn), 'T', 1._wp ) 
    177 #else 
    178175         CALL lbc_lnk( 'icbclv', berg_grid%stored_ice(:,:,jn), 'T', 1._wp ) 
    179 #endif 
    180176      END DO 
    181 #if defined key_mpi3 
    182       CALL lbc_lnk_nc_multi( 'icbclv', berg_grid%stored_heat, 'T', 1._wp ) 
    183 #else 
    184177      CALL lbc_lnk( 'icbclv', berg_grid%stored_heat, 'T', 1._wp ) 
    185 #endif 
    186178      ! 
    187179      IF( nn_verbose_level > 0 .AND. icntmax > 1 )   WRITE(numicb,*) 'icb_clv: icnt=', icnt,' on', narea 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/ICB/icbini.F90

    r13906 r13963  
    127127         src_calving     (ji,jj) = nicbpack * mjg(jj) + mig(ji) 
    128128      END_2D 
    129 #if defined key_mpi3 
    130       CALL lbc_lnk_nc_multi( 'icbini', src_calving_hflx, 'T', 1._wp ) 
    131       CALL lbc_lnk_nc_multi( 'icbini', src_calving     , 'T', 1._wp ) 
    132 #else 
    133129      CALL lbc_lnk( 'icbini', src_calving_hflx, 'T', 1._wp ) 
    134130      CALL lbc_lnk( 'icbini', src_calving     , 'T', 1._wp ) 
    135 #endif 
    136131 
    137132      ! work out interior of processor from exchange array 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/IOM/iom.F90

    r13906 r13963  
    13421342               !--- overlap areas and extra hallows (mpp) 
    13431343               IF(     PRESENT(pv_r2d) .AND. idom /= jpdom_unknown .AND. cl_type /= 'Z' ) THEN 
    1344 #if defined key_mpi3 
    1345                   CALL lbc_lnk_nc_multi( 'iom', pv_r2d, cl_type, zsgn, kfillmode = kfill ) 
    1346 #else 
    13471344                  CALL lbc_lnk( 'iom', pv_r2d, cl_type, zsgn, kfillmode = kfill ) 
    1348 #endif 
    13491345               ELSEIF( PRESENT(pv_r3d) .AND. idom /= jpdom_unknown .AND. cl_type /= 'Z' ) THEN 
    1350 #if defined key_mpi3 
    1351                   CALL lbc_lnk_nc_multi( 'iom', pv_r3d, cl_type, zsgn, kfillmode = kfill ) 
    1352 #else 
    13531346                  CALL lbc_lnk( 'iom', pv_r3d, cl_type, zsgn, kfillmode = kfill ) 
    1354 #endif 
    13551347               ENDIF 
    13561348               ! 
     
    13711363            IF(lwp) WRITE(numout,*) 'XIOS RST READ (3D): ',TRIM(cdvar) 
    13721364            CALL xios_recv_field( trim(cdvar), pv_r3d) 
    1373 #if defined key_mpi3 
    1374             IF(idom /= jpdom_unknown )   CALL lbc_lnk_nc_multi( 'iom', pv_r3d,'Z', -999., kfillmode = jpfillnothing) 
    1375 #else 
    13761365            IF(idom /= jpdom_unknown )   CALL lbc_lnk( 'iom', pv_r3d,'Z', -999., kfillmode = jpfillnothing) 
    1377 #endif 
    13781366         ELSEIF( PRESENT(pv_r2d) ) THEN 
    13791367            IF(lwp) WRITE(numout,*) 'XIOS RST READ (2D): ', TRIM(cdvar) 
    13801368            CALL xios_recv_field( trim(cdvar), pv_r2d) 
    1381 #if defined key_mpi3 
    1382             IF(idom /= jpdom_unknown )   CALL lbc_lnk_nc_multi('iom', pv_r2d,'Z',-999., kfillmode = jpfillnothing) 
    1383 #else 
    13841369            IF(idom /= jpdom_unknown )   CALL lbc_lnk('iom', pv_r2d,'Z',-999., kfillmode = jpfillnothing) 
    1385 #endif 
    13861370         ELSEIF( PRESENT(pv_r1d) ) THEN 
    13871371            IF(lwp) WRITE(numout,*) 'XIOS RST READ (1D): ', TRIM(cdvar) 
     
    13961380!some final adjustments 
    13971381      ! C1D case : always call lbc_lnk to replicate the central value over the whole 3X3 domain 
    1398 #if defined key_mpi3 
    1399       IF( lk_c1d .AND. PRESENT(pv_r2d) )   CALL lbc_lnk_nc_multi( 'iom', pv_r2d,'Z',1.0_wp ) 
    1400       IF( lk_c1d .AND. PRESENT(pv_r3d) )   CALL lbc_lnk_nc_multi( 'iom', pv_r3d,'Z',1.0_wp ) 
    1401 #else 
    14021382      IF( lk_c1d .AND. PRESENT(pv_r2d) )   CALL lbc_lnk( 'iom', pv_r2d,'Z',1.0_wp ) 
    14031383      IF( lk_c1d .AND. PRESENT(pv_r3d) )   CALL lbc_lnk( 'iom', pv_r3d,'Z',1.0_wp ) 
    1404 #endif 
    14051384 
    14061385      !--- Apply scale_factor and offset 
     
    22532232      ! 
    22542233      z_fld(:,:) = 1._wp 
    2255 #if defined key_mpi3 
    2256       CALL lbc_lnk_nc_multi( 'iom', z_fld, cdgrd, -1.0_wp )    ! Working array for location of northfold 
    2257 #else 
    22582234      CALL lbc_lnk( 'iom', z_fld, cdgrd, -1.0_wp )    ! Working array for location of northfold 
    2259 #endif 
    22602235      ! 
    22612236      ! Cell vertices that can be defined 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/ISF/isfcav.F90

    r13906 r13963  
    136136      ! 
    137137      ! lbclnk on melt 
    138 #if defined key_mpi3 
    139       CALL lbc_lnk_nc_multi( 'isfmlt', zqh, 'T', 1.0_wp, pqfwf, 'T', 1.0_wp) 
    140 #else 
    141138      CALL lbc_lnk_multi( 'isfmlt', zqh, 'T', 1.0_wp, pqfwf, 'T', 1.0_wp) 
    142 #endif 
    143139      ! 
    144140      ! output fluxes 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/ISF/isfcpl.F90

    r13906 r13963  
    212212         zssmask0(:,:) = zssmask_b(:,:) 
    213213         ! 
    214 #if defined key_mpi3 
    215          CALL lbc_lnk_nc_multi( 'iscplrst', zssh, 'T', 1.0_wp, zssmask0, 'T', 1.0_wp ) 
    216 #else 
    217214         CALL lbc_lnk_multi( 'iscplrst', zssh, 'T', 1.0_wp, zssmask0, 'T', 1.0_wp ) 
    218 #endif 
    219215         ! 
    220216      END DO 
     
    371367         ztmask0(:,:,:) = ztmask1(:,:,:) 
    372368         ! 
    373 #if defined key_mpi3 
    374          CALL lbc_lnk_nc_multi( 'iscplrst', zts0(:,:,:,jp_tem), 'T', 1.0_wp, zts0(:,:,:,jp_sal), 'T', 1.0_wp, ztmask0, 'T', 1.0_wp) 
    375 #else 
    376369         CALL lbc_lnk_multi( 'iscplrst', zts0(:,:,:,jp_tem), 'T', 1.0_wp, zts0(:,:,:,jp_sal), 'T', 1.0_wp, ztmask0, 'T', 1.0_wp) 
    377 #endif 
    378370         ! 
    379371      END DO  ! nn_drown 
     
    466458      END_2D 
    467459      ! 
    468 #if defined key_mpi3 
    469       CALL lbc_lnk_nc_multi( 'iscpl', risfcpl_vol, 'T', 1.0_wp ) 
    470 #else 
    471460      CALL lbc_lnk( 'iscpl', risfcpl_vol, 'T', 1.0_wp ) 
    472 #endif 
    473461      ! 
    474462      ! 3.0: set total correction (div, tr(:,:,:,:,Krhs), ssh) 
     
    705693      ! 
    706694      ! add lbclnk 
    707 #if defined key_mpi3 
    708       CALL lbc_lnk_nc_multi( 'iscplrst', risfcpl_cons_tsc(:,:,:,jp_tem), 'T', 1.0_wp, risfcpl_cons_tsc(:,:,:,jp_sal), 'T', 1.0_wp, & 
    709          &                            risfcpl_cons_vol(:,:,:)       , 'T', 1.0_wp) 
    710 #else 
    711695      CALL lbc_lnk_multi( 'iscplrst', risfcpl_cons_tsc(:,:,:,jp_tem), 'T', 1.0_wp, risfcpl_cons_tsc(:,:,:,jp_sal), 'T', 1.0_wp, & 
    712696         &                            risfcpl_cons_vol(:,:,:)       , 'T', 1.0_wp) 
    713 #endif 
    714697      ! 
    715698      ! ssh correction (for dynspg_ts) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/ISF/isfpar.F90

    r13906 r13963  
    8282      ! 
    8383      ! lbclnk on melt and heat fluxes 
    84 #if defined key_mpi3 
    85       CALL lbc_lnk_nc_multi( 'isfmlt', zqh, 'T', 1.0_wp, pqfwf, 'T', 1.0_wp) 
    86 #else 
    8784      CALL lbc_lnk_multi( 'isfmlt', zqh, 'T', 1.0_wp, pqfwf, 'T', 1.0_wp) 
    88 #endif 
    8985      ! 
    9086      ! output fluxes 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/LBC/halo_mng.F90

    r13906 r13963  
    9292            zpta = pta(offset+1 : offset+jpi, offset+1 : offset+jpj) 
    9393         END IF 
    94 #if defined key_mpi3 
    95          CALL lbc_lnk_nc_multi( 'halo_mng_resize_2D', zpta, cdna, psgn, pfillval=fillval) 
    96 #else 
    9794         CALL lbc_lnk( 'halo_mng_resize_2D', zpta, cdna, psgn, pfillval=fillval) 
    98 #endif 
    9995         DEALLOCATE(pta) 
    10096         pta => zpta 
     
    126122            zpta = pta(offset+1 : offset+jpi, offset+1 : offset+jpj, :) 
    127123         END IF 
    128 #if defined key_mpi3 
    129          CALL lbc_lnk_nc_multi( 'halo_mng_resize_3D', zpta, cdna, psgn, pfillval=fillval) 
    130 #else 
    131124         CALL lbc_lnk( 'halo_mng_resize_3D', zpta, cdna, psgn, pfillval=fillval) 
    132 #endif 
    133125         DEALLOCATE(pta) 
    134126         pta => zpta 
     
    161153            zpta = pta(offset+1 : offset+jpi, offset+1 : offset+jpj, :, :) 
    162154         END IF 
    163 #if defined key_mpi3 
    164          CALL lbc_lnk_nc_multi( 'halo_mng_resize_4D', zpta(:,:,:,fjpt), cdna, psgn, pfillval=fillval) 
    165 #else 
    166155         CALL lbc_lnk( 'halo_mng_resize_4D', zpta(:,:,:,fjpt), cdna, psgn, pfillval=fillval) 
    167 #endif 
    168156         DEALLOCATE(pta) 
    169157         pta => zpta 
     
    197185            zpta = pta(offset+1 : offset+jpi, offset+1 : offset+jpj, :, :, :) 
    198186         END IF 
    199 #if defined key_mpi3 
    200          CALL lbc_lnk_nc_multi( 'halo_mng_resize_5D', zpta(:,:,:,:,fjpt), cdna, psgn, pfillval=fillval) 
    201 #else 
    202187         CALL lbc_lnk( 'halo_mng_resize_5D', zpta(:,:,:,:,fjpt), cdna, psgn, pfillval=fillval) 
    203 #endif 
    204188         DEALLOCATE(pta) 
    205189         pta => zpta 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/LBC/lbc_lnk_multi_generic.h90

    r13553 r13963  
    4040      &                    , pt9 , cdna9 , psgn9 , pt10, cdna10, psgn10, pt11, cdna11, psgn11, pt12, cdna12, psgn12  & 
    4141      &                    , pt13, cdna13, psgn13, pt14, cdna14, psgn14, pt15, cdna15, psgn15, pt16, cdna16, psgn16  & 
    42       &                    , kfillmode, pfillval, lsend, lrecv ) 
     42      &                    , kfillmode, pfillval, lsend, lrecv, ncsten ) 
    4343      !!--------------------------------------------------------------------- 
    4444      CHARACTER(len=*)     ,                   INTENT(in   ) ::   cdname  ! name of the calling subroutine 
     
    5555      REAL(wp)             , OPTIONAL        , INTENT(in   ) ::   pfillval    ! background value (used at closed boundaries) 
    5656      LOGICAL, DIMENSION(4), OPTIONAL        , INTENT(in   ) ::   lsend, lrecv   ! indicate how communications are to be carried out 
     57      LOGICAL              , OPTIONAL        , INTENT(in   ) ::   ncsten 
    5758      !! 
    5859      INTEGER                          ::   kfld        ! number of elements that will be attributed 
     
    8485      IF( PRESENT(psgn16) )   CALL ROUTINE_LOAD( pt16, cdna16, psgn16, ptab_ptr, cdna_ptr, psgn_ptr, kfld ) 
    8586      ! 
    86       CALL lbc_lnk_ptr( cdname, ptab_ptr, cdna_ptr, psgn_ptr, kfld, kfillmode, pfillval, lsend, lrecv ) 
     87      CALL lbc_lnk_ptr( cdname, ptab_ptr, cdna_ptr, psgn_ptr, kfld, kfillmode, pfillval, lsend, lrecv, ncsten ) 
    8788      ! 
    8889   END SUBROUTINE ROUTINE_MULTI 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/LBC/mpp_lnk_generic.h90

    r13286 r13963  
    7272 
    7373#if defined MULTI 
    74    SUBROUTINE ROUTINE_LNK( cdname, ptab, cd_nat, psgn, kfld, kfillmode, pfillval, lsend, lrecv ) 
     74   SUBROUTINE ROUTINE_LNK( cdname, ptab, cd_nat, psgn, kfld, kfillmode, pfillval, lsend, lrecv, ncsten ) 
    7575      INTEGER             , INTENT(in   ) ::   kfld        ! number of pt3d arrays 
    7676#else 
    77    SUBROUTINE ROUTINE_LNK( cdname, ptab, cd_nat, psgn      , kfillmode, pfillval, lsend, lrecv ) 
     77   SUBROUTINE ROUTINE_LNK( cdname, ptab, cd_nat, psgn      , kfillmode, pfillval, lsend, lrecv, ncsten ) 
    7878#endif 
    7979      ARRAY_TYPE(:,:,:,:,:)                                        ! array or pointer of arrays on which the boundary condition is applied 
     
    8484      REAL(wp),             OPTIONAL, INTENT(in   ) ::   pfillval    ! background value (used at closed boundaries) 
    8585      LOGICAL, DIMENSION(4),OPTIONAL, INTENT(in   ) ::   lsend, lrecv  ! communication with other 4 proc 
     86      LOGICAL,              OPTIONAL, INTENT(in   ) ::   ncsten      ! 5-point or 9-point stencil 
    8687      ! 
    8788      INTEGER  ::    ji,  jj,  jk,  jl,  jf      ! dummy loop indices 
     
    100101      !!---------------------------------------------------------------------- 
    101102      ! 
     103#if defined key_mpi3 
     104#   if defined MULTI 
     105      CALL lbc_lnk_nc    ( cdname,  ptab, cd_nat, psgn, kfld, kfillmode, pfillval, lsend, lrecv, ncsten ) 
     106#   else 
     107      CALL lbc_lnk_nc_multi(cdname, ptab, cd_nat, psgn, kfillmode=kfillmode, pfillval=pfillval, lsend=lsend, lrecv=lrecv, ncsten=ncsten) 
     108#   endif 
     109#else 
     110 
    102111      ! ----------------------------------------- ! 
    103112      !     0. local variables initialization     ! 
     
    387396      IF( llrecv_no )   DEALLOCATE( zrcv_no ) 
    388397      ! 
     398#endif 
    389399   END SUBROUTINE ROUTINE_LNK 
    390400#undef PRECISION 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/LDF/ldfc1d_c2d.F90

    r13906 r13963  
    8585            pah2(ji,jj,jk) = pahs2(ji,jj) * (  zratio + zc * ( 1._wp + TANH( - ( zdep2 - zh ) * zw) )  ) 
    8686         END_3D 
    87 #if defined key_mpi3 
    88          CALL lbc_lnk_nc_multi( 'ldfc1d_c2d', pah2, 'F', 1.0_wp )   ! Lateral boundary conditions 
    89 #else 
    9087         CALL lbc_lnk( 'ldfc1d_c2d', pah2, 'F', 1.0_wp )   ! Lateral boundary conditions 
    91 #endif 
    9288         ! 
    9389      CASE( 'TRA' )                     ! U- and V-points (zdep1 & 2 are an approximation in zps-coord.) 
     
    9995         END_3D 
    10096         ! Lateral boundary conditions 
    101 #if defined key_mpi3 
    102          CALL lbc_lnk_nc_multi( 'ldfc1d_c2d', pah1, 'U', 1.0_wp , pah2, 'V', 1.0_wp )    
    103 #else 
    10497         CALL lbc_lnk_multi( 'ldfc1d_c2d', pah1, 'U', 1.0_wp , pah2, 'V', 1.0_wp )    
    105 #endif 
    10698         ! 
    10799      CASE DEFAULT                        ! error 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/LDF/ldfdyn.F90

    r13906 r13963  
    398398         ENDIF 
    399399         ! 
    400 #if defined key_mpi3 
    401          CALL lbc_lnk_nc_multi( 'ldfdyn', ahmt, 'T', 1.0_wp,  ahmf, 'F', 1.0_wp ) 
    402 #else 
    403400         CALL lbc_lnk_multi( 'ldfdyn', ahmt, 'T', 1.0_wp,  ahmf, 'F', 1.0_wp ) 
    404 #endif 
    405401         ! 
    406402         ! 
     
    434430            END DO 
    435431            ! 
    436 #if defined key_mpi3 
    437             CALL lbc_lnk_nc_multi( 'ldfdyn', dtensq, 'T', 1.0_wp )  ! lbc_lnk on dshesq not needed 
    438 #else 
    439432            CALL lbc_lnk_multi( 'ldfdyn', dtensq, 'T', 1.0_wp )  ! lbc_lnk on dshesq not needed 
    440 #endif 
    441433            ! 
    442434            DO jk = 1, jpkm1 
     
    489481         ENDIF 
    490482         ! 
    491 #if defined key_mpi3 
    492          CALL lbc_lnk_nc_multi( 'ldfdyn', ahmt, 'T', 1.0_wp , ahmf, 'F', 1.0_wp ) 
    493 #else 
    494483         CALL lbc_lnk_multi( 'ldfdyn', ahmt, 'T', 1.0_wp , ahmf, 'F', 1.0_wp ) 
    495 #endif 
    496484         ! 
    497485      END SELECT 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/LDF/ldfslp.F90

    r13906 r13963  
    229229!!gm end modif 
    230230      END_3D 
    231 #if defined key_mpi3 
    232       CALL lbc_lnk_nc_multi( 'ldfslp', zwz, 'U', -1.0_wp,  zww, 'V', -1.0_wp )      ! lateral boundary conditions 
    233 #else  
    234231      CALL lbc_lnk_multi( 'ldfslp', zwz, 'U', -1.0_wp,  zww, 'V', -1.0_wp )      ! lateral boundary conditions 
    235 #endif 
    236232      ! 
    237233      !                                    !* horizontal Shapiro filter 
     
    307303!!gm end modif 
    308304      END_3D 
    309 #if defined key_mpi3 
    310       CALL lbc_lnk_nc_multi( 'ldfslp', zwz, 'T', -1.0_wp,  zww, 'T', -1.0_wp )      ! lateral boundary conditions 
    311 #else 
    312305      CALL lbc_lnk_multi( 'ldfslp', zwz, 'T', -1.0_wp,  zww, 'T', -1.0_wp )      ! lateral boundary conditions 
    313 #endif 
    314306      ! 
    315307      !                                           !* horizontal Shapiro filter 
     
    356348      ! IV. Lateral boundary conditions 
    357349      ! =============================== 
    358 #if defined key_mpi3 
    359       CALL lbc_lnk_nc_multi( 'ldfslp', uslp , 'U', -1.0_wp , vslp , 'V', -1.0_wp , wslpi, 'W', -1.0_wp, wslpj, 'W', -1.0_wp ) 
    360 #else 
    361350      CALL lbc_lnk_multi( 'ldfslp', uslp , 'U', -1.0_wp , vslp , 'V', -1.0_wp , wslpi, 'W', -1.0_wp, wslpj, 'W', -1.0_wp ) 
    362 #endif 
    363351 
    364352      IF(sn_cfctl%l_prtctl) THEN 
     
    592580      wslp2(:,:,1) = 0._wp                ! force the surface wslp to zero 
    593581 
    594 #if defined key_mpi3 
    595       CALL lbc_lnk_nc_multi( 'ldfslp', wslp2, 'W', 1.0_wp )      ! lateral boundary confition on wslp2 only   ==>>> gm : necessary ? to be checked 
    596 #else 
    597582      CALL lbc_lnk( 'ldfslp', wslp2, 'W', 1.0_wp )      ! lateral boundary confition on wslp2 only   ==>>> gm : necessary ? to be checked 
    598 #endif 
    599583      ! 
    600584      IF( ln_timing )   CALL timing_stop('ldf_slp_triad') 
     
    705689      END_2D 
    706690      !!gm this lbc_lnk should be useless.... 
    707 #if defined key_mpi3 
    708       CALL lbc_lnk_nc_multi( 'ldfslp', uslpml , 'U', -1.0_wp , vslpml , 'V', -1.0_wp , wslpiml, 'W', -1.0_wp , wslpjml, 'W', -1.0_wp )  
    709 #else 
    710691      CALL lbc_lnk_multi( 'ldfslp', uslpml , 'U', -1.0_wp , vslpml , 'V', -1.0_wp , wslpiml, 'W', -1.0_wp , wslpjml, 'W', -1.0_wp )  
    711 #endif 
    712692      ! 
    713693   END SUBROUTINE ldf_slp_mxl 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/LDF/ldftra.F90

    r13906 r13963  
    692692         zaeiw(ji,jj) = MIN( zzaei , paei0 )                                  ! Max value = paei0 
    693693      END_2D 
    694 #if defined key_mpi3 
    695       CALL lbc_lnk_nc_multi( 'ldftra', zaeiw(:,:), 'W', 1.0_wp )       ! lateral boundary condition 
    696 #else 
    697694      CALL lbc_lnk( 'ldftra', zaeiw(:,:), 'W', 1.0_wp )       ! lateral boundary condition 
    698 #endif 
    699695      !                
    700696      DO_2D( 0, 0, 0, 0 )                       !== aei at u- and v-points  ==! 
     
    702698         paeiv(ji,jj,1) = 0.5_wp * ( zaeiw(ji,jj) + zaeiw(ji  ,jj+1) ) * vmask(ji,jj,1) 
    703699      END_2D 
    704 #if defined key_mpi3 
    705       CALL lbc_lnk_nc_multi( 'ldftra', paeiu(:,:,1), 'U', 1.0_wp , paeiv(:,:,1), 'V', 1.0_wp )      ! lateral boundary condition 
    706 #else 
    707700      CALL lbc_lnk_multi( 'ldftra', paeiu(:,:,1), 'U', 1.0_wp , paeiv(:,:,1), 'V', 1.0_wp )      ! lateral boundary condition 
    708 #endif 
    709701 
    710702      DO jk = 2, jpkm1                          !==  deeper values equal the surface one  ==! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/SBC/cpl_oasis3.F90

    r13906 r13963  
    418418         !--- we must call lbc_lnk to fill the halos that where not received. 
    419419         IF( .NOT. ll_1st ) THEN 
    420 #if defined key_mpi3 
    421             CALL lbc_lnk_nc_multi( 'cpl_oasis3', pdata(:,:,jc), srcv(kid)%clgrid, srcv(kid)%nsgn )    
    422 #else 
    423420            CALL lbc_lnk( 'cpl_oasis3', pdata(:,:,jc), srcv(kid)%clgrid, srcv(kid)%nsgn )    
    424 #endif 
    425421         ENDIF 
    426422  
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/SBC/fldread.F90

    r13906 r13963  
    372372         CALL wgt_list( sdjf, iw ) 
    373373         CALL fld_interp( sdjf%num, sdjf%clvar, iw, ipk, dta_alias(:,:,:), sdjf%nrec(1,iaa), sdjf%lsmname ) 
    374 #if defined key_mpi3 
    375          CALL lbc_lnk_nc_multi( 'fldread', dta_alias(:,:,:), sdjf%cltype, sdjf%zsgn, kfillmode = jpfillcopy ) 
    376 #else 
    377374         CALL lbc_lnk( 'fldread', dta_alias(:,:,:), sdjf%cltype, sdjf%zsgn, kfillmode = jpfillcopy ) 
    378 #endif 
    379375      ELSE                                          ! default case 
    380376         ! C1D case: If product of spatial dimensions == ipk, then x,y are of 
     
    387383         IF( lk_c1d .AND. lmoor ) THEN 
    388384            CALL iom_get( sdjf%num, jpdom_unknown, sdjf%clvar, dta_alias(2,2,:), sdjf%nrec(1,iaa) )   ! jpdom_unknown -> no lbc_lnk 
    389 #if defined key_mpi3 
    390             CALL lbc_lnk_nc_multi( 'fldread', dta_alias(:,:,:), 'T', 1., kfillmode = jpfillcopy ) 
    391 #else 
    392385            CALL lbc_lnk( 'fldread', dta_alias(:,:,:), 'T', 1., kfillmode = jpfillcopy ) 
    393 #endif 
    394386         ELSE 
    395387            CALL iom_get( sdjf%num,  jpdom_global, sdjf%clvar, dta_alias(:,:,:), sdjf%nrec(1,iaa),   & 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/SBC/geo2ocean.F90

    r13906 r13963  
    272272      ! =========================== ! 
    273273      !           ! lateral boundary cond.: T-, U-, V-, F-pts, sgn 
    274 #if defined key_mpi3 
    275       CALL lbc_lnk_nc_multi( 'geo2ocean', gcost, 'T', -1.0_wp, gsint, 'T', -1.0_wp, gcosu, 'U', -1.0_wp, gsinu, 'U', -1.0_wp, &  
    276                       &   gcosv, 'V', -1.0_wp, gsinv, 'V', -1.0_wp, gcosf, 'F', -1.0_wp, gsinf, 'F', -1.0_wp  ) 
    277 #else 
    278274      CALL lbc_lnk_multi( 'geo2ocean', gcost, 'T', -1.0_wp, gsint, 'T', -1.0_wp, gcosu, 'U', -1.0_wp, gsinu, 'U', -1.0_wp, &  
    279275                      &   gcosv, 'V', -1.0_wp, gsinv, 'V', -1.0_wp, gcosf, 'F', -1.0_wp, gsinf, 'F', -1.0_wp  ) 
    280 #endif 
    281276      ! 
    282277   END SUBROUTINE angle 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/SBC/sbc_oce.F90

    r13906 r13963  
    224224         wndm(ji,jj) = SQRT ( ztau * zcoef ) * tmask(ji,jj,1) 
    225225      END_2D 
    226 #if defined key_mpi3 
    227       CALL lbc_lnk_nc_multi( 'sbc_oce', wndm(:,:) , 'T', 1.0_wp ) 
    228 #else 
    229226      CALL lbc_lnk( 'sbc_oce', wndm(:,:) , 'T', 1.0_wp ) 
    230 #endif 
    231227      ! 
    232228   END SUBROUTINE sbc_tau2wnd 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/SBC/sbcblk.F90

    r13906 r13963  
    757757 
    758758         IF( ln_crt_fbk ) THEN 
    759 #if defined key_mpi3 
    760             CALL lbc_lnk_nc_multi( 'sbcblk', utau, 'U', -1., vtau, 'V', -1., taum, 'T', -1. ) 
    761 #else 
    762759            CALL lbc_lnk_multi( 'sbcblk', utau, 'U', -1., vtau, 'V', -1., taum, 'T', -1. ) 
    763 #endif 
    764760         ELSE 
    765 #if defined key_mpi3 
    766             CALL lbc_lnk_nc_multi( 'sbcblk', utau, 'U', -1., vtau, 'V', -1. ) 
    767 #else 
    768761            CALL lbc_lnk_multi( 'sbcblk', utau, 'U', -1., vtau, 'V', -1. ) 
    769 #endif 
    770762         ENDIF 
    771763 
     
    989981            pvtaui(ji,jj) = zztmp2 * ( pvtaui(ji,jj) + pvtaui(ji  ,jj+1) ) 
    990982         END_2D 
    991 #if defined key_mpi3 
    992          CALL lbc_lnk_nc_multi( 'sbcblk', putaui, 'U', -1._wp, pvtaui, 'V', -1._wp ) 
    993 #else 
    994983         CALL lbc_lnk_multi( 'sbcblk', putaui, 'U', -1._wp, pvtaui, 'V', -1._wp ) 
    995 #endif 
    996984         ! 
    997985         IF(sn_cfctl%l_prtctl)  CALL prt_ctl( tab2d_1=putaui  , clinfo1=' blk_ice: putaui : '   & 
     
    14711459         ! 
    14721460      END_2D 
    1473 #if defined key_mpi3 
    1474       CALL lbc_lnk_nc_multi( 'sbcblk', pcd, 'T',  1.0_wp, pch, 'T', 1.0_wp ) 
    1475 #else 
    14761461      CALL lbc_lnk_multi( 'sbcblk', pcd, 'T',  1.0_wp, pch, 'T', 1.0_wp ) 
    1477 #endif 
    14781462      ! 
    14791463   END SUBROUTINE Cdn10_Lupkes2015 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/SBC/sbccpl.F90

    r13906 r13963  
    11991199                  frcv(jpr_oty1)%z3(ji,jj,1) = 0.5 * ( frcv(jpr_oty1)%z3(ji  ,jj+1,1) + frcv(jpr_oty1)%z3(ji,jj,1) ) 
    12001200               END_2D 
    1201 #if defined key_mpi3 
    1202                CALL lbc_lnk_nc_multi( 'sbccpl', frcv(jpr_otx1)%z3(:,:,1), 'U',  -1.0_wp, frcv(jpr_oty1)%z3(:,:,1), 'V',  -1.0_wp ) 
    1203 #else 
    12041201               CALL lbc_lnk_multi( 'sbccpl', frcv(jpr_otx1)%z3(:,:,1), 'U',  -1.0_wp, frcv(jpr_oty1)%z3(:,:,1), 'V',  -1.0_wp ) 
    1205 #endif 
    12061202            ENDIF 
    12071203            llnewtx = .TRUE. 
     
    12281224               frcv(jpr_taum)%z3(ji,jj,1) = 0.5 * SQRT( zzx * zzx + zzy * zzy ) 
    12291225            END_2D 
    1230 #if defined key_mpi3 
    1231             CALL lbc_lnk_nc_multi( 'sbccpl', frcv(jpr_taum)%z3(:,:,1), 'T', 1.0_wp ) 
    1232 #else 
    12331226            CALL lbc_lnk( 'sbccpl', frcv(jpr_taum)%z3(:,:,1), 'T', 1.0_wp ) 
    1234 #endif 
    12351227            llnewtau = .TRUE. 
    12361228         ELSE 
     
    16011593               p_tauj(ji,jj) = zztmp2 * ( frcv(jpr_ity1)%z3(ji  ,jj+1,1) + frcv(jpr_ity1)%z3(ji,jj,1) ) 
    16021594            END_2D 
    1603 #if defined key_mpi3 
    1604             CALL lbc_lnk_nc_multi( 'sbccpl', p_taui, 'U',  -1., p_tauj, 'V',  -1. ) 
    1605 #else 
    16061595            CALL lbc_lnk_multi( 'sbccpl', p_taui, 'U',  -1., p_tauj, 'V',  -1. ) 
    1607 #endif 
    16081596         END SELECT 
    16091597          
     
    24952483                  zity1(ji,jj) = 0.5 * ( v_ice(ji,jj  )     + v_ice(ji  ,jj-1  )     ) *  fr_i(ji,jj) 
    24962484               END_2D 
    2497 #if defined key_mpi3 
    2498                CALL lbc_lnk_nc_multi( 'sbccpl', zitx1, 'T', -1.0_wp, zity1, 'T', -1.0_wp ) 
    2499 #else 
    25002485               CALL lbc_lnk_multi( 'sbccpl', zitx1, 'T', -1.0_wp, zity1, 'T', -1.0_wp ) 
    2501 #endif 
    25022486            CASE( 'mixed oce-ice'        )      ! Ocean and Ice on C-grid ==> T 
    25032487               DO_2D( 0, 0, 0, 0 ) 
     
    25082492               END_2D 
    25092493            END SELECT 
    2510 #if defined key_mpi3 
    2511             CALL lbc_lnk_nc_multi( 'sbccpl', zotx1, ssnd(jps_ocx1)%clgrid, -1.0_wp,  zoty1, ssnd(jps_ocy1)%clgrid, -1.0_wp ) 
    2512 #else 
    25132494            CALL lbc_lnk_multi( 'sbccpl', zotx1, ssnd(jps_ocx1)%clgrid, -1.0_wp,  zoty1, ssnd(jps_ocy1)%clgrid, -1.0_wp ) 
    2514 #endif 
    25152495            ! 
    25162496         ENDIF 
     
    25802560                zity1(ji,jj) = 0.5 * ( v_ice(ji,jj  ) + v_ice(ji  ,jj-1  ) ) *  fr_i(ji,jj)  
    25812561             END_2D 
    2582 #if defined key_mpi3 
    2583              CALL lbc_lnk_nc_multi( 'sbccpl', zitx1, 'T', -1.0_wp,  zity1, 'T', -1.0_wp )  
    2584 #else 
    25852562             CALL lbc_lnk_multi( 'sbccpl', zitx1, 'T', -1.0_wp,  zity1, 'T', -1.0_wp )  
    2586 #endif 
    25872563          CASE( 'mixed oce-ice'        )      ! Ocean and Ice on C-grid ==> T   
    25882564             DO_2D( 0, 0, 0, 0 ) 
     
    25932569             END_2D 
    25942570          END SELECT 
    2595 #if defined key_mpi3 
    2596          CALL lbc_lnk_nc_multi( 'sbccpl', zotx1, ssnd(jps_ocxw)%clgrid, -1.0_wp, zoty1, ssnd(jps_ocyw)%clgrid, -1.0_wp )  
    2597 #else 
    25982571         CALL lbc_lnk_multi( 'sbccpl', zotx1, ssnd(jps_ocxw)%clgrid, -1.0_wp, zoty1, ssnd(jps_ocyw)%clgrid, -1.0_wp )  
    2599 #endif 
    26002572         !  
    26012573         !  
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/SBC/sbcflx.F90

    r13906 r13963  
    145145         ! 
    146146         ! clem: without these lbc calls, it seems that the northfold is not ok (true in 3.6, not sure in 4.x)  
    147 #if defined key_mpi3 
    148          CALL lbc_lnk_nc_multi( 'sbcflx', utau, 'U', -1._wp, vtau, 'V', -1._wp, & 
    149             &                           qns, 'T',  1._wp, emp , 'T',  1._wp, qsr, 'T', 1._wp ) !! sfx, 'T', 1._wp  ) 
    150 #else 
    151147         CALL lbc_lnk_multi( 'sbcflx', utau, 'U', -1._wp, vtau, 'V', -1._wp, & 
    152148            &                           qns, 'T',  1._wp, emp , 'T',  1._wp, qsr, 'T', 1._wp ) !! sfx, 'T', 1._wp  ) 
    153 #endif 
    154149         ! 
    155150         IF( nitend-nit000 <= 100 .AND. lwp ) THEN                ! control print (if less than 100 time-step asked) 
     
    177172      END_2D 
    178173      ! 
    179 #if defined key_mpi3 
    180       CALL lbc_lnk_nc_multi( 'sbcflx', taum, 'T', 1._wp, wndm, 'T', 1._wp ) 
    181 #else 
    182174      CALL lbc_lnk_multi( 'sbcflx', taum, 'T', 1._wp, wndm, 'T', 1._wp ) 
    183 #endif 
    184175      ! 
    185176   END SUBROUTINE sbc_flx 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/SBC/sbcfwb.F90

    r13906 r13963  
    181181            ! 
    182182!!gm   ===>>>>  lbc_lnk should be useless as all the computation is done over the whole domain ! 
    183 #if defined key_mpi3 
    184             CALL lbc_lnk_nc_multi( 'sbcfwb', zerp_cor, 'T', 1.0_wp ) 
    185 #else 
    186183            CALL lbc_lnk( 'sbcfwb', zerp_cor, 'T', 1.0_wp ) 
    187 #endif 
    188184            ! 
    189185            emp(:,:) = emp(:,:) + zerp_cor(:,:) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/SBC/sbcice_cice.F90

    r13906 r13963  
    222222      END_2D 
    223223 
    224 #if defined key_mpi3 
    225       CALL lbc_lnk_nc_multi( 'sbcice_cice', fr_iu , 'U', 1.0_wp,  fr_iv , 'V', 1.0_wp ) 
    226 #else 
    227224      CALL lbc_lnk_multi( 'sbcice_cice', fr_iu , 'U', 1.0_wp,  fr_iv , 'V', 1.0_wp ) 
    228 #endif 
    229225 
    230226      ! set the snow+ice mass 
     
    510506         ss_iou(ji,jj) = 0.5 * ( ztmp1(ji,jj-1) + ztmp1(ji,jj) ) * umask(ji,jj,1) 
    511507      END_2D 
    512 #if defined key_mpi3 
    513       CALL lbc_lnk_nc_multi( 'sbcice_cice', ss_iou , 'U', -1.0_wp ) 
    514 #else 
    515508      CALL lbc_lnk( 'sbcice_cice', ss_iou , 'U', -1.0_wp ) 
    516 #endif 
    517509 
    518510! y comp of ocean-ice stress  
     
    524516         ss_iov(ji,jj) = 0.5 * ( ztmp1(ji-1,jj) + ztmp1(ji,jj) ) * vmask(ji,jj,1) 
    525517      END_2D 
    526 #if defined key_mpi3 
    527       CALL lbc_lnk_nc_multi( 'sbcice_cice', ss_iov , 'V', -1.0_wp ) 
    528 #else 
    529518      CALL lbc_lnk( 'sbcice_cice', ss_iov , 'V', -1.0_wp ) 
    530 #endif 
    531519 
    532520! x and y comps of surface stress 
     
    581569      fmmflx(:,:) = ztmp1(:,:) !!Joakim edit 
    582570       
    583 #if defined key_mpi3 
    584       CALL lbc_lnk_nc_multi( 'sbcice_cice', emp , 'T', 1.0_wp, sfx , 'T', 1.0_wp ) 
    585 #else 
    586571      CALL lbc_lnk_multi( 'sbcice_cice', emp , 'T', 1.0_wp, sfx , 'T', 1.0_wp ) 
    587 #endif 
    588572 
    589573! Solar penetrative radiation and non solar surface heat flux 
     
    611595#endif 
    612596      qsr(:,:)=qsr(:,:)+ztmp1(:,:) 
    613 #if defined key_mpi3 
    614       CALL lbc_lnk_nc_multi( 'sbcice_cice', qsr , 'T', 1.0_wp ) 
    615 #else 
    616597      CALL lbc_lnk( 'sbcice_cice', qsr , 'T', 1.0_wp ) 
    617 #endif 
    618598 
    619599      DO_2D( 1, 1, 1, 1 ) 
     
    628608      qns(:,:)=qns(:,:)+nfrzmlt(:,:)+ztmp1(:,:) 
    629609 
    630 #if defined key_mpi3 
    631       CALL lbc_lnk_nc_multi( 'sbcice_cice', qns , 'T', 1.0_wp ) 
    632 #else 
    633610      CALL lbc_lnk( 'sbcice_cice', qns , 'T', 1.0_wp ) 
    634 #endif 
    635611 
    636612! Prepare for the following CICE time-step 
     
    650626      END_2D 
    651627 
    652 #if defined key_mpi3 
    653       CALL lbc_lnk_nc_multi( 'sbcice_cice', fr_iu , 'U', 1.0_wp, fr_iv , 'V', 1.0_wp ) 
    654 #else 
    655628      CALL lbc_lnk_multi( 'sbcice_cice', fr_iu , 'U', 1.0_wp, fr_iv , 'V', 1.0_wp ) 
    656 #endif 
    657629 
    658630      ! set the snow+ice mass 
     
    876848!     A. Ensure all haloes are filled in NEMO field (pn) 
    877849 
    878 #if defined key_mpi3 
    879       CALL lbc_lnk_nc_multi( 'sbcice_cice', pn , cd_type, psgn ) 
    880 #else 
    881850      CALL lbc_lnk( 'sbcice_cice', pn , cd_type, psgn ) 
    882 #endif 
    883851 
    884852#if defined key_nemocice_decomp 
     
    10551023!     D. Ensure all haloes are filled in pn 
    10561024 
    1057 #if defined key_mpi3 
    1058       CALL lbc_lnk_nc_multi( 'sbcice_cice', pn , cd_type, psgn ) 
    1059 #else 
    10601025      CALL lbc_lnk( 'sbcice_cice', pn , cd_type, psgn ) 
    1061 #endif 
    10621026 
    10631027   END SUBROUTINE cice2nemo 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/SBC/sbcmod.F90

    r13906 r13963  
    464464         ! A lbc_lnk is therefore needed to ensure reproducibility and restartability. 
    465465         ! see ticket #2113 for discussion about this lbc_lnk. 
    466 #if defined key_mpi3 
    467          IF( .NOT. ln_passive_mode ) CALL lbc_lnk_nc_multi( 'sbcmod', emp, 'T', 1.0_wp ) ! ensure restartability with icebergs 
    468 #else 
    469466         IF( .NOT. ln_passive_mode ) CALL lbc_lnk( 'sbcmod', emp, 'T', 1.0_wp ) ! ensure restartability with icebergs 
    470 #endif 
    471467      ENDIF 
    472468 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/SBC/sbcwave.F90

    r13906 r13963  
    199199      ENDIF 
    200200 
    201 #if defined key_mpi3 
    202       CALL lbc_lnk_nc_multi( 'sbcwave', usd, 'U', -1.0_wp, vsd, 'V', -1.0_wp ) 
    203 #else 
    204201      CALL lbc_lnk_multi( 'sbcwave', usd, 'U', -1.0_wp, vsd, 'V', -1.0_wp ) 
    205 #endif 
    206202 
    207203      ! 
     
    216212      END_3D 
    217213      ! 
    218 #if defined key_mpi3 
    219       CALL lbc_lnk_nc_multi( 'sbcwave', ze3divh, 'T', 1.0_wp ) 
    220 #else 
    221214      CALL lbc_lnk( 'sbcwave', ze3divh, 'T', 1.0_wp ) 
    222 #endif 
    223215      ! 
    224216      IF( ln_linssh ) THEN   ;   ik = 1   ! none zero velocity through the sea surface 
     
    279271            taum(ji,jj) = SQRT( tauw_x(ji,jj)*tauw_x(ji,jj) + tauw_y(ji,jj)*tauw_y(ji,jj) ) 
    280272         END_2D 
    281 #if defined key_mpi3 
    282          CALL lbc_lnk_nc_multi( 'sbcwave', utau(:,:), 'U', -1.0_wp , vtau(:,:), 'V', -1.0_wp , taum(:,:) , 'T', -1.0_wp ) 
    283 #else 
    284273         CALL lbc_lnk_multi( 'sbcwave', utau(:,:), 'U', -1.0_wp , vtau(:,:), 'V', -1.0_wp , taum(:,:) , 'T', -1.0_wp ) 
    285 #endif 
    286274      ENDIF 
    287275      ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/STO/stopar.F90

    r13906 r13963  
    174174          ! Apply horizontal Laplacian filter to w 
    175175          DO jflt = 1, sto2d_flt(jsto) 
    176 #if defined key_mpi3 
    177             CALL lbc_lnk_nc_multi( 'stopar', sto2d(:,:,jsto), sto2d_typ(jsto), sto2d_sgn(jsto) ) 
    178 #else 
    179176            CALL lbc_lnk( 'stopar', sto2d(:,:,jsto), sto2d_typ(jsto), sto2d_sgn(jsto) ) 
    180 #endif 
    181177            CALL sto_par_flt( sto2d(:,:,jsto) ) 
    182178          END DO 
     
    201197 
    202198        ! Lateral boundary conditions on sto2d 
    203 #if defined key_mpi3 
    204         CALL lbc_lnk_nc_multi( 'stopar', sto2d(:,:,jsto), sto2d_typ(jsto), sto2d_sgn(jsto) ) 
    205 #else 
    206199        CALL lbc_lnk( 'stopar', sto2d(:,:,jsto), sto2d_typ(jsto), sto2d_sgn(jsto) ) 
    207 #endif 
    208200      END DO 
    209201      ! 
     
    220212             ! Apply horizontal Laplacian filter to w 
    221213             DO jflt = 1, sto3d_flt(jsto) 
    222 #if defined key_mpi3 
    223                CALL lbc_lnk_nc_multi( 'stopar', sto3d(:,:,jk,jsto), sto3d_typ(jsto), sto3d_sgn(jsto) ) 
    224 #else 
    225214               CALL lbc_lnk( 'stopar', sto3d(:,:,jk,jsto), sto3d_typ(jsto), sto3d_sgn(jsto) ) 
    226 #endif 
    227215               CALL sto_par_flt( sto3d(:,:,jk,jsto) ) 
    228216             END DO 
     
    247235         END DO 
    248236         ! Lateral boundary conditions on sto3d 
    249 #if defined key_mpi3 
    250          CALL lbc_lnk_nc_multi( 'stopar', sto3d(:,:,:,jsto), sto3d_typ(jsto), sto3d_sgn(jsto) ) 
    251 #else 
    252237         CALL lbc_lnk( 'stopar', sto3d(:,:,:,jsto), sto3d_typ(jsto), sto3d_sgn(jsto) ) 
    253 #endif 
    254238      END DO 
    255239      ! 
     
    658642         ! Apply horizontal Laplacian filter to w 
    659643         DO jflt = 1, sto2d_flt(jsto) 
    660 #if defined key_mpi3 
    661             CALL lbc_lnk_nc_multi( 'stopar', sto2d(:,:,jsto), sto2d_typ(jsto), sto2d_sgn(jsto) ) 
    662 #else 
    663644            CALL lbc_lnk( 'stopar', sto2d(:,:,jsto), sto2d_typ(jsto), sto2d_sgn(jsto) ) 
    664 #endif 
    665645            CALL sto_par_flt( sto2d(:,:,jsto) ) 
    666646         END DO 
     
    679659            ! Apply horizontal Laplacian filter to w 
    680660            DO jflt = 1, sto3d_flt(jsto) 
    681 #if defined key_mpi3 
    682                CALL lbc_lnk_nc_multi( 'stopar', sto3d(:,:,jk,jsto), sto3d_typ(jsto), sto3d_sgn(jsto) ) 
    683 #else 
    684661               CALL lbc_lnk( 'stopar', sto3d(:,:,jk,jsto), sto3d_typ(jsto), sto3d_sgn(jsto) ) 
    685 #endif 
    686662               CALL sto_par_flt( sto3d(:,:,jk,jsto) ) 
    687663            END DO 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/STO/stopts.F90

    r13906 r13963  
    5454 
    5555      DO jts = 1, jpts 
    56 #if defined key_mpi3 
    57         CALL lbc_lnk_nc_multi( 'stopts', pts(:,:,:,jts), 'T' , 1._wp ) 
    58 #else 
    5956        CALL lbc_lnk( 'stopts', pts(:,:,:,jts), 'T' , 1._wp ) 
    60 #endif 
    6157      ENDDO 
    6258 
     
    123119      DO jdof = 1, nn_sto_eos 
    124120         DO jts = 1, jpts 
    125 #if defined key_mpi3 
    126             CALL lbc_lnk_nc_multi( 'stopts', pts_ran(:,:,:,jts,jdof), 'T' , 1._wp ) 
    127 #else 
    128121            CALL lbc_lnk( 'stopts', pts_ran(:,:,:,jts,jdof), 'T' , 1._wp ) 
    129 #endif 
    130122         END DO 
    131123      END DO 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/TRA/traadv.F90

    r13946 r13963  
    179179         ! 
    180180         CASE ( np_CEN )                                 ! Centered scheme : 2nd / 4th order 
    181 #if defined key_mpi3 
    182             IF (nn_hls.EQ.2) CALL lbc_lnk_nc_multi( 'traadv', pts(:,:,:,:,Kmm), 'T', 1. ) 
    183 #else 
    184181            IF (nn_hls.EQ.2) CALL lbc_lnk( 'traadv', pts(:,:,:,:,Kmm), 'T', 1. ) 
    185 #endif 
    186182            CALL tra_adv_cen    ( kt, nit000, 'TRA',         zuu, zvv, zww, Kmm, pts, jpts, Krhs, nn_cen_h, nn_cen_v ) 
    187183         CASE ( np_FCT )                                 ! FCT scheme      : 2nd / 4th order 
    188184            IF (nn_hls.EQ.2) THEN 
    189 #if defined key_mpi3 
    190                CALL lbc_lnk_nc_multi( 'traadv', pts(:,:,:,:,Kbb), 'T', 1., pts(:,:,:,:,Kmm), 'T', 1.) 
    191                CALL lbc_lnk_nc_multi( 'traadv', zuu(:,:,:), 'U', -1., zvv(:,:,:), 'V', -1., zww(:,:,:), 'W', 1.) 
    192 #else 
    193185               CALL lbc_lnk_multi( 'traadv', pts(:,:,:,:,Kbb), 'T', 1., pts(:,:,:,:,Kmm), 'T', 1.) 
    194186               CALL lbc_lnk_multi( 'traadv', zuu(:,:,:), 'U', -1., zvv(:,:,:), 'V', -1., zww(:,:,:), 'W', 1.) 
    195 #endif 
    196187#if defined key_loop_fusion 
    197188               CALL tra_adv_fct_lf ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, nn_fct_h, nn_fct_v ) 
     
    205196            ! NOTE: [tiling-comms-merge] I added this lbc_lnk as it did not validate against the trunk when using ln_zco 
    206197            IF (nn_hls.EQ.2) THEN  
    207 #if defined key_mpi3 
    208                 CALL lbc_lnk_nc_multi( 'traadv', pts(:,:,:,:,Kbb), 'T', 1.) 
    209 #else 
    210198                CALL lbc_lnk( 'traadv', pts(:,:,:,:,Kbb), 'T', 1.) 
    211 #endif 
    212199#if defined key_loop_fusion 
    213200                CALL tra_adv_mus_lf ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, ln_mus_ups )  
     
    219206            END IF 
    220207         CASE ( np_UBS )                                 ! UBS 
    221 #if defined key_mpi3 
    222             IF (nn_hls.EQ.2) CALL lbc_lnk_nc_multi( 'traadv', pts(:,:,:,:,Kbb), 'T', 1.) 
    223 #else 
    224208            IF (nn_hls.EQ.2) CALL lbc_lnk( 'traadv', pts(:,:,:,:,Kbb), 'T', 1.) 
    225 #endif 
    226209            CALL tra_adv_ubs    ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, nn_ubs_v   ) 
    227210         CASE ( np_QCK )                                 ! QUICKEST 
    228211            IF (nn_hls.EQ.2) THEN 
    229 #if defined key_mpi3 
    230                CALL lbc_lnk_nc_multi( 'traadv', zuu(:,:,:), 'U', -1., zvv(:,:,:), 'V', -1.) 
    231                CALL lbc_lnk_nc_multi( 'traadv', pts(:,:,:,:,Kbb), 'T', 1.) 
    232 #else 
    233212               CALL lbc_lnk_multi( 'traadv', zuu(:,:,:), 'U', -1., zvv(:,:,:), 'V', -1.) 
    234213               CALL lbc_lnk( 'traadv', pts(:,:,:,:,Kbb), 'T', 1.) 
    235 #endif 
    236214            END IF 
    237215            CALL tra_adv_qck    ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs ) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/TRA/traadv_cen.F90

    r13906 r13963  
    119119               ztv(ji,jj,jk) = ( pt(ji  ,jj+1,jk,jn,Kmm) - pt(ji,jj,jk,jn,Kmm) ) * vmask(ji,jj,jk) 
    120120            END_3D 
    121 #if defined key_mpi3 
    122             IF (nn_hls.EQ.1) CALL lbc_lnk_nc_multi( 'traadv_cen', ztu, 'U', -1.0_wp , ztv, 'V', -1.0_wp )   ! Lateral boundary cond. 
    123 #else 
    124121            IF (nn_hls.EQ.1) CALL lbc_lnk_multi( 'traadv_cen', ztu, 'U', -1.0_wp , ztv, 'V', -1.0_wp )   ! Lateral boundary cond. 
    125 #endif 
    126122            ! 
    127123            DO_3D( nn_hls-1, 0, nn_hls-1, 0, 1, jpkm1 )           ! Horizontal advective fluxes 
     
    135131               zwy(ji,jj,jk) =  0.5_wp * pV(ji,jj,jk) * zC4t_v 
    136132            END_3D 
    137 #if defined key_mpi3 
    138             IF (nn_hls.EQ.1) CALL lbc_lnk_nc_multi( 'traadv_cen', zwx, 'U', -1. , zwy, 'V', -1. ) 
    139 #else 
    140133            IF (nn_hls.EQ.1) CALL lbc_lnk_multi( 'traadv_cen', zwx, 'U', -1. , zwy, 'V', -1. ) 
    141 #endif 
    142134            ! 
    143135         CASE DEFAULT 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/TRA/traadv_fct.F90

    r13946 r13963  
    240240               END_2D 
    241241            END DO 
    242 #if defined key_mpi3 
    243             CALL lbc_lnk_nc_multi( 'traadv_fct', zltu, 'T', 1.0_wp , zltv, 'T', 1.0_wp, ncsten=.FALSE. )   ! Lateral boundary cond. (unchanged sgn) 
    244 #else 
    245242            CALL lbc_lnk_multi( 'traadv_fct', zltu, 'T', 1.0_wp , zltv, 'T', 1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
    246 #endif 
    247243            ! 
    248244            DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
     
    253249               zwy(ji,jj,jk) =  0.5_wp * pV(ji,jj,jk) * ( zC2t_v + zltv(ji,jj,jk) - zltv(ji,jj+1,jk) ) - zwy(ji,jj,jk) 
    254250            END_3D 
    255 #if defined key_mpi3 
    256             IF (nn_hls.EQ.2) CALL lbc_lnk_nc_multi( 'traadv_fct', zwx, 'U', -1.0_wp, zwy, 'V', -1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
    257 #else 
    258251            IF (nn_hls.EQ.2) CALL lbc_lnk_multi( 'traadv_fct', zwx, 'U', -1.0_wp, zwy, 'V', -1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
    259 #endif 
    260252            ! 
    261253         CASE(  41 )                   !- 4th order centered       ==>>   !!gm coding attempt   need to be tested 
     
    266258               ztv(ji,jj,jk) = ( pt(ji  ,jj+1,jk,jn,Kmm) - pt(ji,jj,jk,jn,Kmm) ) * vmask(ji,jj,jk) 
    267259            END_3D 
    268 #if defined key_mpi3 
    269             IF (nn_hls.EQ.1) CALL lbc_lnk_nc_multi( 'traadv_fct', ztu, 'U', -1.0_wp , ztv, 'V', -1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
    270 #else 
    271260            IF (nn_hls.EQ.1) CALL lbc_lnk_multi( 'traadv_fct', ztu, 'U', -1.0_wp , ztv, 'V', -1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
    272 #endif 
    273261            ! 
    274262            IF (nn_hls.EQ.1) CALL lbc_lnk_multi( 'traadv_fct', ztu, 'U', -1.0_wp , ztv, 'V', -1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
     
    284272               zwy(ji,jj,jk) =  0.5_wp * pV(ji,jj,jk) * zC4t_v - zwy(ji,jj,jk) 
    285273            END_3D 
    286 #if defined key_mpi3 
    287             IF (nn_hls.EQ.2) CALL lbc_lnk_nc_multi( 'traadv_fct', zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
    288 #else 
    289274            IF (nn_hls.EQ.2) CALL lbc_lnk_multi( 'traadv_fct', zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
    290 #endif 
    291275            ! 
    292276         END SELECT 
     
    312296         ! 
    313297         IF (nn_hls.EQ.1) THEN 
    314 #if defined key_mpi3 
    315             CALL lbc_lnk_nc_multi( 'traadv_fct', zwi, 'T', 1.0_wp, zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp, zwz, 'T', 1.0_wp ) 
    316 #else 
    317298            CALL lbc_lnk_multi( 'traadv_fct', zwi, 'T', 1.0_wp, zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp, zwz, 'T', 1.0_wp ) 
    318 #endif 
    319299         ELSE 
    320 #if defined key_mpi3 
    321             CALL lbc_lnk_nc_multi( 'traadv_fct', zwi, 'T', 1.0_wp) 
    322 #else 
    323300            CALL lbc_lnk( 'traadv_fct', zwi, 'T', 1.0_wp) 
    324 #endif 
    325301         END IF 
    326302         ! 
     
    487463         END_2D 
    488464      END DO 
    489 #if defined key_mpi3 
    490       IF (nn_hls.EQ.1) CALL lbc_lnk_nc_multi( 'traadv_fct', zbetup, 'T', 1.0_wp , zbetdo, 'T', 1.0_wp )   ! lateral boundary cond. (unchanged sign) 
    491 #else 
    492465      IF (nn_hls.EQ.1) CALL lbc_lnk_multi( 'traadv_fct', zbetup, 'T', 1.0_wp , zbetdo, 'T', 1.0_wp )   ! lateral boundary cond. (unchanged sign) 
    493 #endif 
    494466 
    495467      ! 3. monotonic flux in the i & j direction (paa & pbb) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/TRA/traadv_mus.F90

    r13906 r13963  
    140140         END_3D 
    141141         ! lateral boundary conditions   (changed sign) 
    142 #if defined key_mpi3 
    143          IF ( nn_hls.EQ.1 ) CALL lbc_lnk_nc_multi( 'traadv_mus', zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp ) 
    144 #else 
    145142         IF ( nn_hls.EQ.1 ) CALL lbc_lnk_multi( 'traadv_mus', zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp ) 
    146 #endif 
    147143         !                                !-- Slopes of tracer 
    148144         zslpx(:,:,jpk) = 0._wp                 ! bottom values 
     
    180176            zwy(ji,jj,jk) = pV(ji,jj,jk) * ( zalpha * zzwx + (1.-zalpha) * zzwy ) 
    181177         END_3D 
    182 #if defined key_mpi3 
    183          IF ( nn_hls.EQ.1 ) CALL lbc_lnk_nc_multi( 'traadv_mus', zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp )   ! lateral boundary conditions   (changed sign) 
    184 #else 
    185178         IF ( nn_hls.EQ.1 ) CALL lbc_lnk_multi( 'traadv_mus', zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp )   ! lateral boundary conditions   (changed sign) 
    186 #endif 
    187179         ! 
    188180         DO_3D( 0, 0, 0, 0, 1, jpkm1 )    !-- Tracer advective trend 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/TRA/traadv_qck.F90

    r13906 r13963  
    150150            zfd(ji,jj,jk) = pt(ji+1,jj,jk,jn,Kbb)        ! Downstream in the x-direction for the tracer 
    151151         END_3D 
    152 #if defined key_mpi3 
    153          IF (nn_hls.EQ.1) CALL lbc_lnk_nc_multi( 'traadv_qck', zfc(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp )   ! Lateral boundary conditions 
    154 #else 
    155152         IF (nn_hls.EQ.1) CALL lbc_lnk_multi( 'traadv_qck', zfc(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp )   ! Lateral boundary conditions 
    156 #endif 
    157153          
    158154         ! 
     
    172168         END_3D 
    173169         !--- Lateral boundary conditions  
    174 #if defined key_mpi3 
    175          IF (nn_hls.EQ.1) CALL lbc_lnk_nc_multi( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp, zfc(:,:,:), 'T', 1.0_wp,  zwx(:,:,:), 'T', 1.0_wp ) 
    176 #else 
    177170         IF (nn_hls.EQ.1) CALL lbc_lnk_multi( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp, zfc(:,:,:), 'T', 1.0_wp,  zwx(:,:,:), 'T', 1.0_wp ) 
    178 #endif 
    179171 
    180172         !--- QUICKEST scheme 
     
    185177            zfu(ji,jj,jk) = tmask(ji-1,jj,jk) + tmask(ji,jj,jk) + tmask(ji+1,jj,jk) - 2. 
    186178         END_3D 
    187 #if defined key_mpi3 
    188          IF (nn_hls.EQ.1) CALL lbc_lnk_nc_multi( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp )      ! Lateral boundary conditions 
    189 #else 
    190179         IF (nn_hls.EQ.1) CALL lbc_lnk( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp )      ! Lateral boundary conditions 
    191 #endif 
    192180 
    193181         ! 
     
    252240            END_2D 
    253241         END DO 
    254 #if defined key_mpi3 
    255          IF (nn_hls.EQ.1) CALL lbc_lnk_nc_multi( 'traadv_qck', zfc(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp )   ! Lateral boundary conditions 
    256 #else 
    257242         IF (nn_hls.EQ.1) CALL lbc_lnk_multi( 'traadv_qck', zfc(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp )   ! Lateral boundary conditions 
    258 #endif 
    259243          
    260244         ! 
     
    276260 
    277261         !--- Lateral boundary conditions  
    278 #if defined key_mpi3 
    279          IF (nn_hls.EQ.1) CALL lbc_lnk_nc_multi( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp, zfc(:,:,:), 'T', 1.0_wp, zwy(:,:,:), 'T', 1.0_wp ) 
    280 #else 
    281262         IF (nn_hls.EQ.1) CALL lbc_lnk_multi( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp, zfc(:,:,:), 'T', 1.0_wp, zwy(:,:,:), 'T', 1.0_wp ) 
    282 #endif 
    283263 
    284264         !--- QUICKEST scheme 
     
    289269            zfu(ji,jj,jk) = tmask(ji,jj-1,jk) + tmask(ji,jj,jk) + tmask(ji,jj+1,jk) - 2. 
    290270         END_3D 
    291 #if defined key_mpi3 
    292          IF (nn_hls.EQ.1) CALL lbc_lnk_nc_multi( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp )    !--- Lateral boundary conditions 
    293 #else 
    294271         IF (nn_hls.EQ.1) CALL lbc_lnk( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp )    !--- Lateral boundary conditions 
    295 #endif 
    296272         ! 
    297273         ! Tracer flux on the x-direction 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/TRA/traadv_ubs.F90

    r13906 r13963  
    140140            !                                     
    141141         END DO          
    142 #if defined key_mpi3 
    143          IF (nn_hls.EQ.1) CALL lbc_lnk_nc_multi( 'traadv_ubs', zltu, 'T', 1.0_wp, zltv, 'T', 1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
    144 #else 
    145142         IF (nn_hls.EQ.1) CALL lbc_lnk_multi( 'traadv_ubs', zltu, 'T', 1.0_wp, zltv, 'T', 1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
    146 #endif 
    147143         !     
    148144         DO_3D( 1, 0, 1, 0, 1, jpkm1 )   !==  Horizontal advective fluxes  ==!     (UBS) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/TRA/traatf.F90

    r13923 r13963  
    110110#endif 
    111111      !                                              ! local domain boundaries  (T-point, unchanged sign) 
    112 #if defined key_mpi3 
    113       CALL lbc_lnk_nc_multi( 'traatf', pts(:,:,:,jp_tem,Kaa), 'T', 1.0_wp, pts(:,:,:,jp_sal,Kaa), 'T', 1.0_wp ) 
    114 #else 
    115112      CALL lbc_lnk_multi( 'traatf', pts(:,:,:,jp_tem,Kaa), 'T', 1.0_wp, pts(:,:,:,jp_sal,Kaa), 'T', 1.0_wp ) 
    116 #endif 
    117113      ! 
    118114      IF( ln_bdy )   CALL bdy_tra( kt, Kbb, pts, Kaa )  ! BDY open boundaries 
     
    160156         ENDIF 
    161157         ! 
    162 #if defined key_mpi3 
    163          CALL lbc_lnk_nc_multi( 'traatf',  pts(:,:,:,jp_tem,Kmm) , 'T', 1.0_wp, pts(:,:,:,jp_sal,Kmm) , 'T', 1.0_wp )  
    164 #else 
    165158         CALL lbc_lnk_multi( 'traatf',  pts(:,:,:,jp_tem,Kmm) , 'T', 1.0_wp, pts(:,:,:,jp_sal,Kmm) , 'T', 1.0_wp )  
    166 #endif 
    167159 
    168160      ENDIF      
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/TRA/traatf_qco.F90

    r13923 r13963  
    149149         ENDIF 
    150150         ! 
    151 #if defined key_mpi3 
    152          CALL lbc_lnk_nc_multi( 'traatfqco', pts(:,:,:,jp_tem,Kmm) , 'T', 1., pts(:,:,:,jp_sal,Kmm) , 'T', 1. ) 
    153 #else 
    154151         CALL lbc_lnk_multi( 'traatfqco', pts(:,:,:,jp_tem,Kmm) , 'T', 1., pts(:,:,:,jp_sal,Kmm) , 'T', 1. ) 
    155 #endif 
    156152 
    157153      ENDIF 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/TRA/trabbl.F90

    r13906 r13963  
    142142            ! lateral boundary conditions ; just need for outputs 
    143143            ! NOTE: [tiling-comms-merge] The diagnostic results change along the north fold if this is removed 
    144 #if defined key_mpi3 
    145             CALL lbc_lnk_nc_multi( 'trabbl', utr_bbl, 'U', 1.0_wp , vtr_bbl, 'V', 1.0_wp ) 
    146 #else 
    147144            CALL lbc_lnk_multi( 'trabbl', utr_bbl, 'U', 1.0_wp , vtr_bbl, 'V', 1.0_wp ) 
    148 #endif 
    149145            CALL iom_put( "uoce_bbl", utr_bbl )  ! bbl i-transport 
    150146            CALL iom_put( "voce_bbl", vtr_bbl )  ! bbl j-transport 
     
    528524      ! converte into REAL to use lbc_lnk ; impose a min value of 1 as a zero can be set in lbclnk 
    529525      zmbku(:,:) = REAL( mbku_d(:,:), wp )   ;     zmbkv(:,:) = REAL( mbkv_d(:,:), wp )   
    530 #if defined key_mpi3 
    531       CALL lbc_lnk_nc_multi( 'trabbl', zmbku,'U',1.0_wp, zmbkv,'V',1.0_wp)  
    532 #else 
    533526      CALL lbc_lnk_multi( 'trabbl', zmbku,'U',1.0_wp, zmbkv,'V',1.0_wp)  
    534 #endif 
    535527      mbku_d(:,:) = MAX( INT( zmbku(:,:) ), 1 ) ;  mbkv_d(:,:) = MAX( NINT( zmbkv(:,:) ), 1 ) 
    536528      ! 
     
    551543         e3v_bbl_0(ji,jj) = MIN( e3v_0(ji,jj,mbkt(ji  ,jj+1)), e3v_0(ji,jj,mbkt(ji,jj)) ) 
    552544      END_2D 
    553 #if defined key_mpi3 
    554       CALL lbc_lnk_nc_multi( 'trabbl', e3u_bbl_0, 'U', 1.0_wp , e3v_bbl_0, 'V', 1.0_wp )      ! lateral boundary conditions 
    555 #else 
    556545      CALL lbc_lnk_multi( 'trabbl', e3u_bbl_0, 'U', 1.0_wp , e3v_bbl_0, 'V', 1.0_wp )      ! lateral boundary conditions 
    557 #endif 
    558546      ! 
    559547      !                             !* masked diffusive flux coefficients 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/TRA/traldf.F90

    r13946 r13963  
    9393         CASE ( np_blp , np_blp_i , np_blp_it )             ! bilaplacian: iso-level & iso-neutral operators 
    9494            ! NOTE: [tiling-comms-merge] This lbc_lnk is still needed in the zco case, because zps_hde is not called in step 
    95 #if defined key_mpi3 
    96             IF(nn_hls.EQ.2) CALL lbc_lnk_nc_multi( 'tra_ldf', pts(:,:,:,:,Kbb), 'T',1.) 
    97 #else 
    9895            IF(nn_hls.EQ.2) CALL lbc_lnk( 'tra_ldf', pts(:,:,:,:,Kbb), 'T',1.) 
    99 #endif 
    10096            CALL tra_ldf_blp  ( kt, Kmm, nit000,'TRA', ahtu, ahtv, gtsu, gtsv, gtui, gtvi, pts(:,:,:,:,Kbb), pts(:,:,:,:,Krhs),             jpts, nldf_tra ) 
    10197         END SELECT 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/TRA/traldf_lap_blp.F90

    r13906 r13963  
    237237      ! 
    238238      ! NOTE: [tiling-comms-merge] Needed for both nn_hls as tra_ldf_iso and tra_ldf_triad have not yet been adjusted to work with nn_hls = 2. In the zps case the lbc_lnk in zps_hde handles this, but in the zco case zlap always needs this lbc_lnk. I did try adjusting the bounds in tra_ldf_iso and tra_ldf_triad so this lbc_lnk was only needed for nn_hls = 1, but this was not correct and I did not have time to figure out why 
    239 #if defined key_mpi3 
    240       CALL lbc_lnk_nc_multi( 'traldf_lap_blp', zlap(:,:,:,:) , 'T', 1.0_wp )     ! Lateral boundary conditions (unchanged sign) 
    241 #else 
    242239      CALL lbc_lnk( 'traldf_lap_blp', zlap(:,:,:,:) , 'T', 1.0_wp )     ! Lateral boundary conditions (unchanged sign) 
    243 #endif 
    244240      !                                               ! Partial top/bottom cell: GRADh( zlap )   
    245241      IF( ln_isfcav .AND. ln_zps ) THEN   ;   CALL zps_hde_isf( kt, Kmm, kjpt, zlap, zglu, zglv, zgui, zgvi )  ! both top & bottom 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/TRA/tramle.F90

    r13906 r13963  
    307307               rfv(ji,jj) = SQRT(  zfv * zfv + z1_t2 ) 
    308308            END_2D 
    309 #if defined key_mpi3 
    310             IF (nn_hls.EQ.1) CALL lbc_lnk_nc_multi( 'tramle', rfu, 'U', 1.0_wp , rfv, 'V', 1.0_wp ) 
    311 #else 
    312309            IF (nn_hls.EQ.1) CALL lbc_lnk_multi( 'tramle', rfu, 'U', 1.0_wp , rfv, 'V', 1.0_wp ) 
    313 #endif 
    314310            ! 
    315311         ELSEIF( nn_mle == 1 ) THEN           ! MLE array allocation & initialisation 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/TRA/trazdf.F90

    r13906 r13963  
    9898         ! NOTE: [tiling-comms-merge] The diagnostic results change along the north fold if this is removed 
    9999!!gm this should be moved in trdtra.F90 and done on all trends 
    100 #if defined key_mpi3 
    101          CALL lbc_lnk_nc_multi( 'trazdf', ztrdt, 'T', 1.0_wp , ztrds, 'T', 1.0_wp ) 
    102 #else 
    103100         CALL lbc_lnk_multi( 'trazdf', ztrdt, 'T', 1.0_wp , ztrds, 'T', 1.0_wp ) 
    104 #endif 
    105101!!gm 
    106102         CALL trd_tra( kt, Kmm, Krhs, 'TRA', jp_tem, jptra_zdf, ztrdt ) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/TRA/zpshde.F90

    r13946 r13963  
    126126      ! NOTE: [tiling-comms-merge] Some lbc_lnks in tra_adv and tra_ldf can be taken out in the zps case, because this lbc_lnk is called when zps_hde is called in the stp routine. In the zco case they are still needed. 
    127127      IF (nn_hls.EQ.2) THEN 
    128 #if defined key_mpi3 
    129          CALL lbc_lnk_nc_multi( 'zpshde', pta, 'T', 1.0_wp) 
    130 #else 
    131128         CALL lbc_lnk( 'zpshde', pta, 'T', 1.0_wp) 
    132 #endif 
    133 #if defined key_mpi3 
    134          IF(PRESENT(prd)) CALL lbc_lnk_nc_multi( 'zpshde', prd, 'T', 1.0_wp) 
    135 #else 
    136129         IF(PRESENT(prd)) CALL lbc_lnk( 'zpshde', prd, 'T', 1.0_wp) 
    137 #endif 
    138130      END IF 
    139131      ! 
     
    182174      END DO 
    183175      ! 
    184 #if defined key_mpi3 
    185       IF (nn_hls.EQ.1) CALL lbc_lnk_nc_multi( 'zpshde', pgtu(:,:,:), 'U', -1.0_wp , pgtv(:,:,:), 'V', -1.0_wp )   ! Lateral boundary cond. 
    186 #else 
    187176      IF (nn_hls.EQ.1) CALL lbc_lnk_multi( 'zpshde', pgtu(:,:,:), 'U', -1.0_wp , pgtv(:,:,:), 'V', -1.0_wp )   ! Lateral boundary cond. 
    188 #endif 
    189177      !                 
    190178      IF( PRESENT( prd ) ) THEN    !==  horizontal derivative of density anomalies (rd)  ==!    (optional part) 
     
    219207            ENDIF 
    220208         END_2D 
    221 #if defined key_mpi3 
    222          IF (nn_hls.EQ.1) CALL lbc_lnk_nc_multi( 'zpshde', pgru , 'U', -1.0_wp , pgrv , 'V', -1.0_wp )   ! Lateral boundary conditions 
    223 #else 
    224209         IF (nn_hls.EQ.1) CALL lbc_lnk_multi( 'zpshde', pgru , 'U', -1.0_wp , pgrv , 'V', -1.0_wp )   ! Lateral boundary conditions 
    225 #endif 
    226210         ! 
    227211      END IF 
     
    325309      ! 
    326310      IF (nn_hls.EQ.2) THEN 
    327 #if defined key_mpi3 
    328          CALL lbc_lnk_nc_multi( 'zpshde', pta, 'T', 1.0_wp) 
    329 #else 
    330311         CALL lbc_lnk( 'zpshde', pta, 'T', 1.0_wp) 
    331 #endif 
    332 #if defined key_mpi3 
    333          IF (PRESENT(prd)) CALL lbc_lnk_nc_multi( 'zpshde', prd, 'T', 1.0_wp) 
    334 #else 
    335312         IF (PRESENT(prd)) CALL lbc_lnk( 'zpshde', prd, 'T', 1.0_wp) 
    336 #endif 
    337313      END IF 
    338314 
     
    384360      END DO 
    385361      ! 
    386 #if defined key_mpi3 
    387       IF (nn_hls.EQ.1) CALL lbc_lnk_nc_multi( 'zpshde', pgtu(:,:,:), 'U', -1.0_wp , pgtv(:,:,:), 'V', -1.0_wp )   ! Lateral boundary cond. 
    388 #else 
    389362      IF (nn_hls.EQ.1) CALL lbc_lnk_multi( 'zpshde', pgtu(:,:,:), 'U', -1.0_wp , pgtv(:,:,:), 'V', -1.0_wp )   ! Lateral boundary cond. 
    390 #endif 
    391363 
    392364      ! horizontal derivative of density anomalies (rd) 
     
    430402         END_2D 
    431403 
    432 #if defined key_mpi3 
    433          IF (nn_hls.EQ.1) CALL lbc_lnk_nc_multi( 'zpshde', pgru , 'U', -1.0_wp , pgrv , 'V', -1.0_wp )   ! Lateral boundary conditions 
    434 #else 
    435404         IF (nn_hls.EQ.1) CALL lbc_lnk_multi( 'zpshde', pgru , 'U', -1.0_wp , pgrv , 'V', -1.0_wp )   ! Lateral boundary conditions 
    436 #endif 
    437405         ! 
    438406      END IF 
     
    485453         ! 
    486454      END DO 
    487 #if defined key_mpi3 
    488       IF (nn_hls.EQ.1) CALL lbc_lnk_nc_multi( 'zpshde', pgtui(:,:,:), 'U', -1.0_wp , pgtvi(:,:,:), 'V', -1.0_wp )   ! Lateral boundary cond. 
    489 #else 
    490455      IF (nn_hls.EQ.1) CALL lbc_lnk_multi( 'zpshde', pgtui(:,:,:), 'U', -1.0_wp , pgtvi(:,:,:), 'V', -1.0_wp )   ! Lateral boundary cond. 
    491 #endif 
    492456 
    493457      IF( PRESENT( prd ) ) THEN    !==  horizontal derivative of density anomalies (rd)  ==!    (optional part) 
     
    528492 
    529493         END_2D 
    530 #if defined key_mpi3 
    531          IF (nn_hls.EQ.1) CALL lbc_lnk_nc_multi( 'zpshde', pgrui, 'U', -1.0_wp , pgrvi, 'V', -1.0_wp )   ! Lateral boundary conditions 
    532 #else 
    533494         IF (nn_hls.EQ.1) CALL lbc_lnk_multi( 'zpshde', pgrui, 'U', -1.0_wp , pgrvi, 'V', -1.0_wp )   ! Lateral boundary conditions 
    534 #endif 
    535495         ! 
    536496      END IF   
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/TRD/trddyn.F90

    r13906 r13963  
    128128                                 z3dy(ji,jj,jk) = vv(ji,jj,jk,Kmm) * ( vv(ji,jj+1,jk,Kmm) - vv(ji,jj-1,jk,Kmm) ) / ( 2._wp * e2v(ji,jj) ) 
    129129                              END_3D 
    130 #if defined key_mpi3 
    131                               CALL lbc_lnk_nc_multi( 'trddyn', z3dx, 'U', -1.0_wp, z3dy, 'V', -1.0_wp ) 
    132 #else 
    133130                              CALL lbc_lnk_multi( 'trddyn', z3dx, 'U', -1.0_wp, z3dy, 'V', -1.0_wp ) 
    134 #endif 
    135131                              CALL iom_put( "utrd_udx", z3dx  ) 
    136132                              CALL iom_put( "vtrd_vdy", z3dy  ) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/TRD/trdken.F90

    r13906 r13963  
    9090      !!---------------------------------------------------------------------- 
    9191      ! 
    92 #if defined key_mpi3 
    93       CALL lbc_lnk_nc_multi( 'trdken', putrd, 'U', -1.0_wp , pvtrd, 'V', -1.0_wp )      ! lateral boundary conditions 
    94 #else 
    9592      CALL lbc_lnk_multi( 'trdken', putrd, 'U', -1.0_wp , pvtrd, 'V', -1.0_wp )      ! lateral boundary conditions 
    96 #endif 
    9793      ! 
    9894      nkstp = kt 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/TRD/trdmxl.F90

    r13906 r13963  
    472472         !-- Lateral boundary conditions 
    473473         !         ... temperature ...                    ... salinity ... 
    474 #if defined key_mpi3 
    475          CALL lbc_lnk_nc_multi( 'trdmxl', ztmltot , 'T', 1.0_wp, zsmltot , 'T', 1.0_wp, & 
    476                   &          ztmlres , 'T', 1.0_wp, zsmlres , 'T', 1.0_wp, & 
    477                   &          ztmlatf , 'T', 1.0_wp, zsmlatf , 'T', 1.0_wp ) 
    478 #else 
    479474         CALL lbc_lnk_multi( 'trdmxl', ztmltot , 'T', 1.0_wp, zsmltot , 'T', 1.0_wp, & 
    480475                  &          ztmlres , 'T', 1.0_wp, zsmlres , 'T', 1.0_wp, & 
    481476                  &          ztmlatf , 'T', 1.0_wp, zsmlatf , 'T', 1.0_wp ) 
    482 #endif 
    483477 
    484478 
     
    529523         !-- Lateral boundary conditions 
    530524         !         ... temperature ...                    ... salinity ... 
    531 #if defined key_mpi3 
    532          CALL lbc_lnk_nc_multi( 'trdmxl', ztmltot2, 'T', 1.0_wp, zsmltot2, 'T', 1.0_wp, & 
    533                   &          ztmlres2, 'T', 1.0_wp, zsmlres2, 'T', 1.0_wp ) 
    534          ! 
    535          CALL lbc_lnk_nc_multi( 'trdmxl', ztmltrd2(:,:,:), 'T', 1.0_wp, zsmltrd2(:,:,:), 'T', 1.0_wp ) ! /  in the NetCDF trends file 
    536 #else 
    537525         CALL lbc_lnk_multi( 'trdmxl', ztmltot2, 'T', 1.0_wp, zsmltot2, 'T', 1.0_wp, & 
    538526                  &          ztmlres2, 'T', 1.0_wp, zsmlres2, 'T', 1.0_wp ) 
    539527         ! 
    540528         CALL lbc_lnk_multi( 'trdmxl', ztmltrd2(:,:,:), 'T', 1.0_wp, zsmltrd2(:,:,:), 'T', 1.0_wp ) ! /  in the NetCDF trends file 
    541 #endif 
    542529          
    543530         ! III.3 Time evolution array swap 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/TRD/trdvor.F90

    r13906 r13963  
    162162 
    163163      zudpvor(:,:) = 0._wp                 ;   zvdpvor(:,:) = 0._wp                    ! Initialisation 
    164 #if defined key_mpi3 
    165       CALL lbc_lnk_nc_multi( 'trdvor', putrdvor, 'U', -1.0_wp , pvtrdvor, 'V', -1.0_wp )      ! lateral boundary condition 
    166 #else 
    167164      CALL lbc_lnk_multi( 'trdvor', putrdvor, 'U', -1.0_wp , pvtrdvor, 'V', -1.0_wp )      ! lateral boundary condition 
    168 #endif 
    169165       
    170166 
     
    255251      zvdpvor(:,:) = 0._wp 
    256252      !                            ! lateral boundary condition on input momentum trends 
    257 #if defined key_mpi3 
    258       CALL lbc_lnk_nc_multi( 'trdvor', putrdvor, 'U', -1.0_wp , pvtrdvor, 'V', -1.0_wp ) 
    259 #else 
    260253      CALL lbc_lnk_multi( 'trdvor', putrdvor, 'U', -1.0_wp , pvtrdvor, 'V', -1.0_wp ) 
    261 #endif 
    262254 
    263255      !  ===================================== 
     
    408400 
    409401         ! Boundary conditions 
    410 #if defined key_mpi3 
    411          CALL lbc_lnk_nc_multi( 'trdvor', vor_avrtot, 'F', 1.0_wp , vor_avrres, 'F', 1.0_wp ) 
    412 #else 
    413402         CALL lbc_lnk_multi( 'trdvor', vor_avrtot, 'F', 1.0_wp , vor_avrres, 'F', 1.0_wp ) 
    414 #endif 
    415403 
    416404 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/USR/usrdef_fmask.F90

    r13906 r13963  
    153153      ENDIF 
    154154      ! 
    155 #if defined key_mpi3 
    156       CALL lbc_lnk_nc_multi( 'usrdef_fmask', pfmsk, 'F', 1._wp )      ! Lateral boundary conditions on fmask 
    157 #else 
    158155      CALL lbc_lnk( 'usrdef_fmask', pfmsk, 'F', 1._wp )      ! Lateral boundary conditions on fmask 
    159 #endif 
    160156      ! 
    161157   END SUBROUTINE usr_def_fmask 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/USR/usrdef_sbc.F90

    r13906 r13963  
    181181         wndm(ji,jj) = SQRT( zmod * zcoef ) 
    182182      END_2D 
    183 #if defined key_mpi3 
    184       CALL lbc_lnk_nc_multi( 'usrdef_sbc', taum(:,:), 'T', 1.0_wp , wndm(:,:), 'T', 1.0_wp ) 
    185 #else 
    186183      CALL lbc_lnk_multi( 'usrdef_sbc', taum(:,:), 'T', 1.0_wp , wndm(:,:), 'T', 1.0_wp ) 
    187 #endif 
    188184 
    189185      ! ---------------------------------- ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/ZDF/zdfosm.F90

    r13906 r13963  
    12231223 
    12241224       ! Lateral boundary conditions on zvicos (sign unchanged), needed to caclulate viscosities on u and v grids 
    1225 #if defined key_mpi3 
    1226        CALL lbc_lnk_nc_multi( 'zdfosm', zviscos(:,:,:), 'W', 1.0_wp ) 
    1227 #else 
    12281225       CALL lbc_lnk( 'zdfosm', zviscos(:,:,:), 'W', 1.0_wp ) 
    1229 #endif 
    12301226 
    12311227       ! GN 25/8: need to change tmask --> wmask 
     
    12361232     END_3D 
    12371233      ! Lateral boundary conditions on ghamu and ghamv, currently on W-grid  (sign unchanged), needed to caclulate gham[uv] on u and v grids 
    1238 #if defined key_mpi3 
    1239      CALL lbc_lnk_nc_multi( 'zdfosm', p_avt, 'W', 1.0_wp , p_avm, 'W', 1.0_wp,   & 
    1240       &                  ghamu, 'W', 1.0_wp , ghamv, 'W', 1.0_wp ) 
    1241 #else 
    12421234     CALL lbc_lnk_multi( 'zdfosm', p_avt, 'W', 1.0_wp , p_avm, 'W', 1.0_wp,   & 
    12431235      &                  ghamu, 'W', 1.0_wp , ghamv, 'W', 1.0_wp ) 
    1244 #endif 
    12451236       DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    12461237            ghamu(ji,jj,jk) = ( ghamu(ji,jj,jk) + ghamu(ji+1,jj,jk) ) & 
     
    12551246        ! Lateral boundary conditions on final outputs for gham[ts],  on W-grid  (sign unchanged) 
    12561247        ! Lateral boundary conditions on final outputs for gham[uv],  on [UV]-grid  (sign unchanged) 
    1257 #if defined key_mpi3 
    1258         CALL lbc_lnk_nc_multi( 'zdfosm', ghamt, 'W', 1.0_wp , ghams, 'W', 1.0_wp,   & 
    1259          &                  ghamu, 'U', 1.0_wp , ghamv, 'V', 1.0_wp ) 
    1260 #else 
    12611248        CALL lbc_lnk_multi( 'zdfosm', ghamt, 'W', 1.0_wp , ghams, 'W', 1.0_wp,   & 
    12621249         &                  ghamu, 'U', 1.0_wp , ghamv, 'V', 1.0_wp ) 
    1263 #endif 
    12641250 
    12651251       IF(ln_dia_osm) THEN 
     
    13011287      END IF 
    13021288      ! Lateral boundary conditions on p_avt  (sign unchanged) 
    1303 #if defined key_mpi3 
    1304       CALL lbc_lnk_nc_multi( 'zdfosm', p_avt(:,:,:), 'W', 1.0_wp ) 
    1305 #else 
    13061289      CALL lbc_lnk( 'zdfosm', p_avt(:,:,:), 'W', 1.0_wp ) 
    1307 #endif 
    13081290      ! 
    13091291   END SUBROUTINE zdf_osm 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/ZDF/zdfphy.F90

    r13906 r13963  
    313313      !                                         !* Lateral boundary conditions (sign unchanged) 
    314314      IF( l_zdfsh2 ) THEN 
    315 #if defined key_mpi3 
    316          CALL lbc_lnk_nc_multi( 'zdfphy', avm_k, 'W', 1.0_wp , avt_k, 'W', 1.0_wp,   & 
    317             &                avm  , 'W', 1.0_wp , avt  , 'W', 1.0_wp , avs , 'W', 1.0_wp ) 
    318 #else 
    319315         CALL lbc_lnk_multi( 'zdfphy', avm_k, 'W', 1.0_wp , avt_k, 'W', 1.0_wp,   & 
    320316            &                avm  , 'W', 1.0_wp , avt  , 'W', 1.0_wp , avs , 'W', 1.0_wp ) 
    321 #endif 
    322317      ELSE 
    323 #if defined key_mpi3 
    324          CALL lbc_lnk_nc_multi( 'zdfphy', avm  , 'W', 1.0_wp , avt  , 'W', 1.0_wp , avs , 'W', 1.0_wp ) 
    325 #else 
    326318         CALL lbc_lnk_multi( 'zdfphy', avm  , 'W', 1.0_wp , avt  , 'W', 1.0_wp , avs , 'W', 1.0_wp ) 
    327 #endif 
    328319      ENDIF 
    329320      ! 
    330321      IF( l_zdfdrg ) THEN     ! drag  have been updated (non-linear cases) 
    331 #if defined key_mpi3 
    332          IF( ln_isfcav ) THEN   ;  CALL lbc_lnk_nc_multi( 'zdfphy', rCdU_top, 'T', 1.0_wp , rCdU_bot, 'T', 1.0_wp )   ! top & bot drag 
    333          ELSE                   ;  CALL lbc_lnk_nc_multi      ( 'zdfphy', rCdU_bot, 'T', 1.0_wp )                       ! bottom drag only 
    334          ENDIF 
    335 #else 
    336322         IF( ln_isfcav ) THEN   ;  CALL lbc_lnk_multi( 'zdfphy', rCdU_top, 'T', 1.0_wp , rCdU_bot, 'T', 1.0_wp )   ! top & bot drag 
    337323         ELSE                   ;  CALL lbc_lnk      ( 'zdfphy', rCdU_bot, 'T', 1.0_wp )                       ! bottom drag only 
    338324         ENDIF 
    339 #endif 
    340325      ENDIF 
    341326      ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/lib_fortran.F90

    r13906 r13963  
    229229         ENDIF 
    230230      END_2D 
    231 #if defined key_mpi3 
    232       CALL lbc_lnk_nc_multi( 'lib_fortran', p2d, 'T', 1.0_wp ) 
    233 #else 
    234231      CALL lbc_lnk( 'lib_fortran', p2d, 'T', 1.0_wp ) 
    235 #endif 
    236232      ! no need for 2nd exchange when nn_hls = 2 
    237233      IF( nn_hls /= 2 ) THEN 
     
    252248            IF( MOD(mjg(jpj-2), 3) == 0 )   p2d(:,jpj-1) = p2d(:,  jpj) 
    253249         ENDIF 
    254 #if defined key_mpi3 
    255          CALL lbc_lnk_nc_multi( 'lib_fortran', p2d, 'T', 1.0_wp ) 
    256 #else 
    257250         CALL lbc_lnk( 'lib_fortran', p2d, 'T', 1.0_wp ) 
    258 #endif 
    259251      ENDIF 
    260252 
     
    292284         END_2D 
    293285      END DO 
    294 #if defined key_mpi3 
    295       CALL lbc_lnk_nc_multi( 'lib_fortran', p3d, 'T', 1.0_wp ) 
    296 #else 
    297286      CALL lbc_lnk( 'lib_fortran', p3d, 'T', 1.0_wp ) 
    298 #endif 
    299287      ! no need for 2nd exchange when nn_hls = 2 
    300288      IF( nn_hls /= 2 ) THEN 
     
    315303            IF( MOD(mjg(jpj-2), 3) == 0 )   p3d(:,jpj-1,:) = p3d(:,  jpj,:) 
    316304         ENDIF 
    317 #if defined key_mpi3 
    318          CALL lbc_lnk_nc_multi( 'lib_fortran', p3d, 'T', 1.0_wp ) 
    319 #else 
    320305         CALL lbc_lnk( 'lib_fortran', p3d, 'T', 1.0_wp ) 
    321 #endif 
    322306      ENDIF 
    323307 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/module_example

    r13906 r13963  
    127127      END SELECT 
    128128      ! 
    129 #if defined key_mpi3 
    130       CALL lbc_lnk_nc_multi( 'module_example', avm, 'T', 1. )              ! Lateral boundary conditions (unchanged sign) 
    131 #else 
    132129      CALL lbc_lnk( 'module_example', avm, 'T', 1. )              ! Lateral boundary conditions (unchanged sign) 
    133 #endif 
    134130      ! 
    135131   END SUBROUTINE exa_mpl 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/OCE/stpMLF.F90

    r13906 r13963  
    457457#endif 
    458458      !                                        ! local domain boundaries  (T-point, unchanged sign) 
    459 #if defined key_mpi3 
    460       CALL lbc_lnk_nc_multi( 'finalize_sbc', puu(:,:,:,       Kaa), 'U', -1., pvv(:,:,:       ,Kaa), 'V', -1.   & 
    461                        &                , pts(:,:,:,jp_tem,Kaa), 'T',  1., pts(:,:,:,jp_sal,Kaa), 'T',  1. )     !* local domain boundaries 
    462 #else 
    463459      CALL lbc_lnk_multi( 'finalize_sbc', puu(:,:,:,       Kaa), 'U', -1., pvv(:,:,:       ,Kaa), 'V', -1.   & 
    464460                       &                , pts(:,:,:,jp_tem,Kaa), 'T',  1., pts(:,:,:,jp_sal,Kaa), 'T',  1. )     !* local domain boundaries 
    465 #endif 
    466461      ! 
    467462      !                                        !* BDY open boundaries 
Note: See TracChangeset for help on using the changeset viewer.