Index: NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/NST/agrif_oce_sponge.F90
===================================================================
--- NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/NST/agrif_oce_sponge.F90	(revision 13571)
+++ NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/NST/agrif_oce_sponge.F90	(revision 13630)
@@ -290,14 +290,26 @@
       
       IF( .NOT. spongedoneT .AND. .NOT. spongedoneU ) THEN
+#if defined key_mpi3
+         CALL lbc_lnk_nc_multi( 'agrif_Sponge', fspu, 'U', 1._wp, fspv, 'V', 1._wp, fspt, 'T', 1._wp, fspf, 'F', 1._wp )
+#else
          CALL lbc_lnk_multi( 'agrif_Sponge', fspu, 'U', 1._wp, fspv, 'V', 1._wp, fspt, 'T', 1._wp, fspf, 'F', 1._wp )
+#endif
          spongedoneT = .TRUE.
          spongedoneU = .TRUE.
       ENDIF
       IF( .NOT. spongedoneT ) THEN
+#if defined key_mpi3
+         CALL lbc_lnk_nc_multi( 'agrif_Sponge', fspu, 'U', 1._wp, fspv, 'V', 1._wp )
+#else
          CALL lbc_lnk_multi( 'agrif_Sponge', fspu, 'U', 1._wp, fspv, 'V', 1._wp )
+#endif
          spongedoneT = .TRUE.
       ENDIF
       IF( .NOT. spongedoneT .AND. .NOT. spongedoneU ) THEN
+#if defined key_mpi3
+         CALL lbc_lnk_nc_multi( 'agrif_Sponge', fspt, 'T', 1._wp, fspf, 'F', 1._wp )
+#else
          CALL lbc_lnk_multi( 'agrif_Sponge', fspt, 'T', 1._wp, fspf, 'F', 1._wp )
+#endif
          spongedoneU = .TRUE.
       ENDIF
@@ -323,5 +335,9 @@
       ztabrampu(:,:) = REAL( mbku_parent(:,:), wp )
       ztabrampv(:,:) = REAL( mbkv_parent(:,:), wp )
+#if defined key_mpi3
+      CALL lbc_lnk_nc_multi( 'Agrif_Sponge', ztabramp, 'T', 1._wp, ztabrampu, 'U', 1._wp, ztabrampv, 'V', 1._wp )
+#else
       CALL lbc_lnk_multi( 'Agrif_Sponge', ztabramp, 'T', 1._wp, ztabrampu, 'U', 1._wp, ztabrampv, 'V', 1._wp )
+#endif
       mbkt_parent(:,:) = NINT( ztabramp (:,:) )
       mbku_parent(:,:) = NINT( ztabrampu(:,:) )
Index: NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/NST/agrif_user.F90
===================================================================
--- NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/NST/agrif_user.F90	(revision 13571)
+++ NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/NST/agrif_user.F90	(revision 13630)
@@ -99,6 +99,11 @@
 
 
+#if defined key_mpi3
+      CALL lbc_lnk_nc_multi( 'agrif_istate', uu(:,:,:  ,Kbb), 'U', -1.0_wp , vv(:,:,:,Kbb), 'V', -1.0_wp )
+      CALL lbc_lnk_nc_multi(       'agrif_istate', ts(:,:,:,:,Kbb), 'T',  1.0_wp )
+#else
       CALL lbc_lnk_multi( 'agrif_istate', uu(:,:,:  ,Kbb), 'U', -1.0_wp , vv(:,:,:,Kbb), 'V', -1.0_wp )
       CALL lbc_lnk(       'agrif_istate', ts(:,:,:,:,Kbb), 'T',  1.0_wp )
+#endif
 
    END SUBROUTINE Agrif_Istate
@@ -273,19 +278,35 @@
       ENDIF
       !
+#if defined key_mpi3
+      CALL lbc_lnk_nc_multi( 'Agrif_Init_Domain', hu0_parent, 'U', 1.0_wp, hv0_parent, 'V', 1.0_wp )
+#else
       CALL lbc_lnk_multi( 'Agrif_Init_Domain', hu0_parent, 'U', 1.0_wp, hv0_parent, 'V', 1.0_wp )
+#endif
       DO_2D( 0, 0, 0, 0 )
          zk(ji,jj) = REAL( mbku_parent(ji,jj), wp )
       END_2D
+#if defined key_mpi3
+      CALL lbc_lnk_nc_multi( 'Agrif_InitValues_cont', zk, 'U', 1.0_wp )
+#else
       CALL lbc_lnk( 'Agrif_InitValues_cont', zk, 'U', 1.0_wp )
+#endif
       mbku_parent(:,:) = MAX( NINT( zk(:,:) ), 1 )
       DO_2D( 0, 0, 0, 0 )
          zk(ji,jj) = REAL( mbkv_parent(ji,jj), wp )
       END_2D
+#if defined key_mpi3
+      CALL lbc_lnk_nc_multi( 'Agrif_InitValues_cont', zk, 'V', 1.0_wp )
+#else
       CALL lbc_lnk( 'Agrif_InitValues_cont', zk, 'V', 1.0_wp )
+#endif
       mbkv_parent(:,:) = MAX( NINT( zk(:,:) ), 1 )   
 
       IF ( ln_init_chfrpar ) THEN 
          CALL Agrif_Init_Variable(sshini_id, procname=agrif_initssh)
+#if defined key_mpi3
+         CALL lbc_lnk_nc_multi( 'Agrif_Init_Domain', ssh(:,:,Kbb), 'T', 1. )
+#else
          CALL lbc_lnk( 'Agrif_Init_Domain', ssh(:,:,Kbb), 'T', 1. )
+#endif
          DO jk = 1, jpk
                e3t(:,:,jk,Kbb) =  e3t_0(:,:,jk) * ( ht_0(:,:) + ssh(:,:,Kbb)  ) &
