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 – NEMO

Changeset 13963


Ignore:
Timestamp:
2020-12-02T06:43:12+01:00 (3 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
Files:
126 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/ABL/ablmod.F90

    r13906 r13963  
    529529      !                            !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    530530      ! 
    531 #if defined key_mpi3 
    532       CALL lbc_lnk_nc_multi( 'ablmod',  u_abl(:,:,:,nt_a      ), 'T', -1._wp,  v_abl(:,:,:,nt_a)      , 'T', -1._wp                            ) 
    533       CALL lbc_lnk_nc_multi( 'ablmod', tq_abl(:,:,:,nt_a,jp_ta), 'T', 1._wp , tq_abl(:,:,:,nt_a,jp_qa), 'T',  1._wp , kfillmode = jpfillnothing )   ! ++++ this should not be needed... 
    534 #else 
    535531      CALL lbc_lnk_multi( 'ablmod',  u_abl(:,:,:,nt_a      ), 'T', -1._wp,  v_abl(:,:,:,nt_a)      , 'T', -1._wp                            ) 
    536532      CALL lbc_lnk_multi( 'ablmod', tq_abl(:,:,:,nt_a,jp_ta), 'T', 1._wp , tq_abl(:,:,:,nt_a,jp_qa), 'T',  1._wp , kfillmode = jpfillnothing )   ! ++++ this should not be needed... 
    537 #endif 
    538533      ! 
    539534#if defined key_iomput 
     
    599594      END_2D 
    600595      ! 
    601 #if defined key_mpi3 
    602       CALL lbc_lnk_nc_multi( 'ablmod', zwnd_i(:,:) , 'T', -1.0_wp, zwnd_j(:,:) , 'T', -1.0_wp ) 
    603 #else 
    604596      CALL lbc_lnk_multi( 'ablmod', zwnd_i(:,:) , 'T', -1.0_wp, zwnd_j(:,:) , 'T', -1.0_wp ) 
    605 #endif 
    606597      ! 
    607598      ! ... scalar wind ( = | U10m - U_oce | ) at T-point (masked) 
     
    628619      END_2D 
    629620      ! 
    630 #if defined key_mpi3 
    631       CALL lbc_lnk_nc_multi( 'ablmod', ptaui(:,:), 'U', -1.0_wp, ptauj(:,:), 'V', -1.0_wp ) 
    632 #else 
    633621      CALL lbc_lnk_multi( 'ablmod', ptaui(:,:), 'U', -1.0_wp, ptauj(:,:), 'V', -1.0_wp ) 
    634 #endif 
    635622 
    636623      CALL iom_put( "taum_oce", ptaum ) 
     
    652639            &                      * ( 0.5_wp * ( v_abl(ji,jj+1,2,nt_a) + v_abl(ji,jj,2,nt_a) ) - pssv_ice(ji,jj) ) 
    653640      END_2D 
    654 #if defined key_mpi3 
    655       CALL lbc_lnk_nc_multi( 'ablmod', ptaui_ice, 'U', -1.0_wp, ptauj_ice, 'V', -1.0_wp ) 
    656 #else 
    657641      CALL lbc_lnk_multi( 'ablmod', ptaui_ice, 'U', -1.0_wp, ptauj_ice, 'V', -1.0_wp ) 
    658 #endif 
    659642      ! 
    660643      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab2d_1=ptaui_ice  , clinfo1=' abl_stp: putaui : '   & 
     
    675658            &         * ( zztmp2 - pssv_ice(ji,jj) ) 
    676659      END_2D 
    677 #if defined key_mpi3 
    678       CALL lbc_lnk_nc_multi( 'ablmod', ptaui_ice, 'U', -1.0_wp, ptauj_ice,'V', -1.0_wp ) 
    679 #else 
    680660      CALL lbc_lnk_multi( 'ablmod', ptaui_ice, 'U', -1.0_wp, ptauj_ice,'V', -1.0_wp ) 
    681 #endif 
    682661      ! 
    683662      IF(sn_cfctl%l_prtctl) THEN 
     
    886865      ! Optional : could add pblh smoothing if pblh is noisy horizontally ... 
    887866      IF(ln_smth_pblh) THEN 
    888 #if defined key_mpi3 
    889          CALL lbc_lnk_nc_multi( 'ablmod', pblh, 'T', 1.0_wp) !, kfillmode = jpfillnothing) 
    890 #else 
    891867         CALL lbc_lnk( 'ablmod', pblh, 'T', 1.0_wp) !, kfillmode = jpfillnothing) 
    892 #endif 
    893868         CALL smooth_pblh( pblh, msk_abl ) 
    894 #if defined key_mpi3 
    895          CALL lbc_lnk_nc_multi( 'ablmod', pblh, 'T', 1.0_wp) !, kfillmode = jpfillnothing) 
    896 #else 
    897869         CALL lbc_lnk( 'ablmod', pblh, 'T', 1.0_wp) !, kfillmode = jpfillnothing) 
    898 #endif 
    899870      ENDIF 
    900871      !                            !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/ICE/icecor.F90

    r13906 r13963  
    116116            ENDIF 
    117117         END_2D 
    118 #if defined key_mpi3 
    119          CALL lbc_lnk_nc_multi( 'icecor', u_ice, 'U', -1.0_wp, v_ice, 'V', -1.0_wp ) 
    120 #else 
    121118         CALL lbc_lnk_multi( 'icecor', u_ice, 'U', -1.0_wp, v_ice, 'V', -1.0_wp ) 
    122 #endif 
    123119      ENDIF 
    124120      ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/ICE/icedyn.F90

    r13906 r13963  
    161161                  &             + e1v(ji,jj) * v_ice(ji,jj) - e1v(ji,jj-1) * v_ice(ji,jj-1) ) * r1_e1e2t(ji,jj) 
    162162            END_2D 
    163 #if defined key_mpi3 
    164             CALL lbc_lnk_nc_multi( 'icedyn', zdivu_i, 'T', 1.0_wp ) 
    165 #else 
    166163            CALL lbc_lnk( 'icedyn', zdivu_i, 'T', 1.0_wp ) 
    167 #endif 
    168164            ! output 
    169165            CALL iom_put( 'icediv' , zdivu_i ) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/ICE/icedyn_adv_pra.F90

    r13946 r13963  
    115115      CALL icemax3D( ph_ip, zhip_max) 
    116116      CALL icemax3D( zs_i , zsi_max ) 
    117 #if defined key_mpi3 
    118       CALL lbc_lnk_nc_multi( 'icedyn_adv_pra', zhi_max, 'T', 1._wp, zhs_max, 'T', 1._wp, zhip_max, 'T', 1._wp, zsi_max, 'T', 1._wp ) 
    119 #else 
    120117      CALL lbc_lnk_multi( 'icedyn_adv_pra', zhi_max, 'T', 1._wp, zhs_max, 'T', 1._wp, zhip_max, 'T', 1._wp, zsi_max, 'T', 1._wp ) 
    121 #endif 
    122118      ! 
    123119      ! enthalpies 
     
    134130      CALL icemax4D( ze_i , zei_max ) 
    135131      CALL icemax4D( ze_s , zes_max ) 
    136 #if defined key_mpi3 
    137       CALL lbc_lnk_nc_multi( 'icedyn_adv_pra', zei_max, 'T', 1._wp ) 
    138       CALL lbc_lnk_nc_multi( 'icedyn_adv_pra', zes_max, 'T', 1._wp ) 
    139 #else 
    140132      CALL lbc_lnk( 'icedyn_adv_pra', zei_max, 'T', 1._wp ) 
    141133      CALL lbc_lnk( 'icedyn_adv_pra', zes_max, 'T', 1._wp ) 
    142 #endif 
    143134      ! 
    144135      ! 
     
    273264         ! --- Lateral boundary conditions --- ! 
    274265         !     caution: for gradients (sx and sy) the sign changes 
    275 #if defined key_mpi3 
    276          CALL lbc_lnk_nc_multi( 'icedyn_adv_pra', z0ice , 'T', 1._wp, sxice , 'T', -1._wp, syice , 'T', -1._wp  & ! ice volume 
    277             &                                , sxxice, 'T', 1._wp, syyice, 'T',  1._wp, sxyice, 'T',  1._wp  & 
    278             &                                , z0snw , 'T', 1._wp, sxsn  , 'T', -1._wp, sysn  , 'T', -1._wp  & ! snw volume 
    279             &                                , sxxsn , 'T', 1._wp, syysn , 'T',  1._wp, sxysn , 'T',  1._wp  ) 
    280          CALL lbc_lnk_nc_multi( 'icedyn_adv_pra', z0smi , 'T', 1._wp, sxsal , 'T', -1._wp, sysal , 'T', -1._wp  & ! ice salinity 
    281             &                                , sxxsal, 'T', 1._wp, syysal, 'T',  1._wp, sxysal, 'T',  1._wp  & 
    282             &                                , z0ai  , 'T', 1._wp, sxa   , 'T', -1._wp, sya   , 'T', -1._wp  & ! ice concentration 
    283             &                                , sxxa  , 'T', 1._wp, syya  , 'T',  1._wp, sxya  , 'T',  1._wp  ) 
    284          CALL lbc_lnk_nc_multi( 'icedyn_adv_pra', z0oi  , 'T', 1._wp, sxage , 'T', -1._wp, syage , 'T', -1._wp  & ! ice age 
    285             &                                , sxxage, 'T', 1._wp, syyage, 'T',  1._wp, sxyage, 'T',  1._wp  ) 
    286          CALL lbc_lnk_nc_multi( 'icedyn_adv_pra', z0es  , 'T', 1._wp, sxc0  , 'T', -1._wp, syc0  , 'T', -1._wp  & ! snw enthalpy 
    287             &                                , sxxc0 , 'T', 1._wp, syyc0 , 'T',  1._wp, sxyc0 , 'T',  1._wp  )  
    288          CALL lbc_lnk_nc_multi( 'icedyn_adv_pra', z0ei  , 'T', 1._wp, sxe   , 'T', -1._wp, sye   , 'T', -1._wp  & ! ice enthalpy 
    289             &                                , sxxe  , 'T', 1._wp, syye  , 'T',  1._wp, sxye  , 'T',  1._wp  ) 
    290 #else 
    291266         CALL lbc_lnk_multi( 'icedyn_adv_pra', z0ice , 'T', 1._wp, sxice , 'T', -1._wp, syice , 'T', -1._wp  & ! ice volume 
    292267            &                                , sxxice, 'T', 1._wp, syyice, 'T',  1._wp, sxyice, 'T',  1._wp  & 
     
    303278         CALL lbc_lnk_multi( 'icedyn_adv_pra', z0ei  , 'T', 1._wp, sxe   , 'T', -1._wp, sye   , 'T', -1._wp  & ! ice enthalpy 
    304279            &                                , sxxe  , 'T', 1._wp, syye  , 'T',  1._wp, sxye  , 'T',  1._wp  ) 
    305 #endif 
    306280         IF ( ln_pnd_LEV ) THEN 
    307 #if defined key_mpi3 
    308             CALL lbc_lnk_nc_multi( 'icedyn_adv_pra', z0ap , 'T', 1._wp, sxap , 'T', -1._wp, syap , 'T', -1._wp  & ! melt pond fraction 
    309                &                                , sxxap, 'T', 1._wp, syyap, 'T',  1._wp, sxyap, 'T',  1._wp  & 
    310                &                                , z0vp , 'T', 1._wp, sxvp , 'T', -1._wp, syvp , 'T', -1._wp  & ! melt pond volume 
    311                &                                , sxxvp, 'T', 1._wp, syyvp, 'T',  1._wp, sxyvp, 'T',  1._wp  )  
    312 #else 
    313281            CALL lbc_lnk_multi( 'icedyn_adv_pra', z0ap , 'T', 1._wp, sxap , 'T', -1._wp, syap , 'T', -1._wp  & ! melt pond fraction 
    314282               &                                , sxxap, 'T', 1._wp, syyap, 'T',  1._wp, sxyap, 'T',  1._wp  & 
    315283               &                                , z0vp , 'T', 1._wp, sxvp , 'T', -1._wp, syvp , 'T', -1._wp  & ! melt pond volume 
    316284               &                                , sxxvp, 'T', 1._wp, syyvp, 'T',  1._wp, sxyvp, 'T',  1._wp  )  
    317 #endif 
    318285            IF ( ln_pnd_lids ) THEN 
    319 #if defined key_mpi3 
    320                CALL lbc_lnk_nc_multi( 'icedyn_adv_pra', z0vl ,'T', 1._wp, sxvl ,'T', -1._wp, syvl ,'T', -1._wp  & ! melt pond lid volume 
    321                   &                                , sxxvl,'T', 1._wp, syyvl,'T',  1._wp, sxyvl,'T',  1._wp  )  
    322 #else 
    323286               CALL lbc_lnk_multi( 'icedyn_adv_pra', z0vl ,'T', 1._wp, sxvl ,'T', -1._wp, syvl ,'T', -1._wp  & ! melt pond lid volume 
    324287                  &                                , sxxvl,'T', 1._wp, syyvl,'T',  1._wp, sxyvl,'T',  1._wp  )  
    325 #endif 
    326288            ENDIF 
    327289         ENDIF 
     
    355317               &                          - ( zudy(ji,jj) - zudy(ji-1,jj) + zvdx(ji,jj) - zvdx(ji,jj-1) ) * r1_e1e2t(ji,jj) * zdt 
    356318         END_2D 
    357 #if defined key_mpi3 
    358          CALL lbc_lnk_nc_multi( 'icedyn_adv_pra', pato_i, 'T',  1.0_wp ) 
    359 #else 
    360319         CALL lbc_lnk( 'icedyn_adv_pra', pato_i, 'T',  1.0_wp ) 
    361 #endif 
    362320         ! 
    363321         ! --- diagnostics --- ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/ICE/icedyn_adv_umx.F90

    r13946 r13963  
    119119      CALL icemax3D( ph_ip, zhip_max) 
    120120      CALL icemax3D( zs_i , zsi_max ) 
    121 #if defined key_mpi3 
    122       CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', zhi_max, 'T', 1._wp, zhs_max, 'T', 1._wp, zhip_max, 'T', 1._wp, zsi_max, 'T', 1._wp ) 
    123 #else 
    124121      CALL lbc_lnk_multi( 'icedyn_adv_umx', zhi_max, 'T', 1._wp, zhs_max, 'T', 1._wp, zhip_max, 'T', 1._wp, zsi_max, 'T', 1._wp ) 
    125 #endif 
    126122      ! 
    127123      ! enthalpies 
     
    138134      CALL icemax4D( ze_i , zei_max ) 
    139135      CALL icemax4D( ze_s , zes_max ) 
    140 #if defined key_mpi3 
    141       CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', zei_max, 'T', 1._wp ) 
    142       CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', zes_max, 'T', 1._wp ) 
    143 #else 
    144136      CALL lbc_lnk( 'icedyn_adv_umx', zei_max, 'T', 1._wp ) 
    145137      CALL lbc_lnk( 'icedyn_adv_umx', zes_max, 'T', 1._wp ) 
    146 #endif 
    147138      ! 
    148139      ! 
     
    368359         ! --- Lateral boundary conditions --- ! 
    369360         IF    ( ln_pnd_LEV .AND. ln_pnd_lids ) THEN 
    370 #if defined key_mpi3 
    371             CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', pa_i,'T',1._wp, pv_i,'T',1._wp, pv_s,'T',1._wp, psv_i,'T',1._wp, poa_i,'T',1._wp & 
    372                &                                , pa_ip,'T',1._wp, pv_ip,'T',1._wp, pv_il,'T',1._wp ) 
    373 #else 
    374361            CALL lbc_lnk_multi( 'icedyn_adv_umx', pa_i,'T',1._wp, pv_i,'T',1._wp, pv_s,'T',1._wp, psv_i,'T',1._wp, poa_i,'T',1._wp & 
    375362               &                                , pa_ip,'T',1._wp, pv_ip,'T',1._wp, pv_il,'T',1._wp ) 
    376 #endif 
    377363         ELSEIF( ln_pnd_LEV .AND. .NOT.ln_pnd_lids ) THEN 
    378 #if defined key_mpi3 
    379             CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', pa_i,'T',1._wp, pv_i,'T',1._wp, pv_s,'T',1._wp, psv_i,'T',1._wp, poa_i,'T',1._wp & 
    380                &                                , pa_ip,'T',1._wp, pv_ip,'T',1._wp ) 
    381 #else 
    382364            CALL lbc_lnk_multi( 'icedyn_adv_umx', pa_i,'T',1._wp, pv_i,'T',1._wp, pv_s,'T',1._wp, psv_i,'T',1._wp, poa_i,'T',1._wp & 
    383365               &                                , pa_ip,'T',1._wp, pv_ip,'T',1._wp ) 
    384 #endif 
    385366         ELSE 
    386 #if defined key_mpi3 
    387             CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', pa_i,'T',1._wp, pv_i,'T',1._wp, pv_s,'T',1._wp, psv_i,'T',1._wp, poa_i,'T',1._wp ) 
    388 #else 
    389367            CALL lbc_lnk_multi( 'icedyn_adv_umx', pa_i,'T',1._wp, pv_i,'T',1._wp, pv_s,'T',1._wp, psv_i,'T',1._wp, poa_i,'T',1._wp ) 
    390 #endif 
    391368         ENDIF 
    392 #if defined key_mpi3 
    393          CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', pe_i, 'T', 1._wp ) 
    394          CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', pe_s, 'T', 1._wp ) 
    395 #else 
    396369         CALL lbc_lnk( 'icedyn_adv_umx', pe_i, 'T', 1._wp ) 
    397370         CALL lbc_lnk( 'icedyn_adv_umx', pe_s, 'T', 1._wp ) 
    398 #endif 
    399371         ! 
    400372         !== Open water area ==! 
     
    404376               &                          - ( zudy(ji,jj) - zudy(ji-1,jj) + zvdx(ji,jj) - zvdx(ji,jj-1) ) * r1_e1e2t(ji,jj) * zdt 
    405377         END_2D 
    406 #if defined key_mpi3 
    407          CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', pato_i, 'T',  1._wp ) 
    408 #else 
    409378         CALL lbc_lnk( 'icedyn_adv_umx', pato_i, 'T',  1._wp ) 
    410 #endif 
    411379         ! 
    412380         ! --- diagnostics --- ! 
     
    551519            END_2D 
    552520         END DO 
    553 #if defined key_mpi3 
    554          CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', zt_ups, 'T',  1.0_wp ) 
    555 #else 
    556521         CALL lbc_lnk( 'icedyn_adv_umx', zt_ups, 'T',  1.0_wp ) 
    557 #endif 
    558522         ! 
    559523         IF    ( np_limiter == 1 ) THEN 
     
    685649         END_2D 
    686650      END DO 
    687 #if defined key_mpi3 
    688       CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', pt_ups, 'T', 1.0_wp ) 
    689 #else 
    690651      CALL lbc_lnk( 'icedyn_adv_umx', pt_ups, 'T', 1.0_wp ) 
    691 #endif 
    692652 
    693653   END SUBROUTINE upstream 
     
    835795            END_2D 
    836796         END DO 
    837 #if defined key_mpi3 
    838          CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', zpt, 'T', 1.0_wp ) 
    839 #else 
    840797         CALL lbc_lnk( 'icedyn_adv_umx', zpt, 'T', 1.0_wp ) 
    841 #endif 
    842798         ! 
    843799         !                                                        !--  ultimate interpolation of pt at v-point  --! 
     
    866822            END_2D 
    867823         END DO 
    868 #if defined key_mpi3 
    869          CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', zpt, 'T', 1.0_wp ) 
    870 #else 
    871824         CALL lbc_lnk( 'icedyn_adv_umx', zpt, 'T', 1.0_wp ) 
    872 #endif 
    873825         ! 
    874826         !                                                        !--  ultimate interpolation of pt at u-point  --! 
     
    923875         END DO 
    924876      END DO 
    925 #if defined key_mpi3 
    926       CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', ztu2, 'T', 1.0_wp ) 
    927 #else 
    928877      CALL lbc_lnk( 'icedyn_adv_umx', ztu2, 'T', 1.0_wp ) 
    929 #endif 
    930878      ! 
    931879      !                                                     !--  BiLaplacian in i-direction  --! 
     
    941889         END DO 
    942890      END DO 
    943 #if defined key_mpi3 
    944       CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', ztu4, 'T', 1.0_wp ) 
    945 #else 
    946891      CALL lbc_lnk( 'icedyn_adv_umx', ztu4, 'T', 1.0_wp ) 
    947 #endif 
    948892      ! 
    949893      ! 
     
    10711015         END_2D 
    10721016      END DO 
    1073 #if defined key_mpi3 
    1074       CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', ztv2, 'T', 1.0_wp ) 
    1075 #else 
    10761017      CALL lbc_lnk( 'icedyn_adv_umx', ztv2, 'T', 1.0_wp ) 
    1077 #endif 
    10781018      ! 
    10791019      !                                                     !--  BiLaplacian in j-direction  --! 
     
    10861026         END_2D 
    10871027      END DO 
    1088 #if defined key_mpi3 
    1089       CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', ztv4, 'T', 1.0_wp ) 
    1090 #else 
    10911028      CALL lbc_lnk( 'icedyn_adv_umx', ztv4, 'T', 1.0_wp ) 
    1092 #endif 
    10931029      ! 
    10941030      ! 
     
    12311167            END_2D 
    12321168         END DO 
    1233 #if defined key_mpi3 
    1234          CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', zti_ups, 'T', 1.0_wp, ztj_ups, 'T', 1.0_wp ) 
    1235 #else 
    12361169         CALL lbc_lnk_multi( 'icedyn_adv_umx', zti_ups, 'T', 1.0_wp, ztj_ups, 'T', 1.0_wp ) 
    1237 #endif 
    12381170 
    12391171         DO jl = 1, jpl 
     
    12571189            END_2D 
    12581190         END DO 
    1259 #if defined key_mpi3 
    1260          CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', pfu_ho, 'U', -1.0_wp, pfv_ho, 'V', -1.0_wp )   ! lateral boundary cond. 
    1261 #else 
    12621191         CALL lbc_lnk_multi( 'icedyn_adv_umx', pfu_ho, 'U', -1.0_wp, pfv_ho, 'V', -1.0_wp )   ! lateral boundary cond. 
    1263 #endif 
    12641192 
    12651193      ENDIF 
     
    13181246         END_2D 
    13191247      END DO 
    1320 #if defined key_mpi3 
    1321       CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', zbetup, 'T', 1.0_wp, zbetdo, 'T', 1.0_wp )   ! lateral boundary cond. (unchanged sign) 
    1322 #else 
    13231248      CALL lbc_lnk_multi( 'icedyn_adv_umx', zbetup, 'T', 1.0_wp, zbetdo, 'T', 1.0_wp )   ! lateral boundary cond. (unchanged sign) 
    1324 #endif 
    13251249 
    13261250       
     
    13771301         END_2D 
    13781302      END DO 
    1379 #if defined key_mpi3 
    1380       CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', zslpx, 'U', -1.0_wp)   ! lateral boundary cond. 
    1381 #else 
    13821303      CALL lbc_lnk( 'icedyn_adv_umx', zslpx, 'U', -1.0_wp)   ! lateral boundary cond. 
    1383 #endif 
    13841304       
    13851305      DO jl = 1, jpl 
     
    14451365         END_2D 
    14461366      END DO 
    1447 #if defined key_mpi3 
    1448       CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', pfu_ho, 'U', -1.0_wp)   ! lateral boundary cond. 
    1449 #else 
    14501367      CALL lbc_lnk( 'icedyn_adv_umx', pfu_ho, 'U', -1.0_wp)   ! lateral boundary cond. 
    1451 #endif 
    14521368      ! 
    14531369   END SUBROUTINE limiter_x 
     
    14761392         END_2D 
    14771393      END DO 
    1478 #if defined key_mpi3 
    1479       CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', zslpy, 'V', -1.0_wp)   ! lateral boundary cond. 
    1480 #else 
    14811394      CALL lbc_lnk( 'icedyn_adv_umx', zslpy, 'V', -1.0_wp)   ! lateral boundary cond. 
    1482 #endif 
    14831395 
    14841396      DO jl = 1, jpl 
     
    15451457         END_2D 
    15461458      END DO 
    1547 #if defined key_mpi3 
    1548       CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', pfv_ho, 'V', -1.0_wp)   ! lateral boundary cond. 
    1549 #else 
    15501459      CALL lbc_lnk( 'icedyn_adv_umx', pfv_ho, 'V', -1.0_wp)   ! lateral boundary cond. 
    1551 #endif 
    15521460      ! 
    15531461   END SUBROUTINE limiter_y 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/ICE/icedyn_rdgrft.F90

    r13906 r13963  
    801801            strength(ji,jj) = zworka(ji,jj) 
    802802         END_2D 
    803 #if defined key_mpi3 
    804          CALL lbc_lnk_nc_multi( 'icedyn_rdgrft', strength, 'T', 1.0_wp ) 
    805 #else 
    806803         CALL lbc_lnk( 'icedyn_rdgrft', strength, 'T', 1.0_wp ) 
    807 #endif 
    808804         ! 
    809805      CASE( 2 )               !--- Temporal smoothing 
     
    824820            ENDIF 
    825821         END_2D 
    826 #if defined key_mpi3 
    827          CALL lbc_lnk_nc_multi( 'icedyn_rdgrft', strength, 'T', 1.0_wp ) 
    828 #else 
    829822         CALL lbc_lnk( 'icedyn_rdgrft', strength, 'T', 1.0_wp ) 
    830 #endif 
    831823         ! 
    832824      END SELECT 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/ICE/icedyn_rhg_evp.F90

    r13906 r13963  
    199199         zfmask(ji,jj) = tmask(ji,jj,1) * tmask(ji+1,jj,1) * tmask(ji,jj+1,1) * tmask(ji+1,jj+1,1) 
    200200      END_2D 
    201 #if defined key_mpi3 
    202       CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', zfmask, 'F', 1._wp) 
    203 #else 
    204201      CALL lbc_lnk( 'icedyn_rhg_evp', zfmask, 'F', 1._wp) 
    205 #endif 
    206202 
    207203      ! Lateral boundary conditions on velocity (modify zfmask) 
     
    228224         ENDIF 
    229225      END DO 
    230 #if defined key_mpi3 
    231       CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', zfmask, 'F', 1._wp ) 
    232 #else 
    233226      CALL lbc_lnk( 'icedyn_rhg_evp', zfmask, 'F', 1._wp ) 
    234 #endif 
    235227 
    236228      !------------------------------------------------------------------------------! 
     
    324316 
    325317      END_2D 
    326 #if defined key_mpi3 
    327       CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', zmf, 'T', 1.0_wp, zdt_m, 'T', 1.0_wp ) 
    328 #else 
    329318      CALL lbc_lnk_multi( 'icedyn_rhg_evp', zmf, 'T', 1.0_wp, zdt_m, 'T', 1.0_wp ) 
    330 #endif 
    331319      ! 
    332320      !                                  !== Landfast ice parameterization ==! 
     
    347335            tau_icebfr(ji,jj) = - rn_lf_bfr * MAX( 0._wp, vt_i(ji,jj) - zvCr ) * EXP( -rn_crhg * ( 1._wp - at_i(ji,jj) ) ) 
    348336         END_2D 
    349 #if defined key_mpi3 
    350          CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', tau_icebfr(:,:), 'T', 1.0_wp ) 
    351 #else 
    352337         CALL lbc_lnk( 'icedyn_rhg_evp', tau_icebfr(:,:), 'T', 1.0_wp ) 
    353 #endif 
    354338         ! 
    355339      ELSE                               !-- no landfast 
     
    410394 
    411395         END_2D 
    412 #if defined key_mpi3 
    413          CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', zdelta, 'T', 1.0_wp ) 
    414 #else 
    415396         CALL lbc_lnk( 'icedyn_rhg_evp', zdelta, 'T', 1.0_wp ) 
    416 #endif 
    417397 
    418398         ! P/delta at T points 
     
    553533               ENDIF 
    554534            END_2D 
    555 #if defined key_mpi3 
    556             CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', v_ice, 'V', -1.0_wp ) 
    557 #else 
    558535            CALL lbc_lnk( 'icedyn_rhg_evp', v_ice, 'V', -1.0_wp ) 
    559 #endif 
    560536            ! 
    561537#if defined key_agrif 
     
    609585               ENDIF 
    610586            END_2D 
    611 #if defined key_mpi3 
    612             CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', u_ice, 'U', -1.0_wp ) 
    613 #else 
    614587            CALL lbc_lnk( 'icedyn_rhg_evp', u_ice, 'U', -1.0_wp ) 
    615 #endif 
    616588            ! 
    617589#if defined key_agrif 
     
    667639               ENDIF 
    668640            END_2D 
    669 #if defined key_mpi3 
    670             CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', u_ice, 'U', -1.0_wp ) 
    671 #else 
    672641            CALL lbc_lnk( 'icedyn_rhg_evp', u_ice, 'U', -1.0_wp ) 
    673 #endif 
    674642            ! 
    675643#if defined key_agrif 
     
    723691               ENDIF 
    724692            END_2D 
    725 #if defined key_mpi3 
    726             CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', v_ice, 'V', -1.0_wp ) 
    727 #else 
    728693            CALL lbc_lnk( 'icedyn_rhg_evp', v_ice, 'V', -1.0_wp ) 
    729 #endif 
    730694            ! 
    731695#if defined key_agrif 
     
    786750 
    787751      END_2D 
    788 #if defined key_mpi3 
    789       CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', pshear_i, 'T', 1._wp, pdivu_i, 'T', 1._wp, pdelta_i, 'T', 1._wp, zten_i, 'T', 1._wp, & 
    790          &                                  zs1     , 'T', 1._wp, zs2    , 'T', 1._wp, zs12    , 'F', 1._wp ) 
    791 #else 
    792752      CALL lbc_lnk_multi( 'icedyn_rhg_evp', pshear_i, 'T', 1._wp, pdivu_i, 'T', 1._wp, pdelta_i, 'T', 1._wp, zten_i, 'T', 1._wp, & 
    793753         &                                  zs1     , 'T', 1._wp, zs2    , 'T', 1._wp, zs12    , 'F', 1._wp ) 
    794 #endif 
    795754       
    796755      ! --- Store the stress tensor for the next time step --- ! 
     
    807766         & iom_use('utau_bi') .OR. iom_use('vtau_bi') ) THEN 
    808767         ! 
    809 #if defined key_mpi3 
    810          CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', ztaux_oi, 'U', -1.0_wp, ztauy_oi, 'V', -1.0_wp, ztaux_ai, 'U', -1.0_wp, ztauy_ai, 'V', -1.0_wp, & 
    811             &                                  ztaux_bi, 'U', -1.0_wp, ztauy_bi, 'V', -1.0_wp ) 
    812 #else 
    813768         CALL lbc_lnk_multi( 'icedyn_rhg_evp', ztaux_oi, 'U', -1.0_wp, ztauy_oi, 'V', -1.0_wp, ztaux_ai, 'U', -1.0_wp, ztauy_ai, 'V', -1.0_wp, & 
    814769            &                                  ztaux_bi, 'U', -1.0_wp, ztauy_bi, 'V', -1.0_wp ) 
    815 #endif 
    816770         ! 
    817771         CALL iom_put( 'utau_oi' , ztaux_oi * zmsk00 ) 
     
    897851         & iom_use('corstrx') .OR. iom_use('corstry') .OR. iom_use('intstrx') .OR. iom_use('intstry') ) THEN 
    898852         ! 
    899 #if defined key_mpi3 
    900          CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', zspgU, 'U', -1.0_wp, zspgV, 'V', -1.0_wp, & 
    901             &                                  zCorU, 'U', -1.0_wp, zCorV, 'V', -1.0_wp, zfU, 'U', -1.0_wp, zfV, 'V', -1.0_wp ) 
    902 #else 
    903853         CALL lbc_lnk_multi( 'icedyn_rhg_evp', zspgU, 'U', -1.0_wp, zspgV, 'V', -1.0_wp, & 
    904854            &                                  zCorU, 'U', -1.0_wp, zCorV, 'V', -1.0_wp, zfU, 'U', -1.0_wp, zfV, 'V', -1.0_wp ) 
    905 #endif 
    906855 
    907856         CALL iom_put( 'dssh_dx' , zspgU * zmsk00 )   ! Sea-surface tilt term in force balance (x) 
     
    935884         END_2D 
    936885 
    937 #if defined key_mpi3 
    938          CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', zdiag_xmtrp_ice, 'U', -1.0_wp, zdiag_ymtrp_ice, 'V', -1.0_wp, & 
    939             &                                  zdiag_xmtrp_snw, 'U', -1.0_wp, zdiag_ymtrp_snw, 'V', -1.0_wp, & 
    940             &                                  zdiag_xatrp    , 'U', -1.0_wp, zdiag_yatrp    , 'V', -1.0_wp ) 
    941 #else 
    942886         CALL lbc_lnk_multi( 'icedyn_rhg_evp', zdiag_xmtrp_ice, 'U', -1.0_wp, zdiag_ymtrp_ice, 'V', -1.0_wp, & 
    943887            &                                  zdiag_xmtrp_snw, 'U', -1.0_wp, zdiag_ymtrp_snw, 'V', -1.0_wp, & 
    944888            &                                  zdiag_xatrp    , 'U', -1.0_wp, zdiag_yatrp    , 'V', -1.0_wp ) 
    945 #endif 
    946889 
    947890         CALL iom_put( 'xmtrpice' , zdiag_xmtrp_ice )   ! X-component of sea-ice mass transport (kg/s) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/ICE/icesbc.F90

    r13906 r13963  
    8686            vtau_ice(ji,jj) = vtau_ice(ji,jj) * xcplmask(ji,jj,0) + zvtau_ice(ji,jj) * ( 1. - xcplmask(ji,jj,0) ) 
    8787         END_2D 
    88 #if defined key_mpi3 
    89          CALL lbc_lnk_nc_multi( 'icesbc', utau_ice, 'U', -1.0_wp, vtau_ice, 'V', -1.0_wp ) 
    90 #else 
    9188         CALL lbc_lnk_multi( 'icesbc', utau_ice, 'U', -1.0_wp, vtau_ice, 'V', -1.0_wp ) 
    92 #endif 
    9389      ENDIF 
    9490      ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/ICE/icethd.F90

    r13906 r13963  
    136136         END_2D 
    137137      ENDIF 
    138 #if defined key_mpi3 
    139       CALL lbc_lnk_nc_multi( 'icethd', zfric, 'T',  1.0_wp, zvel, 'T', 1.0_wp ) 
    140 #else 
    141138      CALL lbc_lnk_multi( 'icethd', zfric, 'T',  1.0_wp, zvel, 'T', 1.0_wp ) 
    142 #endif 
    143139      ! 
    144140      !--------------------------------------------------------------------! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/ICE/icethd_do.F90

    r13906 r13963  
    193193         END_2D 
    194194         !  
    195 #if defined key_mpi3 
    196          CALL lbc_lnk_nc_multi( 'icethd_do', zvrel, 'T', 1.0_wp, ht_i_new, 'T', 1.0_wp  ) 
    197 #else 
    198195         CALL lbc_lnk_multi( 'icethd_do', zvrel, 'T', 1.0_wp, ht_i_new, 'T', 1.0_wp  ) 
    199 #endif 
    200196 
    201197      ENDIF 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/ICE/iceupdate.F90

    r13906 r13963  
    345345            tmod_io(ji,jj) = zrhoco * SQRT( zmodt )          ! rhoco * |U_ice-U_oce| at T-point 
    346346         END_2D 
    347 #if defined key_mpi3 
    348          CALL lbc_lnk_nc_multi( 'iceupdate', taum, 'T', 1.0_wp, tmod_io, 'T', 1.0_wp ) 
    349 #else 
    350347         CALL lbc_lnk_multi( 'iceupdate', taum, 'T', 1.0_wp, tmod_io, 'T', 1.0_wp ) 
    351 #endif 
    352348         ! 
    353349         utau_oce(:,:) = utau(:,:)                    !* save the air-ocean stresses at ice time-step 
     
    378374         vtau(ji,jj) = ( 1._wp - zat_v ) * vtau_oce(ji,jj) + zat_v * zvtau_ice 
    379375      END_2D 
    380 #if defined key_mpi3 
    381       CALL lbc_lnk_nc_multi( 'iceupdate', utau, 'U', -1.0_wp, vtau, 'V', -1.0_wp )   ! lateral boundary condition 
    382 #else 
    383376      CALL lbc_lnk_multi( 'iceupdate', utau, 'U', -1.0_wp, vtau, 'V', -1.0_wp )   ! lateral boundary condition 
    384 #endif 
    385377      ! 
    386378      IF( ln_timing )   CALL timing_stop('ice_update_tau') 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/ICE/icewri.F90

    r13906 r13963  
    137137            z2d(ji,jj) = 0.5_wp * SQRT( z2da * z2da + z2db * z2db ) 
    138138         END_2D 
    139 #if defined key_mpi3 
    140          CALL lbc_lnk_nc_multi( 'icewri', z2d, 'T', 1.0_wp ) 
    141 #else 
    142139         CALL lbc_lnk( 'icewri', z2d, 'T', 1.0_wp ) 
    143 #endif 
    144140         CALL iom_put( 'icevel', z2d ) 
    145141 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/NST/agrif_oce_sponge.F90

    r13906 r13963  
    290290       
    291291      IF( .NOT. spongedoneT .AND. .NOT. spongedoneU ) THEN 
    292 #if defined key_mpi3 
    293          CALL lbc_lnk_nc_multi( 'agrif_Sponge', fspu, 'U', 1._wp, fspv, 'V', 1._wp, fspt, 'T', 1._wp, fspf, 'F', 1._wp ) 
    294 #else 
    295292         CALL lbc_lnk_multi( 'agrif_Sponge', fspu, 'U', 1._wp, fspv, 'V', 1._wp, fspt, 'T', 1._wp, fspf, 'F', 1._wp ) 
    296 #endif 
    297293         spongedoneT = .TRUE. 
    298294         spongedoneU = .TRUE. 
    299295      ENDIF 
    300296      IF( .NOT. spongedoneT ) THEN 
    301 #if defined key_mpi3 
    302          CALL lbc_lnk_nc_multi( 'agrif_Sponge', fspu, 'U', 1._wp, fspv, 'V', 1._wp ) 
    303 #else 
    304297         CALL lbc_lnk_multi( 'agrif_Sponge', fspu, 'U', 1._wp, fspv, 'V', 1._wp ) 
    305 #endif 
    306298         spongedoneT = .TRUE. 
    307299      ENDIF 
    308300      IF( .NOT. spongedoneT .AND. .NOT. spongedoneU ) THEN 
    309 #if defined key_mpi3 
    310          CALL lbc_lnk_nc_multi( 'agrif_Sponge', fspt, 'T', 1._wp, fspf, 'F', 1._wp ) 
    311 #else 
    312301         CALL lbc_lnk_multi( 'agrif_Sponge', fspt, 'T', 1._wp, fspf, 'F', 1._wp ) 
    313 #endif 
    314302         spongedoneU = .TRUE. 
    315303      ENDIF 
     
    335323      ztabrampu(:,:) = REAL( mbku_parent(:,:), wp ) 
    336324      ztabrampv(:,:) = REAL( mbkv_parent(:,:), wp ) 
    337 #if defined key_mpi3 
    338       CALL lbc_lnk_nc_multi( 'Agrif_Sponge', ztabramp, 'T', 1._wp, ztabrampu, 'U', 1._wp, ztabrampv, 'V', 1._wp ) 
    339 #else 
    340325      CALL lbc_lnk_multi( 'Agrif_Sponge', ztabramp, 'T', 1._wp, ztabrampu, 'U', 1._wp, ztabrampv, 'V', 1._wp ) 
    341 #endif 
    342326      mbkt_parent(:,:) = NINT( ztabramp (:,:) ) 
    343327      mbku_parent(:,:) = NINT( ztabrampu(:,:) ) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/NST/agrif_user.F90

    r13906 r13963  
    9999 
    100100 
    101 #if defined key_mpi3 
    102       CALL lbc_lnk_nc_multi( 'agrif_istate', uu(:,:,:  ,Kbb), 'U', -1.0_wp , vv(:,:,:,Kbb), 'V', -1.0_wp ) 
    103       CALL lbc_lnk_nc_multi(       'agrif_istate', ts(:,:,:,:,Kbb), 'T',  1.0_wp ) 
    104 #else 
    105101      CALL lbc_lnk_multi( 'agrif_istate', uu(:,:,:  ,Kbb), 'U', -1.0_wp , vv(:,:,:,Kbb), 'V', -1.0_wp ) 
    106102      CALL lbc_lnk(       'agrif_istate', ts(:,:,:,:,Kbb), 'T',  1.0_wp ) 
    107 #endif 
    108103 
    109104   END SUBROUTINE Agrif_Istate 
     
    278273      ENDIF 
    279274      ! 
    280 #if defined key_mpi3 
    281       CALL lbc_lnk_nc_multi( 'Agrif_Init_Domain', hu0_parent, 'U', 1.0_wp, hv0_parent, 'V', 1.0_wp ) 
    282 #else 
    283275      CALL lbc_lnk_multi( 'Agrif_Init_Domain', hu0_parent, 'U', 1.0_wp, hv0_parent, 'V', 1.0_wp ) 
    284 #endif 
    285276      DO_2D( 0, 0, 0, 0 ) 
    286277         zk(ji,jj) = REAL( mbku_parent(ji,jj), wp ) 
    287278      END_2D 
    288 #if defined key_mpi3 
    289       CALL lbc_lnk_nc_multi( 'Agrif_InitValues_cont', zk, 'U', 1.0_wp ) 
    290 #else 
    291279      CALL lbc_lnk( 'Agrif_InitValues_cont', zk, 'U', 1.0_wp ) 
    292 #endif 
    293280      mbku_parent(:,:) = MAX( NINT( zk(:,:) ), 1 ) 
    294281      DO_2D( 0, 0, 0, 0 ) 
    295282         zk(ji,jj) = REAL( mbkv_parent(ji,jj), wp ) 
    296283      END_2D 
    297 #if defined key_mpi3 
    298       CALL lbc_lnk_nc_multi( 'Agrif_InitValues_cont', zk, 'V', 1.0_wp ) 
    299 #else 
    300284      CALL lbc_lnk( 'Agrif_InitValues_cont', zk, 'V', 1.0_wp ) 
    301 #endif 
    302285      mbkv_parent(:,:) = MAX( NINT( zk(:,:) ), 1 )    
    303286 
    304287      IF ( ln_init_chfrpar ) THEN  
    305288         CALL Agrif_Init_Variable(sshini_id, procname=agrif_initssh) 
    306 #if defined key_mpi3 
    307          CALL lbc_lnk_nc_multi( 'Agrif_Init_Domain', ssh(:,:,Kbb), 'T', 1. ) 
    308 #else 
    309289         CALL lbc_lnk( 'Agrif_Init_Domain', ssh(:,:,Kbb), 'T', 1. ) 
    310 #endif 
    311290         DO jk = 1, jpk 
    312291               e3t(:,:,jk,Kbb) =  e3t_0(:,:,jk) * ( ht_0(:,:) + ssh(:,:,Kbb)  ) & 
  • 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 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/SWE/asminc.F90

    r13906 r13963  
    423423                     &            / e3t(ji,jj,jk,Kmm) 
    424424               END_2D 
    425 #if defined key_mpi3 
    426                CALL lbc_lnk_nc_multi( 'asminc', zhdiv, 'T', 1. )   ! lateral boundary cond. (no sign change) 
    427 #else 
    428425               CALL lbc_lnk( 'asminc', zhdiv, 'T', 1. )   ! lateral boundary cond. (no sign change) 
    429 #endif 
    430426               ! 
    431427               DO_2D( 0, 0, 0, 0 ) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/SWE/diawri.F90

    r13906 r13963  
    184184               &                  + e3t(ji+1,jj,1,Kmm) * e1e2t(ji+1,jj)  ) * r1_e1e2u(ji,jj) 
    185185         END_2D 
    186 #if defined key_mpi3 
    187          CALL lbc_lnk_nc_multi( 'diawri', z2d, 'U', 1._wp ) 
    188 #else 
    189186         CALL lbc_lnk( 'diawri', z2d, 'U', 1._wp ) 
    190 #endif 
    191187         CALL iom_put( "hu", z2d )  
    192188      ENDIF 
     
    198194              &                    + e3t(ji,jj  ,1,Kmm) * e1e2t(ji,jj  )   ) * r1_e1e2v(ji,jj) 
    199195         END_2D 
    200 #if defined key_mpi3 
    201          CALL lbc_lnk_nc_multi( 'diawri', z2d, 'V', 1._wp ) 
    202 #else 
    203196         CALL lbc_lnk( 'diawri', z2d, 'V', 1._wp ) 
    204 #endif 
    205197         CALL iom_put( "hv", z2d )     
    206198      ENDIF              
     
    213205         END_2D 
    214206         z2d(:,:) = z2d(:,:) * ssfmask(:,:) 
    215 #if defined key_mpi3 
    216          CALL lbc_lnk_nc_multi( 'diawri', z2d, 'F', 1._wp ) 
    217 #else 
    218207         CALL lbc_lnk( 'diawri', z2d, 'F', 1._wp ) 
    219 #endif 
    220208         CALL iom_put( "hf", z2d )    
    221209      ENDIF               
     
    236224            ! 
    237225         END_2D 
    238 #if defined key_mpi3 
    239          CALL lbc_lnk_nc_multi( 'diawri', z2d, 'T', 1. ) 
    240 #else 
    241226         CALL lbc_lnk( 'diawri', z2d, 'T', 1. ) 
    242 #endif 
    243227         CALL iom_put( "taubot", z2d )            
    244228      ENDIF 
     
    259243         END_2D 
    260244         ! 
    261 #if defined key_mpi3 
    262          CALL lbc_lnk_nc_multi( 'diawri', z2d, 'T', 1. ) 
    263 #else 
    264245         CALL lbc_lnk( 'diawri', z2d, 'T', 1. ) 
    265 #endif 
    266246         IF ( iom_use("sKE" ) )  CALL iom_put( "sKE" , z2d )    
    267247                            
     
    279259         END_2D 
    280260         ! 
    281 #if defined key_mpi3 
    282          CALL lbc_lnk_nc_multi( 'diawri', z2d, 'F', 1. ) 
    283 #else 
    284261         CALL lbc_lnk( 'diawri', z2d, 'F', 1. ) 
    285 #endif 
    286262         CALL iom_put( "sKEf", z2d )                      
    287263      ENDIF 
     
    301277            &              - e1u(ji  ,jj+1) * uu(ji  ,jj+1,1,Kmm) + e1u(ji,jj) * uu(ji,jj,1,Kmm)  ) * r1_e1e2f(ji,jj) 
    302278         END_2D 
    303 #if defined key_mpi3 
    304          CALL lbc_lnk_nc_multi( 'diawri', z2d, 'F', 1. ) 
    305 #else 
    306279         CALL lbc_lnk( 'diawri', z2d, 'F', 1. ) 
    307 #endif 
    308280         CALL iom_put( "relvor", z2d )                  ! relative vorticity ( zeta )  
    309281         ! 
     
    318290            z2d(ji,jj) = ze3 * z2d(ji,jj)  
    319291         END_2D 
    320 #if defined key_mpi3 
    321          CALL lbc_lnk_nc_multi( 'diawri', z2d, 'F', 1. ) 
    322 #else 
    323292         CALL lbc_lnk( 'diawri', z2d, 'F', 1. ) 
    324 #endif 
    325293         CALL iom_put( "relpotvor", z2d )                  ! relative potential vorticity (zeta/h) 
    326294         ! 
     
    333301            z2d(ji,jj) = ze3 * ff_f(ji,jj) + z2d(ji,jj)  
    334302         END_2D 
    335 #if defined key_mpi3 
    336          CALL lbc_lnk_nc_multi( 'diawri', z2d, 'F', 1. ) 
    337 #else 
    338303         CALL lbc_lnk( 'diawri', z2d, 'F', 1. ) 
    339 #endif 
    340304         CALL iom_put( "abspotvor", z2d )                  ! absolute potential vorticity ( q ) 
    341305         ! 
     
    343307            z2d(ji,jj) = 0.5_wp * z2d(ji,jj)  * z2d(ji,jj)  
    344308         END_2D 
    345 #if defined key_mpi3 
    346          CALL lbc_lnk_nc_multi( 'diawri', z2d, 'F', 1. ) 
    347 #else 
    348309         CALL lbc_lnk( 'diawri', z2d, 'F', 1. ) 
    349 #endif 
    350310         CALL iom_put( "Ens", z2d )                        ! potential enstrophy ( 1/2*q2 ) 
    351311         ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/SWE/dommsk.F90

    r13906 r13963  
    141141      ! the following call is mandatory 
    142142      ! it masks boundaries (bathy=0) where needed depending on the configuration (closed, periodic...)   
    143 #if defined key_mpi3 
    144       CALL lbc_lnk_nc_multi( 'dommsk', tmask  , 'T', 1._wp )      ! Lateral boundary conditions 
    145 #else 
    146143      CALL lbc_lnk( 'dommsk', tmask  , 'T', 1._wp )      ! Lateral boundary conditions 
    147 #endif 
    148144 
    149145     ! Mask corrections for bdy (read in mppini2) 
     
    177173         END DO 
    178174      END DO 
    179 #if defined key_mpi3 
    180       CALL lbc_lnk_nc_multi( 'dommsk', umask, 'U', 1., vmask, 'V', 1., fmask, 'F', 1. )      ! Lateral boundary conditions 
    181 #else 
    182175      CALL lbc_lnk_multi( 'dommsk', umask, 'U', 1., vmask, 'V', 1., fmask, 'F', 1. )      ! Lateral boundary conditions 
    183 #endif 
    184176  
    185177      ! Ocean/land mask at wu-, wv- and w points    (computed from tmask) 
     
    206198            &                   tmask(ji,jj  ,1), tmask(ji+1,jj  ,1)   ) 
    207199      END_2D 
    208 #if defined key_mpi3 
    209       CALL lbc_lnk_nc_multi( 'dommsk', ssfmask, 'F', 1._wp )    
    210 #else 
    211200      CALL lbc_lnk( 'dommsk', ssfmask, 'F', 1._wp )    
    212 #endif 
    213201 
    214202!!an 
     
    291279         DEALLOCATE( zwf ) 
    292280         ! 
    293 #if defined key_mpi3 
    294          CALL lbc_lnk_nc_multi( 'dommsk', fmask, 'F', 1._wp )      ! Lateral boundary conditions on fmask 
    295 #else 
    296281         CALL lbc_lnk( 'dommsk', fmask, 'F', 1._wp )      ! Lateral boundary conditions on fmask 
    297 #endif 
    298282         ! 
    299283         ! 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/SWE/domvvl.F90

    r13906 r13963  
    520520         !                       ! d - thickness diffusion transport: boundary conditions 
    521521         !                             (stored for tracer advction and continuity equation) 
    522 #if defined key_mpi3 
    523          CALL lbc_lnk_nc_multi( 'domvvl', un_td , 'U' , -1._wp, vn_td , 'V' , -1._wp) 
    524 #else 
    525522         CALL lbc_lnk_multi( 'domvvl', un_td , 'U' , -1._wp, vn_td , 'V' , -1._wp) 
    526 #endif 
    527523 
    528524         ! 4 - Time stepping of baroclinic scale factors 
    529525         ! --------------------------------------------- 
    530 #if defined key_mpi3 
    531          CALL lbc_lnk_nc_multi( 'domvvl', tilde_e3t_a(:,:,:), 'T', 1._wp ) 
    532 #else 
    533526         CALL lbc_lnk( 'domvvl', tilde_e3t_a(:,:,:), 'T', 1._wp ) 
    534 #endif 
    535527         tilde_e3t_a(:,:,:) = tilde_e3t_b(:,:,:) + rDt * tmask(:,:,:) * tilde_e3t_a(:,:,:) 
    536528 
     
    10241016               &                   + e1e2t(ji+1,jj) * pssh(ji+1,jj)  ) * r1_hu_0(ji,jj) * r1_e1e2u(ji,jj) 
    10251017         END_2D 
    1026 #if defined key_mpi3 
    1027          CALL lbc_lnk_nc_multi( 'domvvl', zc3(:,:), 'U', 1._wp ) 
    1028 #else 
    10291018         CALL lbc_lnk( 'domvvl', zc3(:,:), 'U', 1._wp ) 
    1030 #endif 
    10311019         ! 
    10321020         DO jk = 1, jpkm1 
     
    10391027               &                   + e1e2t(ji,jj+1) * pssh(ji,jj+1)  ) * r1_hv_0(ji,jj) * r1_e1e2v(ji,jj) 
    10401028         END_2D 
    1041 #if defined key_mpi3 
    1042          CALL lbc_lnk_nc_multi( 'domvvl', zc3(:,:), 'V', 1._wp ) 
    1043 #else 
    10441029         CALL lbc_lnk( 'domvvl', zc3(:,:), 'V', 1._wp ) 
    1045 #endif 
    10461030         ! 
    10471031         DO jk = 1, jpkm1 
     
    10561040               &                    + e1e2t(ji+1,jj+1) * pssh(ji+1,jj+1)  ) * r1_hf_0(ji,jj) * r1_e1e2f(ji,jj) 
    10571041         END_2D 
    1058 #if defined key_mpi3 
    1059          CALL lbc_lnk_nc_multi( 'domvvl', zc3(:,:), 'F', 1._wp ) 
    1060 #else 
    10611042         CALL lbc_lnk( 'domvvl', zc3(:,:), 'F', 1._wp ) 
    1062 #endif 
    10631043         ! 
    10641044         DO jk = 1, jpkm1                    ! Horizontal interpolation of e3f from ssh 
     
    10791059               &                   + e1e2t(ji+1,jj) * pssh(ji+1,jj)  ) * r1_hu_0(ji,jj) * r1_e1e2u(ji,jj) 
    10801060         END_2D 
    1081 #if defined key_mpi3 
    1082          CALL lbc_lnk_nc_multi( 'domvvl', zc3(:,:), 'U', 1._wp ) 
    1083 #else 
    10841061         CALL lbc_lnk( 'domvvl', zc3(:,:), 'U', 1._wp ) 
    1085 #endif 
    10861062         ! 
    10871063         DO jk = 1, jpk 
     
    10941070               &                   + e1e2t(ji,jj+1) * pssh(ji,jj+1)  ) * r1_hv_0(ji,jj) * r1_e1e2v(ji,jj) 
    10951071         END_2D 
    1096 #if defined key_mpi3 
    1097          CALL lbc_lnk_nc_multi( 'domvvl', zc3(:,:), 'V', 1._wp ) 
    1098 #else 
    10991072         CALL lbc_lnk( 'domvvl', zc3(:,:), 'V', 1._wp ) 
    1100 #endif 
    11011073          ! 
    11021074         DO jk = 1, jpk 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/SWE/dynatf.F90

    r13906 r13963  
    165165# endif 
    166166      ! 
    167 #if defined key_mpi3 
    168       CALL lbc_lnk_nc_multi( 'dynatf', puu(:,:,:,Kaa), 'U', -1., pvv(:,:,:,Kaa), 'V', -1. )     !* local domain boundaries 
    169 #else 
    170167      CALL lbc_lnk_multi( 'dynatf', puu(:,:,:,Kaa), 'U', -1., pvv(:,:,:,Kaa), 'V', -1. )     !* local domain boundaries 
    171 #endif 
    172168      ! 
    173169      !                                !* BDY open boundaries 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/SWE/dynkeg.F90

    r13906 r13963  
    133133            zhke(ji,jj,jk) = r1_48 * ( zv + zu ) 
    134134         END_3D 
    135 #if defined key_mpi3 
    136          CALL lbc_lnk_nc_multi( 'dynkeg', zhke, 'T', 1. ) 
    137 #else 
    138135         CALL lbc_lnk( 'dynkeg', zhke, 'T', 1. ) 
    139 #endif 
    140136         ! 
    141137      END SELECT  
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/SWE/dynldf_lap_blp.F90

    r13906 r13963  
    232232      CALL dyn_ldf_lap( kt, Kbb, Kmm, pu, pv, zulap, zvlap, 1 )   ! rotated laplacian applied to pt (output in zlap,Kbb) 
    233233      ! 
    234 #if defined key_mpi3 
    235       CALL lbc_lnk_nc_multi( 'dynldf_lap_blp', zulap, 'U', -1., zvlap, 'V', -1. )             ! Lateral boundary conditions 
    236 #else 
    237234      CALL lbc_lnk_multi( 'dynldf_lap_blp', zulap, 'U', -1., zvlap, 'V', -1. )             ! Lateral boundary conditions 
    238 #endif 
    239235      ! 
    240236      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/SWE/dynvor.F90

    r13906 r13963  
    242242            ENDIF 
    243243         END DO 
    244 #if defined key_mpi3 
    245          CALL lbc_lnk_nc_multi( 'dynvor', zwz, 'F', 1. ) 
    246 #else 
    247244         CALL lbc_lnk( 'dynvor', zwz, 'F', 1. ) 
    248 #endif 
    249245         ! 
    250246      END SELECT 
     
    603599      END DO                                           !   End of slab 
    604600         ! 
    605 #if defined key_mpi3 
    606       CALL lbc_lnk_nc_multi( 'dynvor', zwz, 'F', 1. ) 
    607 #else 
    608601      CALL lbc_lnk( 'dynvor', zwz, 'F', 1. ) 
    609 #endif 
    610602 
    611603      DO jk = 1, jpkm1                                 ! Horizontal slab 
     
    728720      END DO 
    729721      ! 
    730 #if defined key_mpi3 
    731       CALL lbc_lnk_nc_multi( 'dynvor', zwz, 'F', 1. ) 
    732 #else 
    733722      CALL lbc_lnk( 'dynvor', zwz, 'F', 1. ) 
    734 #endif 
    735723      ! 
    736724      DO jk = 1, jpkm1                                 ! Horizontal slab 
     
    824812         END_3D 
    825813         ! 
    826 #if defined key_mpi3 
    827          CALL lbc_lnk_nc_multi( 'dynvor', fmask, 'F', 1._wp )      ! Lateral boundary conditions on fmask 
    828 #else 
    829814         CALL lbc_lnk( 'dynvor', fmask, 'F', 1._wp )      ! Lateral boundary conditions on fmask 
    830 #endif 
    831815         ! 
    832816      ENDIF 
     
    866850               dj_e1v_2(ji,jj) = ( e1v(ji,jj) - e1v(ji  ,jj-1) ) * 0.5_wp 
    867851            END_2D 
    868 #if defined key_mpi3 
    869             CALL lbc_lnk_nc_multi( 'dynvor', di_e2u_2, 'T', -1. , dj_e1v_2, 'T', -1. )   ! Lateral boundary conditions 
    870 #else 
    871852            CALL lbc_lnk_multi( 'dynvor', di_e2u_2, 'T', -1. , dj_e1v_2, 'T', -1. )   ! Lateral boundary conditions 
    872 #endif 
    873853            ! 
    874854         CASE DEFAULT                        !* F-point metric term :   pre-compute di(e2u)/(2*e1e2f) and dj(e1v)/(2*e1e2f) 
     
    878858               dj_e1u_2e1e2f(ji,jj) = ( e1u(ji  ,jj+1) - e1u(ji,jj) )  * 0.5 * r1_e1e2f(ji,jj) 
    879859            END_2D 
    880 #if defined key_mpi3 
    881             CALL lbc_lnk_nc_multi( 'dynvor', di_e2v_2e1e2f, 'F', -1. , dj_e1u_2e1e2f, 'F', -1. )   ! Lateral boundary conditions 
    882 #else 
    883860            CALL lbc_lnk_multi( 'dynvor', di_e2v_2e1e2f, 'F', -1. , dj_e1u_2e1e2f, 'F', -1. )   ! Lateral boundary conditions 
    884 #endif 
    885861         END SELECT 
    886862         ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/SWE/ldfdyn.F90

    r13906 r13963  
    426426         ENDIF 
    427427         ! 
    428 #if defined key_mpi3 
    429          CALL lbc_lnk_nc_multi( 'ldfdyn', ahmt, 'T', 1.,  ahmf, 'F', 1. ) 
    430 #else 
    431428         CALL lbc_lnk_multi( 'ldfdyn', ahmt, 'T', 1.,  ahmf, 'F', 1. ) 
    432 #endif 
    433429         ! 
    434430         ! 
     
    462458            END DO 
    463459            ! 
    464 #if defined key_mpi3 
    465             CALL lbc_lnk_nc_multi( 'ldfdyn', dtensq, 'T', 1. )  ! lbc_lnk on dshesq not needed 
    466 #else 
    467460            CALL lbc_lnk_multi( 'ldfdyn', dtensq, 'T', 1. )  ! lbc_lnk on dshesq not needed 
    468 #endif 
    469461            ! 
    470462            DO jk = 1, jpkm1 
     
    517509         ENDIF 
    518510         ! 
    519 #if defined key_mpi3 
    520          CALL lbc_lnk_nc_multi( 'ldfdyn', ahmt, 'T', 1. , ahmf, 'F', 1. ) 
    521 #else 
    522511         CALL lbc_lnk_multi( 'ldfdyn', ahmt, 'T', 1. , ahmf, 'F', 1. ) 
    523 #endif 
    524512         ! 
    525513      END SELECT 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/SWE/sbcice_cice.F90

    r13906 r13963  
    224224      END_2D 
    225225 
    226 #if defined key_mpi3 
    227       CALL lbc_lnk_nc_multi( 'sbcice_cice', fr_iu , 'U', 1.,  fr_iv , 'V', 1. ) 
    228 #else 
    229226      CALL lbc_lnk_multi( 'sbcice_cice', fr_iu , 'U', 1.,  fr_iv , 'V', 1. ) 
    230 #endif 
    231227 
    232228      ! set the snow+ice mass 
     
    514510         ss_iou(ji,jj) = 0.5 * ( ztmp1(ji,jj-1) + ztmp1(ji,jj) ) * umask(ji,jj,1) 
    515511      END_2D 
    516 #if defined key_mpi3 
    517       CALL lbc_lnk_nc_multi( 'sbcice_cice', ss_iou , 'U', -1. ) 
    518 #else 
    519512      CALL lbc_lnk( 'sbcice_cice', ss_iou , 'U', -1. ) 
    520 #endif 
    521513 
    522514! y comp of ocean-ice stress  
     
    528520         ss_iov(ji,jj) = 0.5 * ( ztmp1(ji-1,jj) + ztmp1(ji,jj) ) * vmask(ji,jj,1) 
    529521      END_2D 
    530 #if defined key_mpi3 
    531       CALL lbc_lnk_nc_multi( 'sbcice_cice', ss_iov , 'V', -1. ) 
    532 #else 
    533522      CALL lbc_lnk( 'sbcice_cice', ss_iov , 'V', -1. ) 
    534 #endif 
    535523 
    536524! x and y comps of surface stress 
     
    585573      fmmflx(:,:) = ztmp1(:,:) !!Joakim edit 
    586574       
    587 #if defined key_mpi3 
    588       CALL lbc_lnk_nc_multi( 'sbcice_cice', emp , 'T', 1., sfx , 'T', 1. ) 
    589 #else 
    590575      CALL lbc_lnk_multi( 'sbcice_cice', emp , 'T', 1., sfx , 'T', 1. ) 
    591 #endif 
    592576 
    593577! Solar penetrative radiation and non solar surface heat flux 
     
    615599#endif 
    616600      qsr(:,:)=qsr(:,:)+ztmp1(:,:) 
    617 #if defined key_mpi3 
    618       CALL lbc_lnk_nc_multi( 'sbcice_cice', qsr , 'T', 1. ) 
    619 #else 
    620601      CALL lbc_lnk( 'sbcice_cice', qsr , 'T', 1. ) 
    621 #endif 
    622602 
    623603      DO_2D( 1, 1, 1, 1 ) 
     
    632612      qns(:,:)=qns(:,:)+nfrzmlt(:,:)+ztmp1(:,:) 
    633613 
    634 #if defined key_mpi3 
    635       CALL lbc_lnk_nc_multi( 'sbcice_cice', qns , 'T', 1. ) 
    636 #else 
    637614      CALL lbc_lnk( 'sbcice_cice', qns , 'T', 1. ) 
    638 #endif 
    639615 
    640616! Prepare for the following CICE time-step 
     
    654630      END_2D 
    655631 
    656 #if defined key_mpi3 
    657       CALL lbc_lnk_nc_multi( 'sbcice_cice', fr_iu , 'U', 1., fr_iv , 'V', 1. ) 
    658 #else 
    659632      CALL lbc_lnk_multi( 'sbcice_cice', fr_iu , 'U', 1., fr_iv , 'V', 1. ) 
    660 #endif 
    661633 
    662634      ! set the snow+ice mass 
     
    880852!     A. Ensure all haloes are filled in NEMO field (pn) 
    881853 
    882 #if defined key_mpi3 
    883       CALL lbc_lnk_nc_multi( 'sbcice_cice', pn , cd_type, psgn ) 
    884 #else 
    885854      CALL lbc_lnk( 'sbcice_cice', pn , cd_type, psgn ) 
    886 #endif 
    887855 
    888856#if defined key_nemocice_decomp 
     
    10591027!     D. Ensure all haloes are filled in pn 
    10601028 
    1061 #if defined key_mpi3 
    1062       CALL lbc_lnk_nc_multi( 'sbcice_cice', pn , cd_type, psgn ) 
    1063 #else 
    10641029      CALL lbc_lnk( 'sbcice_cice', pn , cd_type, psgn ) 
    1065 #endif 
    10661030 
    10671031   END SUBROUTINE cice2nemo 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/SWE/step.F90

    r13906 r13963  
    237237 
    238238 
    239 #if defined key_mpi3 
    240       CALL lbc_lnk_nc_multi( 'stp', uu(:,:,:,Nnn), 'U', -1., vv(:,:,:,Nnn), 'V', -1.,   &   !* local domain boundaries 
    241          &                       uu(:,:,:,Naa), 'U', -1., vv(:,:,:,Naa), 'V', -1.    )      
    242 #else 
    243239      CALL lbc_lnk_multi( 'stp', uu(:,:,:,Nnn), 'U', -1., vv(:,:,:,Nnn), 'V', -1.,   &   !* local domain boundaries 
    244240         &                       uu(:,:,:,Naa), 'U', -1., vv(:,:,:,Naa), 'V', -1.    )      
    245 #endif 
    246241 
    247242!!an          
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/SWE/stepLF.F90

    r13906 r13963  
    248248 
    249249 
    250 #if defined key_mpi3 
    251       CALL lbc_lnk_nc_multi( 'stp', uu(:,:,:,Nnn), 'U', -1., vv(:,:,:,Nnn), 'V', -1.,   &   !* local domain boundaries 
    252          &                       uu(:,:,:,Naa), 'U', -1., vv(:,:,:,Naa), 'V', -1.    )      
    253 #else 
    254250      CALL lbc_lnk_multi( 'stp', uu(:,:,:,Nnn), 'U', -1., vv(:,:,:,Nnn), 'V', -1.,   &   !* local domain boundaries 
    255251         &                       uu(:,:,:,Naa), 'U', -1., vv(:,:,:,Naa), 'V', -1.    )      
    256 #endif 
    257252 
    258253!!an          
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/SWE/stpRK3.F90

    r13906 r13963  
    308308 
    309309 
    310 #if defined key_mpi3 
    311       CALL lbc_lnk_nc_multi( 'stp_RK3', uu(:,:,:,Nnn), 'U', -1., vv(:,:,:,Nnn), 'V', -1.,   &   !* local domain boundaries 
    312          &                       uu(:,:,:,Naa), 'U', -1., vv(:,:,:,Naa), 'V', -1.    )      
    313 #else 
    314310      CALL lbc_lnk_multi( 'stp_RK3', uu(:,:,:,Nnn), 'U', -1., vv(:,:,:,Nnn), 'V', -1.,   &   !* local domain boundaries 
    315311         &                       uu(:,:,:,Naa), 'U', -1., vv(:,:,:,Naa), 'V', -1.    )      
    316 #endif 
    317312 
    318313!!an          
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/TOP/PISCES/P2Z/p2zbio.F90

    r13906 r13963  
    339339      ! 
    340340      IF( lk_iomput ) THEN 
    341 #if defined key_mpi3 
    342          CALL lbc_lnk_nc_multi( 'p2zbio', zw2d(:,:,:),'T', 1.0_wp ) 
    343          CALL lbc_lnk_nc_multi( 'p2zbio', zw3d(:,:,:,1),'T', 1.0_wp, zw3d(:,:,:,2),'T', 1.0_wp, zw3d(:,:,:,3),'T', 1.0_wp ) 
    344 #else 
    345341         CALL lbc_lnk( 'p2zbio', zw2d(:,:,:),'T', 1.0_wp ) 
    346342         CALL lbc_lnk_multi( 'p2zbio', zw3d(:,:,:,1),'T', 1.0_wp, zw3d(:,:,:,2),'T', 1.0_wp, zw3d(:,:,:,3),'T', 1.0_wp ) 
    347 #endif 
    348343         ! Save diagnostics 
    349344         CALL iom_put( "TNO3PHY", zw2d(:,:,1) ) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/TOP/PISCES/P2Z/p2zexp.F90

    r13906 r13963  
    107107      END_2D 
    108108 
    109 #if defined key_mpi3 
    110       CALL lbc_lnk_nc_multi( 'p2zexp', sedpocn, 'T', 1.0_wp ) 
    111 #else 
    112109      CALL lbc_lnk( 'p2zexp', sedpocn, 'T', 1.0_wp ) 
    113 #endif 
    114110  
    115111      ! Oa & Ek: diagnostics depending on jpdia2d !          left as example 
     
    214210         END IF 
    215211      END_2D 
    216 #if defined key_mpi3 
    217       CALL lbc_lnk_nc_multi( 'p2zexp', cmask , 'T', 1.0_wp )      ! lateral boundary conditions on cmask   (sign unchanged) 
    218 #else 
    219212      CALL lbc_lnk( 'p2zexp', cmask , 'T', 1.0_wp )      ! lateral boundary conditions on cmask   (sign unchanged) 
    220 #endif 
    221213      areacot = glob_sum( 'p2zexp', e1e2t(:,:) * cmask(:,:) ) 
    222214      ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/TOP/PISCES/P4Z/p4zbc.F90

    r13906 r13963  
    311311         END_3D 
    312312         ! 
    313 #if defined key_mpi3 
    314          CALL lbc_lnk_nc_multi( 'p4zbc', zcmask , 'T', 1.0_wp )      ! lateral boundary conditions on cmask   (sign unchanged) 
    315 #else 
    316313         CALL lbc_lnk( 'p4zbc', zcmask , 'T', 1.0_wp )      ! lateral boundary conditions on cmask   (sign unchanged) 
    317 #endif 
    318314         ! 
    319315         DO_3D( 1, 1, 1, 1, 1, jpk ) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/TOP/TRP/trcadv.F90

    r13946 r13963  
    126126      ! 
    127127      CASE ( np_CEN )                                 ! Centered : 2nd / 4th order 
    128 #if defined key_mpi3 
    129          IF (nn_hls.EQ.2) CALL lbc_lnk_nc_multi( 'trcadv', ptr(:,:,:,:,Kmm), 'T', 1.) 
    130 #else 
    131128         IF (nn_hls.EQ.2) CALL lbc_lnk( 'trcadv', ptr(:,:,:,:,Kmm), 'T', 1.) 
    132 #endif 
    133129         CALL tra_adv_cen( kt, nittrc000,'TRC',          zuu, zvv, zww,      Kmm, ptr, jptra, Krhs, nn_cen_h, nn_cen_v ) 
    134130      CASE ( np_FCT )                                 ! FCT      : 2nd / 4th order 
    135131         IF (nn_hls.EQ.2) THEN 
    136 #if defined key_mpi3 
    137             CALL lbc_lnk_nc_multi( 'trcadv', ptr(:,:,:,:,Kbb), 'T', 1., ptr(:,:,:,:,Kmm), 'T', 1.) 
    138             CALL lbc_lnk_nc_multi( 'traadv', zuu(:,:,:), 'U', -1., zvv(:,:,:), 'V', -1., zww(:,:,:), 'W', 1.) 
    139 #else 
    140132            CALL lbc_lnk_multi( 'trcadv', ptr(:,:,:,:,Kbb), 'T', 1., ptr(:,:,:,:,Kmm), 'T', 1.) 
    141133            CALL lbc_lnk_multi( 'traadv', zuu(:,:,:), 'U', -1., zvv(:,:,:), 'V', -1., zww(:,:,:), 'W', 1.) 
    142 #endif 
    143134#if defined key_loop_fusion 
    144135            CALL tra_adv_fct_lf( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, nn_fct_h, nn_fct_v ) 
     
    151142      CASE ( np_MUS )                                 ! MUSCL 
    152143         IF (nn_hls.EQ.2) THEN 
    153 #if defined key_mpi3 
    154             IF (nn_hls.EQ.2) CALL lbc_lnk_nc_multi( 'trcadv', ptr(:,:,:,:,Kbb), 'T', 1.) 
    155 #else 
    156144            IF (nn_hls.EQ.2) CALL lbc_lnk( 'trcadv', ptr(:,:,:,:,Kbb), 'T', 1.) 
    157 #endif 
    158145#if defined key_loop_fusion 
    159146            CALL tra_adv_mus_lf( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, ln_mus_ups )  
     
    165152         END IF 
    166153      CASE ( np_UBS )                                 ! UBS 
    167 #if defined key_mpi3 
    168          IF (nn_hls.EQ.2) CALL lbc_lnk_nc_multi( 'trcadv', ptr(:,:,:,:,Kbb), 'T', 1.) 
    169 #else 
    170154         IF (nn_hls.EQ.2) CALL lbc_lnk( 'trcadv', ptr(:,:,:,:,Kbb), 'T', 1.) 
    171 #endif 
    172155         CALL tra_adv_ubs( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, nn_ubs_v           ) 
    173156      CASE ( np_QCK )                                 ! QUICKEST 
    174157         IF (nn_hls.EQ.2) THEN 
    175 #if defined key_mpi3 
    176             CALL lbc_lnk_nc_multi( 'trcadv', zuu(:,:,:), 'U', -1., zvv(:,:,:), 'V', -1.) 
    177             CALL lbc_lnk_nc_multi( 'traadv', ptr(:,:,:,:,Kbb), 'T', 1.) 
    178 #else 
    179158            CALL lbc_lnk_multi( 'trcadv', zuu(:,:,:), 'U', -1., zvv(:,:,:), 'V', -1.) 
    180159            CALL lbc_lnk( 'traadv', ptr(:,:,:,:,Kbb), 'T', 1.) 
    181 #endif 
    182160         END IF 
    183161         CALL tra_adv_qck( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs                     ) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/TOP/TRP/trcatf.F90

    r13906 r13963  
    102102#endif 
    103103      ! Update after tracer on domain lateral boundaries 
    104 #if defined key_mpi3 
    105       CALL lbc_lnk_nc_multi( 'trcatf', ptr(:,:,:,:,Kaa), 'T', 1. )    
    106 #else 
    107104      CALL lbc_lnk( 'trcatf', ptr(:,:,:,:,Kaa), 'T', 1. )    
    108 #endif 
    109105 
    110106      IF( ln_bdy )  CALL trc_bdy( kt, Kbb, Kmm, Kaa ) 
     
    172168         ENDIF 
    173169         ! 
    174 #if defined key_mpi3 
    175          CALL lbc_lnk_nc_multi( 'trcatf', ptr(:,:,:,:,Kmm), 'T', 1._wp, ptr(:,:,:,:,Kaa), 'T', 1._wp, ptr(:,:,:,:,Kaa), 'T', 1._wp ) 
    176 #else 
    177170         CALL lbc_lnk_multi( 'trcatf', ptr(:,:,:,:,Kmm), 'T', 1._wp, ptr(:,:,:,:,Kaa), 'T', 1._wp, ptr(:,:,:,:,Kaa), 'T', 1._wp ) 
    178 #endif 
    179171      ENDIF 
    180172      ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/TOP/TRP/trcldf.F90

    r13946 r13963  
    101101           &                     ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Krhs), jptra, 1 ) 
    102102      CASE ( np_blp , np_blp_i , np_blp_it )                                                               ! bilaplacian: all operator (iso-level, -neutral) 
    103 #if defined key_mpi3 
    104          IF(nn_hls.EQ.2) CALL lbc_lnk_nc_multi( 'trc_ldf', ptr(:,:,:,:,Kbb), 'T',1.) 
    105 #else 
    106103         IF(nn_hls.EQ.2) CALL lbc_lnk( 'trc_ldf', ptr(:,:,:,:,Kbb), 'T',1.) 
    107 #endif 
    108104         CALL tra_ldf_blp  ( kt, Kmm, nittrc000,'TRC', zahu, zahv, gtru, gtrv, gtrui, gtrvi,            & 
    109105           &                     ptr(:,:,:,:,Kbb) , ptr(:,:,:,:,Krhs),                 jptra, nldf_trc ) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/TOP/TRP/trcsbc.F90

    r13906 r13963  
    155155      END SELECT 
    156156      ! 
    157 #if defined key_mpi3 
    158       CALL lbc_lnk_nc_multi( 'trcsbc', sbc_trc(:,:,:), 'T', 1.0_wp ) 
    159 #else 
    160157      CALL lbc_lnk( 'trcsbc', sbc_trc(:,:,:), 'T', 1.0_wp ) 
    161 #endif 
    162158      !                                       Concentration dilution effect on tracers due to evaporation & precipitation  
    163159      DO jn = 1, jptra 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/TOP/TRP/trdmxl_trc.F90

    r13906 r13963  
    284284            IF( ln_trdtrc(jn) ) THEN 
    285285               DO jl = 1, jpltrd_trc 
    286 #if defined key_mpi3 
    287                   CALL lbc_lnk_nc_multi( 'trdmxl_trc', tmltrd_trc(:,:,jl,jn), 'T', 1. )        ! lateral boundary conditions 
    288 #else 
    289286                  CALL lbc_lnk( 'trdmxl_trc', tmltrd_trc(:,:,jl,jn), 'T', 1. )        ! lateral boundary conditions 
    290 #endif 
    291287               END DO 
    292288            ENDIF 
     
    423419         !-- Lateral boundary conditions 
    424420               IF ( cn_cfg .NE. 'gyre' ) THEN 
    425 #if defined key_mpi3 
    426                   CALL lbc_lnk_nc_multi( 'trdmxl_trc', ztmltot(:,:,jn) , 'T', 1. , ztmlres(:,:,jn) , 'T', 1., & 
    427                      &                ztmlatf(:,:,jn) , 'T', 1. , ztmlrad(:,:,jn) , 'T', 1. ) 
    428 #else 
    429421                  CALL lbc_lnk_multi( 'trdmxl_trc', ztmltot(:,:,jn) , 'T', 1. , ztmlres(:,:,jn) , 'T', 1., & 
    430422                     &                ztmlatf(:,:,jn) , 'T', 1. , ztmlrad(:,:,jn) , 'T', 1. ) 
    431 #endif 
    432423               ENDIF 
    433424 
     
    479470         !-- Lateral boundary conditions  
    480471               IF ( cn_cfg .NE. 'gyre' ) THEN            ! other than GYRE configuration     
    481 #if defined key_mpi3 
    482                   CALL lbc_lnk_nc_multi( 'trdmxl_trc', ztmltot2(:,:,jn), 'T', 1., ztmlres2(:,:,jn), 'T', 1. ) 
    483 #else 
    484472                  CALL lbc_lnk_multi( 'trdmxl_trc', ztmltot2(:,:,jn), 'T', 1., ztmlres2(:,:,jn), 'T', 1. ) 
    485 #endif 
    486473                  DO jl = 1, jpltrd_trc 
    487 #if defined key_mpi3 
    488                      CALL lbc_lnk_nc_multi( 'trdmxl_trc', ztmltrd2(:,:,jl,jn), 'T', 1. )       ! will be output in the NetCDF trends file 
    489 #else 
    490474                     CALL lbc_lnk( 'trdmxl_trc', ztmltrd2(:,:,jl,jn), 'T', 1. )       ! will be output in the NetCDF trends file 
    491 #endif 
    492475                  END DO 
    493476               ENDIF 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/src/TOP/trcbdy.F90

    r13906 r13963  
    103103         END DO 
    104104         IF( ANY(llsend1) .OR. ANY(llrecv1) ) THEN   ! if need to send/recv in at least one direction 
    105 #if defined key_mpi3 
    106             CALL lbc_lnk_nc_multi( 'trcbdy', tr(:,:,:,:,Krhs), 'T',  1.0_wp, kfillmode=jpfillnothing ,lsend=llsend1, lrecv=llrecv1 ) 
    107 #else 
    108105            CALL lbc_lnk( 'trcbdy', tr(:,:,:,:,Krhs), 'T',  1.0_wp, kfillmode=jpfillnothing ,lsend=llsend1, lrecv=llrecv1 ) 
    109 #endif 
    110106         ENDIF 
    111107         ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/tests/BENCH/MY_SRC/usrdef_istate.F90

    r13906 r13963  
    9595      pv( :,:,jpk  ) = 0._wp 
    9696      ! 
    97 #if defined key_mpi3 
    98       CALL lbc_lnk_nc_multi('usrdef_istate', pssh, 'T',  1. )            ! apply boundary conditions 
    99       CALL lbc_lnk_nc_multi('usrdef_istate',  pts, 'T',  1. )            ! apply boundary conditions 
    100       CALL lbc_lnk_nc_multi('usrdef_istate',   pu, 'U', -1. )            ! apply boundary conditions 
    101       CALL lbc_lnk_nc_multi('usrdef_istate',   pv, 'V', -1. )            ! apply boundary conditions 
    102 #else 
    10397      CALL lbc_lnk('usrdef_istate', pssh, 'T',  1. )            ! apply boundary conditions 
    10498      CALL lbc_lnk('usrdef_istate',  pts, 'T',  1. )            ! apply boundary conditions 
    10599      CALL lbc_lnk('usrdef_istate',   pu, 'U', -1. )            ! apply boundary conditions 
    106100      CALL lbc_lnk('usrdef_istate',   pv, 'V', -1. )            ! apply boundary conditions 
    107 #endif 
    108101       
    109102   END SUBROUTINE usr_def_istate 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/tests/BENCH/MY_SRC/usrdef_sbc.F90

    r13906 r13963  
    120120      vtau_ice(:,:) = 0.1_wp + z2d(:,:) 
    121121 
    122 #if defined key_mpi3 
    123       CALL lbc_lnk_nc_multi( 'usrdef_sbc', utau_ice, 'U', -1., vtau_ice, 'V', -1. ) 
    124 #else 
    125122      CALL lbc_lnk_multi( 'usrdef_sbc', utau_ice, 'U', -1., vtau_ice, 'V', -1. ) 
    126 #endif 
    127123#endif 
    128124      ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/tests/BENCH/MY_SRC/usrdef_zgr.F90

    r13906 r13963  
    210210 
    211211      ! 
    212 #if defined key_mpi3 
    213       CALL lbc_lnk_nc_multi( 'usrdef_zgr', z2d, 'T', 1. )           ! set surrounding land to zero (here jperio=0 ==>> closed) 
    214 #else 
    215212      CALL lbc_lnk( 'usrdef_zgr', z2d, 'T', 1. )           ! set surrounding land to zero (here jperio=0 ==>> closed) 
    216 #endif 
    217213      ! 
    218214      k_bot(:,:) = INT( z2d(:,:) )           ! =jpkm1 over the ocean point, =0 elsewhere 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/tests/CANAL/MY_SRC/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 
    447443         ! 4 - Time stepping of baroclinic scale factors 
    448444         ! --------------------------------------------- 
    449 #if defined key_mpi3 
    450          CALL lbc_lnk_nc_multi( 'domvvl', tilde_e3t_a(:,:,:), 'T', 1._wp ) 
    451 #else 
    452445         CALL lbc_lnk( 'domvvl', tilde_e3t_a(:,:,:), 'T', 1._wp ) 
    453 #endif 
    454446         tilde_e3t_a(:,:,:) = tilde_e3t_b(:,:,:) + rDt * tmask(:,:,:) * tilde_e3t_a(:,:,:) 
    455447 
     
    725717               &                           + e1e2t(ji+1,jj) * ( pe3_in(ji+1,jj,jk) - e3t_0(ji+1,jj,jk) ) ) 
    726718         END_3D 
    727 #if defined key_mpi3 
    728          CALL lbc_lnk_nc_multi( 'domvvl', pe3_out(:,:,:), 'U', 1._wp ) 
    729 #else 
    730719         CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'U', 1._wp ) 
    731 #endif 
    732720         pe3_out(:,:,:) = pe3_out(:,:,:) + e3u_0(:,:,:) 
    733721         ! 
     
    738726               &                           + e1e2t(ji,jj+1) * ( pe3_in(ji,jj+1,jk) - e3t_0(ji,jj+1,jk) ) ) 
    739727         END_3D 
    740 #if defined key_mpi3 
    741          CALL lbc_lnk_nc_multi( 'domvvl', pe3_out(:,:,:), 'V', 1._wp ) 
    742 #else 
    743728         CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'V', 1._wp ) 
    744 #endif 
    745729         pe3_out(:,:,:) = pe3_out(:,:,:) + e3v_0(:,:,:) 
    746730         ! 
     
    752736               &                           + e1e2u(ji,jj+1) * ( pe3_in(ji,jj+1,jk) - e3u_0(ji,jj+1,jk) ) ) 
    753737         END_3D 
    754 #if defined key_mpi3 
    755          CALL lbc_lnk_nc_multi( 'domvvl', pe3_out(:,:,:), 'F', 1._wp ) 
    756 #else 
    757738         CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'F', 1._wp ) 
    758 #endif 
    759739         pe3_out(:,:,:) = pe3_out(:,:,:) + e3f_0(:,:,:) 
    760740         ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/tests/CANAL/MY_SRC/trazdf.F90

    r13906 r13963  
    9696         END DO 
    9797!!gm this should be moved in trdtra.F90 and done on all trends 
    98 #if defined key_mpi3 
    99          CALL lbc_lnk_nc_multi( 'trazdf', ztrdt, 'T', 1. , ztrds, 'T', 1. ) 
    100 #else 
    10198         CALL lbc_lnk_multi( 'trazdf', ztrdt, 'T', 1. , ztrds, 'T', 1. ) 
    102 #endif 
    10399!!gm 
    104100         CALL trd_tra( kt, Kmm, Krhs, 'TRA', jp_tem, jptra_zdf, ztrdt ) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/tests/CANAL/MY_SRC/usrdef_istate.F90

    r13906 r13963  
    189189               pssh(ji,jj) = pssh(ji,jj-1) - ff_t(ji,jj) / grav * pu(ji,jj,1) * e2t(ji,jj) 
    190190            END_2D 
    191 #if defined key_mpi3 
    192             CALL lbc_lnk_nc_multi( 'usrdef_istate', pssh, 'T',  1. ) 
    193 #else 
    194191            CALL lbc_lnk( 'usrdef_istate', pssh, 'T',  1. ) 
    195 #endif 
    196192         END DO 
    197193          
     
    309305         pssh(:,:) = pssh(:,:) + ( 0.1  * zrandom(:,:) - 0.05 ) 
    310306      END IF 
    311 #if defined key_mpi3 
    312       CALL lbc_lnk_nc_multi( 'usrdef_istate', pssh, 'T',  1. ) 
    313       CALL lbc_lnk_nc_multi( 'usrdef_istate', pts , 'T',  1. ) 
    314       CALL lbc_lnk_nc_multi( 'usrdef_istate', pu, 'U', -1., pv, 'V', -1. ) 
    315 #else 
    316307      CALL lbc_lnk( 'usrdef_istate', pssh, 'T',  1. ) 
    317308      CALL lbc_lnk( 'usrdef_istate', pts , 'T',  1. ) 
    318309      CALL lbc_lnk_multi( 'usrdef_istate', pu, 'U', -1., pv, 'V', -1. ) 
    319 #endif 
    320310 
    321311   END SUBROUTINE usr_def_istate 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/tests/CANAL/MY_SRC/usrdef_zgr.F90

    r13906 r13963  
    202202      END SELECT 
    203203      ! 
    204 #if defined key_mpi3 
    205       CALL lbc_lnk_nc_multi( 'usrdef_zgr', z2d, 'T', 1. )           ! set surrounding land to zero (here jperio=0 ==>> closed) 
    206 #else 
    207204      CALL lbc_lnk( 'usrdef_zgr', z2d, 'T', 1. )           ! set surrounding land to zero (here jperio=0 ==>> closed) 
    208 #endif 
    209205      ! 
    210206      k_bot(:,:) = NINT( z2d(:,:) )          ! =jpkm1 over the ocean point, =0 elsewhere 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/tests/ISOMIP+/MY_SRC/sbcfwb.F90

    r13906 r13963  
    206206            ! 
    207207!!gm   ===>>>>  lbc_lnk should be useless as all the computation is done over the whole domain ! 
    208 #if defined key_mpi3 
    209             CALL lbc_lnk_nc_multi( 'sbcfwb', zerp_cor, 'T', 1.0_wp ) 
    210 #else 
    211208            CALL lbc_lnk( 'sbcfwb', zerp_cor, 'T', 1.0_wp ) 
    212 #endif 
    213209            ! 
    214210            emp(:,:) = emp(:,:) + zerp_cor(:,:) 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/tests/ISOMIP/MY_SRC/usrdef_zgr.F90

    r13906 r13963  
    164164            pe3f (ji,jj,jk) = pe3v(ji,jj,jk) 
    165165         END_3D 
    166 #if defined key_mpi3 
    167          CALL lbc_lnk_nc_multi( 'usrdef_zgr', pe3v , 'V', 1._wp )   ;   CALL lbc_lnk_nc_multi( 'usrdef_zgr', pe3vw, 'V', 1._wp ) 
    168          CALL lbc_lnk_nc_multi( 'usrdef_zgr', pe3f , 'F', 1._wp ) 
    169 #else 
    170166         CALL lbc_lnk( 'usrdef_zgr', pe3v , 'V', 1._wp )   ;   CALL lbc_lnk( 'usrdef_zgr', pe3vw, 'V', 1._wp ) 
    171167         CALL lbc_lnk( 'usrdef_zgr', pe3f , 'F', 1._wp ) 
    172 #endif 
    173168         DO jk = 1, jpk 
    174169            ! set to z-scale factor if zero (i.e. along closed boundaries) because of lbclnk 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/tests/LOCK_EXCHANGE/MY_SRC/usrdef_zgr.F90

    r13906 r13963  
    8686      ! the ocean basin surrounded by land (1 grid-point) set through lbc_lnk call as jperio=0  
    8787      z2d(:,:) = 1._wp                    ! surface ocean is the 1st level 
    88 #if defined key_mpi3 
    89       CALL lbc_lnk_nc_multi( 'usrdef_zgr', z2d, 'T', 1. )        ! closed basin since jperio = 0 (see userdef_nam.F90) 
    90 #else 
    9188      CALL lbc_lnk( 'usrdef_zgr', z2d, 'T', 1. )        ! closed basin since jperio = 0 (see userdef_nam.F90) 
    92 #endif 
    9389      k_top(:,:) = NINT( z2d(:,:) ) 
    9490      ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/tests/OVERFLOW/MY_SRC/usrdef_zgr.F90

    r13906 r13963  
    9393         zhu(ji,:) = 0.5_wp * ( zht(ji,:) + zht(ji+1,:) ) 
    9494      END DO 
    95 #if defined key_mpi3 
    96       CALL lbc_lnk_nc_multi( 'usrdef_zgr', zhu, 'U', 1. )     ! boundary condition: this mask the surrouding grid-points 
    97 #else 
    9895      CALL lbc_lnk( 'usrdef_zgr', zhu, 'U', 1. )     ! boundary condition: this mask the surrouding grid-points 
    99 #endif 
    10096      !                                ! ==>>>  set by hand non-zero value on first/last columns & rows  
    10197      DO ji = mi0(1), mi1(1)              ! first row of global domain only 
     
    116112      ! the ocean basin surrounded by land (1 grid-point) set through lbc_lnk call as jperio=0  
    117113      z2d(:,:) = 1._wp                    ! surface ocean is the 1st level 
    118 #if defined key_mpi3 
    119       CALL lbc_lnk_nc_multi( 'usrdef_zgr', z2d, 'T', 1. )        ! closed basin since jperio = 0 (see userdef_nam.F90) 
    120 #else 
    121114      CALL lbc_lnk( 'usrdef_zgr', z2d, 'T', 1. )        ! closed basin since jperio = 0 (see userdef_nam.F90) 
    122 #endif 
    123115      k_top(:,:) = NINT( z2d(:,:) ) 
    124116      ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/tests/VORTEX/MY_SRC/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 
    447443         ! 4 - Time stepping of baroclinic scale factors 
    448444         ! --------------------------------------------- 
    449 #if defined key_mpi3 
    450          CALL lbc_lnk_nc_multi( 'domvvl', tilde_e3t_a(:,:,:), 'T', 1._wp ) 
    451 #else 
    452445         CALL lbc_lnk( 'domvvl', tilde_e3t_a(:,:,:), 'T', 1._wp ) 
    453 #endif 
    454446         tilde_e3t_a(:,:,:) = tilde_e3t_b(:,:,:) + rDt * tmask(:,:,:) * tilde_e3t_a(:,:,:) 
    455447 
     
    725717               &                           + e1e2t(ji+1,jj) * ( pe3_in(ji+1,jj,jk) - e3t_0(ji+1,jj,jk) ) ) 
    726718         END_3D 
    727 #if defined key_mpi3 
    728          CALL lbc_lnk_nc_multi( 'domvvl', pe3_out(:,:,:), 'U', 1._wp ) 
    729 #else 
    730719         CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'U', 1._wp ) 
    731 #endif 
    732720         pe3_out(:,:,:) = pe3_out(:,:,:) + e3u_0(:,:,:) 
    733721         ! 
     
    738726               &                           + e1e2t(ji,jj+1) * ( pe3_in(ji,jj+1,jk) - e3t_0(ji,jj+1,jk) ) ) 
    739727         END_3D 
    740 #if defined key_mpi3 
    741          CALL lbc_lnk_nc_multi( 'domvvl', pe3_out(:,:,:), 'V', 1._wp ) 
    742 #else 
    743728         CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'V', 1._wp ) 
    744 #endif 
    745729         pe3_out(:,:,:) = pe3_out(:,:,:) + e3v_0(:,:,:) 
    746730         ! 
     
    752736               &                           + e1e2u(ji,jj+1) * ( pe3_in(ji,jj+1,jk) - e3u_0(ji,jj+1,jk) ) ) 
    753737         END_3D 
    754 #if defined key_mpi3 
    755          CALL lbc_lnk_nc_multi( 'domvvl', pe3_out(:,:,:), 'F', 1._wp ) 
    756 #else 
    757738         CALL lbc_lnk( 'domvvl', pe3_out(:,:,:), 'F', 1._wp ) 
    758 #endif 
    759739         pe3_out(:,:,:) = pe3_out(:,:,:) + e3f_0(:,:,:) 
    760740         ! 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/tests/VORTEX/MY_SRC/usrdef_istate.F90

    r13906 r13963  
    130130      END_2D 
    131131      ! 
    132 #if defined key_mpi3 
    133       CALL lbc_lnk_nc_multi( 'usrdef_istate', pu, 'U', -1., pv, 'V', -1. ) 
    134 #else 
    135132      CALL lbc_lnk_multi( 'usrdef_istate', pu, 'U', -1., pv, 'V', -1. ) 
    136 #endif 
    137133      !    
    138134   END SUBROUTINE usr_def_istate 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/tests/VORTEX/MY_SRC/usrdef_zgr.F90

    r13906 r13963  
    190190      z2d(:,:) = REAL( jpkm1 , wp )          ! flat bottom 
    191191      ! 
    192 #if defined key_mpi3 
    193       CALL lbc_lnk_nc_multi( 'usrdef_zgr', z2d, 'T', 1. )           ! set surrounding land to zero (here jperio=0 ==>> closed) 
    194 #else 
    195192      CALL lbc_lnk( 'usrdef_zgr', z2d, 'T', 1. )           ! set surrounding land to zero (here jperio=0 ==>> closed) 
    196 #endif 
    197193      ! 
    198194      k_bot(:,:) = NINT( z2d(:,:) )          ! =jpkm1 over the ocean point, =0 elsewhere 
  • NEMO/branches/2020/dev_r13923_Tiling_Cleanup_MPI3_LoopFusion/tests/WAD/MY_SRC/usrdef_zgr.F90

    r13906 r13963  
    233233         zhu(ji,:) = 0.5_wp * ( zht(ji,:) + zht(ji+1,:) ) 
    234234      END DO 
    235 #if defined key_mpi3 
    236       CALL lbc_lnk_nc_multi( 'usrdef_zgr', zhu, 'U', 1. )     ! boundary condition: this mask the surrounding grid-points 
    237 #else 
    238235      CALL lbc_lnk( 'usrdef_zgr', zhu, 'U', 1. )     ! boundary condition: this mask the surrounding grid-points 
    239 #endif 
    240236      !                                ! ==>>>  set by hand non-zero value on first/last columns & rows  
    241237      DO ji = mi0(1), mi1(1)              ! first row of global domain only 
     
    250246         zhv(ji,jj) = 0.5_wp * ( zht(ji,jj) + zht(ji,jj+1) ) 
    251247      END_2D 
    252 #if defined key_mpi3 
    253       CALL lbc_lnk_nc_multi( 'usrdef_zgr', zhv, 'V', 1. )     ! boundary condition: this mask the surrounding grid-points 
    254 #else 
    255248      CALL lbc_lnk( 'usrdef_zgr', zhv, 'V', 1. )     ! boundary condition: this mask the surrounding grid-points 
    256 #endif 
    257249      DO jj = mj0(1), mj1(1)   ! first  row of global domain only 
    258250         zhv(:,jj) = zht(:,jj) 
     
    279271 
    280272 
    281 #if defined key_mpi3 
    282       CALL lbc_lnk_nc_multi( 'usrdef_zgr', z2d, 'T', 1. )        ! closed basin since jperio = 0 (see userdef_nam.F90) 
    283 #else 
    284273      CALL lbc_lnk( 'usrdef_zgr', z2d, 'T', 1. )        ! closed basin since jperio = 0 (see userdef_nam.F90) 
    285 #endif 
    286274      k_top(:,:) = NINT( z2d(:,:) ) 
    287275      ! 
     
    318306            END DO 
    319307         END_2D      
    320 #if defined key_mpi3 
    321          CALL lbc_lnk_nc_multi( 'usrdef_zgr', pdept, 'T', 1. ) 
    322          CALL lbc_lnk_nc_multi( 'usrdef_zgr', pdepw, 'T', 1. ) 
    323          CALL lbc_lnk_nc_multi( 'usrdef_zgr', pe3t , 'T', 1. ) 
    324          CALL lbc_lnk_nc_multi( 'usrdef_zgr', pe3w , 'T', 1. ) 
    325          CALL lbc_lnk_nc_multi( 'usrdef_zgr', pe3u , 'U', 1. ) 
    326          CALL lbc_lnk_nc_multi( 'usrdef_zgr', pe3uw, 'U', 1. ) 
    327          CALL lbc_lnk_nc_multi( 'usrdef_zgr', pe3f , 'F', 1. ) 
    328          CALL lbc_lnk_nc_multi( 'usrdef_zgr', pe3v , 'V', 1. ) 
    329          CALL lbc_lnk_nc_multi( 'usrdef_zgr', pe3vw, 'V', 1. ) 
    330 #else 
    331308         CALL lbc_lnk( 'usrdef_zgr', pdept, 'T', 1. ) 
    332309         CALL lbc_lnk( 'usrdef_zgr', pdepw, 'T', 1. ) 
     
    338315         CALL lbc_lnk( 'usrdef_zgr', pe3v , 'V', 1. ) 
    339316         CALL lbc_lnk( 'usrdef_zgr', pe3vw, 'V', 1. ) 
    340 #endif 
    341317         WHERE( pe3t (:,:,:) == 0._wp )   pe3t (:,:,:) = 1._wp 
    342318         WHERE( pe3u (:,:,:) == 0._wp )   pe3u (:,:,:) = 1._wp 
Note: See TracChangeset for help on using the changeset viewer.