Index: branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/NST_SRC/agrif_lim3_interp.F90
===================================================================
--- branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/NST_SRC/agrif_lim3_interp.F90	(revision 7069)
+++ branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/NST_SRC/agrif_lim3_interp.F90	(revision 7158)
@@ -24,5 +24,5 @@
    USE ice
    USE agrif_ice
-
+   
    IMPLICIT NONE
    PRIVATE
@@ -38,14 +38,15 @@
 CONTAINS
 
-   SUBROUTINE agrif_interp_lim3( cd_type )
+   SUBROUTINE agrif_interp_lim3( cd_type, kiter, kitermax )
       !!-----------------------------------------------------------------------
       !!                 *** ROUTINE agrif_rhg_lim3  ***
       !!
       !!  ** Method  : simple call to atomic routines using stored values to
-      !!  fill the boundaries depending of the position of the point and 
-      !!  computing factor for time interpolation 
-      !!-----------------------------------------------------------------------
-      CHARACTER(len=1), INTENT( in ) :: cd_type
-      !!    
+      !!  fill the boundaries depending of the position of the point and
+      !!  computing factor for time interpolation
+      !!-----------------------------------------------------------------------
+      CHARACTER(len=1), INTENT( in )           :: cd_type
+      INTEGER         , INTENT( in ), OPTIONAL :: kiter, kitermax
+      !!
       REAL(wp) :: zbeta
       !!-----------------------------------------------------------------------
@@ -53,7 +54,11 @@
       IF( Agrif_Root() )  RETURN
       !
-      zbeta = REAL(lim_nbstep) / ( Agrif_Rhot() * REAL(Agrif_Parent(nn_fsbc)) / REAL(nn_fsbc) )
-      !
-      ! clem: calledweight = zbeta(1/3;2/3;1) => 2/3*var1+1/3*var2 puis 1/3;2/3 puis 0;1
+      IF( PRESENT( kiter ) ) THEN  ! interpolation at the child sub-time step (for ice rheology)
+         zbeta = ( REAL(lim_nbstep) - REAL(kitermax - kiter) / REAL(kitermax) ) /  &
+            &    ( Agrif_Rhot() * REAL(Agrif_Parent(nn_fsbc)) / REAL(nn_fsbc) )
+      ELSE                         ! interpolation at the child time step
+         zbeta = REAL(lim_nbstep) / ( Agrif_Rhot() * REAL(Agrif_Parent(nn_fsbc)) / REAL(nn_fsbc) )
+      ENDIF
+      !
       Agrif_SpecialValue=-9999.
       Agrif_UseSpecialValue = .TRUE.
@@ -126,5 +131,5 @@
 
 
-   SUBROUTINE interp_tra_ice( ptab, i1, i2, j1, j2, k1, k2, before )
+   SUBROUTINE interp_tra_ice( ptab, i1, i2, j1, j2, k1, k2, before, nb, ndir )
       !!-----------------------------------------------------------------------
       !!                    *** ROUTINE interp_tra_ice ***                           
@@ -137,49 +142,171 @@
       INTEGER , INTENT(in) :: i1, i2, j1, j2, k1, k2
       LOGICAL , INTENT(in) :: before
-      !!
-      INTEGER :: jk, jl, jm
+      INTEGER , INTENT(in) :: nb, ndir
+      !!
+      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: ztab
+      INTEGER  ::   ji, jj, jk, jl, jm
+      INTEGER  ::   imin, imax, jmin, jmax
+      REAL(wp) ::   zrhox, z1, z2, z3, z4, z5, z6, z7
+      LOGICAL  ::   western_side, eastern_side, northern_side, southern_side
+
       !!-----------------------------------------------------------------------
       ! clem: pkoi on n'utilise pas les quantités intégrées ici => before: * e12t ; after: * r1_e12t / rhox / rhoy
       ! a priori c'est ok comme ca (cf ce qui est fait dans l'ocean). Je ne sais pas pkoi ceci dit
-      
+      ALLOCATE( ztab(SIZE(a_i_b,1),SIZE(a_i_b,2),SIZE(ptab,3)) )
+     
       IF( before ) THEN  ! parent grid
          jm = 1
          DO jl = 1, jpl
-            ptab(:,:,jm) = a_i_b  (i1:i2,j1:j2,jl) ; jm = jm + 1
-            ptab(:,:,jm) = v_i_b  (i1:i2,j1:j2,jl) ; jm = jm + 1
-            ptab(:,:,jm) = v_s_b  (i1:i2,j1:j2,jl) ; jm = jm + 1
-            ptab(:,:,jm) = smv_i_b(i1:i2,j1:j2,jl) ; jm = jm + 1
-            ptab(:,:,jm) = oa_i_b (i1:i2,j1:j2,jl) ; jm = jm + 1
+            ptab(i1:i2,j1:j2,jm) = a_i_b  (i1:i2,j1:j2,jl) ; jm = jm + 1
+            ptab(i1:i2,j1:j2,jm) = v_i_b  (i1:i2,j1:j2,jl) ; jm = jm + 1
+            ptab(i1:i2,j1:j2,jm) = v_s_b  (i1:i2,j1:j2,jl) ; jm = jm + 1
+            ptab(i1:i2,j1:j2,jm) = smv_i_b(i1:i2,j1:j2,jl) ; jm = jm + 1
+            ptab(i1:i2,j1:j2,jm) = oa_i_b (i1:i2,j1:j2,jl) ; jm = jm + 1
             DO jk = 1, nlay_s
-               ptab(:,:,jm) = e_s_b(i1:i2,j1:j2,jk,jl) ; jm = jm + 1
+               ptab(i1:i2,j1:j2,jm) = e_s_b(i1:i2,j1:j2,jk,jl) ; jm = jm + 1
             ENDDO
             DO jk = 1, nlay_i
-               ptab(:,:,jm) = e_i_b(i1:i2,j1:j2,jk,jl) ; jm = jm + 1
+               ptab(i1:i2,j1:j2,jm) = e_i_b(i1:i2,j1:j2,jk,jl) ; jm = jm + 1
             ENDDO
          ENDDO
-         !!ptab(:,:,jm) = ato_i(i1:i2,j1:j2)
          
          DO jk = k1, k2
-            WHERE( tmask(i1:i2,j1:j2,1) == 0. )  ptab(:,:,jk) = -9999.
+            WHERE( tmask(i1:i2,j1:j2,1) == 0. )  ptab(i1:i2,j1:j2,jk) = -9999.
          ENDDO
          
       ELSE               ! child grid
+!! ==> The easiest interpolation is the following commented lines
+!!         jm = 1
+!!         DO jl = 1, jpl
+!!            a_i  (i1:i2,j1:j2,jl) = ptab(i1:i2,j1:j2,jm) * tmask(i1:i2,j1:j2,1) ; jm = jm + 1
+!!            v_i  (i1:i2,j1:j2,jl) = ptab(i1:i2,j1:j2,jm) * tmask(i1:i2,j1:j2,1) ; jm = jm + 1
+!!            v_s  (i1:i2,j1:j2,jl) = ptab(i1:i2,j1:j2,jm) * tmask(i1:i2,j1:j2,1) ; jm = jm + 1
+!!            smv_i(i1:i2,j1:j2,jl) = ptab(i1:i2,j1:j2,jm) * tmask(i1:i2,j1:j2,1) ; jm = jm + 1
+!!            oa_i (i1:i2,j1:j2,jl) = ptab(i1:i2,j1:j2,jm) * tmask(i1:i2,j1:j2,1) ; jm = jm + 1
+!!            DO jk = 1, nlay_s
+!!               e_s(i1:i2,j1:j2,jk,jl) = ptab(i1:i2,j1:j2,jm) * tmask(i1:i2,j1:j2,1) ; jm = jm + 1
+!!            ENDDO
+!!            DO jk = 1, nlay_i
+!!               e_i(i1:i2,j1:j2,jk,jl) = ptab(i1:i2,j1:j2,jm) * tmask(i1:i2,j1:j2,1) ; jm = jm + 1
+!!            ENDDO
+!!         ENDDO
+
+!! ==> this is a more complex interpolation since we mix solutions over a couple of grid points
+!!     it is advised to use it for fields modified by high order schemes (e.g. advection UM5...)
+         ! record ztab
          jm = 1
          DO jl = 1, jpl
-            a_i  (i1:i2,j1:j2,jl) = ptab(:,:,jm) * tmask(i1:i2,j1:j2,1) ; jm = jm + 1
-            v_i  (i1:i2,j1:j2,jl) = ptab(:,:,jm) * tmask(i1:i2,j1:j2,1) ; jm = jm + 1
-            v_s  (i1:i2,j1:j2,jl) = ptab(:,:,jm) * tmask(i1:i2,j1:j2,1) ; jm = jm + 1
-            smv_i(i1:i2,j1:j2,jl) = ptab(:,:,jm) * tmask(i1:i2,j1:j2,1) ; jm = jm + 1
-            oa_i (i1:i2,j1:j2,jl) = ptab(:,:,jm) * tmask(i1:i2,j1:j2,1) ; jm = jm + 1
+            ztab(:,:,jm) = a_i_b  (:,:,jl) ; jm = jm + 1
+            ztab(:,:,jm) = v_i_b  (:,:,jl) ; jm = jm + 1
+            ztab(:,:,jm) = v_s_b  (:,:,jl) ; jm = jm + 1
+            ztab(:,:,jm) = smv_i_b(:,:,jl) ; jm = jm + 1
+            ztab(:,:,jm) = oa_i_b (:,:,jl) ; jm = jm + 1
             DO jk = 1, nlay_s
-               e_s(i1:i2,j1:j2,jk,jl) = ptab(:,:,jm) * tmask(i1:i2,j1:j2,1) ; jm = jm + 1
+               ztab(:,:,jm) = e_s_b(:,:,jk,jl) ; jm = jm + 1
             ENDDO
             DO jk = 1, nlay_i
-               e_i(i1:i2,j1:j2,jk,jl) = ptab(:,:,jm) * tmask(i1:i2,j1:j2,1) ; jm = jm + 1
+               ztab(:,:,jm) = e_i_b(:,:,jk,jl) ; jm = jm + 1
             ENDDO
          ENDDO
-         !!ato_i(i1:i2,j1:j2) = ptab(:,:,jm) * tmask(i1:i2,j1:j2,1)
+         !
+         ! borders of the domain
+         western_side  = (nb == 1).AND.(ndir == 1)  ;  eastern_side  = (nb == 1).AND.(ndir == 2)
+         southern_side = (nb == 2).AND.(ndir == 1)  ;  northern_side = (nb == 2).AND.(ndir == 2)
+         !
+         ! spatial smoothing
+         zrhox = Agrif_Rhox()
+         z1 =      ( zrhox - 1. ) * 0.5 
+         z3 =      ( zrhox - 1. ) / ( zrhox + 1. )
+         z6 = 2. * ( zrhox - 1. ) / ( zrhox + 1. )
+         z7 =    - ( zrhox - 1. ) / ( zrhox + 3. )
+         z2 = 1. - z1
+         z4 = 1. - z3
+         z5 = 1. - z6 - z7
+         !
+         ! Remove corners
+         imin = i1  ;  imax = i2  ;  jmin = j1  ;  jmax = j2
+         IF( (nbondj == -1) .OR. (nbondj == 2) )   jmin = 3
+         IF( (nbondj == +1) .OR. (nbondj == 2) )   jmax = nlcj-2
+         IF( (nbondi == -1) .OR. (nbondi == 2) )   imin = 3
+         IF( (nbondi == +1) .OR. (nbondi == 2) )   imax = nlci-2
+
+         ! smoothed fields
+         IF( eastern_side ) THEN
+            ztab(nlci,j1:j2,:) = z1 * ptab(nlci,j1:j2,:) + z2 * ptab(nlci-1,j1:j2,:)
+            DO jj = jmin, jmax
+               rswitch = 0.
+               IF( u_ice(nlci-2,jj) > 0._wp ) rswitch = 1.
+               ztab(nlci-1,jj,:) = ( 1. - umask(nlci-2,jj,1) ) * ztab(nlci,jj,:)  &
+                  &                +      umask(nlci-2,jj,1)   *  &
+                  &                ( ( 1. - rswitch ) * ( z4 * ztab(nlci,jj,:)   + z3 * ztab(nlci-2,jj,:) )  &
+                  &                  +      rswitch   * ( z6 * ztab(nlci-2,jj,:) + z5 * ztab(nlci,jj,:) + z7 * ztab(nlci-3,jj,:) ) )
+               ztab(nlci-1,jj,:) = ztab(nlci-1,jj,:) * tmask(nlci-1,jj,1)
+            END DO
+         ENDIF
+         ! 
+         IF( northern_side ) THEN
+            ztab(i1:i2,nlcj,:) = z1 * ptab(i1:i2,nlcj,:) + z2 * ptab(i1:i2,nlcj-1,:)
+            DO ji = imin, imax
+               rswitch = 0.
+               IF( v_ice(ji,nlcj-2) > 0._wp ) rswitch = 1.
+               ztab(ji,nlcj-1,:) = ( 1. - vmask(ji,nlcj-2,1) ) * ztab(ji,nlcj,:)  &
+                  &                +      vmask(ji,nlcj-2,1)   *  &
+                  &                ( ( 1. - rswitch ) * ( z4 * ztab(ji,nlcj,:)   + z3 * ztab(ji,nlcj-2,:) ) &
+                  &                  +      rswitch   * ( z6 * ztab(ji,nlcj-2,:) + z5 * ztab(ji,nlcj,:) + z7 * ztab(ji,nlcj-3,:) ) )
+               ztab(ji,nlcj-1,:) = ztab(ji,nlcj-1,:) * tmask(ji,nlcj-1,1)
+            END DO
+         END IF
+         !
+         IF( western_side) THEN
+            ztab(1,j1:j2,:) = z1 * ptab(1,j1:j2,:) + z2 * ptab(2,j1:j2,:)
+            DO jj = jmin, jmax
+               rswitch = 0.
+               IF( u_ice(2,jj) > 0._wp ) rswitch = 1.
+               ztab(2,jj,:) = ( 1. - umask(2,jj,1) ) * ztab(1,jj,:)  &
+                  &           +      umask(2,jj,1)   *   &
+                  &           ( ( 1. - rswitch ) * ( z4 * ztab(1,jj,:) + z3 * ztab(3,jj,:) ) &
+                  &             +      rswitch   * ( z6 * ztab(3,jj,:) + z5 * ztab(1,jj,:) + z7 * ztab(4,jj,:) ) )
+               ztab(2,jj,:) = ztab(2,jj,:) * tmask(2,jj,1)
+            END DO
+         ENDIF
+         !
+         IF( southern_side ) THEN
+            ztab(i1:i2,1,:) = z1 * ptab(i1:i2,1,:) + z2 * ptab(i1:i2,2,:)
+            DO ji = imin, imax
+               rswitch = 0.
+               IF( v_ice(ji,2) > 0._wp ) rswitch = 1.
+               ztab(ji,2,:) = ( 1. - vmask(ji,2,1) ) * ztab(ji,1,:)  &
+                  &           +      vmask(ji,2,1)   *  &
+                  &           ( ( 1. - rswitch ) * ( z4 * ztab(ji,1,:) + z3 * ztab(ji,3,:) ) &
+                  &             +      rswitch   * ( z6 * ztab(ji,3,:) + z5 * ztab(ji,1,:) + z7 * ztab(ji,4,:) ) )
+               ztab(ji,2,:) = ztab(ji,2,:) * tmask(ji,2,1)
+            END DO
+         END IF
+         !
+         ! Treatment of corners
+         IF( (eastern_side) .AND. ((nbondj == -1).OR.(nbondj == 2)) )  ztab(nlci-1,2,:)      = ptab(nlci-1,2,:)      ! East south
+         IF( (eastern_side) .AND. ((nbondj ==  1).OR.(nbondj == 2)) )  ztab(nlci-1,nlcj-1,:) = ptab(nlci-1,nlcj-1,:) ! East north
+         IF( (western_side) .AND. ((nbondj == -1).OR.(nbondj == 2)) )  ztab(2,2,:)           = ptab(2,2,:)           ! West south
+         IF( (western_side) .AND. ((nbondj ==  1).OR.(nbondj == 2)) )  ztab(2,nlcj-1,:)      = ptab(2,nlcj-1,:)      ! West north
+
+         ! retrieve ice tracers
+         jm = 1
+         DO jl = 1, jpl
+            a_i  (i1:i2,j1:j2,jl) = ztab(i1:i2,j1:j2,jm) * tmask(i1:i2,j1:j2,1) ; jm = jm + 1
+            v_i  (i1:i2,j1:j2,jl) = ztab(i1:i2,j1:j2,jm) * tmask(i1:i2,j1:j2,1) ; jm = jm + 1
+            v_s  (i1:i2,j1:j2,jl) = ztab(i1:i2,j1:j2,jm) * tmask(i1:i2,j1:j2,1) ; jm = jm + 1
+            smv_i(i1:i2,j1:j2,jl) = ztab(i1:i2,j1:j2,jm) * tmask(i1:i2,j1:j2,1) ; jm = jm + 1
+            oa_i (i1:i2,j1:j2,jl) = ztab(i1:i2,j1:j2,jm) * tmask(i1:i2,j1:j2,1) ; jm = jm + 1
+            DO jk = 1, nlay_s
+               e_s(i1:i2,j1:j2,jk,jl) = ztab(i1:i2,j1:j2,jm) * tmask(i1:i2,j1:j2,1) ; jm = jm + 1
+            ENDDO
+            DO jk = 1, nlay_i
+               e_i(i1:i2,j1:j2,jk,jl) = ztab(i1:i2,j1:j2,jm) * tmask(i1:i2,j1:j2,1) ; jm = jm + 1
+            ENDDO
+         ENDDO
          
       ENDIF
+      
+      DEALLOCATE( ztab )
       !
    END SUBROUTINE interp_tra_ice
Index: branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/NST_SRC/agrif_lim3_update.F90
===================================================================
--- branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/NST_SRC/agrif_lim3_update.F90	(revision 7069)
+++ branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/NST_SRC/agrif_lim3_update.F90	(revision 7158)
@@ -52,7 +52,16 @@
       !!----------------------------------------------------------------------
       !
-      IF( ( Agrif_NbStepint() .NE. (Agrif_irhot()-1) ) .AND. (kt /= 0) )  RETURN  ! do not update if nb of child time steps differ from time refinement
-                                                                                  ! i.e. update only at the parent time step
+!      IF( ( MOD( kt-nit000, Agrif_irhot() * Agrif_Parent(nn_fsbc) ) /=0 ) .AND. (kt /= 0) ) THEN
+!         PRINT *, 'clem NOT udpate, kt=',kt,Agrif_NbStepint()
+!      ELSE
+!         PRINT *, 'clem     UPDATE, kt=',kt,Agrif_NbStepint()
+!      ENDIF
 
+      !! clem: I think the update should take place each time the ocean sees the surface forcings (but maybe I am wrong and we should update every rhot time steps) 
+      IF( ( MOD( kt-nit000, Agrif_irhot() * Agrif_Parent(nn_fsbc) ) /=0 ) .AND. (kt /= 0) ) RETURN ! do not update if nb of child time steps differ from time refinement
+                                                                                                   ! i.e. update only at the parent time step
+      !! clem: this condition is clearly wrong if nn_fsbc/=1 (==> Agrif_NbStepint /= (Agrif_irhot()-1) all the time)
+      !!IF( ( Agrif_NbStepint() .NE. (Agrif_irhot()-1) ) .AND. (kt /= 0) )  RETURN
+      
       Agrif_UseSpecialValueInUpdate = .TRUE.
       Agrif_SpecialValueFineGrid = -9999.
@@ -60,10 +69,8 @@
       IF( MOD(nbcline,nbclineupdate) == 0) THEN ! update the whole basin at each nbclineupdate (=nn_cln_update) baroclinic parent time steps
                                                 ! nbcline is incremented (+1) at the end of each parent time step from 0 (1st time step)
-                                                ! clem: j'ai l'impression qu'il y a un decalage de 1 mais selon rachid c ok
          CALL Agrif_Update_Variable( tra_ice_id , procname = update_tra_ice  )
          CALL Agrif_Update_Variable( u_ice_id   , procname = update_u_ice    )
          CALL Agrif_Update_Variable( v_ice_id   , procname = update_v_ice    )
-      ELSE                                      ! update only the boundaries
-                                                ! defined par locupdate
+      ELSE                                      ! update only the boundaries defined par locupdate
          CALL Agrif_Update_Variable( tra_ice_id , locupdate=(/0,2/), procname = update_tra_ice  )
          CALL Agrif_Update_Variable( u_ice_id   , locupdate=(/0,1/), procname = update_u_ice    )
Index: branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/NST_SRC/agrif_user.F90
===================================================================
--- branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/NST_SRC/agrif_user.F90	(revision 7069)
+++ branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/NST_SRC/agrif_user.F90	(revision 7158)
@@ -241,9 +241,8 @@
          WRITE(cl_check2,*)  NINT(rdt)
          WRITE(cl_check3,*)  NINT(Agrif_Parent(rdt)/Agrif_Rhot())
-         CALL ctl_warn( 'incompatible time step between grids',   &
+         CALL ctl_stop( 'incompatible time step between ocean grids',   &
                &               'parent grid value : '//cl_check1    ,   & 
                &               'child  grid value : '//cl_check2    ,   & 
-               &               'value on child grid will be changed to : '//cl_check3 )
-         rdt=Agrif_Parent(rdt)/Agrif_Rhot()
+               &               'value on child grid should be changed to : '//cl_check3 )
       ENDIF
 
@@ -565,4 +564,5 @@
    !!----------------------------------------------------------------------
    USE Agrif_Util
+   USE sbc_oce, ONLY : nn_fsbc  ! clem: necessary otherwise Agrif_Parent(nn_fsbc) = nn_fsbc
    USE ice
    USE agrif_ice
@@ -579,16 +579,13 @@
    CALL agrif_declare_var_lim3
 
-   ! clem: reset nn_fsbc(child) to rhot if rhot * nn_fsbc(parent) /= N * nn_fsbc(child) with N being integer
+   ! Controls (clem)
+   ! stop if rhot * nn_fsbc(parent) /= N * nn_fsbc(child) with N being integer
    IF( MOD( Agrif_irhot() * Agrif_Parent(nn_fsbc), nn_fsbc ) /= 0 )  THEN
-      nn_fsbc = Agrif_irhot()
-      CALL ctl_warn ('rhot * nn_fsbc(parent) /= N * nn_fsbc(child), therefore nn_fsbc(child) is set to rhot')
-      WRITE(*,*) 'New nn_fsbc(child) = ', nn_fsbc
+      CALL ctl_stop('rhot * nn_fsbc(parent) /= N * nn_fsbc(child), therefore nn_fsbc(child) should be set to 1 or nn_fsbc(parent)')
    ENDIF
 
-   ! clem: reset update frequency if different from nn_fsbc
-   IF( nbclineupdate /= nn_fsbc ) THEN
-      nbclineupdate = nn_fsbc
-      CALL ctl_warn ('With ice model on child grid, nc_cln_update is set to nn_fsbc')
-   ENDIF
+   ! stop if update frequency is different from nn_fsbc
+   IF( nbclineupdate > nn_fsbc )  CALL ctl_stop('With ice model on child grid, nn_cln_update should be set to 1 or nn_fsbc')
+
 
    ! First Interpolations (using "after" ice subtime step => lim_nbstep=1)
@@ -603,4 +600,5 @@
    !----------------------
    CALL agrif_update_lim3(0)
+
    !
 END SUBROUTINE Agrif_InitValues_cont_lim3
@@ -613,5 +611,4 @@
    !!----------------------------------------------------------------------
    USE Agrif_Util
-   USE Agrif_ice  !clem useless ?
    USE ice
 
@@ -703,10 +700,9 @@
          WRITE(cl_check2,*)  rdt
          WRITE(cl_check3,*)  rdt*Agrif_Rhot()
-         CALL ctl_warn( 'incompatible time step between grids',   &
+         CALL ctl_stop( 'incompatible time step between grids',   &
                &               'parent grid value : '//cl_check1    ,   & 
                &               'child  grid value : '//cl_check2    ,   & 
-               &               'value on child grid will be changed to  &
+               &               'value on child grid should be changed to  &
                &               :'//cl_check3  )
-         rdt=rdt*Agrif_Rhot()
       ENDIF
 
