Index: branches/2017/dev_merge_2017/NEMOGCM/NEMO/LIM_SRC_3/icedyn_rhg_evp.F90
===================================================================
--- branches/2017/dev_merge_2017/NEMOGCM/NEMO/LIM_SRC_3/icedyn_rhg_evp.F90	(revision 9452)
+++ branches/2017/dev_merge_2017/NEMOGCM/NEMO/LIM_SRC_3/icedyn_rhg_evp.F90	(revision 9482)
@@ -176,9 +176,4 @@
 
       IF( kt == nit000 .AND. lwp )   WRITE(numout,*) '-- ice_dyn_rhg_evp: EVP sea-ice rheology'
-
-#if defined key_agrif 
-      CALL agrif_interp_lim3( 'U', 0, nn_nevp )   ! First interpolation of coarse values
-      CALL agrif_interp_lim3( 'V', 0, nn_nevp )
-#endif
       !
 !!gm for Clem:  OPTIMIZATION:  I think zfmask can be computed one for all at the initialization....
Index: branches/2017/dev_merge_2017/NEMOGCM/NEMO/LIM_SRC_3/icestp.F90
===================================================================
--- branches/2017/dev_merge_2017/NEMOGCM/NEMO/LIM_SRC_3/icestp.F90	(revision 9452)
+++ branches/2017/dev_merge_2017/NEMOGCM/NEMO/LIM_SRC_3/icestp.F90	(revision 9482)
@@ -110,7 +110,4 @@
          kt_ice = kt                              ! -- Ice model time step
          !
-# if defined key_agrif
-         IF( .NOT. Agrif_Root() )  lim_nbstep = MOD( lim_nbstep, Agrif_irhot() * Agrif_Parent(nn_fsbc) / nn_fsbc ) + 1
-# endif
          u_oce(:,:) = ssu_m(:,:)                  ! -- mean surface ocean current
          v_oce(:,:) = ssv_m(:,:)
@@ -119,5 +116,14 @@
          t_bo(:,:) = ( t_bo(:,:) + rt0 ) * tmask(:,:,1) + rt0 * ( 1._wp - tmask(:,:,1) )
          !
-         CALL store_fields                        ! -- Store now ice values
+         !                          !==  AGRIF Parent to Child  ==!
+#if defined key_agrif
+         !                              ! lim_nbstep ranges from 1 to the nb of child ocean steps inside one parent ice step
+         IF( .NOT. Agrif_Root() )       lim_nbstep = MOD( lim_nbstep, Agrif_irhot() * Agrif_Parent(nn_fsbc) / nn_fsbc ) + 1
+         !                              ! these calls must remain here for restartability purposes
+                                        CALL agrif_interp_lim3( 'T' ) 
+                                        CALL agrif_interp_lim3( 'U' )
+                                        CALL agrif_interp_lim3( 'V' )
+#endif
+                                        CALL store_fields             ! Store now ice values
          !
          !------------------------------------------------!
@@ -131,6 +137,6 @@
          ! --- ice dynamics and advection  --- !
          !-------------------------------------!
-         CALL diag_set0             ! set diag of mass, heat and salt fluxes to 0
-         CALL ice_rst_opn( kt )     ! Open Ice restart file (if necessary) 
+                                        CALL diag_set0                ! set diag of mass, heat and salt fluxes to 0
+                                        CALL ice_rst_opn( kt )        ! Open Ice restart file (if necessary) 
          !
          IF( ln_icedyn .AND. .NOT.lk_c1d )   &
@@ -138,15 +144,11 @@
          !
          !                          !==  lateral boundary conditions  ==!
-#if defined key_agrif
-         IF( .NOT. Agrif_Root()     )   CALL agrif_interp_lim3('T')   ! -- AGRIF 
-#endif
          IF( ln_icethd .AND. ln_bdy )   CALL bdy_ice( kt )            ! -- bdy ice thermo
          !
-         !
          !                          !==  previous lead fraction and ice volume for flux calculations
-         CALL ice_var_glo2eqv            ! h_i and h_s for ice albedo calculation
-         CALL ice_var_agg(1)             ! at_i for coupling 
-         CALL store_fields               ! Store now ice values
-
+                                        CALL ice_var_glo2eqv          ! h_i and h_s for ice albedo calculation
+                                        CALL ice_var_agg(1)           ! at_i for coupling 
+                                        CALL store_fields             ! Store now ice values
+         !
          !------------------------------------------------------!
          ! --- Thermodynamical coupling with the atmosphere --- !
@@ -170,19 +172,21 @@
          !
          IF( ln_icethd )                CALL ice_cor( kt , 2 )        ! -- Corrections
+         !
+         !                          !==  AGRIF Child to Parent  ==!
 # if defined key_agrif
-         IF( .NOT. Agrif_Root() )       CALL agrif_update_lim3( kt )
+                                        CALL agrif_update_lim3( kt )
 # endif
-         CALL ice_var_glo2eqv        ! necessary calls (at least for coupling)
-         CALL ice_var_agg( 2 )       ! necessary calls (at least for coupling)
-                                     !
+                                        CALL ice_var_glo2eqv          ! necessary calls (at least for coupling)
+                                        CALL ice_var_agg( 2 )         ! necessary calls (at least for coupling)
+         !
 !! clem: one should switch the calculation of the fluxes onto the parent grid but the following calls do not work
 !!       moreover it should only be called at the update frequency (as in agrif_lim3_update.F90)
-!!# if defined key_agrif
-!!         IF( .NOT. Agrif_Root() )     CALL Agrif_ChildGrid_To_ParentGrid()
-!!# endif
+!# if defined key_agrif
+!         IF( .NOT. Agrif_Root() )     CALL Agrif_ChildGrid_To_ParentGrid()
+!# endif
                                         CALL ice_update_flx( kt )     ! -- Update ocean surface mass, heat and salt fluxes
-!!# if defined key_agrif
-!!         IF( .NOT. Agrif_Root() )     CALL Agrif_ParentGrid_To_ChildGrid()
-!!# endif
+!# if defined key_agrif
+!         IF( .NOT. Agrif_Root() )     CALL Agrif_ParentGrid_To_ChildGrid()
+!# endif
          IF( ln_icediahsb )             CALL ice_dia( kt )            ! -- Diagnostics outputs 
          !
