Index: unk/NEMOGCM/NEMO/LIM_SRC_3/par_ice.F90
===================================================================
--- /trunk/NEMOGCM/NEMO/LIM_SRC_3/par_ice.F90	(revision 5142)
+++ 	(revision )
@@ -1,25 +1,0 @@
-MODULE par_ice
-   !!======================================================================
-   !!                       ***  MODULE par_ice   ***
-   !! LIM-3 Sea Ice :   definition of parameters
-   !!======================================================================
-   !! History :  3.0  ! 2003-08  (M. Vancoppenolle)  LIM-3
-   !!----------------------------------------------------------------------
-   USE par_oce
-
-   IMPLICIT NONE
-   PUBLIC          
-
-   !                                             !!! ice thermodynamics
-   INTEGER, PUBLIC, PARAMETER ::   nlay_i   = 5   !: number of ice layers
-   INTEGER, PUBLIC, PARAMETER ::   nlay_s   = 1   !: number of snow layers
-
-   !                                             !!! ice mechanical redistribution
-   INTEGER, PUBLIC, PARAMETER ::   jpl      = 5   !: number of ice categories
-
-   !!----------------------------------------------------------------------
-   !! NEMO/LIM3 3.3 , UCL - NEMO Consortium (2010)
-   !! $Id$
-   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
-   !!======================================================================
-END MODULE par_ice
Index: /trunk/NEMOGCM/NEMO/OPA_SRC/BDY/bdyice_lim.F90
===================================================================
--- /trunk/NEMOGCM/NEMO/OPA_SRC/BDY/bdyice_lim.F90	(revision 5142)
+++ /trunk/NEMOGCM/NEMO/OPA_SRC/BDY/bdyice_lim.F90	(revision 5143)
@@ -41,5 +41,5 @@
    PRIVATE
 
-   PUBLIC   bdy_ice_lim    ! routine called in sbcmod
+   PUBLIC   bdy_ice_lim     ! routine called in sbcmod
    PUBLIC   bdy_ice_lim_dyn ! routine called in limrhg
 
@@ -89,5 +89,5 @@
       TYPE(OBC_DATA),  INTENT(in) ::   dta  ! OBC external data
       INTEGER,         INTENT(in) ::   kt   ! main time-step counter
-      INTEGER,         INTENT(in) ::   ib_bdy  ! BDY set index      !!
+      INTEGER,         INTENT(in) ::   ib_bdy  ! BDY set index
 
       INTEGER  ::   jpbound            ! 0 = incoming ice
@@ -169,8 +169,12 @@
             jpbound = 0; ii = ji; ij = jj;
 
-            IF ( u_ice(ji+1,jj  ) < 0. .AND. umask(ji-1,jj  ,1) == 0. ) jpbound = 1; ii = ji+1; ij = jj
-            IF ( u_ice(ji-1,jj  ) > 0. .AND. umask(ji+1,jj  ,1) == 0. ) jpbound = 1; ii = ji-1; ij = jj
-            IF ( v_ice(ji  ,jj+1) < 0. .AND. vmask(ji  ,jj-1,1) == 0. ) jpbound = 1; ii = ji  ; ij = jj+1
-            IF ( v_ice(ji  ,jj-1) > 0. .AND. vmask(ji  ,jj+1,1) == 0. ) jpbound = 1; ii = ji  ; ij = jj-1
+            IF( u_ice(ji+1,jj  ) < 0. .AND. umask(ji-1,jj  ,1) == 0. ) jpbound = 1; ii = ji+1; ij = jj
+            IF( u_ice(ji-1,jj  ) > 0. .AND. umask(ji+1,jj  ,1) == 0. ) jpbound = 1; ii = ji-1; ij = jj
+            IF( v_ice(ji  ,jj+1) < 0. .AND. vmask(ji  ,jj-1,1) == 0. ) jpbound = 1; ii = ji  ; ij = jj+1
+            IF( v_ice(ji  ,jj-1) > 0. .AND. vmask(ji  ,jj+1,1) == 0. ) jpbound = 1; ii = ji  ; ij = jj-1
+
+            IF( nn_ice_lim_dta(ib_bdy) == 0 ) jpbound = 0; ii = ji; ij = jj   ! case ice boundaries = initial conditions
+                                                                              !      do not make state variables dependent on velocity
+               
 
             rswitch = 1.0 - MAX( 0.0_wp , SIGN ( 1.0_wp , - at_i(ii,ij) + 0.01 ) ) ! 0 if no ice
@@ -286,7 +290,7 @@
       !!
       CHARACTER(len=1), INTENT(in)  ::   cd_type   ! nature of velocity grid-points
-      INTEGER  ::   jb, jgrd   ! dummy loop indices
+      INTEGER  ::   jb, jgrd           ! dummy loop indices
       INTEGER  ::   ji, jj             ! local scalar
-      INTEGER  ::   ib_bdy ! Loop index
+      INTEGER  ::   ib_bdy             ! Loop index
       REAL(wp) ::   zmsk1, zmsk2, zflag
      !!------------------------------------------------------------------------------
@@ -304,7 +308,9 @@
          CASE('frs')
             
-
+            IF( nn_ice_lim_dta(ib_bdy) == 0 ) CYCLE            ! case ice boundaries = initial conditions 
+                                                               !      do not change ice velocity (it is only computed by rheology)
+ 
             SELECT CASE ( cd_type )
-
+               
             CASE ( 'U' )
                
@@ -321,6 +327,6 @@
                      
                      ! u_ice = u_ice of the adjacent grid point except if this grid point is ice-free (then u_ice = u_oce)
-                     u_ice (ji,jj) = u_ice(ji+1,jj) * 0.5 * ABS( zflag + 1._wp ) * zmsk1 + &
-                        &            u_ice(ji-1,jj) * 0.5 * ABS( zflag - 1._wp ) * zmsk2 + &
+                     u_ice (ji,jj) = u_ice(ji+1,jj) * 0.5_wp * ABS( zflag + 1._wp ) * zmsk1 + &
+                        &            u_ice(ji-1,jj) * 0.5_wp * ABS( zflag - 1._wp ) * zmsk2 + &
                         &            u_oce(ji  ,jj) * ( 1._wp - MIN( 1._wp, zmsk1 + zmsk2 ) )
                   ELSE                             ! everywhere else
@@ -329,9 +335,9 @@
                   ENDIF
                   ! mask ice velocities
-                  rswitch = 1.0 - MAX( 0.0_wp , SIGN ( 1.0_wp , - at_i(ji,jj) + 0.01 ) ) ! 0 if no ice
+                  rswitch = MAX( 0.0_wp , SIGN ( 1.0_wp , at_i(ji,jj) - 0.01_wp ) ) ! 0 if no ice
                   u_ice(ji,jj) = rswitch * u_ice(ji,jj)
                   
                ENDDO
-
+               
                CALL lbc_bdy_lnk( u_ice(:,:), 'U', -1., ib_bdy )
                
@@ -350,6 +356,6 @@
                      
                      ! u_ice = u_ice of the adjacent grid point except if this grid point is ice-free (then u_ice = u_oce)
-                     v_ice (ji,jj) = v_ice(ji,jj+1) * 0.5 * ABS( zflag + 1._wp ) * zmsk1 + &
-                        &            v_ice(ji,jj-1) * 0.5 * ABS( zflag - 1._wp ) * zmsk2 + &
+                     v_ice (ji,jj) = v_ice(ji,jj+1) * 0.5_wp * ABS( zflag + 1._wp ) * zmsk1 + &
+                        &            v_ice(ji,jj-1) * 0.5_wp * ABS( zflag - 1._wp ) * zmsk2 + &
                         &            v_oce(ji,jj  ) * ( 1._wp - MIN( 1._wp, zmsk1 + zmsk2 ) )
                   ELSE                             ! everywhere else
@@ -358,5 +364,5 @@
                   ENDIF
                   ! mask ice velocities
-                  rswitch = 1.0 - MAX( 0.0_wp , SIGN ( 1.0_wp , - at_i(ji,jj) + 0.01 ) ) ! 0 if no ice
+                  rswitch = MAX( 0.0_wp , SIGN ( 1.0_wp , at_i(ji,jj) - 0.01 ) ) ! 0 if no ice
                   v_ice(ji,jj) = rswitch * v_ice(ji,jj)
                   
@@ -364,5 +370,5 @@
                
                CALL lbc_bdy_lnk( v_ice(:,:), 'V', -1., ib_bdy )
-               
+                  
             END SELECT
             
Index: /trunk/NEMOGCM/NEMO/OPA_SRC/DIA/diadct.F90
===================================================================
--- /trunk/NEMOGCM/NEMO/OPA_SRC/DIA/diadct.F90	(revision 5142)
+++ /trunk/NEMOGCM/NEMO/OPA_SRC/DIA/diadct.F90	(revision 5143)
@@ -42,5 +42,4 @@
 #endif
 #if defined key_lim3
-  USE par_ice
   USE ice
 #endif
