Index: branches/dev_002_LIM/NEMO/LIM_SRC/albedo_2.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/albedo_2.F90	(revision 821)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/albedo_2.F90	(revision 821)
@@ -0,0 +1,229 @@
+MODULE albedo_2
+   !!======================================================================
+   !!                       ***  MODULE  albedo_2  ***
+   !! Ocean forcing:  bulk thermohaline forcing of the ocean (or ice)
+   !!=====================================================================
+   !!----------------------------------------------------------------------
+   !!   flx_blk_albedo_2 : albedo for ocean and ice (clear and overcast skies)
+   !!----------------------------------------------------------------------
+#if defined key_lim2
+   !!----------------------------------------------------------------------
+   !!   'key_lim2'                                        LIM 2.0 ice model
+   !!----------------------------------------------------------------------
+   !! * Modules used
+   USE oce             ! ocean dynamics and tracers
+   USE dom_oce         ! ocean space and time domain
+   USE cpl_oce         ! ???
+   USE phycst          ! physical constants
+   USE daymod
+   USE blk_oce         ! bulk variables
+   USE flx_oce         ! forcings variables
+   USE ocfzpt          ! ???
+   USE in_out_manager
+   USE lbclnk
+
+   IMPLICIT NONE
+   PRIVATE
+
+   !! * Accessibility
+   PUBLIC flx_blk_albedo_2 ! routine called by limflx.F90 in coupled
+                         ! and in flxblk.F90 in forced
+   !! * Module variables
+   INTEGER  ::             &  !: nameos : ocean physical parameters
+      albd_init = 0           !: control flag for initialization
+
+   REAL(wp)  ::            &  ! constant values
+      zzero   = 0.e0    ,  &
+      zone    = 1.0
+
+   !! * constants for albedo computation (flx_blk_albedo)
+   REAL(wp) ::   &
+      c1     = 0.05  ,     &   ! constants values
+      c2     = 0.10  ,     &
+      albice = 0.50  ,     &   !  albedo of melting ice in the arctic and antarctic (Shine & Hendersson-Sellers)
+      cgren  = 0.06  ,     &   !  correction of the snow or ice albedo to take into account
+                               !  effects of cloudiness (Grenfell & Perovich, 1984)
+      alphd  = 0.80  ,     &   !  coefficients for linear interpolation used to compute
+      alphdi = 0.72  ,     &   !  albedo between two extremes values (Pyane, 1972)
+      alphc  = 0.65  ,     &
+      zmue   = 0.40            !  cosine of local solar altitude
+
+   !!----------------------------------------------------------------------
+   !!   OPA 9.0 , LOCEAN-IPSL (2005) 
+   !! $Header$ 
+   !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 
+   !!----------------------------------------------------------------------
+
+CONTAINS
+
+   SUBROUTINE flx_blk_albedo_2( palb , palcn , palbp , palcnp )
+      !!----------------------------------------------------------------------
+      !!               ***  ROUTINE flx_blk_albedo_2  ***
+      !!          
+      !! ** Purpose :   Computation of the albedo of the snow/ice system 
+      !!      as well as the ocean one
+      !!       
+      !! ** Method  : - Computation of the albedo of snow or ice (choose the 
+      !!      rignt one by a large number of tests
+      !!              - Computation of the albedo of the ocean
+      !!
+      !! References :
+      !!      Shine and Hendersson-Sellers 1985, JGR, 90(D1), 2243-2250.
+      !!
+      !! History :
+      !!  8.0   !  01-04  (LIM 1.0)
+      !!  8.5   !  03-07  (C. Ethe, G. Madec)  Optimization (old name:shine)
+      !!----------------------------------------------------------------------
+      !! * Modules used
+      USE ice_2                   ! ???
+
+      !! * Arguments
+      REAL(wp), DIMENSION(jpi,jpj), INTENT(out) ::  &
+         palb         ,     &    !  albedo of ice under overcast sky
+         palcn        ,     &    !  albedo of ocean under overcast sky
+         palbp        ,     &    !  albedo of ice under clear sky 
+         palcnp                  !  albedo of ocean under clear sky
+
+      !! * Local variables
+      INTEGER ::    &
+         ji, jj                   ! dummy loop indices
+      REAL(wp) ::   & 
+         zmue14         ,     &   !  zmue**1.4
+         zalbpsnm       ,     &   !  albedo of ice under clear sky when snow is melting
+         zalbpsnf       ,     &   !  albedo of ice under clear sky when snow is freezing
+         zalbpsn        ,     &   !  albedo of snow/ice system when ice is coverd by snow
+         zalbpic        ,     &   !  albedo of snow/ice system when ice is free of snow
+         zithsn         ,     &   !  = 1 for hsn >= 0 ( ice is cov. by snow ) ; = 0 otherwise (ice is free of snow)
+         zitmlsn        ,     &   !  = 1 freezinz snow (sist >=rt0_snow) ; = 0 melting snow (sist<rt0_snow)
+         zihsc1         ,     &   !  = 1 hsn <= c1 ; = 0 hsn > c1
+         zihsc2                   !  = 1 hsn >= c2 ; = 0 hsn < c2
+      REAL(wp), DIMENSION(jpi,jpj) ::  &
+         zalbfz         ,     &   !  ( = alphdi for freezing ice ; = albice for melting ice )
+         zficeth                  !  function of ice thickness
+      LOGICAL , DIMENSION(jpi,jpj) ::  &
+         llmask
+      !!---------------------------------------------------------------------
+      
+      ! initialization 
+      IF( albd_init == 0 )   CALL albedo_init_2
+
+      !-------------------------                                                             
+      !  Computation of  zficeth
+      !-------------------------- 
+      
+      llmask = (hsnif == 0.e0) .AND. ( sist >= rt0_ice )
+      WHERE ( llmask )   !  ice free of snow and melts
+         zalbfz = albice
+      ELSEWHERE                   
+         zalbfz = alphdi
+      END WHERE
+      
+      DO jj = 1, jpj
+         DO ji = 1, jpi
+            IF( hicif(ji,jj) > 1.5 ) THEN
+               zficeth(ji,jj) = zalbfz(ji,jj)
+            ELSEIF( hicif(ji,jj) > 1.0  .AND. hicif(ji,jj) <= 1.5 ) THEN
+               zficeth(ji,jj) = 0.472 + 2.0 * ( zalbfz(ji,jj) - 0.472 ) * ( hicif(ji,jj) - 1.0 )
+            ELSEIF( hicif(ji,jj) > 0.05 .AND. hicif(ji,jj) <= 1.0 ) THEN
+               zficeth(ji,jj) = 0.2467 + 0.7049 * hicif(ji,jj)                                &
+                  &                    - 0.8608 * hicif(ji,jj) * hicif(ji,jj)                 &
+                  &                    + 0.3812 * hicif(ji,jj) * hicif(ji,jj) * hicif (ji,jj)
+            ELSE
+               zficeth(ji,jj) = 0.1 + 3.6 * hicif(ji,jj) 
+            ENDIF
+         END DO
+      END DO
+      
+      !----------------------------------------------- 
+      !    Computation of the snow/ice albedo system 
+      !-------------------------- ---------------------
+      
+      !    Albedo of snow-ice for clear sky.
+      !-----------------------------------------------    
+      DO jj = 1, jpj
+         DO ji = 1, jpi
+            !  Case of ice covered by snow.             
+            
+            !  melting snow        
+            zihsc1       = 1.0 - MAX ( zzero , SIGN ( zone , - ( hsnif(ji,jj) - c1 ) ) )
+            zalbpsnm     = ( 1.0 - zihsc1 ) * ( zficeth(ji,jj) + hsnif(ji,jj) * ( alphd - zficeth(ji,jj) ) / c1 ) &
+               &                 + zihsc1   * alphd  
+            !  freezing snow                
+            zihsc2       = MAX ( zzero , SIGN ( zone , hsnif(ji,jj) - c2 ) )
+            zalbpsnf     = ( 1.0 - zihsc2 ) * ( albice + hsnif(ji,jj) * ( alphc - albice ) / c2 )                 &
+               &                 + zihsc2   * alphc 
+            
+            zitmlsn      =  MAX ( zzero , SIGN ( zone , sist(ji,jj) - rt0_snow ) )   
+            zalbpsn      =  zitmlsn * zalbpsnf + ( 1.0 - zitmlsn ) * zalbpsnm 
+            
+            !  Case of ice free of snow.
+            zalbpic      = zficeth(ji,jj) 
+            
+            ! albedo of the system   
+            zithsn       = 1.0 - MAX ( zzero , SIGN ( zone , - hsnif(ji,jj) ) )
+            palbp(ji,jj) =  zithsn * zalbpsn + ( 1.0 - zithsn ) *  zalbpic
+         END DO
+      END DO
+      
+      !    Albedo of snow-ice for overcast sky.
+      !----------------------------------------------  
+      palb(:,:)   = palbp(:,:) + cgren                                           
+      
+      !--------------------------------------------
+      !    Computation of the albedo of the ocean 
+      !-------------------------- -----------------                                                          
+      
+      !  Parameterization of Briegled and Ramanathan, 1982 
+      zmue14      = zmue**1.4                                       
+      palcnp(:,:) = 0.05 / ( 1.1 * zmue14 + 0.15 )                
+      
+      !  Parameterization of Kondratyev, 1969 and Payne, 1972
+      palcn(:,:)  = 0.06                                                 
+      
+   END SUBROUTINE flx_blk_albedo_2
+
+   SUBROUTINE albedo_init_2
+      !!----------------------------------------------------------------------
+      !!                 ***  ROUTINE albedo_init_2  ***
+      !!
+      !! ** Purpose :   initializations for the albedo parameters
+      !!
+      !! ** Method  :   Read the namelist namalb
+      !!
+      !! ** Action  :  
+      !!
+      !!
+      !! History :
+      !!   9.0  !  04-11  (C. Talandier)  Original code
+      !!----------------------------------------------------------------------
+      NAMELIST/namalb/ cgren, albice, alphd, alphdi, alphc
+      !!----------------------------------------------------------------------
+      !!  OPA 9.0, LODYC-IPSL (2004)
+      !!----------------------------------------------------------------------
+
+      ! set the initialization flag to 1
+      albd_init = 1           ! indicate that the initialization has been done
+
+      ! Read Namelist namalb : albedo parameters
+      REWIND( numnam )
+      READ  ( numnam, namalb )
+
+      ! Control print
+      IF(lwp) THEN
+         WRITE(numout,*)
+         WRITE(numout,*) 'albedo_init_2 : albedo '
+         WRITE(numout,*) '~~~~~~~~~~~~~'
+         WRITE(numout,*) '          Namelist namalb : set albedo parameters'
+         WRITE(numout,*)
+         WRITE(numout,*) '             correction of the snow or ice albedo to take into account cgren = ', cgren
+         WRITE(numout,*) '             albedo of melting ice in the arctic and antarctic        albice = ', albice
+         WRITE(numout,*) '             coefficients for linear                                   alphd = ', alphd
+         WRITE(numout,*) '             interpolation used to compute albedo                     alphdi = ', alphdi
+         WRITE(numout,*) '             between two extremes values (Pyane, 1972)                 alphc = ', alphc
+         WRITE(numout,*)
+      ENDIF
+
+   END SUBROUTINE albedo_init_2
+   !!======================================================================
+#endif
+END MODULE albedo_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/dom_ice.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/dom_ice.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/dom_ice.F90	(revision 821)
@@ -1,6 +1,7 @@
-MODULE dom_ice
+MODULE dom_ice_2
+#if defined key_lim2
    !!======================================================================
    !!                   ***  MODULE  dom_ice  ***
-   !! LIM Sea Ice :   Domain  variables
+   !! LIM 2.0 Sea Ice :   Domain  variables
    !!======================================================================
    !! History :   2.0  !  03-08  (C. Ethe)  Free form and module
@@ -12,5 +13,5 @@
    !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
    !!----------------------------------------------------------------------
-   USE par_ice
+   USE par_ice_2
 
    IMPLICIT NONE
@@ -33,3 +34,4 @@
 
    !!======================================================================
-END MODULE dom_ice
+#endif
+END MODULE dom_ice_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/flxblk_2.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/flxblk_2.F90	(revision 821)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/flxblk_2.F90	(revision 821)
@@ -0,0 +1,746 @@
+MODULE flxblk_2
+   !!======================================================================
+   !!                       ***  MODULE  flxblk  ***
+   !! Ocean forcing:  bulk thermohaline forcing of the ocean (or ice)
+   !!=====================================================================
+#if ( defined key_flx_bulk_monthly || defined key_flx_bulk_daily ) && defined key_lim2
+   !!----------------------------------------------------------------------
+   !!   'key_flx_bulk_monthly'   or                            MONTHLY bulk
+   !!   'key_flx_bulk_daily'                                     DAILY bulk
+   !!----------------------------------------------------------------------
+   !!   flx_blk        : thermohaline fluxes from bulk
+   !!   flx_blk_declin : solar declinaison
+   !!----------------------------------------------------------------------
+   !! * Modules used
+   USE oce             ! ocean dynamics and tracers
+   USE dom_oce         ! ocean space and time domain
+   USE cpl_oce         ! ???
+   USE phycst          ! physical constants
+   USE daymod
+   USE blk_oce         ! bulk variables
+   USE flx_oce         ! forcings variables
+   USE ocfzpt          ! ???
+   USE in_out_manager
+   USE lbclnk
+   USE albedo_2
+   USE prtctl          ! Print control
+
+   IMPLICIT NONE
+   PRIVATE
+
+   !! * Accessibility
+   PUBLIC flx_blk_2        ! routine called by flx.F90 
+
+   !! * Module variables
+   INTEGER, PARAMETER  ::   &
+      jpintsr = 24          ! number of time step between sunrise and sunset
+      !                     ! uses for heat flux computation
+   LOGICAL ::   &
+      lbulk_init = .TRUE.   ! flag, bulk initialization done or not)
+
+   REAL(wp), DIMENSION(jpi,jpj) ::   &
+      stauc            ,  &   ! cloud optical depth 
+      sbudyko   
+
+   !! * constants for bulk computation (flx_blk)
+   REAL(wp), DIMENSION(19)  ::  &
+      budyko                  ! BUDYKO's coefficient
+   ! BUDYKO's coefficient (cloudiness effect on LW radiation):
+   DATA budyko / 1.00, 0.98, 0.95, 0.92, 0.89, 0.86, 0.83, 0.80, 0.78, 0.75,  &
+      &          0.72, 0.69, 0.67, 0.64, 0.61, 0.58, 0.56, 0.53, 0.50 /
+   REAL(wp), DIMENSION(20)  :: &
+      tauco                  ! cloud optical depth coefficient
+   ! Cloud optical depth coefficient
+   DATA tauco / 6.6, 6.6, 7.0, 7.2, 7.1, 6.8, 6.5, 6.6, 7.1, 7.6,   &
+      &         6.6, 6.1, 5.6, 5.5, 5.8, 5.8, 5.6, 5.6, 5.6, 5.6 /
+   REAL(wp)  ::            &  ! constant values
+      zeps    = 1.e-20  ,  &
+      zeps0   = 1.e-13  ,  &
+      zeps1   = 1.e-06  ,  &
+      zzero   = 0.e0    ,  &
+      zone    = 1.0
+
+   !! * constants for solar declinaison computation (flx_blk_declin)
+   REAL(wp) ::                &
+      a0  =  0.39507671   ,   &  ! coefficients
+      a1  = 22.85684301   ,   &
+      a2  = -0.38637317   ,   &
+      a3  =  0.15096535   ,   &
+      a4  = -0.00961411   ,   &
+      b1  = -4.29692073   ,   &
+      b2  =  0.05702074   ,   &
+      b3  = -0.09028607   ,   &
+      b4  =  0.00592797
+   !!----------------------------------------------------------------------
+   !!   OPA 9.0 , LOCEAN-IPSL (2005) 
+   !! $Header$ 
+   !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 
+   !!----------------------------------------------------------------------
+
+CONTAINS
+
+   SUBROUTINE flx_blk_2( psst )
+      !!---------------------------------------------------------------------------
+      !!                     ***  ROUTINE flx_blk  ***
+      !!                 
+      !!  ** Purpose :   Computation of the heat fluxes at ocean and snow/ice
+      !!       surface the solar heat at ocean and snow/ice surfaces and the 
+      !!       sensitivity of total heat fluxes to the SST variations
+      !!         
+      !!  ** Method  :   The flux of heat at the ice and ocean surfaces are derived
+      !!       from semi-empirical ( or bulk ) formulae which relate the flux to 
+      !!       the properties of the surface and of the lower atmosphere. Here, we
+      !!       follow the work of Oberhuber, 1988   
+      !!
+      !!  ** Action  :   call flx_blk_albedo to compute ocean and ice albedo 
+      !!          computation of snow precipitation
+      !!          computation of solar flux at the ocean and ice surfaces
+      !!          computation of the long-wave radiation for the ocean and sea/ice
+      !!          computation of turbulent heat fluxes over water and ice
+      !!          computation of evaporation over water
+      !!          computation of total heat fluxes sensitivity over ice (dQ/dT)
+      !!          computation of latent heat flux sensitivity over ice (dQla/dT)
+      !!
+      !! History :
+      !!   8.0  !  97-06  (Louvain-La-Neuve)  Original code
+      !!   8.5  !  02-09  (C. Ethe , G. Madec )  F90: Free form and module
+      !!----------------------------------------------------------------------
+      !! * Arguments
+      REAL(wp), INTENT( in ), DIMENSION(jpi,jpj) ::   &
+         &                          psst      ! Sea Surface Temperature 
+
+      !! * Local variables
+      INTEGER  ::             &
+         ji, jj, jt        ,  &  ! dummy loop indices
+         indaet            ,  &  !  = -1, 0, 1 for odd, normal and leap years resp.
+         iday              ,  &  ! integer part of day
+         indxb             ,  &  ! index for budyko coefficient
+         indxc                   ! index for cloud depth coefficient
+
+      REAL(wp)  ::            & 
+         zalat , zclat     ,  &  ! latitude in degrees 
+         zmt1, zmt2, zmt3  ,  &  ! tempory air temperatures variables
+         ztatm3, ztatm4    ,  &  ! power 3 and 4 of air temperature
+         z4tatm3           ,  &  ! 4 * ztatm3
+         zcmue             ,  &  ! cosine of local solar altitude
+         zcmue2            ,  &  ! root of zcmue1 
+         zscmue            ,  &  ! square-root of zcmue1 
+         zpcmue            ,  &  ! zcmue1**1.4
+         zdecl             ,  &  ! solar declination
+         zsdecl , zcdecl   ,  &  ! sine and cosine of solar declination 
+         zalbo             ,  &  ! albedo of sea-water
+         zalbi             ,  &  ! albedo of ice
+         ztamr             ,  &  ! air temperature minus triple point of water (rtt)
+         ztaevbk           ,  &  ! part of net longwave radiation
+         zevi , zevo       ,  &  ! vapour pressure of ice and ocean 
+         zind1,zind2,zind3 ,  &  ! switch for testing the values of air temperature
+         zinda             ,  &  ! switch for testing the values of sea ice cover
+         zpis2             ,  &  ! pi / 2
+         z2pi                    ! 2 * pi 
+
+      REAL(wp)  ::            & 
+         zxday             ,  &  ! day of year
+         zdist             ,  &  ! distance between the sun and the earth during the year
+         zdaycor           ,  &  ! corr. factor to take into account the variation of 
+         !                       ! zday when calc. the solar rad.    
+         zesi, zeso        ,  &  ! vapour pressure of ice and ocean at saturation
+         zesi2             ,  &  ! root of zesi 
+         zqsato            ,  &  ! humidity close to the ocean surface (at saturation)   
+         zqsati            ,  &  ! humidity close to the ice surface (at saturation) 
+         zqsati2           ,  &  ! root of  zqsati 
+         zdesidt           ,  &  ! derivative of zesi, function of ice temperature
+         zdteta            ,  &  ! diff. betw. sst and air temperature
+         zdeltaq           ,  &  ! diff. betw. spec. hum. and hum. close to the surface
+         ztvmoy, zobouks   ,  &  ! tempory scalars
+         zpsims, zpsihs, zpsils, zobouku, zxins, zpsimu ,  & 
+         zpsihu, zpsilu, zstab,zpsim, zpsih, zpsil      ,  & 
+         zvatmg, zcmn, zchn, zcln, zcmcmn, zdenum       ,  & 
+         zdtetar, ztvmoyr, zlxins, zcmn2, zchcm, zclcm , zcoef
+
+      REAL(wp)  ::            & 
+         zrhova            ,  &  ! air density per wind speed
+         zcsho , zcleo     ,  &  ! transfer coefficient over ocean
+         zcshi , zclei     ,  &  ! transfer coefficient over ice-free
+         zrhovacleo        ,  &  ! air density per wind speed per transfer coef.
+         zrhovacsho, zrhovaclei, zrhovacshi, & 
+         ztice3            ,  &  ! power 3 of ice temperature
+         zticemb, zticemb2 ,  &  ! tempory air temperatures variables
+         zdqlw_ice         ,  &  ! sensitivity of long-wave flux over ice
+         zdqsb_ice         ,  &  ! sensitivity of sensible heat flux over ice
+         zdqla_ice         ,  &  ! sensitivity of latent heat flux over ice
+         zdl, zdr                ! fractionnal part of latitude
+      REAL(wp), DIMENSION(jpi,jpj) :: & 
+         zpatm            ,  &   ! atmospheric pressure
+         zqatm            ,  &   ! specific humidity
+         zes              ,  &   ! vapour pressure at saturation
+         zev, zevsqr      ,  &   ! vapour pressure and his square-root
+         zrhoa            ,  &   ! air density
+         ztatm            ,  &   ! air temperature in Kelvins
+         zfrld            ,  &   ! fraction of sea ice cover 
+         zcatm1           ,  &   ! fraction of cloud
+         zcldeff                 ! correction factor to account cloud effect
+      REAL(wp), DIMENSION(jpi,jpj) ::   & 
+         zalbocsd         ,  &   ! albedo of ocean
+         zalboos          ,  &   ! albedo of ocean under overcast sky
+         zalbics          ,  &   ! albedo of ice under clear sky
+         zalbios          ,  &   ! albedo of ice under overcast sky
+         zalbomu          ,  &   ! albedo of ocean when zcmue is 0.4
+         zqsro            ,  &   ! solar radiation over ocean
+         zqsrics          ,  &   ! solar radiation over ice under clear sky
+         zqsrios          ,  &   ! solar radiation over ice under overcast sky
+         zcldcor          ,  &   ! cloud correction
+         zlsrise, zlsset  ,  &   ! sunrise and sunset
+         zlmunoon         ,  &   ! local noon solar altitude
+         zdlha            ,  &   ! length of the ninstr segments of the solar day
+         zps              ,  &   ! sine of latitude per sine of solar decli.
+         zpc                     ! cosine of latitude per cosine of solar decli. 
+
+      REAL(wp), DIMENSION(jpi,jpj) ::   & 
+         zqlw_oce         ,  &   ! long-wave heat flux over ocean
+         zqlw_ice         ,  &   ! long-wave heat flux over ice
+         zqla_oce         ,  &   ! latent heat flux over ocean
+         zqla_ice         ,  &   ! latent heat flux over ice
+         zqsb_oce         ,  &   ! sensible heat flux over ocean
+         zqsb_ice                ! sensible heat flux over ice
+ 
+      REAL(wp), DIMENSION(jpi,jpj,jpintsr) ::    &
+         zlha             ,  &   ! local hour angle
+         zalbocs          ,  &   ! tempory var. of ocean albedo under clear sky
+         zsqsro           ,  &   ! tempory var. of solar rad. over ocean 
+         zsqsrics         ,  &   ! temp. var. of solar rad. over ice under clear sky
+         zsqsrios                ! temp. var. of solar rad. over ice under overcast sky
+      !!---------------------------------------------------------------------
+
+      !---------------------
+      !   Initilization    !
+      !---------------------
+!#if ! defined key_lim2
+!      tn_ice(:,:) = psst(:,:)
+!#endif
+
+      !  Determine cloud optical depths as a function of latitude (Chou et al., 1981).
+      !  and the correction factor for taking into account  the effect of clouds 
+      !------------------------------------------------------
+      IF( lbulk_init ) THEN
+         DO jj = 1, jpj  
+            DO ji = 1 , jpi
+               zalat          = ( 90.e0 - ABS( gphit(ji,jj) ) ) /  5.e0
+               zclat          = ( 95.e0 -      gphit(ji,jj)   ) / 10.e0
+               indxb          = 1 + INT( zalat ) 
+               !  correction factor to account for the effect of clouds 
+               sbudyko(ji,jj) = budyko(indxb)  
+               indxc          = 1 + INT( zclat )  
+               zdl            = zclat - INT( zclat ) 
+               zdr            = 1.0 - zdl
+               stauc(ji,jj)   = zdr * tauco( indxc ) + zdl * tauco( indxc + 1 ) 
+            END DO
+         END DO
+         IF( nleapy == 1 ) THEN
+            yearday = 366.e0
+         ELSE IF( nleapy == 0 ) THEN
+            yearday = 365.e0
+         ELSEIF( nleapy == 30) THEN
+            yearday = 360.e0
+         ENDIF
+         lbulk_init = .FALSE.
+      ENDIF
+
+      zqlw_oce(:,:) = 0.e0
+      zqla_oce(:,:) = 0.e0
+      zqsb_oce(:,:) = 0.e0
+      zqlw_ice(:,:) = 0.e0
+      zqla_ice(:,:) = 0.e0
+      zqsb_ice(:,:) = 0.e0
+
+      zpis2       = rpi / 2.
+      z2pi        = 2. * rpi
+
+ !CDIR NOVERRCHK
+      DO jj = 1, jpj
+ !CDIR NOVERRCHK
+         DO ji = 1, jpi
+
+            ztatm (ji,jj) = 273.15 + tatm  (ji,jj)  !  air temperature in Kelvins 
+            zcatm1(ji,jj) = 1.0    - catm  (ji,jj)  !  fractional cloud cover
+            zfrld (ji,jj) = 1.0    - freeze(ji,jj)  !  fractional sea ice cover
+            zpatm(ji,jj)  = 101000.               !  pressure 
+      
+            !  Computation of air density, obtained from the equation of state for dry air. 
+            zrhoa(ji,jj) = zpatm(ji,jj) / ( 287.04 * ztatm(ji,jj) )
+      
+            !  zes : Saturation water vapour
+            ztamr = ztatm(ji,jj) - rtt
+            zmt1  = SIGN( 17.269, ztamr )
+            zmt2  = SIGN( 21.875, ztamr )
+            zmt3  = SIGN( 28.200, -ztamr )
+            zes(ji,jj) = 611.0 * EXP (  ABS( ztamr ) * MIN ( zmt1, zmt2 )   &
+               &                      / ( ztatm(ji,jj) - 35.86  + MAX( zzero, zmt3 ) ) )
+
+            !  zev : vapour pressure  (hatm is relative humidity)  
+            zev(ji,jj)   = hatm(ji,jj) * zes(ji,jj) 
+            !  square-root of vapour pressure
+!CDIR NOVERRCHK
+            zevsqr(ji,jj) = SQRT( zev(ji,jj) * 0.01 )
+            !  zqapb  : specific humidity 
+            zqatm(ji,jj) = 0.622 * zev(ji,jj) / ( zpatm(ji,jj) - 0.378 * zev(ji,jj) )
+
+
+            !----------------------------------------------------
+            !   Computation of snow precipitation (Ledley, 1985) |
+            !----------------------------------------------------
+
+            zmt1  =   253.0 - ztatm(ji,jj)
+            zmt2  = ( 272.0 - ztatm(ji,jj) ) / 38.0 
+            zmt3  = ( 281.0 - ztatm(ji,jj) ) / 18.0
+            zind1 = MAX( zzero, SIGN( zone, zmt1 ) )
+            zind2 = MAX( zzero, SIGN( zone, zmt2 ) )
+            zind3 = MAX( zzero, SIGN( zone, zmt3 ) )
+            ! total precipitation
+            tprecip(ji,jj) = watm(ji,jj)
+            ! solid  (snow) precipitation
+            sprecip(ji,jj) = tprecip(ji,jj) *       &
+               &             (           zind1      &
+               &               + ( 1.0 - zind1 ) * ( zind2 * ( 0.5 + zmt2 ) + ( 1.0 - zind2 ) *  zind3 * zmt3 ) ) 
+         END DO
+      END DO
+
+      !----------------------------------------------------------
+      !   Computation of albedo (need to calculates heat fluxes)|
+      !-----------------------------------------------------------
+      
+      CALL flx_blk_albedo_2( zalbios, zalboos, zalbics, zalbomu )
+
+      !-------------------------------------
+      !   Computation of solar irradiance. |
+      !----------------------------------------
+      indaet   = 1  
+      !  compution of the day of the year at which the fluxes have to be calculate 
+      !--The date corresponds to the middle of the time step.
+      zxday=nday_year + rdtbs2/rday
+
+      iday   = INT( zxday )
+
+      IF(ln_ctl) CALL prt_ctl_info('declin : iday ', ivar1=iday, clinfo2=' nfbulk= ', ivar2=nfbulk)
+
+      !   computation of the solar declination, his sine and his cosine
+      CALL flx_blk_declin_2( indaet, iday, zdecl )
+      
+      zdecl    = zdecl * rad
+      zsdecl   = SIN( zdecl )
+      zcdecl   = COS( zdecl )
+      
+      !  correction factor added for computation of shortwave flux to take into account the variation of
+      !  the distance between the sun and the earth during the year (Oberhuber 1988)
+      zdist    = zxday * z2pi / yearday
+      zdaycor  = 1.0 + 0.0013 * SIN( zdist ) + 0.0342 * COS( zdist )
+
+!CDIR NOVERRCHK
+      DO jj = 1, jpj
+!CDIR NOVERRCHK
+         DO ji = 1, jpi
+            !  product of sine of latitude and sine of solar declination
+            zps     (ji,jj) = SIN( gphit(ji,jj) * rad ) * zsdecl
+            !  product of cosine of latitude and cosine of solar declination
+            zpc     (ji,jj) = COS( gphit(ji,jj) * rad ) * zcdecl
+            !  computation of the both local time of sunrise and sunset
+            zlsrise (ji,jj) = ACOS( - SIGN( zone, zps(ji,jj) ) * MIN( zone, SIGN( zone, zps(ji,jj) )  &
+               &                     * ( zps(ji,jj) / zpc(ji,jj) ) ) ) 
+            zlsset  (ji,jj) = - zlsrise(ji,jj)
+            !  dividing the solar day into jpintsr segments of length zdlha
+            zdlha   (ji,jj) = ( zlsrise(ji,jj) - zlsset(ji,jj) ) / REAL( jpintsr )
+            !  computation of the local noon solar altitude
+            zlmunoon(ji,jj) = ASIN ( ( zps(ji,jj) + zpc(ji,jj) ) ) / rad
+            
+            !  cloud correction taken from Reed (1977) (imposed lower than 1)
+            zcldcor (ji,jj) = MIN( zone, ( 1.e0 - 0.62 * catm(ji,jj) + 0.0019 * zlmunoon(ji,jj) ) )
+         END DO
+      END DO
+
+         !  Computation of solar heat flux at each time of the day between sunrise and sunset. 
+         !  We do this to a better optimisation of the code 
+         !------------------------------------------------------       
+
+!CDIR NOVERRCHK   
+      DO jt = 1, jpintsr   
+         zcoef = FLOAT( jt ) - 0.5
+!CDIR NOVERRCHK     
+         DO jj = 1, jpj
+!CDIR NOVERRCHK
+            DO ji = 1, jpi
+               !  local hour angle
+               zlha (ji,jj,jt) = COS ( zlsrise(ji,jj) - zcoef * zdlha(ji,jj) )
+
+               ! cosine of local solar altitude
+               zcmue              = MAX ( zzero ,   zps(ji,jj) + zpc(ji,jj) * zlha (ji,jj,jt)  )
+               zcmue2             = 1368.0 * zcmue * zcmue
+               zscmue             = SQRT ( zcmue )
+               zpcmue             = zcmue**1.4
+               ! computation of sea-water albedo (Payne, 1972)
+               zalbocs(ji,jj,jt)  = 0.05 / ( 1.1 * zpcmue + 0.15 )
+               zalbo              = zcatm1(ji,jj) * zalbocs(ji,jj,jt) + catm(ji,jj) * zalboos(ji,jj)
+               ! solar heat flux absorbed at ocean surfaces (Zillman, 1972)
+               zevo               = zev(ji,jj) * 1.0e-05
+               zsqsro(ji,jj,jt)   =  ( 1.0 - zalbo ) * zdlha(ji,jj) * zcmue2                &
+                                   / ( ( zcmue + 2.7 ) * zevo + 1.085 * zcmue +  0.10 )
+               !  solar heat flux absorbed at sea/ice surfaces 
+               !  Formulation of Shine and Crane, 1984 adapted for high albedo surfaces 
+
+               !  For clear sky        
+               zevi               = zevo
+               zalbi              = zalbics(ji,jj)
+               zsqsrics(ji,jj,jt) =  ( 1.0 - zalbi ) * zdlha(ji,jj) * zcmue2                &
+                  &                / ( ( 1.0 + zcmue ) * zevi + 1.2 * zcmue + 0.0455 )
+
+               ! For overcast sky
+               zalbi              = zalbios(ji,jj)
+               zsqsrios(ji,jj,jt) = zdlha(ji,jj) *                                                           &
+                  &                 ( ( 53.5 + 1274.5 * zcmue      ) *  zscmue * ( 1.0 - 0.996  * zalbi ) )  &
+                  &                 / (  1.0 + 0.139  * stauc(ji,jj) *           ( 1.0 - 0.9435 * zalbi ) )
+            END DO
+         END DO
+      END DO
+
+
+      !  Computation of daily (between sunrise and sunset) solar heat flux absorbed 
+      !  at the ocean and snow/ice surfaces.
+      !--------------------------------------------------------------------
+
+      zalbocsd(:,:) = 0.e0
+      zqsro   (:,:) = 0.e0
+      zqsrics (:,:) = 0.e0
+      zqsrios (:,:) = 0.e0
+
+      DO jt = 1, jpintsr 
+#   if defined key_vectopt_loop 
+         DO ji = 1, jpij  
+            zalbocsd(ji,1) = zalbocsd(ji,1) + zdlha   (ji,1) * zalbocs(ji,1,jt)   &
+               &                                             / MAX( 2.0 * zlsrise(ji,1) , zeps0 )
+            zqsro   (ji,1) = zqsro   (ji,1) + zsqsro  (ji,1,jt)
+            zqsrics (ji,1) = zqsrics (ji,1) + zsqsrics(ji,1,jt)
+            zqsrios (ji,1) = zqsrios (ji,1) + zsqsrios(ji,1,jt)
+         END DO
+#  else
+         DO jj = 1, jpj
+            DO ji = 1, jpi  
+               zalbocsd(ji,jj) = zalbocsd(ji,jj) + zdlha(ji,jj) * zalbocs(ji,jj,jt)   &
+                  &                                              / MAX( 2.0 * zlsrise(ji,jj) , zeps0 )
+               zqsro  (ji,jj)  = zqsro   (ji,jj) + zsqsro  (ji,jj,jt)
+               zqsrics(ji,jj)  = zqsrics (ji,jj) + zsqsrics(ji,jj,jt)
+               zqsrios(ji,jj)  = zqsrios (ji,jj) + zsqsrios(ji,jj,jt)
+            END DO
+         END DO
+#  endif
+      END DO
+
+      DO jj = 1, jpj
+         DO ji = 1, jpi 
+
+            !------------------------------------------- 
+            !  Computation of shortwave radiation.
+            !-------------------------------------------
+
+            ! the solar heat flux absorbed at ocean and snow/ice surfaces
+            !------------------------------------------------------------
+
+            ! For ocean
+            qsr_oce(ji,jj) = srgamma * zcldcor(ji,jj) * zqsro(ji,jj) / z2pi
+            zinda          = SIGN( zone , -( -0.5 - zfrld(ji,jj) ) )
+            zinda          = 1.0 - MAX( zzero , zinda )
+            qsr_oce(ji,jj) = ( 1.- zinda ) * qsr_oce(ji,jj)
+
+            ! For snow/ice 
+            qsr_ice(ji,jj) = ( zcatm1(ji,jj) * zqsrics(ji,jj) + catm(ji,jj) * zqsrios(ji,jj) ) / z2pi
+
+
+            ! Taking into account the ellipsity of the earth orbit
+            !-----------------------------------------------------
+
+            qsr_ice(ji,jj) = qsr_ice(ji,jj) * zdaycor
+            qsr_oce(ji,jj) = qsr_oce(ji,jj) * zdaycor
+
+            !  fraction of net shortwave radiation which is not absorbed in the 
+            !  thin surface layer and penetrates inside the ice cover 
+            !  ( Maykut and Untersteiner, 1971 ; Elbert anbd Curry, 1993 )
+            !------------------------------------------------------------------
+
+            fr1_i0(ji,jj) = 0.18  * zcatm1(ji,jj) + 0.35 * catm(ji,jj) 
+            fr2_i0(ji,jj) = 0.82  * zcatm1(ji,jj) + 0.65 * catm(ji,jj)
+
+            !---------------------------------------------------------------------------
+            !   Computation of long-wave radiation  ( Berliand 1952 ; all latitudes )
+            !---------------------------------------------------------------------------
+
+            ! tempory variables
+            ztatm3         = ztatm(ji,jj) * ztatm(ji,jj) * ztatm(ji,jj)
+            ztatm4         = ztatm3 * ztatm(ji,jj)
+            z4tatm3        = 4. * ztatm3
+            zcldeff(ji,jj) = 1.0 - sbudyko(ji,jj) * catm(ji,jj) * catm(ji,jj)    
+            ztaevbk        = ztatm4 * zcldeff(ji,jj) * ( 0.39 - 0.05 * zevsqr(ji,jj) ) 
+
+            !  Long-Wave for Ice
+            !----------------------
+            zqlw_ice(ji,jj) = - emic * stefan * ( ztaevbk + z4tatm3 * ( tn_ice(ji,jj) - ztatm(ji,jj) ) ) 
+
+            !  Long-Wave for Ocean
+            !-----------------------
+            zqlw_oce(ji,jj) = - emic * stefan * ( ztaevbk + z4tatm3 * ( psst  (ji,jj) - ztatm(ji,jj) ) ) 
+
+         END DO
+      END DO
+
+      !----------------------------------------
+      !  Computation of turbulent heat fluxes  ( Latent and sensible ) 
+      !----------------------------------------        
+      !CDIR NOVERRCHK
+      DO jj = 2 , jpjm1
+!ib   DO jj = 1 , jpj
+         !CDIR NOVERRCHK
+         DO  ji = 1, jpi
+
+            !  Turbulent heat fluxes over water
+            !----------------------------------
+
+            ! zeso     : vapour pressure at saturation of ocean
+            ! zqsato   : humidity close to the ocean surface (at saturation)
+            zeso          =  611.0 * EXP ( 17.2693884 * ( psst(ji,jj) - rtt ) * tmask(ji,jj,1) / ( psst(ji,jj) - 35.86 ) )
+            zqsato        = ( 0.622 * zeso ) / ( zpatm(ji,jj) - 0.378 * zeso )
+
+            !  Drag coefficients from Large and Pond (1981,1982)
+            !---------------------------------------------------
+    
+            !  Stability parameters
+            zdteta         = psst(ji,jj) - ztatm(ji,jj)
+            zdeltaq        = zqatm(ji,jj) - zqsato
+            ztvmoy         = ztatm(ji,jj) * ( 1. + 2.2e-3 * ztatm(ji,jj) * zqatm(ji,jj) )
+            zdenum         = MAX( vatm(ji,jj) * vatm(ji,jj) * ztvmoy, zeps )
+!i
+!i          if( zdenum == 0.e0 ) then
+!i               write(numout,*) 'flxblk  zdenum=0 ', ji,jj
+!i               zdenum = zeps
+!i          endif
+!i
+            zdtetar        = zdteta / zdenum
+            ztvmoyr        = ztvmoy * ztvmoy * zdeltaq / zdenum
+            
+            ! For stable atmospheric conditions
+            zobouks        = -70.0 * 10. * ( zdtetar + 3.2e-3 * ztvmoyr )
+            zobouks        = MAX( zzero , zobouks )
+            zpsims         = -7.0 * zobouks
+            zpsihs         =  zpsims
+            zpsils         =  zpsims
+
+            !  For unstable atmospheric conditions
+            zobouku        = -100.0 * 10.0 * ( zdtetar + 2.2e-3 * ztvmoyr )
+            zobouku        = MIN( zzero , zobouku )
+            zxins          = ( 1. - 16. * zobouku )**0.25
+            zlxins         = LOG( ( 1. + zxins * zxins ) / 2. )
+            zpsimu         = 2. * LOG( ( 1 + zxins ) / 2. )  + zlxins - 2. * ATAN( zxins ) + zpis2
+            zpsihu         = 2. * zlxins
+            zpsilu         = zpsihu
+
+            ! computation of intermediate values
+            zstab          = MAX( zzero , SIGN( zone , zdteta ) )
+            zpsim          = zstab * zpsimu + (1.0 - zstab ) * zpsims
+            zpsih          = zstab * zpsihu + (1.0 - zstab ) * zpsihs
+            zpsil          = zpsih
+            
+            zvatmg         = MAX( 0.032 * 1.5e-3 * vatm(ji,jj) * vatm(ji,jj) / grav, zeps )
+!i
+!!          if( zvatmg == 0.e0 ) then
+!!               write(numout,*) 'flxblk  zvatmg=0 ', ji,jj
+!!               zvatmg = zeps
+!!          endif
+!i
+
+            zcmn           = vkarmn / LOG ( 10. / zvatmg )
+            zcmn2          = zcmn * zcmn
+            zchn           = 0.0327 * zcmn
+            zcln           = 0.0346 * zcmn
+            zcmcmn         = 1 / ( 1 - zcmn * zpsim / vkarmn )
+            zchcm          = zcmcmn / ( 1 - zchn * zpsih / ( vkarmn * zcmn ) )
+            zclcm          = zchcm
+
+
+            !  Transfer cofficient zcsho and zcleo over ocean according to Large and Pond (1981,1982)
+            !-------------------------------------------------------------- 
+            zcsho          = zchn * zchcm
+            zcleo          = zcln * zclcm 
+
+
+            !   Computation of sensible and latent fluxes over Ocean 
+            !----------------------------------------------------------------
+
+            !  computation of intermediate values
+            zrhova         = zrhoa(ji,jj) * vatm(ji,jj)
+            zrhovacsho     = zrhova * zcsho
+            zrhovacleo     = zrhova * zcleo
+
+            ! sensible heat flux
+            zqsb_oce(ji,jj) = zrhovacsho * 1004.0  * ( psst(ji,jj) - ztatm(ji,jj) )  
+         
+            !  latent heat flux 
+            zqla_oce(ji,jj) = MAX(0.e0, zrhovacleo * 2.5e+06 * ( zqsato      - zqatm(ji,jj) ) )
+               
+            !  Calculate evaporation over water. (kg/m2/s)
+            !-------------------------------------------------
+            evap(ji,jj)    = zqla_oce(ji,jj) / cevap
+               
+               
+            !  Turbulent heat fluxes over snow/ice.
+            !--------------------------------------------------
+            
+            !  zesi     : vapour pressure at saturation of ice
+            !  zqsati   : humidity close to the ice surface (at saturation)
+            zesi           =  611.0 * EXP ( 21.8745587 * tmask(ji,jj,1)   &   ! tmask needed to avoid overflow in the exponential
+               &                                       * ( tn_ice(ji,jj) - rtt ) / ( tn_ice(ji,jj) - 7.66 ) )
+            zqsati         = ( 0.622 * zesi ) / ( zpatm(ji,jj) - 0.378 * zesi )
+               
+            !  computation of intermediate values
+            zticemb        = ( tn_ice(ji,jj) - 7.66 )
+            zticemb2       = zticemb * zticemb  
+            ztice3         = tn_ice(ji,jj) * tn_ice(ji,jj) * tn_ice(ji,jj)
+            zqsati2        = zqsati * zqsati
+            zesi2          = zesi * zesi
+            zdesidt        = zesi * ( 9.5 * LOG( 10.0 ) * ( rtt - 7.66 )  / zticemb2 )
+               
+            !  Transfer cofficient zcshi and zclei over ice. Assumed to be constant Parkinson 1979 ; Maykut 1982
+            !--------------------------------------------------------------------
+            zcshi          = 1.75e-03
+            zclei          = zcshi
+               
+            !  Computation of sensible and latent fluxes over ice
+            !----------------------------------------------------------------
+               
+            !  computation of intermediate values
+            zrhova          = zrhoa(ji,jj) * vatm(ji,jj)
+            zrhovacshi      = zrhova * zcshi * 2.834e+06
+            zrhovaclei      = zrhova * zclei * 1004.0
+            
+            !  sensible heat flux
+            zqsb_ice(ji,jj) = zrhovaclei * ( tn_ice(ji,jj) - ztatm(ji,jj) )
+            
+            !  latent heat flux 
+            zqla_ice(ji,jj) = zrhovacshi * ( zqsati        - zqatm(ji,jj) )
+            qla_ice (ji,jj) = MAX(0.e0, zqla_ice(ji,jj) )
+              
+            !  Computation of sensitivity of non solar fluxes (dQ/dT)
+            !---------------------------------------------------------------
+               
+            !  computation of long-wave, sensible and latent flux sensitivity
+            zdqlw_ice       = 4.0 * emic * stefan * ztice3
+            zdqsb_ice       = zrhovaclei
+            zdqla_ice       = zrhovacshi * ( zdesidt * ( zqsati2 / zesi2 ) * ( zpatm(ji,jj) / 0.622 ) )         
+            
+            !  total non solar sensitivity
+            dqns_ice(ji,jj) = -( zdqlw_ice + zdqsb_ice + zdqla_ice ) 
+            
+            ! latent flux sensitivity
+            dqla_ice(ji,jj) = zdqla_ice
+            
+         END DO
+      END DO
+
+      ! total non solar heat flux over ice
+      qnsr_ice(:,:) = zqlw_ice(:,:) - zqsb_ice(:,:) - zqla_ice(:,:)
+      ! total non solar heat flux over water 
+      qnsr_oce(:,:) = zqlw_oce(:,:) - zqsb_oce(:,:) - zqla_oce(:,:)
+
+      ! solid precipitations ( kg/m2/day -> kg/m2/s)
+      tprecip(:,:) = tprecip  (:,:) / rday 
+      ! snow  precipitations ( kg/m2/day -> kg/m2/s)
+      sprecip(:,:) = sprecip  (:,:) / rday  
+!i
+      CALL lbc_lnk( qsr_oce (:,:) , 'T', 1. )
+      CALL lbc_lnk( qnsr_oce(:,:) , 'T', 1. )
+      CALL lbc_lnk( qsr_ice (:,:) , 'T', 1. )
+      CALL lbc_lnk( qnsr_ice(:,:) , 'T', 1. )
+      CALL lbc_lnk( qla_ice (:,:) , 'T', 1. )
+      CALL lbc_lnk( dqns_ice(:,:) , 'T', 1. )
+      CALL lbc_lnk( dqla_ice(:,:) , 'T', 1. )
+      CALL lbc_lnk( fr1_i0  (:,:) , 'T', 1. )
+      CALL lbc_lnk( fr2_i0  (:,:) , 'T', 1. )
+      CALL lbc_lnk( tprecip (:,:) , 'T', 1. )
+      CALL lbc_lnk( sprecip (:,:) , 'T', 1. )
+      CALL lbc_lnk( evap    (:,:) , 'T', 1. )
+!i
+!i
+      qsr_oce (:,:) = qsr_oce (:,:)*tmask(:,:,1)
+      qnsr_oce(:,:) = qnsr_oce(:,:)*tmask(:,:,1)
+      qsr_ice (:,:) = qsr_ice (:,:)*tmask(:,:,1)
+      qnsr_ice(:,:) = qnsr_ice(:,:)*tmask(:,:,1)
+      qla_ice (:,:) = qla_ice (:,:)*tmask(:,:,1)
+      dqns_ice(:,:) = dqns_ice(:,:)*tmask(:,:,1)
+      dqla_ice(:,:) = dqla_ice(:,:)*tmask(:,:,1)
+      fr1_i0  (:,:) = fr1_i0  (:,:)*tmask(:,:,1)
+      fr2_i0  (:,:) = fr2_i0  (:,:)*tmask(:,:,1)
+      tprecip (:,:) = tprecip (:,:)*tmask(:,:,1)
+      sprecip (:,:) = sprecip (:,:)*tmask(:,:,1)
+      evap    (:,:) = evap    (:,:)*tmask(:,:,1)
+!i
+
+   END SUBROUTINE flx_blk_2
+
+
+   SUBROUTINE flx_blk_declin_2( ky, kday, pdecl )
+      !!---------------------------------------------------------------------------
+      !!               ***  ROUTINE flx_blk_declin  ***
+      !!          
+      !! ** Purpose :   Computation of the solar declination for the day
+      !!	        kday ( in decimal degrees ).
+      !!       
+      !! ** Method  :
+      !!
+      !! History :
+      !!         original    : 01-04 (LIM)
+      !!         addition    : 02-08 (C. Ethe, G. Madec)
+      !!---------------------------------------------------------------------
+      !! * Arguments
+      INTEGER, INTENT( in ) ::   &
+         ky  ,        &  ! = -1, 0, 1 for odd, normal and leap years resp.
+         kday            ! day of the year ( kday = 1 on january 1)
+      REAL(wp), INTENT(out) ::  &
+         pdecl            ! solar declination
+
+      !! * Local variables
+      REAL(wp) ::                & 
+         zday                ,   &  ! corresponding day of type year (cf. ky)
+         zp1, zp2, zp3, zp4         ! temporary scalars
+      !!---------------------------------------------------------------------
+      
+      zday = FLOAT( kday ) 
+      
+      IF( ky == 1 )  THEN 
+         zday = zday - 0.5
+      ELSEIF( ky == 3 )  THEN
+         zday = zday - 1.
+      ELSE 
+         zday = REAL( kday )
+      ENDIF
+      
+      zp1 = rpi * ( 2.0 * zday - 367.0 ) / yearday
+      zp2 = 2. * zp1
+      zp3 = 3. * zp1
+      zp4 = 4. * zp1
+      
+      pdecl  = a0                                                                      &
+         &   + a1 * COS( zp1 ) + a2 * COS( zp2 ) + a3 * COS( zp3 ) + a4 * COS( zp4 )   &
+         &   + b1 * SIN( zp1 ) + b2 * SIN( zp2 ) + b3 * SIN( zp3 ) + b4 * SIN( zp4 )
+      
+   END SUBROUTINE flx_blk_declin_2
+
+#else
+   !!----------------------------------------------------------------------
+   !!   Default option :           Empty module                     NO bulk
+   !!----------------------------------------------------------------------
+CONTAINS
+   SUBROUTINE flx_blk_2(psst)            ! Empty routine
+   USE par_oce 
+   USE in_out_manager
+      REAL(wp), INTENT( in ), DIMENSION(jpi,jpj) ::   &
+         &                          psst      
+    WRITE(numout,*) MAXVAL(psst)
+   END SUBROUTINE flx_blk_2
+#endif
+
+   !!======================================================================
+END MODULE flxblk_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/ice.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/ice.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/ice.F90	(revision 821)
@@ -1,10 +1,10 @@
-MODULE ice
+MODULE ice_2
    !!======================================================================
    !!                        ***  MODULE ice  ***
    !! Sea Ice physics:  diagnostics variables of ice defined in memory
    !!=====================================================================
-#if defined key_ice_lim
+#if defined key_lim2
    !!----------------------------------------------------------------------
-   !!   'key_ice_lim' :                                   LIM sea-ice model
+   !!   'key_lim2' :                                  LIM 2.0 sea-ice model
    !!----------------------------------------------------------------------
    !! History :
@@ -16,5 +16,5 @@
    !!----------------------------------------------------------------------
    !! * Modules used
-   USE par_ice          ! LIM sea-ice parameters
+   USE par_ice_2          ! LIM sea-ice parameters
 
    IMPLICIT NONE
@@ -123,8 +123,8 @@
 #else
    !!----------------------------------------------------------------------
-   !!   Default option         Empty module            NO LIM sea-ice model
+   !!   Default option         Empty module        NO LIM 2.0 sea-ice model
    !!----------------------------------------------------------------------
 #endif
 
    !!======================================================================
-END MODULE ice
+END MODULE ice_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/iceini.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/iceini.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/iceini.F90	(revision 821)
@@ -1,20 +1,20 @@
-MODULE iceini
+MODULE iceini_2
    !!======================================================================
    !!                       ***  MODULE iceini   ***
-   !!   Sea-ice model : LIM Sea ice model Initialization
+   !!   Sea-ice model : LIM 2.0 Sea ice model Initialization
    !!======================================================================
    !! History :   1.0  !  02-08  (G. Madec)  F90: Free form and modules
    !!             2.0  !  03-08  (C. Ethe)  add ice_run
    !!----------------------------------------------------------------------
-#if defined key_ice_lim
+#if defined key_lim2
    !!----------------------------------------------------------------------
-   !!   'key_ice_lim' :                                   LIM sea-ice model
+   !!   'key_lim2' :                                  LIM 2.0 sea-ice model
    !!----------------------------------------------------------------------
    !!----------------------------------------------------------------------
-   !!   ice_init       : sea-ice model initialization
-   !!   ice_run        : Definition some run parameter for ice model
+   !!   ice_init_2       : sea-ice model initialization
+   !!   ice_run_2        : Definition some run parameter for ice model
    !!----------------------------------------------------------------------
    USE dom_oce
-   USE dom_ice
+   USE dom_ice_2
    USE in_out_manager
    USE ice_oce         ! ice variables
@@ -22,8 +22,8 @@
    USE phycst          ! Define parameters for the routines
    USE ocfzpt
-   USE ice
-   USE limmsh
-   USE limistate
-   USE limrst   
+   USE ice_2
+   USE limmsh_2
+   USE limistate_2
+   USE limrst_2   
    USE ini1d           ! initialization of the 1D configuration
       
@@ -31,5 +31,5 @@
    PRIVATE
 
-   PUBLIC   ice_init                 ! called by opa.F90
+   PUBLIC   ice_init_2               ! called by opa.F90
 
    LOGICAL , PUBLIC               ::   ln_limdyn = .TRUE.   !: flag for ice dynamics (T) or not (F)
@@ -46,7 +46,7 @@
 CONTAINS
 
-   SUBROUTINE ice_init
+   SUBROUTINE ice_init_2
       !!----------------------------------------------------------------------
-      !!                  ***  ROUTINE ice_init  ***
+      !!                  ***  ROUTINE ice_init_2  ***
       !!
       !! ** purpose :   
@@ -59,5 +59,5 @@
       CALL ctlopn(numnam_ice,namelist_icename,'OLD', 'FORMATTED', 'SEQUENTIAL',   &
                      1,numout,.FALSE.,1)      
-      CALL ice_run                    !  read in namelist some run parameters
+      CALL ice_run_2                    !  read in namelist some run parameters
                  
       ! Louvain la Neuve Ice model
@@ -70,11 +70,11 @@
       ENDIF
 
-      CALL lim_msh                    ! ice mesh initialization
+      CALL lim_msh_2                  ! ice mesh initialization
      
       ! Initial sea-ice state
       IF( .NOT.ln_rstart ) THEN
-         CALL lim_istate              ! start from rest: sea-ice deduced from sst
+         CALL lim_istate_2            ! start from rest: sea-ice deduced from sst
       ELSE
-         CALL lim_rst_read            ! start from a restart file
+         CALL lim_rst_read_2          ! start from a restart file
       ENDIF
       
@@ -85,10 +85,10 @@
 # endif
       !
-   END SUBROUTINE ice_init
+   END SUBROUTINE ice_init_2
 
 
-   SUBROUTINE ice_run
+   SUBROUTINE ice_run_2
       !!-------------------------------------------------------------------
-      !!                  ***  ROUTINE ice_run ***
+      !!                  ***  ROUTINE ice_run_2 ***
       !!                 
       !! ** Purpose :   Definition some run parameter for ice model
@@ -118,15 +118,15 @@
       ENDIF
       !
-   END SUBROUTINE ice_run
+   END SUBROUTINE ice_run_2
 
 #else
    !!----------------------------------------------------------------------
-   !!   Default option :        Empty module           NO LIM sea-ice model
+   !!   Default option :        Empty module       NO LIM 2.0 sea-ice model
    !!----------------------------------------------------------------------
 CONTAINS
-   SUBROUTINE ice_init        ! Empty routine
-   END SUBROUTINE ice_init
+   SUBROUTINE ice_init_2      ! Empty routine
+   END SUBROUTINE ice_init_2
 #endif
 
    !!======================================================================
-END MODULE iceini
+END MODULE iceini_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/icestp.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/icestp.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/icestp.F90	(revision 821)
@@ -1,5 +1,5 @@
-MODULE icestp
+MODULE icestp_2
    !!======================================================================
-   !!                       ***  MODULE icestp   ***
+   !!                       ***  MODULE icestp_2   ***
    !!   Sea-Ice model : LIM Sea ice model time-stepping
    !!======================================================================
@@ -8,10 +8,10 @@
    !!   2.0  !  02-09  (G. Madec, C. Ethe)  F90: Free form and module
    !!----------------------------------------------------------------------
-#if defined key_ice_lim
-   !!----------------------------------------------------------------------
-   !!   'key_ice_lim' :                                   Lim sea-ice model
-   !!----------------------------------------------------------------------
-   !!----------------------------------------------------------------------
-   !!   ice_stp       : sea-ice model time-stepping
+#if defined key_lim2
+   !!----------------------------------------------------------------------
+   !!   'key_lim2' :                                  LIM 2.0 sea-ice model
+   !!----------------------------------------------------------------------
+   !!----------------------------------------------------------------------
+   !!   ice_stp_2       : sea-ice model time-stepping
    !!----------------------------------------------------------------------
    USE dom_oce
@@ -20,20 +20,20 @@
    USE ice_oce         ! ice variables
    USE flx_oce         ! forcings variables
-   USE dom_ice
+   USE dom_ice_2
    USE cpl_oce
    USE daymod
    USE phycst          ! Define parameters for the routines
    USE taumod
-   USE ice
+   USE ice_2
    USE ocesbc
    USE lbclnk
-   USE limdyn
-   USE limtrp
-   USE limthd
-   USE limflx
-   USE limdia
-   USE limwri
-   USE limrst
-   USE limdmp          ! Ice damping
+   USE limdyn_2
+   USE limtrp_2
+   USE limthd_2
+   USE limflx_2
+   USE limdia_2
+   USE limwri_2
+   USE limrst_2
+   USE limdmp_2        ! Ice damping
    USE prtctl          ! Print control
 
@@ -41,5 +41,5 @@
    PRIVATE
 
-   PUBLIC   ice_stp    ! called by step.F90
+   PUBLIC   ice_stp_2  ! called by step.F90
 
    !! * Substitutions
@@ -54,7 +54,7 @@
 CONTAINS
 
-   SUBROUTINE ice_stp ( kt )
+   SUBROUTINE ice_stp_2 ( kt )
       !!---------------------------------------------------------------------
-      !!                  ***  ROUTINE ice_stp  ***
+      !!                  ***  ROUTINE ice_stp_2  ***
       !!                   
       !! ** Purpose :   Louvain la Neuve Sea Ice Model time stepping 
@@ -196,9 +196,9 @@
 
          !                                                           !-----------------------!
-         CALL lim_rst_opn( kt )                                   ! Open Ice restart file !
+         CALL lim_rst_opn_2( kt )                                    ! Open Ice restart file !
          !                                                           !-----------------------!
 
          !                                                           !--------------!
-         CALL lim_dyn( kt )                                          ! Ice dynamics !   ( rheology/dynamics )
+         CALL lim_dyn_2( kt )                                        ! Ice dynamics !   ( rheology/dynamics )
          !                                                           !--------------!
          IF(ln_ctl) THEN
@@ -209,5 +209,5 @@
 
          !                                                           !---------------!
-         CALL lim_trp( kt )                                          ! Ice transport !  ( Advection/diffusion )
+         CALL lim_trp_2( kt )                                        ! Ice transport !  ( Advection/diffusion )
          !                                                           !---------------!
          IF(ln_ctl) THEN
@@ -220,11 +220,11 @@
          !                                                           !-------------!
 #if defined key_agrif
-            IF( Agrif_Root() )   CALL lim_dmp(kt)
+            IF( Agrif_Root() )   CALL lim_dmp_2(kt)
 #else
-            CALL lim_dmp(kt)                                         
+            CALL lim_dmp_2(kt)                                         
 #endif
          ENDIF
          !                                                           !--------------------!
-         CALL lim_thd( kt )                                          ! Ice thermodynamics !
+         CALL lim_thd_2( kt )                                        ! Ice thermodynamics !
          !                                                           !--------------------!
          IF(ln_ctl) THEN
@@ -236,17 +236,17 @@
          ! Mass and heat fluxes from ice to ocean
          !                                                           !------------------------------!
-         CALL lim_flx                                                ! Ice/Ocean Mass & Heat fluxes !
+         CALL lim_flx_2                                              ! Ice/Ocean Mass & Heat fluxes !
          !                                                           !------------------------------!
 
          IF( MOD( kt + nfice -1, ninfo ) == 0 .OR. ntmoy == 1 )  THEN        !-----------------!
-            CALL lim_dia( kt )                                    ! Ice Diagnostics !
-         ENDIF                                                       !-----------------!
-
-         !                                                           !-------------!
-         CALL lim_wri( kt )                                          ! Ice outputs !
+            CALL lim_dia_2( kt )                                             ! Ice Diagnostics !
+         ENDIF                                                               !-----------------!
+
+         !                                                           !-------------!
+         CALL lim_wri_2( kt )                                        ! Ice outputs !
          !                                                           !-------------!
 
          !                                                           !------------------------!
-         IF( lrst_ice ) CALL lim_rst_write( kt )                  ! Write Ice restart file !
+         IF( lrst_ice ) CALL lim_rst_write_2( kt )                   ! Write Ice restart file !
          !                                                           !------------------------!
 
@@ -271,16 +271,16 @@
       ENDIF
       !
-   END SUBROUTINE ice_stp
+   END SUBROUTINE ice_stp_2
 
 #else
    !!----------------------------------------------------------------------
-   !!   Default option           Dummy module          NO LIM sea-ice model
+   !!   Default option           Dummy module      NO LIM 2.0 sea-ice model
    !!----------------------------------------------------------------------
 CONTAINS
-   SUBROUTINE ice_stp ( kt )     ! Dummy routine
-      WRITE(*,*) 'ice_stp: You should not have seen this print! error?', kt
-   END SUBROUTINE ice_stp
+   SUBROUTINE ice_stp_2 ( kt )     ! Dummy routine
+      WRITE(*,*) 'ice_stp_2: You should not have seen this print! error?', kt
+   END SUBROUTINE ice_stp_2
 #endif
 
    !!======================================================================
-END MODULE icestp
+END MODULE icestp_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/limadv.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/limadv.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/limadv.F90	(revision 821)
@@ -1,17 +1,17 @@
-MODULE limadv 
+MODULE limadv_2 
    !!======================================================================
-   !!                       ***  MODULE limadv   ***
-   !! LIM sea-ice model : sea-ice advection
+   !!                       ***  MODULE limadv_2   ***
+   !! LIM 2.0 sea-ice model : sea-ice advection
    !!======================================================================
-#if defined key_ice_lim
-   !!----------------------------------------------------------------------
-   !!   'key_ice_lim'                                     LIM sea-ice model
-   !!----------------------------------------------------------------------
-   !!   lim_adv_x  : advection of sea ice on x axis
-   !!   lim_adv_y  : advection of sea ice on y axis
+#if defined key_lim2
+   !!----------------------------------------------------------------------
+   !!   'key_lim2'                                    LIM 2.0 sea-ice model
+   !!----------------------------------------------------------------------
+   !!   lim_adv_x_2  : advection of sea ice on x axis
+   !!   lim_adv_y_2  : advection of sea ice on y axis
    !!----------------------------------------------------------------------
    !! * Modules used
    USE dom_oce
-   USE dom_ice
+   USE dom_ice_2
    USE ice_oce         ! ice variables
    USE in_out_manager  ! I/O manager
@@ -23,6 +23,6 @@
 
    !! * Routine accessibility
-   PUBLIC lim_adv_x    ! called by lim_trp
-   PUBLIC lim_adv_y    ! called by lim_trp
+   PUBLIC lim_adv_x_2    ! called by lim_trp
+   PUBLIC lim_adv_y_2    ! called by lim_trp
 
    !! * Module variables
@@ -39,8 +39,8 @@
 CONTAINS
 
-   SUBROUTINE lim_adv_x( pdf, put , pcrh, psm , ps0 ,   &
-      &                  psx, psxx, psy , psyy, psxy )
+   SUBROUTINE lim_adv_x_2( pdf, put , pcrh, psm , ps0 ,   &
+      &                    psx, psxx, psy , psyy, psxy )
       !!---------------------------------------------------------------------
-      !!                **  routine lim_adv_x  **
+      !!                **  routine lim_adv_x_2  **
       !!  
       !! ** purpose :   Computes and adds the advection trend to sea-ice
@@ -232,11 +232,11 @@
       ENDIF
 
-   END SUBROUTINE lim_adv_x
-
-
-   SUBROUTINE lim_adv_y( pdf, pvt , pcrh, psm , ps0 ,   &
-      &                  psx, psxx, psy , psyy, psxy )
+   END SUBROUTINE lim_adv_x_2
+
+
+   SUBROUTINE lim_adv_y_2( pdf, pvt , pcrh, psm , ps0 ,   &
+      &                    psx, psxx, psy , psyy, psxy )
       !!---------------------------------------------------------------------
-      !!                **  routine lim_adv_y  **
+      !!                **  routine lim_adv_y_2  **
       !!            
       !! ** purpose :   Computes and adds the advection trend to sea-ice 
@@ -432,17 +432,17 @@
       ENDIF
 
-   END SUBROUTINE lim_adv_y
+   END SUBROUTINE lim_adv_y_2
 
 #else
    !!----------------------------------------------------------------------
-   !!   Default option            Dummy module         NO LIM sea-ice model
+   !!   Default option            Dummy module     NO LIM 2.0 sea-ice model
    !!----------------------------------------------------------------------
 CONTAINS
-   SUBROUTINE lim_adv_x         ! Empty routine
-   END SUBROUTINE lim_adv_x
-   SUBROUTINE lim_adv_y           ! Empty routine
-   END SUBROUTINE lim_adv_y
+   SUBROUTINE lim_adv_x_2         ! Empty routine
+   END SUBROUTINE lim_adv_x_2
+   SUBROUTINE lim_adv_y_2         ! Empty routine
+   END SUBROUTINE lim_adv_y_2
 
 #endif
 
-END MODULE limadv
+END MODULE limadv_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/limdia.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/limdia.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/limdia.F90	(revision 821)
@@ -1,5 +1,5 @@
-MODULE limdia
+MODULE limdia_2
    !!======================================================================
-   !!                       ***  MODULE limdia   ***
+   !!                       ***  MODULE limdia_2   ***
    !!                      diagnostics of ice model 
    !!======================================================================
@@ -8,19 +8,19 @@
    !!             9.0  !  06-08  (S. Masson)  change frequency output control
    !!-------------------------------------------------------------------
-#if defined key_ice_lim
-   !!----------------------------------------------------------------------
-   !!   'key_ice_lim' :                                   LIM sea-ice model
-   !!----------------------------------------------------------------------
-   !!----------------------------------------------------------------------
-   !!   lim_dia      : computation of the time evolution of keys var.
-   !!   lim_dia_init : initialization and namelist read
+#if defined key_lim2
+   !!----------------------------------------------------------------------
+   !!   'key_lim2' :                                  LIM 2.0 sea-ice model
+   !!----------------------------------------------------------------------
+   !!----------------------------------------------------------------------
+   !!   lim_dia_2      : computation of the time evolution of keys var.
+   !!   lim_dia_init_2 : initialization and namelist read
    !!----------------------------------------------------------------------
    USE phycst          ! 
-   USE par_ice         ! ice parameters
+   USE par_ice_2       ! ice parameters
    USE ice_oce         ! ice variables
    USE daymod          !
-   USE dom_ice         !
-   USE ice             !
-   USE limistate       !
+   USE dom_ice_2       !
+   USE ice_2           !
+   USE limistate_2     !
    USE in_out_manager  ! I/O manager
 
@@ -28,5 +28,5 @@
    PRIVATE
 
-   PUBLIC               lim_dia            ! called by ice_step
+   PUBLIC               lim_dia_2          ! called by ice_step
    INTEGER, PUBLIC ::   ntmoy   = 1 ,   &  !: instantaneous values of ice evolution or averaging ntmoy
       &                 ninfo   = 1        !: frequency of ouputs on file ice_evolu in case of averaging
@@ -64,7 +64,7 @@
 CONTAINS
 
-   SUBROUTINE lim_dia( kt )
+   SUBROUTINE lim_dia_2( kt )
       !!--------------------------------------------------------------------
-      !!                  ***  ROUTINE lim_dia  ***
+      !!                  ***  ROUTINE lim_dia_2  ***
       !!   
       !! ** Purpose : Computation and outputs on file ice.evolu 
@@ -82,5 +82,5 @@
       !!-------------------------------------------------------------------
 
-      IF( kt == nit000 )   CALL lim_dia_init   ! initialisation of ice_evolu file      
+      IF( kt == nit000 )   CALL lim_dia_init_2  ! initialisation of ice_evolu file      
 
       ! computation of key variables at each time step   
@@ -162,10 +162,10 @@
        ENDIF
        !
-    END SUBROUTINE lim_dia
+    END SUBROUTINE lim_dia_2
  
 
-    SUBROUTINE lim_dia_init
+    SUBROUTINE lim_dia_init_2
        !!-------------------------------------------------------------------
-       !!                  ***  ROUTINE lim_dia_init  ***
+       !!                  ***  ROUTINE lim_dia_init_2  ***
        !!             
        !! ** Purpose : Preparation of the file ice_evolu for the output of
@@ -190,6 +190,6 @@
        IF(lwp) THEN
           WRITE(numout,*)
-          WRITE(numout,*) 'lim_dia_init : ice parameters for ice diagnostics '
-          WRITE(numout,*) '~~~~~~~~~~~~'
+          WRITE(numout,*) 'lim_dia_init_2 : ice parameters for ice diagnostics '
+          WRITE(numout,*) '~~~~~~~~~~~~~~'
           WRITE(numout,*) '   format of the output values                                 fmtinf = ', fmtinf
           WRITE(numout,*) '   number of variables written in one line                     nfrinf = ', nfrinf 
@@ -274,15 +274,15 @@
 1111   FORMAT( 3(F7.1,1X,F7.3,1X),I3,A )  
       !
-    END SUBROUTINE lim_dia_init
+    END SUBROUTINE lim_dia_init_2
 
 #else
    !!----------------------------------------------------------------------
-   !!   Default option :                               NO LIM sea-ice model
+   !!   Default option :                           NO LIM 2.0 sea-ice model
    !!----------------------------------------------------------------------
 CONTAINS
-   SUBROUTINE lim_dia         ! Empty routine
-   END SUBROUTINE lim_dia
+   SUBROUTINE lim_dia_2         ! Empty routine
+   END SUBROUTINE lim_dia_2
 #endif
 
    !!======================================================================
-END MODULE limdia
+END MODULE limdia_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/limdmp.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/limdmp.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/limdmp.F90	(revision 821)
@@ -1,20 +1,20 @@
-MODULE limdmp
+MODULE limdmp_2
    !!======================================================================
-   !!                       ***  MODULE limdmp   ***
+   !!                       ***  MODULE limdmp_2   ***
    !!  Ice model : restoring Ice thickness and Fraction leads
    !!======================================================================
    !! History :   2.0  !  04-04 (S. Theetten) Original code
    !!----------------------------------------------------------------------
-#if defined key_ice_lim   &&   defined key_tradmp
+#if defined key_lim2   &&   defined key_tradmp
    !!----------------------------------------------------------------------
-   !!   'key_ice_lim'  AND                                LIM sea-ice model
+   !!   'key_lim2'  AND                               LIM 2.0 sea-ice model
    !!   'key_tradmp'                                                Damping
    !!----------------------------------------------------------------------
    !!----------------------------------------------------------------------
-   !!   lim_dmp      : ice model damping
+   !!   lim_dmp_2      : ice model damping
    !!----------------------------------------------------------------------
    USE in_out_manager  ! I/O manager
    USE phycst          ! physical constants
-   USE ice
+   USE ice_2
    USE ice_oce
    USE tradmp
@@ -27,5 +27,5 @@
    PRIVATE
 
-   PUBLIC   lim_dmp     ! called by ice_step
+   PUBLIC   lim_dmp_2     ! called by ice_step_2
    
    INTEGER                        ::   nice1, nice2,  &  ! first and second record used
@@ -46,7 +46,7 @@
 CONTAINS
 
-   SUBROUTINE lim_dmp(kt)
+   SUBROUTINE lim_dmp_2(kt)
       !!-------------------------------------------------------------------
-      !!                   ***  ROUTINE lim_dmp ***
+      !!                   ***  ROUTINE lim_dmp_2 ***
       !!
       !! ** purpose : ice model damping : restoring ice thickness and 
@@ -60,5 +60,5 @@
       !!---------------------------------------------------------------------
       !
-      CALL dta_lim( kt )
+      CALL dta_lim_2( kt )
 
       DO jj = 2, jpjm1
@@ -69,10 +69,10 @@
       END DO
       !
-   END SUBROUTINE lim_dmp
+   END SUBROUTINE lim_dmp_2
 
 
-   SUBROUTINE dta_lim( kt ) 
+   SUBROUTINE dta_lim_2( kt ) 
       !!----------------------------------------------------------------------
-      !!                   ***  ROUTINE dta_lim  ***
+      !!                   ***  ROUTINE dta_lim_2  ***
       !!
       !! ** Purpose :   Reads monthly ice thickness and fraction lead  data
@@ -167,5 +167,5 @@
       IF( kt == nitend )   CALL iom_close( inumice_dmp )
       !
-   END SUBROUTINE dta_lim
+   END SUBROUTINE dta_lim_2
 
 #else
@@ -174,9 +174,9 @@
    !!----------------------------------------------------------------------
 CONTAINS
-   SUBROUTINE lim_dmp( kt )        ! Dummy routine
-      WRITE(*,*) 'lim_dmp: You should not see this print! error? ', kt
-   END SUBROUTINE lim_dmp
+   SUBROUTINE lim_dmp_2( kt )        ! Dummy routine
+      WRITE(*,*) 'lim_dmp_2: You should not see this print! error? ', kt
+   END SUBROUTINE lim_dmp_2
 #endif
 
    !!======================================================================
-END MODULE limdmp
+END MODULE limdmp_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/limdyn.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/limdyn.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/limdyn.F90	(revision 821)
@@ -1,24 +1,24 @@
-MODULE limdyn
+MODULE limdyn_2
    !!======================================================================
-   !!                     ***  MODULE  limdyn  ***
+   !!                     ***  MODULE  limdyn_2  ***
    !!   Sea-Ice dynamics :  
    !!======================================================================
-#if defined key_ice_lim
-   !!----------------------------------------------------------------------
-   !!   'key_ice_lim' :                                   LIM sea-ice model
-   !!----------------------------------------------------------------------
-   !!    lim_dyn      : computes ice velocities
-   !!    lim_dyn_init : initialization and namelist read
+#if defined key_lim2
+   !!----------------------------------------------------------------------
+   !!   'key_lim2' :                                  LIM 2.0 sea-ice model
+   !!----------------------------------------------------------------------
+   !!    lim_dyn_2      : computes ice velocities
+   !!    lim_dyn_init_2 : initialization and namelist read
    !!----------------------------------------------------------------------
    !! * Modules used
    USE phycst
    USE in_out_manager  ! I/O manager
-   USE dom_ice
+   USE dom_ice_2
    USE dom_oce         ! ocean space and time domain
-   USE ice
+   USE ice_2
    USE ice_oce
-   USE iceini
-   USE limistate
-   USE limrhg          ! ice rheology
+   USE iceini_2
+   USE limistate_2
+   USE limrhg_2        ! ice rheology
    USE lbclnk
    USE lib_mpp
@@ -29,5 +29,5 @@
 
    !! * Accessibility
-   PUBLIC lim_dyn  ! routine called by ice_step
+   PUBLIC lim_dyn_2  ! routine called by ice_step
 
    !! * Module variables
@@ -42,7 +42,7 @@
 CONTAINS
 
-   SUBROUTINE lim_dyn( kt )
+   SUBROUTINE lim_dyn_2( kt )
       !!-------------------------------------------------------------------
-      !!               ***  ROUTINE lim_dyn  ***
+      !!               ***  ROUTINE lim_dyn_2  ***
       !!               
       !! ** Purpose :   compute ice velocity and ocean-ice stress
@@ -74,5 +74,5 @@
       !!---------------------------------------------------------------------
 
-      IF( kt == nit000  )   CALL lim_dyn_init   ! Initialization (first time-step only)
+      IF( kt == nit000  )   CALL lim_dyn_init_2   ! Initialization (first time-step only)
       
       IF ( ln_limdyn ) THEN
@@ -97,5 +97,5 @@
                CALL prt_ctl_info('lim_dyn  :    i_j1 = ', ivar1=i_j1, clinfo2=' ij_jpj = ', ivar2=i_jpj)
             ENDIF
-            CALL lim_rhg( i_j1, i_jpj )
+            CALL lim_rhg_2( i_j1, i_jpj )
 
          ELSE                                 ! optimization of the computational area
@@ -119,5 +119,5 @@
                IF(ln_ctl)   WRITE(numout,*) 'lim_dyn : NH i_j1 = ', i_j1, ' ij_jpj = ', i_jpj
     
-               CALL lim_rhg( i_j1, i_jpj )
+               CALL lim_rhg_2( i_j1, i_jpj )
     
                ! Southern hemisphere
@@ -130,5 +130,5 @@
                IF(ln_ctl)   WRITE(numout,*) 'lim_dyn : SH i_j1 = ', i_j1, ' ij_jpj = ', i_jpj
     
-               CALL lim_rhg( i_j1, i_jpj )
+               CALL lim_rhg_2( i_j1, i_jpj )
     
             ELSE                                 ! local domain extends over one hemisphere only
@@ -149,5 +149,5 @@
                IF(ln_ctl)   WRITE(numout,*) 'lim_dyn : one hemisphere: i_j1 = ', i_j1, ' ij_jpj = ', i_jpj
     
-               CALL lim_rhg( i_j1, i_jpj )
+               CALL lim_rhg_2( i_j1, i_jpj )
 
             ENDIF
@@ -250,10 +250,10 @@
       ENDIF
 
-   END SUBROUTINE lim_dyn
-
-
-   SUBROUTINE lim_dyn_init
+   END SUBROUTINE lim_dyn_2
+
+
+   SUBROUTINE lim_dyn_init_2
       !!-------------------------------------------------------------------
-      !!                  ***  ROUTINE lim_dyn_init  ***
+      !!                  ***  ROUTINE lim_dyn_init_2  ***
       !!
       !! ** Purpose : Physical constants and parameters linked to the ice
@@ -281,6 +281,6 @@
       IF(lwp) THEN
          WRITE(numout,*)
-         WRITE(numout,*) 'lim_dyn_init : ice parameters for ice dynamics '
-         WRITE(numout,*) '~~~~~~~~~~~~'
+         WRITE(numout,*) 'lim_dyn_init_2: ice parameters for ice dynamics '
+         WRITE(numout,*) '~~~~~~~~~~~~~~'
          WRITE(numout,*) '       tolerance parameter                              epsd   = ', epsd
          WRITE(numout,*) '       coefficient for semi-implicit coriolis           alpha  = ', alpha
@@ -313,15 +313,15 @@
       ahiv(:,:) = ahi0 * vmask(:,:,1)
 
-   END SUBROUTINE lim_dyn_init
+   END SUBROUTINE lim_dyn_init_2
 
 #else
    !!----------------------------------------------------------------------
-   !!   Default option          Empty module           NO LIM sea-ice model
+   !!   Default option          Empty module       NO LIM 2.0 sea-ice model
    !!----------------------------------------------------------------------
 CONTAINS
-   SUBROUTINE lim_dyn         ! Empty routine
-   END SUBROUTINE lim_dyn
+   SUBROUTINE lim_dyn_2         ! Empty routine
+   END SUBROUTINE lim_dyn_2
 #endif 
 
    !!======================================================================
-END MODULE limdyn
+END MODULE limdyn_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/limflx.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/limflx.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/limflx.F90	(revision 821)
@@ -1,12 +1,12 @@
-MODULE limflx
+MODULE limflx_2
    !!======================================================================
-   !!                       ***  MODULE limflx   ***
+   !!                       ***  MODULE limflx_2   ***
    !!           computation of the flux at the sea ice/ocean interface
    !!======================================================================
-#if defined key_ice_lim
-   !!----------------------------------------------------------------------
-   !!   'key_ice_lim'                                     LIM sea-ice model
-   !!----------------------------------------------------------------------
-   !!   lim_flx  : flux at the ice / ocean interface
+#if defined key_lim2
+   !!----------------------------------------------------------------------
+   !!   'key_lim2'                                    LIM 2.0 sea-ice model
+   !!----------------------------------------------------------------------
+   !!   lim_flx_2  : flux at the ice / ocean interface
    !!----------------------------------------------------------------------
    !! * Modules used
@@ -16,9 +16,9 @@
    USE ice_oce          ! sea-ice variable
    USE flx_oce          ! sea-ice/ocean forcings variables
-   USE ice              ! LIM sea-ice variables
-   USE flxblk           ! bulk formulea
+   USE ice_2             ! LIM sea-ice variables
+   USE flxblk_2           ! bulk formulea
    USE lbclnk           ! ocean lateral boundary condition
    USE in_out_manager   ! I/O manager
-   USE albedo           ! albedo parameters
+   USE albedo_2         ! albedo parameters
    USE prtctl           ! Print control
 
@@ -27,5 +27,5 @@
 
    !! * Routine accessibility
-   PUBLIC lim_flx       ! called by lim_step
+   PUBLIC lim_flx_2     ! called by lim_step_2
 
    !! * Module variables
@@ -44,7 +44,7 @@
 CONTAINS
 
-   SUBROUTINE lim_flx
+   SUBROUTINE lim_flx_2
       !!-------------------------------------------------------------------
-      !!                ***  ROUTINE lim_flx ***
+      !!                ***  ROUTINE lim_flx_2 ***
       !!  
       !! ** Purpose : Computes the mass and heat fluxes to the ocean
@@ -193,5 +193,5 @@
       !  2) Computation of snow/ice and ocean albedo   !
       !------------------------------------------------!
-      CALL flx_blk_albedo( zalb, zalcn, zalbp, zaldum )
+      CALL flx_blk_albedo_2( zalb, zalcn, zalbp, zaldum )
 
       alb_ice(:,:) =  0.5 * zalbp(:,:) + 0.5 * zalb (:,:)   ! Ice albedo                       
@@ -205,15 +205,15 @@
       ENDIF 
    
-    END SUBROUTINE lim_flx
+    END SUBROUTINE lim_flx_2
 
 #else
    !!----------------------------------------------------------------------
-   !!   Default option :        Dummy module           NO LIM sea-ice model
+   !!   Default option :        Dummy module       NO LIM 2.0 sea-ice model
    !!----------------------------------------------------------------------
 CONTAINS
-   SUBROUTINE lim_flx         ! Dummy routine
-   END SUBROUTINE lim_flx
+   SUBROUTINE lim_flx_2       ! Dummy routine
+   END SUBROUTINE lim_flx_2
 #endif 
 
    !!======================================================================
-END MODULE limflx
+END MODULE limflx_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/limhdf.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/limhdf.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/limhdf.F90	(revision 821)
@@ -1,12 +1,12 @@
-MODULE limhdf
+MODULE limhdf_2
    !!======================================================================
-   !!                    ***  MODULE limhdf   ***
-   !! LIM ice model : horizontal diffusion of sea-ice quantities
+   !!                    ***  MODULE limhdf_2   ***
+   !! LIM 2.0 ice model : horizontal diffusion of sea-ice quantities
    !!======================================================================
-#if defined key_ice_lim
+#if defined key_lim2
    !!----------------------------------------------------------------------
-   !!   'key_ice_lim'                                     LIM sea-ice model
+   !!   'key_lim2'  i                                 LIM 2.0 sea-ice model
    !!----------------------------------------------------------------------
-   !!   lim_hdf  : diffusion trend on sea-ice variable
+   !!   lim_hdf_2  : diffusion trend on sea-ice variable
    !!----------------------------------------------------------------------
    !! * Modules used
@@ -14,5 +14,5 @@
    USE ice_oce         ! ice variables
    USE in_out_manager
-   USE ice
+   USE ice_2
    USE lbclnk
    USE lib_mpp
@@ -23,5 +23,5 @@
 
    !! * Routine accessibility
-   PUBLIC lim_hdf    ! called by lim_tra
+   PUBLIC lim_hdf_2    ! called by lim_tra_2
 
    !! * Module variables
@@ -40,7 +40,7 @@
 CONTAINS
 
-   SUBROUTINE lim_hdf( ptab )
+   SUBROUTINE lim_hdf_2( ptab )
       !!-------------------------------------------------------------------
-      !!                  ***  ROUTINE lim_hdf  ***
+      !!                  ***  ROUTINE lim_hdf_2  ***
       !!
       !! ** purpose :   Compute and add the diffusive trend on sea-ice
@@ -171,15 +171,15 @@
       ENDIF
 
-   END SUBROUTINE lim_hdf
+   END SUBROUTINE lim_hdf_2
 
 #else
    !!----------------------------------------------------------------------
-   !!   Default option          Dummy module           NO LIM sea-ice model
+   !!   Default option          Dummy module       NO LIM 2.0 sea-ice model
    !!----------------------------------------------------------------------
 CONTAINS
-   SUBROUTINE lim_hdf         ! Empty routine
-   END SUBROUTINE lim_hdf
+   SUBROUTINE lim_hdf_2       ! Empty routine
+   END SUBROUTINE lim_hdf_2
 #endif
 
    !!======================================================================
-END MODULE limhdf
+END MODULE limhdf_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/limistate.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/limistate.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/limistate.F90	(revision 821)
@@ -1,5 +1,5 @@
-MODULE limistate
+MODULE limistate_2
    !!======================================================================
-   !!                     ***  MODULE  limistate  ***
+   !!                     ***  MODULE  limistate_2  ***
    !!              Initialisation of diagnostics ice variables
    !!======================================================================
@@ -8,11 +8,11 @@
    !!                  !  06-07  (S. Masson)  IOM to read the restart
    !!--------------------------------------------------------------------
-#if defined key_ice_lim
-   !!----------------------------------------------------------------------
-   !!   'key_ice_lim' :                                   LIM sea-ice model
-   !!----------------------------------------------------------------------
-   !!----------------------------------------------------------------------
-   !!   lim_istate      :  Initialisation of diagnostics ice variables
-   !!   lim_istate_init :  initialization of ice state and namelist read
+#if defined key_lim2
+   !!----------------------------------------------------------------------
+   !!   'key_lim2' :                                  LIM 2.0 sea-ice model
+   !!----------------------------------------------------------------------
+   !!----------------------------------------------------------------------
+   !!   lim_istate_2      :  Initialisation of diagnostics ice variables
+   !!   lim_istate_init_2 :  initialization of ice state and namelist read
    !!----------------------------------------------------------------------
    USE phycst
@@ -20,10 +20,9 @@
    USE oce             ! dynamics and tracers variables      !!gm used???
    USE dom_oce                                                     !!gm used???
-   USE par_ice         ! ice parameters
+   USE par_ice_2       ! ice parameters
    USE ice_oce         ! ice variables
-   USE dom_ice
-   USE ice             ! ???
+   USE dom_ice_2
    USE lbclnk
-   USE ice
+   USE ice_2
    USE iom
    USE in_out_manager
@@ -32,5 +31,5 @@
    PRIVATE
 
-   PUBLIC lim_istate      ! routine called by lim_init.F90
+   PUBLIC lim_istate_2      ! routine called by lim_init_2.F90
 
    REAL(wp) ::           &  !!! ** init namelist (namiceini) **
@@ -54,7 +53,7 @@
 CONTAINS
 
-   SUBROUTINE lim_istate
-      !!-------------------------------------------------------------------
-      !!                    ***  ROUTINE lim_istate  ***
+   SUBROUTINE lim_istate_2
+      !!-------------------------------------------------------------------
+      !!                    ***  ROUTINE lim_istate_2  ***
       !!
       !! ** Purpose :   defined the sea-ice initial state
@@ -68,5 +67,5 @@
       !--------------------------------------------------------------------
 
-       CALL lim_istate_init     !  reading the initials parameters of the ice
+       CALL lim_istate_init_2   !  reading the initials parameters of the ice
 
       !-- Initialisation of sst,sss,u,v do i=1,jpi
@@ -200,10 +199,10 @@
       CALL lbc_lnk( sss_io , 'T', 1. )
       !
-   END SUBROUTINE lim_istate
+   END SUBROUTINE lim_istate_2
 
    
-   SUBROUTINE lim_istate_init
-      !!-------------------------------------------------------------------
-      !!                   ***  ROUTINE lim_istate_init  ***
+   SUBROUTINE lim_istate_init_2
+      !!-------------------------------------------------------------------
+      !!                   ***  ROUTINE lim_istate_init_2  ***
       !!        
       !! ** Purpose :   Definition of initial state of the ice 
@@ -273,15 +272,15 @@
       ENDIF
       !
-   END SUBROUTINE lim_istate_init
+   END SUBROUTINE lim_istate_init_2
 
 #else
    !!----------------------------------------------------------------------
-   !!   Default option :         Empty module          NO LIM sea-ice model
+   !!   Default option :         Empty module      NO LIM 2.0 sea-ice model
    !!----------------------------------------------------------------------
 CONTAINS
-   SUBROUTINE lim_istate          ! Empty routine
-   END SUBROUTINE lim_istate
+   SUBROUTINE lim_istate_2        ! Empty routine
+   END SUBROUTINE lim_istate_2
 #endif
 
    !!======================================================================
-END MODULE limistate
+END MODULE limistate_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/limmsh.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/limmsh.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/limmsh.F90	(revision 821)
@@ -1,17 +1,17 @@
-MODULE limmsh
+MODULE limmsh_2
    !!======================================================================
-   !!                     ***  MODULE  limmsh  ***
-   !! LIM ice model :   definition of the ice mesh parameters
+   !!                     ***  MODULE  limmsh_2  ***
+   !! LIM 2.0 ice model :   definition of the ice mesh parameters
    !!======================================================================
-#if defined key_ice_lim
-   !!----------------------------------------------------------------------
-   !!   'key_ice_lim'                                     LIM sea-ice model
-   !!----------------------------------------------------------------------
-   !!   lim_msh   : definition of the ice mesh
+#if defined key_lim2
+   !!----------------------------------------------------------------------
+   !!   'key_lim2'                                     LIM 2.0sea-ice model
+   !!----------------------------------------------------------------------
+   !!   lim_msh_2   : definition of the ice mesh
    !!----------------------------------------------------------------------
    !! * Modules used
    USE phycst
    USE dom_oce
-   USE dom_ice
+   USE dom_ice_2
    USE lbclnk
    USE in_out_manager
@@ -21,5 +21,5 @@
 
    !! * Accessibility
-   PUBLIC lim_msh      ! routine called by ice_ini.F90
+   PUBLIC lim_msh_2      ! routine called by ice_ini_2.F90
 
    !!----------------------------------------------------------------------
@@ -31,7 +31,7 @@
 CONTAINS
 
-   SUBROUTINE lim_msh
+   SUBROUTINE lim_msh_2
       !!-------------------------------------------------------------------
-      !!                  ***  ROUTINE lim_msh  ***
+      !!                  ***  ROUTINE lim_msh_2  ***
       !!              
       !! ** Purpose : Definition of the charact. of the numerical grid
@@ -62,6 +62,6 @@
       IF(lwp) THEN
          WRITE(numout,*)
-         WRITE(numout,*) 'lim_msh : LIM sea-ice model, mesh initialization'
-         WRITE(numout,*) '~~~~~~~'
+         WRITE(numout,*) 'lim_msh_2 : LIM 2.0 sea-ice model, mesh initialization'
+         WRITE(numout,*) '~~~~~~~~~'
       ENDIF
       
@@ -245,5 +245,5 @@
       area(:,:) = e1t(:,:) * e2t(:,:)
       
-   END SUBROUTINE lim_msh
+   END SUBROUTINE lim_msh_2
 
 #else
@@ -252,8 +252,8 @@
    !!----------------------------------------------------------------------
 CONTAINS
-   SUBROUTINE lim_msh           ! Dummy routine
-   END SUBROUTINE lim_msh
+   SUBROUTINE lim_msh_2           ! Dummy routine
+   END SUBROUTINE lim_msh_2
 #endif
 
    !!======================================================================
-END MODULE limmsh
+END MODULE limmsh_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/limrhg.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/limrhg.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/limrhg.F90	(revision 821)
@@ -1,12 +1,12 @@
-MODULE limrhg
+MODULE limrhg_2
    !!======================================================================
-   !!                     ***  MODULE  limrhg  ***
+   !!                     ***  MODULE  limrhg_2  ***
    !!   Ice rheology :  performs sea ice rheology
    !!======================================================================
-#if defined key_ice_lim
+#if defined key_lim2
    !!----------------------------------------------------------------------
-   !!   'key_ice_lim'                                     LIM sea-ice model
+   !!   'key_lim2'                                    LIM 2.0 sea-ice model
    !!----------------------------------------------------------------------
-   !!   lim_rhg   : computes ice velocities
+   !!   lim_rhg_2   : computes ice velocities
    !!----------------------------------------------------------------------
    !! * Modules used
@@ -14,6 +14,6 @@
    USE par_oce
    USE ice_oce         ! ice variables
-   USE dom_ice
-   USE ice
+   USE dom_ice_2
+   USE ice_2
    USE lbclnk
    USE lib_mpp
@@ -25,5 +25,5 @@
 
    !! * Routine accessibility
-   PUBLIC lim_rhg  ! routine called by lim_dyn
+   PUBLIC lim_rhg_2  ! routine called by lim_dyn_2
 
    !! * Module variables
@@ -39,7 +39,7 @@
 CONTAINS
 
-   SUBROUTINE lim_rhg( k_j1, k_jpj )
+   SUBROUTINE lim_rhg_2( k_j1, k_jpj )
       !!-------------------------------------------------------------------
-      !!                 ***  SUBROUTINR lim_rhg  ***
+      !!                 ***  SUBROUTINR lim_rhg_2  ***
       !!
       !! ** purpose :   determines the velocity field of sea ice by using
@@ -650,16 +650,16 @@
       ENDIF
 
-   END SUBROUTINE lim_rhg
+   END SUBROUTINE lim_rhg_2
 
 #else
    !!----------------------------------------------------------------------
-   !!   Default option          Dummy module           NO LIM sea-ice model
+   !!   Default option          Dummy module       NO 2.0 LIM sea-ice model
    !!----------------------------------------------------------------------
 CONTAINS
-   SUBROUTINE lim_rhg( k1 , k2 )         ! Dummy routine
-      WRITE(*,*) 'lim_rhg: You should not have seen this print! error?', k1, k2
-   END SUBROUTINE lim_rhg
+   SUBROUTINE lim_rhg_2( k1 , k2 )       ! Dummy routine
+      WRITE(*,*) 'lim_rhg_2: You should not have seen this print! error?', k1, k2
+   END SUBROUTINE lim_rhg_2
 #endif
 
    !!==============================================================================
-END MODULE limrhg
+END MODULE limrhg_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/limrst.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/limrst.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/limrst.F90	(revision 821)
@@ -1,5 +1,5 @@
-MODULE limrst
+MODULE limrst_2
    !!======================================================================
-   !!                     ***  MODULE  limrst  ***
+   !!                     ***  MODULE  limrst_2  ***
    !! Ice restart :  write the ice restart file
    !!======================================================================
@@ -7,14 +7,14 @@
    !!                 !  06-07  (S. Masson)  use IOM for restart read/write
    !!----------------------------------------------------------------------
-#if defined key_ice_lim
-   !!----------------------------------------------------------------------
-   !!   'key_ice_lim' :                                   LIM sea-ice model
-   !!----------------------------------------------------------------------
-   !!----------------------------------------------------------------------
-   !!   lim_rst_opn   : open ice restart file
-   !!   lim_rst_write : write of the ice restart file 
-   !!   lim_rst_read  : read  the ice restart file 
-   !!----------------------------------------------------------------------
-   USE ice
+#if defined key_lim2
+   !!----------------------------------------------------------------------
+   !!   'key_lim2' :                                  LIM 2.0 sea-ice model
+   !!----------------------------------------------------------------------
+   !!----------------------------------------------------------------------
+   !!   lim_rst_opn_2   : open ice restart file
+   !!   lim_rst_write_2 : write of the ice restart file 
+   !!   lim_rst_read_2  : read  the ice restart file 
+   !!----------------------------------------------------------------------
+   USE ice_2
    USE dom_oce
    USE ice_oce         ! ice variables
@@ -27,7 +27,7 @@
    PRIVATE
 
-   PUBLIC   lim_rst_opn     ! routine called by ??? module
-   PUBLIC   lim_rst_write   ! routine called by ??? module
-   PUBLIC   lim_rst_read    ! routine called by ??? module
+   PUBLIC   lim_rst_opn_2     ! routine called by ??? module
+   PUBLIC   lim_rst_write_2   ! routine called by ??? module
+   PUBLIC   lim_rst_read_2    ! routine called by ??? module
 
    LOGICAL, PUBLIC ::   lrst_ice         !: logical to control the ice restart write 
@@ -42,7 +42,7 @@
 CONTAINS
 
-   SUBROUTINE lim_rst_opn( kt )
-      !!----------------------------------------------------------------------
-      !!                    ***  lim_rst_opn  ***
+   SUBROUTINE lim_rst_opn_2( kt )
+      !!----------------------------------------------------------------------
+      !!                    ***  lim_rst_opn_2  ***
       !!
       !! ** purpose  :   output of sea-ice variable in a netcdf file
@@ -82,9 +82,9 @@
       ENDIF
       !
-   END SUBROUTINE lim_rst_opn
-
-   SUBROUTINE lim_rst_write( kt )
-      !!----------------------------------------------------------------------
-      !!                    ***  lim_rst_write  ***
+   END SUBROUTINE lim_rst_opn_2
+
+   SUBROUTINE lim_rst_write_2( kt )
+      !!----------------------------------------------------------------------
+      !!                    ***  lim_rst_write_2  ***
       !!
       !! ** purpose  :   output of sea-ice variable in a netcdf file
@@ -99,5 +99,5 @@
       IF( iter == nitrst ) THEN
          IF(lwp) WRITE(numout,*)
-         IF(lwp) WRITE(numout,*) 'lim_rst_write : write ice restart file  kt =', kt
+         IF(lwp) WRITE(numout,*) 'lim_rst_write_2 : write ice restart file  kt =', kt
          IF(lwp) WRITE(numout,*) '~~~~~~~'         
       ENDIF
@@ -166,10 +166,10 @@
       ENDIF
       !
-   END SUBROUTINE lim_rst_write
-
-
-   SUBROUTINE lim_rst_read
-      !!----------------------------------------------------------------------
-      !!                    ***  lim_rst_read  ***
+   END SUBROUTINE lim_rst_write_2
+
+
+   SUBROUTINE lim_rst_read_2
+      !!----------------------------------------------------------------------
+      !!                    ***  lim_rst_read_2  ***
       !!
       !! ** purpose  :   read of sea-ice variable restart in a netcdf file
@@ -181,5 +181,5 @@
       IF(lwp) THEN
          WRITE(numout,*)
-         WRITE(numout,*) 'lim_rst_read : read ice NetCDF restart file'
+         WRITE(numout,*) 'lim_rst_read_2 : read ice NetCDF restart file'
          WRITE(numout,*) '~~~~~~~~'
       ENDIF
@@ -257,12 +257,12 @@
       CALL iom_close( numrir )
       !
-   END SUBROUTINE lim_rst_read
+   END SUBROUTINE lim_rst_read_2
 
 #else
    !!----------------------------------------------------------------------
-   !!   Default option :       Empty module            NO LIM sea-ice model
+   !!   Default option :       Empty module        NO LIM 2.0 sea-ice model
    !!----------------------------------------------------------------------
 #endif
 
    !!======================================================================
-END MODULE limrst
+END MODULE limrst_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/limtab.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/limtab.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/limtab.F90	(revision 821)
@@ -1,8 +1,8 @@
-MODULE limtab
+MODULE limtab_2
    !!======================================================================
-   !!                       ***  MODULE limtab   ***
+   !!                       ***  MODULE limtab_2   ***
    !!              transform 1D (2D) array to a 2D (1D) table
    !!======================================================================
-#if defined key_ice_lim
+#if defined key_lim2
    !!----------------------------------------------------------------------
    !!   tab_2d_1d  : 2-D to 1-D
@@ -16,6 +16,6 @@
 
    !! * Routine accessibility
-   PUBLIC tab_2d_1d  ! called by lim_ther
-   PUBLIC tab_1d_2d  ! called by lim_ther
+   PUBLIC tab_2d_1d_2  ! called by lim_ther
+   PUBLIC tab_1d_2d_2  ! called by lim_ther
 
    !!----------------------------------------------------------------------
@@ -26,5 +26,5 @@
 CONTAINS
 
-   SUBROUTINE tab_2d_1d ( ndim1d, tab1d, tab2d, ndim2d_x, ndim2d_y, tab_ind )
+   SUBROUTINE tab_2d_1d_2 ( ndim1d, tab1d, tab2d, ndim2d_x, ndim2d_y, tab_ind )
 
       INTEGER, INTENT(in) :: &
@@ -49,8 +49,8 @@
       END DO 
 
-   END SUBROUTINE tab_2d_1d
+   END SUBROUTINE tab_2d_1d_2
 
 
-   SUBROUTINE tab_1d_2d ( ndim1d, tab2d, tab_ind, tab1d, ndim2d_x, ndim2d_y )
+   SUBROUTINE tab_1d_2d_2 ( ndim1d, tab2d, tab_ind, tab1d, ndim2d_x, ndim2d_y )
 
       INTEGER, INTENT ( in) :: &
@@ -75,6 +75,6 @@
       END DO
 
-   END SUBROUTINE tab_1d_2d
+   END SUBROUTINE tab_1d_2d_2
 
 #endif
-END MODULE limtab
+END MODULE limtab_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/limthd.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/limthd.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/limthd.F90	(revision 821)
@@ -1,13 +1,13 @@
-MODULE limthd
+MODULE limthd_2
    !!======================================================================
-   !!                  ***  MODULE limthd   ***
+   !!                  ***  MODULE limthd_2   ***
    !!              LIM thermo ice model : ice thermodynamic
    !!======================================================================
-#if defined key_ice_lim
-   !!----------------------------------------------------------------------
-   !!   'key_ice_lim' :                                   LIM sea-ice model
-   !!----------------------------------------------------------------------
-   !!   lim_thd      : thermodynamic of sea ice
-   !!   lim_thd_init : initialisation of sea-ice thermodynamic
+#if defined key_lim2
+   !!----------------------------------------------------------------------
+   !!   'key_lim2' :                                  LIM 2.0 sea-ice model
+   !!----------------------------------------------------------------------
+   !!   lim_thd_2      : thermodynamic of sea ice
+   !!   lim_thd_init_2 : initialisation of sea-ice thermodynamic
    !!----------------------------------------------------------------------
    !! * Modules used
@@ -16,13 +16,13 @@
    USE lbclnk
    USE in_out_manager  ! I/O manager
-   USE ice             ! LIM sea-ice variables
+   USE ice_2           ! LIM sea-ice variables
    USE ice_oce         ! sea-ice/ocean variables
    USE flx_oce         ! sea-ice/ocean forcings variables 
-   USE thd_ice         ! LIM thermodynamic sea-ice variables
-   USE dom_ice         ! LIM sea-ice domain
-   USE iceini
-   USE limthd_zdf
-   USE limthd_lac
-   USE limtab
+   USE thd_ice_2       ! LIM thermodynamic sea-ice variables
+   USE dom_ice_2       ! LIM sea-ice domain
+   USE iceini_2
+   USE limthd_zdf_2
+   USE limthd_lac_2
+   USE limtab_2
    USE prtctl          ! Print control
       
@@ -31,5 +31,5 @@
 
    !! * Routine accessibility
-   PUBLIC lim_thd       ! called by lim_step
+   PUBLIC lim_thd_2       ! called by lim_step_2
 
    !! * Module variables
@@ -52,7 +52,7 @@
 CONTAINS
 
-   SUBROUTINE lim_thd( kt )
+   SUBROUTINE lim_thd_2( kt )
       !!-------------------------------------------------------------------
-      !!                ***  ROUTINE lim_thd  ***       
+      !!                ***  ROUTINE lim_thd_2  ***       
       !!  
       !! ** Purpose : This routine manages the ice thermodynamic.
@@ -99,5 +99,5 @@
       !!-------------------------------------------------------------------
 
-      IF( kt == nit000  )   CALL lim_thd_init  ! Initialization (first time-step only)
+      IF( kt == nit000  )   CALL lim_thd_init_2  ! Initialization (first time-step only)
    
       !-------------------------------------------!
@@ -248,53 +248,53 @@
          
          !  put the variable in a 1-D array for thermodynamics process
-         CALL tab_2d_1d( nbpb, frld_1d    (1:nbpb)     , frld       , jpi, jpj, npb(1:nbpb) )
-         CALL tab_2d_1d( nbpb, h_ice_1d   (1:nbpb)     , hicif      , jpi, jpj, npb(1:nbpb) )
-         CALL tab_2d_1d( nbpb, h_snow_1d  (1:nbpb)     , hsnif      , jpi, jpj, npb(1:nbpb) )
-         CALL tab_2d_1d( nbpb, sist_1d    (1:nbpb)     , sist       , jpi, jpj, npb(1:nbpb) )
-         CALL tab_2d_1d( nbpb, tbif_1d    (1:nbpb , 1 ), tbif(:,:,1), jpi, jpj, npb(1:nbpb) )
-         CALL tab_2d_1d( nbpb, tbif_1d    (1:nbpb , 2 ), tbif(:,:,2), jpi, jpj, npb(1:nbpb) )
-         CALL tab_2d_1d( nbpb, tbif_1d    (1:nbpb , 3 ), tbif(:,:,3), jpi, jpj, npb(1:nbpb) )
-         CALL tab_2d_1d( nbpb, qsr_ice_1d (1:nbpb)     , qsr_ice    , jpi, jpj, npb(1:nbpb) )
-         CALL tab_2d_1d( nbpb, fr1_i0_1d  (1:nbpb)     , fr1_i0     , jpi, jpj, npb(1:nbpb) )
-         CALL tab_2d_1d( nbpb, fr2_i0_1d  (1:nbpb)     , fr2_i0     , jpi, jpj, npb(1:nbpb) )
-         CALL tab_2d_1d( nbpb, qnsr_ice_1d(1:nbpb)     , qnsr_ice   , jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, frld_1d    (1:nbpb)     , frld       , jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, h_ice_1d   (1:nbpb)     , hicif      , jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, h_snow_1d  (1:nbpb)     , hsnif      , jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, sist_1d    (1:nbpb)     , sist       , jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, tbif_1d    (1:nbpb , 1 ), tbif(:,:,1), jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, tbif_1d    (1:nbpb , 2 ), tbif(:,:,2), jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, tbif_1d    (1:nbpb , 3 ), tbif(:,:,3), jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, qsr_ice_1d (1:nbpb)     , qsr_ice    , jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, fr1_i0_1d  (1:nbpb)     , fr1_i0     , jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, fr2_i0_1d  (1:nbpb)     , fr2_i0     , jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, qnsr_ice_1d(1:nbpb)     , qnsr_ice   , jpi, jpj, npb(1:nbpb) )
 #if ! defined key_coupled
-         CALL tab_2d_1d( nbpb, qla_ice_1d (1:nbpb)     , qla_ice    , jpi, jpj, npb(1:nbpb) )
-         CALL tab_2d_1d( nbpb, dqla_ice_1d(1:nbpb)     , dqla_ice   , jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, qla_ice_1d (1:nbpb)     , qla_ice    , jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, dqla_ice_1d(1:nbpb)     , dqla_ice   , jpi, jpj, npb(1:nbpb) )
 #endif
-         CALL tab_2d_1d( nbpb, dqns_ice_1d(1:nbpb)     , dqns_ice   , jpi, jpj, npb(1:nbpb) )
-         CALL tab_2d_1d( nbpb, tfu_1d     (1:nbpb)     , tfu        , jpi, jpj, npb(1:nbpb) )
-         CALL tab_2d_1d( nbpb, sprecip_1d (1:nbpb)     , sprecip    , jpi, jpj, npb(1:nbpb) ) 
-         CALL tab_2d_1d( nbpb, fbif_1d    (1:nbpb)     , fbif       , jpi, jpj, npb(1:nbpb) )
-         CALL tab_2d_1d( nbpb, thcm_1d    (1:nbpb)     , thcm       , jpi, jpj, npb(1:nbpb) )
-         CALL tab_2d_1d( nbpb, qldif_1d   (1:nbpb)     , qldif      , jpi, jpj, npb(1:nbpb) )
-         CALL tab_2d_1d( nbpb, qstbif_1d  (1:nbpb)     , qstoif     , jpi, jpj, npb(1:nbpb) )
-         CALL tab_2d_1d( nbpb, rdmicif_1d (1:nbpb)     , rdmicif    , jpi, jpj, npb(1:nbpb) )
-         CALL tab_2d_1d( nbpb, dmgwi_1d   (1:nbpb)     , dmgwi      , jpi, jpj, npb(1:nbpb) )
-         CALL tab_2d_1d( nbpb, qlbbq_1d   (1:nbpb)     , zqlbsbq    , jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, dqns_ice_1d(1:nbpb)     , dqns_ice   , jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, tfu_1d     (1:nbpb)     , tfu        , jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, sprecip_1d (1:nbpb)     , sprecip    , jpi, jpj, npb(1:nbpb) ) 
+         CALL tab_2d_1d_2( nbpb, fbif_1d    (1:nbpb)     , fbif       , jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, thcm_1d    (1:nbpb)     , thcm       , jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, qldif_1d   (1:nbpb)     , qldif      , jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, qstbif_1d  (1:nbpb)     , qstoif     , jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, rdmicif_1d (1:nbpb)     , rdmicif    , jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, dmgwi_1d   (1:nbpb)     , dmgwi      , jpi, jpj, npb(1:nbpb) )
+         CALL tab_2d_1d_2( nbpb, qlbbq_1d   (1:nbpb)     , zqlbsbq    , jpi, jpj, npb(1:nbpb) )
  
-         CALL lim_thd_zdf( 1, nbpb )       !  compute ice growth
+         CALL lim_thd_zdf_2( 1, nbpb )       !  compute ice growth
          
          !  back to the geographic grid.
-         CALL tab_1d_2d( nbpb, frld       , npb, frld_1d   (1:nbpb)     , jpi, jpj )
-         CALL tab_1d_2d( nbpb, hicif      , npb, h_ice_1d  (1:nbpb)     , jpi, jpj )
-         CALL tab_1d_2d( nbpb, hsnif      , npb, h_snow_1d (1:nbpb)     , jpi, jpj )
-         CALL tab_1d_2d( nbpb, sist       , npb, sist_1d   (1:nbpb)     , jpi, jpj )
-         CALL tab_1d_2d( nbpb, tbif(:,:,1), npb, tbif_1d   (1:nbpb , 1 ), jpi, jpj )   
-         CALL tab_1d_2d( nbpb, tbif(:,:,2), npb, tbif_1d   (1:nbpb , 2 ), jpi, jpj )   
-         CALL tab_1d_2d( nbpb, tbif(:,:,3), npb, tbif_1d   (1:nbpb , 3 ), jpi, jpj )   
-         CALL tab_1d_2d( nbpb, fscmbq     , npb, fscbq_1d  (1:nbpb)     , jpi, jpj )
-         CALL tab_1d_2d( nbpb, ffltbif    , npb, fltbif_1d (1:nbpb)     , jpi, jpj )
-         CALL tab_1d_2d( nbpb, fstric     , npb, fstbif_1d (1:nbpb)     , jpi, jpj )
-         CALL tab_1d_2d( nbpb, qldif      , npb, qldif_1d  (1:nbpb)     , jpi, jpj )
-         CALL tab_1d_2d( nbpb, qfvbq      , npb, qfvbq_1d  (1:nbpb)     , jpi, jpj )
-         CALL tab_1d_2d( nbpb, qstoif     , npb, qstbif_1d (1:nbpb)     , jpi, jpj )
-         CALL tab_1d_2d( nbpb, rdmicif    , npb, rdmicif_1d(1:nbpb)     , jpi, jpj )
-         CALL tab_1d_2d( nbpb, dmgwi      , npb, dmgwi_1d  (1:nbpb)     , jpi, jpj )
-         CALL tab_1d_2d( nbpb, rdmsnif    , npb, rdmsnif_1d(1:nbpb)     , jpi, jpj )
-         CALL tab_1d_2d( nbpb, rdvosif    , npb, dvsbq_1d  (1:nbpb)     , jpi, jpj )
-         CALL tab_1d_2d( nbpb, rdvobif    , npb, dvbbq_1d  (1:nbpb)     , jpi, jpj )
-         CALL tab_1d_2d( nbpb, fdvolif    , npb, dvlbq_1d  (1:nbpb)     , jpi, jpj )
-         CALL tab_1d_2d( nbpb, rdvonif    , npb, dvnbq_1d  (1:nbpb)     , jpi, jpj ) 
+         CALL tab_1d_2d_2( nbpb, frld       , npb, frld_1d   (1:nbpb)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpb, hicif      , npb, h_ice_1d  (1:nbpb)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpb, hsnif      , npb, h_snow_1d (1:nbpb)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpb, sist       , npb, sist_1d   (1:nbpb)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpb, tbif(:,:,1), npb, tbif_1d   (1:nbpb , 1 ), jpi, jpj )   
+         CALL tab_1d_2d_2( nbpb, tbif(:,:,2), npb, tbif_1d   (1:nbpb , 2 ), jpi, jpj )   
+         CALL tab_1d_2d_2( nbpb, tbif(:,:,3), npb, tbif_1d   (1:nbpb , 3 ), jpi, jpj )   
+         CALL tab_1d_2d_2( nbpb, fscmbq     , npb, fscbq_1d  (1:nbpb)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpb, ffltbif    , npb, fltbif_1d (1:nbpb)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpb, fstric     , npb, fstbif_1d (1:nbpb)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpb, qldif      , npb, qldif_1d  (1:nbpb)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpb, qfvbq      , npb, qfvbq_1d  (1:nbpb)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpb, qstoif     , npb, qstbif_1d (1:nbpb)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpb, rdmicif    , npb, rdmicif_1d(1:nbpb)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpb, dmgwi      , npb, dmgwi_1d  (1:nbpb)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpb, rdmsnif    , npb, rdmsnif_1d(1:nbpb)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpb, rdvosif    , npb, dvsbq_1d  (1:nbpb)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpb, rdvobif    , npb, dvbbq_1d  (1:nbpb)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpb, fdvolif    , npb, dvlbq_1d  (1:nbpb)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpb, rdvonif    , npb, dvnbq_1d  (1:nbpb)     , jpi, jpj ) 
 
  
@@ -351,30 +351,30 @@
          
          !...Put the variable in a 1-D array for lateral accretion
-         CALL tab_2d_1d( nbpac, frld_1d   (1:nbpac)     , frld       , jpi, jpj, npac(1:nbpac) )
-         CALL tab_2d_1d( nbpac, h_snow_1d (1:nbpac)     , hsnif      , jpi, jpj, npac(1:nbpac) )
-         CALL tab_2d_1d( nbpac, h_ice_1d  (1:nbpac)     , hicif      , jpi, jpj, npac(1:nbpac) )
-         CALL tab_2d_1d( nbpac, tbif_1d   (1:nbpac , 1 ), tbif(:,:,1), jpi, jpj, npac(1:nbpac) )   
-         CALL tab_2d_1d( nbpac, tbif_1d   (1:nbpac , 2 ), tbif(:,:,2), jpi, jpj, npac(1:nbpac) )   
-         CALL tab_2d_1d( nbpac, tbif_1d   (1:nbpac , 3 ), tbif(:,:,3), jpi, jpj, npac(1:nbpac) )   
-         CALL tab_2d_1d( nbpac, qldif_1d  (1:nbpac)     , qldif      , jpi, jpj, npac(1:nbpac) )
-         CALL tab_2d_1d( nbpac, qcmif_1d  (1:nbpac)     , qcmif      , jpi, jpj, npac(1:nbpac) )
-         CALL tab_2d_1d( nbpac, qstbif_1d (1:nbpac)     , qstoif     , jpi, jpj, npac(1:nbpac) )
-         CALL tab_2d_1d( nbpac, rdmicif_1d(1:nbpac)     , rdmicif    , jpi, jpj, npac(1:nbpac) )
-         CALL tab_2d_1d( nbpac, dvlbq_1d  (1:nbpac)     , fdvolif    , jpi, jpj, npac(1:nbpac) )
-         CALL tab_2d_1d( nbpac, tfu_1d    (1:nbpac)     , tfu        , jpi, jpj, npac(1:nbpac) )
+         CALL tab_2d_1d_2( nbpac, frld_1d   (1:nbpac)     , frld       , jpi, jpj, npac(1:nbpac) )
+         CALL tab_2d_1d_2( nbpac, h_snow_1d (1:nbpac)     , hsnif      , jpi, jpj, npac(1:nbpac) )
+         CALL tab_2d_1d_2( nbpac, h_ice_1d  (1:nbpac)     , hicif      , jpi, jpj, npac(1:nbpac) )
+         CALL tab_2d_1d_2( nbpac, tbif_1d   (1:nbpac , 1 ), tbif(:,:,1), jpi, jpj, npac(1:nbpac) )   
+         CALL tab_2d_1d_2( nbpac, tbif_1d   (1:nbpac , 2 ), tbif(:,:,2), jpi, jpj, npac(1:nbpac) )   
+         CALL tab_2d_1d_2( nbpac, tbif_1d   (1:nbpac , 3 ), tbif(:,:,3), jpi, jpj, npac(1:nbpac) )   
+         CALL tab_2d_1d_2( nbpac, qldif_1d  (1:nbpac)     , qldif      , jpi, jpj, npac(1:nbpac) )
+         CALL tab_2d_1d_2( nbpac, qcmif_1d  (1:nbpac)     , qcmif      , jpi, jpj, npac(1:nbpac) )
+         CALL tab_2d_1d_2( nbpac, qstbif_1d (1:nbpac)     , qstoif     , jpi, jpj, npac(1:nbpac) )
+         CALL tab_2d_1d_2( nbpac, rdmicif_1d(1:nbpac)     , rdmicif    , jpi, jpj, npac(1:nbpac) )
+         CALL tab_2d_1d_2( nbpac, dvlbq_1d  (1:nbpac)     , fdvolif    , jpi, jpj, npac(1:nbpac) )
+         CALL tab_2d_1d_2( nbpac, tfu_1d    (1:nbpac)     , tfu        , jpi, jpj, npac(1:nbpac) )
         
          !  call lateral accretion routine.
-         CALL lim_thd_lac( 1 , nbpac )
+         CALL lim_thd_lac_2( 1 , nbpac )
          
          !   back to the geographic grid
-         CALL tab_1d_2d( nbpac, frld       , npac(1:nbpac), frld_1d   (1:nbpac)     , jpi, jpj )
-         CALL tab_1d_2d( nbpac, hsnif      , npac(1:nbpac), h_snow_1d (1:nbpac)     , jpi, jpj )
-         CALL tab_1d_2d( nbpac, hicif      , npac(1:nbpac), h_ice_1d  (1:nbpac)     , jpi, jpj )
-         CALL tab_1d_2d( nbpac, tbif(:,:,1), npac(1:nbpac), tbif_1d   (1:nbpac , 1 ), jpi, jpj )
-         CALL tab_1d_2d( nbpac, tbif(:,:,2), npac(1:nbpac), tbif_1d   (1:nbpac , 2 ), jpi, jpj )
-         CALL tab_1d_2d( nbpac, tbif(:,:,3), npac(1:nbpac), tbif_1d   (1:nbpac , 3 ), jpi, jpj )
-         CALL tab_1d_2d( nbpac, qstoif     , npac(1:nbpac), qstbif_1d (1:nbpac)     , jpi, jpj )
-         CALL tab_1d_2d( nbpac, rdmicif    , npac(1:nbpac), rdmicif_1d(1:nbpac)     , jpi, jpj )
-         CALL tab_1d_2d( nbpac, fdvolif    , npac(1:nbpac), dvlbq_1d  (1:nbpac)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpac, frld       , npac(1:nbpac), frld_1d   (1:nbpac)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpac, hsnif      , npac(1:nbpac), h_snow_1d (1:nbpac)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpac, hicif      , npac(1:nbpac), h_ice_1d  (1:nbpac)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpac, tbif(:,:,1), npac(1:nbpac), tbif_1d   (1:nbpac , 1 ), jpi, jpj )
+         CALL tab_1d_2d_2( nbpac, tbif(:,:,2), npac(1:nbpac), tbif_1d   (1:nbpac , 2 ), jpi, jpj )
+         CALL tab_1d_2d_2( nbpac, tbif(:,:,3), npac(1:nbpac), tbif_1d   (1:nbpac , 3 ), jpi, jpj )
+         CALL tab_1d_2d_2( nbpac, qstoif     , npac(1:nbpac), qstbif_1d (1:nbpac)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpac, rdmicif    , npac(1:nbpac), rdmicif_1d(1:nbpac)     , jpi, jpj )
+         CALL tab_1d_2d_2( nbpac, fdvolif    , npac(1:nbpac), dvlbq_1d  (1:nbpac)     , jpi, jpj )
         
       ENDIF
@@ -405,10 +405,10 @@
       ENDIF
 
-    END SUBROUTINE lim_thd
-
-
-    SUBROUTINE lim_thd_init
+    END SUBROUTINE lim_thd_2
+
+
+    SUBROUTINE lim_thd_init_2
       !!-------------------------------------------------------------------
-      !!                   ***  ROUTINE lim_thd_init *** 
+      !!                   ***  ROUTINE lim_thd_init_2 *** 
       !!                 
       !! ** Purpose :   Physical constants and parameters linked to the ice 
@@ -435,6 +435,6 @@
       IF(lwp) THEN
          WRITE(numout,*)
-         WRITE(numout,*)'lim_thd_init : ice parameters for ice thermodynamic computation '
-         WRITE(numout,*)'~~~~~~~~~~~~'
+         WRITE(numout,*)'lim_thd_init_2: ice parameters for ice thermodynamic computation '
+         WRITE(numout,*)'~~~~~~~~~~~~~~'
          WRITE(numout,*)'       maximum melting at the bottom                           hmelt        = ', hmelt
          WRITE(numout,*)'       ice thick. for lateral accretion in NH (SH)             hiccrit(1/2) = ', hiccrit
@@ -466,15 +466,15 @@
       ENDIF
  
-   END SUBROUTINE lim_thd_init
+   END SUBROUTINE lim_thd_init_2
 
 #else
    !!----------------------------------------------------------------------
-   !!   Default option          Dummy module           NO LIM sea-ice model
+   !!   Default option          Dummy module       NO LIM 2.0 sea-ice model
    !!----------------------------------------------------------------------
 CONTAINS
-   SUBROUTINE lim_thd         ! Dummy routine
-   END SUBROUTINE lim_thd
+   SUBROUTINE lim_thd_2         ! Dummy routine
+   END SUBROUTINE lim_thd_2
 #endif
 
    !!======================================================================
-END MODULE limthd
+END MODULE limthd_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/limthd_lac.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/limthd_lac.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/limthd_lac.F90	(revision 821)
@@ -1,18 +1,18 @@
-MODULE limthd_lac
-#if defined key_ice_lim
-   !!======================================================================
-   !!                       ***  MODULE limthd_lac   ***
+MODULE limthd_lac_2
+#if defined key_lim2
+   !!======================================================================
+   !!                       ***  MODULE limthd_lac_2   ***
    !!                lateral thermodynamic growth of the ice 
    !!======================================================================
 
    !!----------------------------------------------------------------------
-   !!   lim_lat_acr    : lateral accretion of ice
+   !!   lim_lat_acr_2    : lateral accretion of ice
    !! * Modules used
    USE par_oce          ! ocean parameters
    USE phycst
-   USE ice_oce         ! ice variables
-   USE thd_ice
-   USE iceini
-   USE limistate 
+   USE ice_oce          ! ice variables
+   USE thd_ice_2
+   USE iceini_2
+   USE limistate_2 
      
    IMPLICIT NONE
@@ -20,5 +20,5 @@
 
    !! * Routine accessibility
-   PUBLIC lim_thd_lac     ! called by lim_thd
+   PUBLIC lim_thd_lac_2   ! called by lim_thd_2
 
    !! * Module variables
@@ -35,7 +35,7 @@
 CONTAINS
     
-   SUBROUTINE lim_thd_lac( kideb, kiut )
+   SUBROUTINE lim_thd_lac_2( kideb, kiut )
       !!-------------------------------------------------------------------
-      !!               ***   ROUTINE lim_thd_lac  ***
+      !!               ***   ROUTINE lim_thd_lac_2  ***
       !!  
       !! ** Purpose : Computation of the evolution of the ice thickness and 
@@ -220,13 +220,13 @@
       END DO
       
-   END SUBROUTINE lim_thd_lac
+   END SUBROUTINE lim_thd_lac_2
 #else
    !!======================================================================
-   !!                       ***  MODULE limthd_lac   ***
+   !!                       ***  MODULE limthd_lac_2   ***
    !!                           no sea ice model
    !!======================================================================
 CONTAINS
-   SUBROUTINE lim_thd_lac           ! Empty routine
-   END SUBROUTINE lim_thd_lac
+   SUBROUTINE lim_thd_lac_2           ! Empty routine
+   END SUBROUTINE lim_thd_lac_2
 #endif
-END MODULE limthd_lac
+END MODULE limthd_lac_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/limthd_zdf.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/limthd_zdf.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/limthd_zdf.F90	(revision 821)
@@ -1,12 +1,12 @@
-MODULE limthd_zdf
+MODULE limthd_zdf_2
    !!======================================================================
-   !!                       ***  MODULE limthd_zdf ***
+   !!                       ***  MODULE limthd_zdf_2 ***
    !!                thermodynamic growth and decay of the ice 
    !!======================================================================
-#if defined key_ice_lim
+#if defined key_lim2
    !!----------------------------------------------------------------------
-   !!   'key_ice_lim'                                     LIM sea-ice model
+   !!   'key_lim2'                                    LIM 2.0 sea-ice model
    !!----------------------------------------------------------------------
-   !!   lim_thd_zdf  : vertical accr./abl. and lateral ablation of sea ice
+   !!   lim_thd_zdf_2 : vertical accr./abl. and lateral ablation of sea ice
    !!----------------------------------------------------------------------
    !! * Modules used
@@ -14,7 +14,7 @@
    USE phycst           ! ???
    USE ice_oce          ! ice variables
-   USE thd_ice
-   USE iceini
-   USE limistate
+   USE thd_ice_2
+   USE iceini_2
+   USE limistate_2
    USE in_out_manager
       
@@ -23,5 +23,5 @@
 
    !! * Routine accessibility
-   PUBLIC lim_thd_zdf        ! called by lim_thd
+   PUBLIC lim_thd_zdf_2      ! called by lim_thd_2
 
    !! * Module variables
@@ -38,7 +38,7 @@
 CONTAINS
 
-   SUBROUTINE lim_thd_zdf( kideb , kiut )
+   SUBROUTINE lim_thd_zdf_2( kideb , kiut )
       !!------------------------------------------------------------------
-      !!                ***  ROUTINE lim_thd_zdf  ***
+      !!                ***  ROUTINE lim_thd_zdf_2  ***
       !!              
       !! ** Purpose : This routine determines the time evolution of snow 
@@ -802,13 +802,13 @@
        END DO
        
-    END SUBROUTINE lim_thd_zdf
+    END SUBROUTINE lim_thd_zdf_2
 #else
    !!======================================================================
-   !!                       ***  MODULE limthd_zdf   ***
+   !!                       ***  MODULE limthd_zdf_2   ***
    !!                              no sea ice model  
    !!======================================================================
 CONTAINS
-   SUBROUTINE lim_thd_zdf          ! Empty routine
-   END SUBROUTINE lim_thd_zdf
+   SUBROUTINE lim_thd_zdf_2          ! Empty routine
+   END SUBROUTINE lim_thd_zdf_2
 #endif
- END MODULE limthd_zdf
+ END MODULE limthd_zdf_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/limtrp.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/limtrp.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/limtrp.F90	(revision 821)
@@ -1,13 +1,13 @@
-MODULE limtrp
+MODULE limtrp_2
    !!======================================================================
-   !!                       ***  MODULE limtrp   ***
-   !! LIM transport ice model : sea-ice advection/diffusion
+   !!                       ***  MODULE limtrp_2   ***
+   !! LIM 2.0 transport ice model : sea-ice advection/diffusion
    !!======================================================================
-#if defined key_ice_lim
-   !!----------------------------------------------------------------------
-   !!   'key_ice_lim' :                                   LIM sea-ice model
-   !!----------------------------------------------------------------------
-   !!   lim_trp      : advection/diffusion process of sea ice
-   !!   lim_trp_init : initialization and namelist read
+#if defined key_lim2
+   !!----------------------------------------------------------------------
+   !!   'key_lim2' :                                  LIM 2.0 sea-ice model
+   !!----------------------------------------------------------------------
+   !!   lim_trp_2      : advection/diffusion process of sea ice
+   !!   lim_trp_init_2 : initialization and namelist read
    !!----------------------------------------------------------------------
    !! * Modules used
@@ -17,10 +17,10 @@
    USE in_out_manager  ! I/O manager
    USE ice_oce         ! ice variables
-   USE dom_ice
-   USE ice
-   USE iceini
-   USE limistate
-   USE limadv
-   USE limhdf
+   USE dom_ice_2
+   USE ice_2
+   USE iceini_2
+   USE limistate_2
+   USE limadv_2
+   USE limhdf_2
    USE lbclnk
    USE lib_mpp
@@ -30,5 +30,5 @@
 
    !! * Routine accessibility
-   PUBLIC lim_trp       ! called by ice_step
+   PUBLIC lim_trp_2     ! called by ice_step_2
 
    !! * Shared module variables
@@ -54,7 +54,7 @@
 CONTAINS
 
-   SUBROUTINE lim_trp( kt )
+   SUBROUTINE lim_trp_2( kt )
       !!-------------------------------------------------------------------
-      !!                   ***  ROUTINE lim_trp ***
+      !!                   ***  ROUTINE lim_trp_2 ***
       !!                    
       !! ** purpose : advection/diffusion process of sea ice
@@ -97,5 +97,5 @@
       !---------------------------------------------------------------------
 
-      IF( kt == nit000  )   CALL lim_trp_init      ! Initialization (first time-step only)
+      IF( kt == nit000  )   CALL lim_trp_init_2      ! Initialization (first time-step only)
 
       zsm(:,:) = area(:,:)
@@ -149,35 +149,35 @@
          IF ( MOD( nday , 2 ) == 0) THEN
             DO jk = 1,initad
-               CALL lim_adv_x( zusnit, zui_u, rone , zsm, zs0ice, sxice, sxxice, syice, syyice, sxyice )
-               CALL lim_adv_y( zusnit, zvi_v, rzero, zsm, zs0ice, sxice, sxxice, syice, syyice, sxyice )
-               CALL lim_adv_x( zusnit, zui_u, rone , zsm, zs0sn , sxsn , sxxsn , sysn , syysn , sxysn  )
-               CALL lim_adv_y( zusnit, zvi_v, rzero, zsm, zs0sn , sxsn , sxxsn , sysn , syysn , sxysn  )
-               CALL lim_adv_x( zusnit, zui_u, rone , zsm, zs0a  , sxa  , sxxa  , sya  , syya  , sxya   )
-               CALL lim_adv_y( zusnit, zvi_v, rzero, zsm, zs0a  , sxa  , sxxa  , sya  , syya  , sxya   )
-               CALL lim_adv_x( zusnit, zui_u, rone , zsm, zs0c0 , sxc0 , sxxc0 , syc0 , syyc0 , sxyc0  )
-               CALL lim_adv_y( zusnit, zvi_v, rzero, zsm, zs0c0 , sxc0 , sxxc0 , syc0 , syyc0 , sxyc0  )
-               CALL lim_adv_x( zusnit, zui_u, rone , zsm, zs0c1 , sxc1 , sxxc1 , syc1 , syyc1 , sxyc1  )
-               CALL lim_adv_y( zusnit, zvi_v, rzero, zsm, zs0c1 , sxc1 , sxxc1 , syc1 , syyc1 , sxyc1  )
-               CALL lim_adv_x( zusnit, zui_u, rone , zsm, zs0c2 , sxc2 , sxxc2 , syc2 , syyc2 , sxyc2  )
-               CALL lim_adv_y( zusnit, zvi_v, rzero, zsm, zs0c2 , sxc2 , sxxc2 , syc2 , syyc2 , sxyc2  )
-               CALL lim_adv_x( zusnit, zui_u, rone , zsm, zs0st , sxst , sxxst , syst , syyst , sxyst  )
-               CALL lim_adv_y( zusnit, zvi_v, rzero, zsm, zs0st , sxst , sxxst , syst , syyst , sxyst  )
+               CALL lim_adv_x_2( zusnit, zui_u, rone , zsm, zs0ice, sxice, sxxice, syice, syyice, sxyice )
+               CALL lim_adv_y_2( zusnit, zvi_v, rzero, zsm, zs0ice, sxice, sxxice, syice, syyice, sxyice )
+               CALL lim_adv_x_2( zusnit, zui_u, rone , zsm, zs0sn , sxsn , sxxsn , sysn , syysn , sxysn  )
+               CALL lim_adv_y_2( zusnit, zvi_v, rzero, zsm, zs0sn , sxsn , sxxsn , sysn , syysn , sxysn  )
+               CALL lim_adv_x_2( zusnit, zui_u, rone , zsm, zs0a  , sxa  , sxxa  , sya  , syya  , sxya   )
+               CALL lim_adv_y_2( zusnit, zvi_v, rzero, zsm, zs0a  , sxa  , sxxa  , sya  , syya  , sxya   )
+               CALL lim_adv_x_2( zusnit, zui_u, rone , zsm, zs0c0 , sxc0 , sxxc0 , syc0 , syyc0 , sxyc0  )
+               CALL lim_adv_y_2( zusnit, zvi_v, rzero, zsm, zs0c0 , sxc0 , sxxc0 , syc0 , syyc0 , sxyc0  )
+               CALL lim_adv_x_2( zusnit, zui_u, rone , zsm, zs0c1 , sxc1 , sxxc1 , syc1 , syyc1 , sxyc1  )
+               CALL lim_adv_y_2( zusnit, zvi_v, rzero, zsm, zs0c1 , sxc1 , sxxc1 , syc1 , syyc1 , sxyc1  )
+               CALL lim_adv_x_2( zusnit, zui_u, rone , zsm, zs0c2 , sxc2 , sxxc2 , syc2 , syyc2 , sxyc2  )
+               CALL lim_adv_y_2( zusnit, zvi_v, rzero, zsm, zs0c2 , sxc2 , sxxc2 , syc2 , syyc2 , sxyc2  )
+               CALL lim_adv_x_2( zusnit, zui_u, rone , zsm, zs0st , sxst , sxxst , syst , syyst , sxyst  )
+               CALL lim_adv_y_2( zusnit, zvi_v, rzero, zsm, zs0st , sxst , sxxst , syst , syyst , sxyst  )
             END DO
          ELSE
             DO jk = 1, initad
-               CALL lim_adv_y( zusnit, zvi_v, rone , zsm, zs0ice, sxice, sxxice, syice, syyice, sxyice )
-               CALL lim_adv_x( zusnit, zui_u, rzero, zsm, zs0ice, sxice, sxxice, syice, syyice, sxyice )
-               CALL lim_adv_y( zusnit, zvi_v, rone , zsm, zs0sn , sxsn , sxxsn , sysn , syysn , sxysn  )
-               CALL lim_adv_x( zusnit, zui_u, rzero, zsm, zs0sn , sxsn , sxxsn , sysn , syysn , sxysn  )
-               CALL lim_adv_y( zusnit, zvi_v, rone , zsm, zs0a  , sxa  , sxxa  , sya  , syya  , sxya   )
-               CALL lim_adv_x( zusnit, zui_u, rzero, zsm, zs0a  , sxa  , sxxa  , sya  , syya  , sxya   )
-               CALL lim_adv_y( zusnit, zvi_v, rone , zsm, zs0c0 , sxc0 , sxxc0 , syc0 , syyc0 , sxyc0  )
-               CALL lim_adv_x( zusnit, zui_u, rzero, zsm, zs0c0 , sxc0 , sxxc0 , syc0 , syyc0 , sxyc0  )
-               CALL lim_adv_y( zusnit, zvi_v, rone , zsm, zs0c1 , sxc1 , sxxc1 , syc1 , syyc1 , sxyc1  )
-               CALL lim_adv_x( zusnit, zui_u, rzero, zsm, zs0c1 , sxc1 , sxxc1 , syc1 , syyc1 , sxyc1  )
-               CALL lim_adv_y( zusnit, zvi_v, rone , zsm, zs0c2 , sxc2 , sxxc2 , syc2 , syyc2 , sxyc2  )
-               CALL lim_adv_x( zusnit, zui_u, rzero, zsm, zs0c2 , sxc2 , sxxc2 , syc2 , syyc2 , sxyc2  )
-               CALL lim_adv_y( zusnit, zvi_v, rone , zsm, zs0st , sxst , sxxst , syst , syyst , sxyst  )
-               CALL lim_adv_x( zusnit, zui_u, rzero, zsm, zs0st , sxst , sxxst , syst , syyst , sxyst  )
+               CALL lim_adv_y_2( zusnit, zvi_v, rone , zsm, zs0ice, sxice, sxxice, syice, syyice, sxyice )
+               CALL lim_adv_x_2( zusnit, zui_u, rzero, zsm, zs0ice, sxice, sxxice, syice, syyice, sxyice )
+               CALL lim_adv_y_2( zusnit, zvi_v, rone , zsm, zs0sn , sxsn , sxxsn , sysn , syysn , sxysn  )
+               CALL lim_adv_x_2( zusnit, zui_u, rzero, zsm, zs0sn , sxsn , sxxsn , sysn , syysn , sxysn  )
+               CALL lim_adv_y_2( zusnit, zvi_v, rone , zsm, zs0a  , sxa  , sxxa  , sya  , syya  , sxya   )
+               CALL lim_adv_x_2( zusnit, zui_u, rzero, zsm, zs0a  , sxa  , sxxa  , sya  , syya  , sxya   )
+               CALL lim_adv_y_2( zusnit, zvi_v, rone , zsm, zs0c0 , sxc0 , sxxc0 , syc0 , syyc0 , sxyc0  )
+               CALL lim_adv_x_2( zusnit, zui_u, rzero, zsm, zs0c0 , sxc0 , sxxc0 , syc0 , syyc0 , sxyc0  )
+               CALL lim_adv_y_2( zusnit, zvi_v, rone , zsm, zs0c1 , sxc1 , sxxc1 , syc1 , syyc1 , sxyc1  )
+               CALL lim_adv_x_2( zusnit, zui_u, rzero, zsm, zs0c1 , sxc1 , sxxc1 , syc1 , syyc1 , sxyc1  )
+               CALL lim_adv_y_2( zusnit, zvi_v, rone , zsm, zs0c2 , sxc2 , sxxc2 , syc2 , syyc2 , sxyc2  )
+               CALL lim_adv_x_2( zusnit, zui_u, rzero, zsm, zs0c2 , sxc2 , sxxc2 , syc2 , syyc2 , sxyc2  )
+               CALL lim_adv_y_2( zusnit, zvi_v, rone , zsm, zs0st , sxst , sxxst , syst , syyst , sxyst  )
+               CALL lim_adv_x_2( zusnit, zui_u, rzero, zsm, zs0st , sxst , sxxst , syst , syyst , sxyst  )
             END DO
          ENDIF
@@ -211,11 +211,11 @@
          ! diffusion
          ! ---------
-         CALL lim_hdf( zs0ice )
-         CALL lim_hdf( zs0sn  )
-         CALL lim_hdf( zs0a   )
-         CALL lim_hdf( zs0c0  )
-         CALL lim_hdf( zs0c1  )
-         CALL lim_hdf( zs0c2  )
-         CALL lim_hdf( zs0st  )
+         CALL lim_hdf_2( zs0ice )
+         CALL lim_hdf_2( zs0sn  )
+         CALL lim_hdf_2( zs0a   )
+         CALL lim_hdf_2( zs0c0  )
+         CALL lim_hdf_2( zs0c1  )
+         CALL lim_hdf_2( zs0c2  )
+         CALL lim_hdf_2( zs0st  )
 
          zs0ice(:,:) = MAX( rzero, zs0ice(:,:) * area(:,:) )    !!bug:  est-ce utile
@@ -278,10 +278,10 @@
       ENDIF
       
-   END SUBROUTINE lim_trp
-
-
-   SUBROUTINE lim_trp_init
+   END SUBROUTINE lim_trp_2
+
+
+   SUBROUTINE lim_trp_init_2
       !!-------------------------------------------------------------------
-      !!                  ***  ROUTINE lim_trp_init  ***
+      !!                  ***  ROUTINE lim_trp_init_2  ***
       !!
       !! ** Purpose :   initialization of ice advection parameters
@@ -303,10 +303,10 @@
       IF(lwp) THEN
          WRITE(numout,*)
-         WRITE(numout,*) 'lim_trp_init : Ice parameters for advection '
-         WRITE(numout,*) '~~~~~~~~~~~~'
+         WRITE(numout,*) 'lim_trp_init_2 : Ice parameters for advection '
+         WRITE(numout,*) '~~~~~~~~~~~~~~'
          WRITE(numout,*) '   boundary conditions (0. no-slip, 1. free-slip) bound  = ', bound
       ENDIF
             
-   END SUBROUTINE lim_trp_init
+   END SUBROUTINE lim_trp_init_2
 
 #else
@@ -315,8 +315,8 @@
    !!----------------------------------------------------------------------
 CONTAINS
-   SUBROUTINE lim_trp        ! Empty routine
-   END SUBROUTINE lim_trp
+   SUBROUTINE lim_trp_2        ! Empty routine
+   END SUBROUTINE lim_trp_2
 #endif
 
    !!======================================================================
-END MODULE limtrp
+END MODULE limtrp_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/limwri.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/limwri.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/limwri.F90	(revision 821)
@@ -1,5 +1,5 @@
-MODULE limwri
+MODULE limwri_2
    !!======================================================================
-   !!                     ***  MODULE  limwri  ***
+   !!                     ***  MODULE  limwri_2  ***
    !!         Ice diagnostics :  write ice output files
    !!======================================================================
@@ -7,11 +7,11 @@
    !!            2.0  ! 04-10  (C. Ethe )  1D configuration
    !!-------------------------------------------------------------------
-#if defined key_ice_lim
-   !!----------------------------------------------------------------------
-   !!   'key_ice_lim'                                     LIM sea-ice model
-   !!----------------------------------------------------------------------
-   !!----------------------------------------------------------------------
-   !!   lim_wri      : write of the diagnostics variables in ouput file 
-   !!   lim_wri_init : initialization and namelist read
+#if defined key_lim2
+   !!----------------------------------------------------------------------
+   !!   'key_lim2'  i                                 LIM 2.0 sea-ice model
+   !!----------------------------------------------------------------------
+   !!----------------------------------------------------------------------
+   !!   lim_wri_2      : write of the diagnostics variables in ouput file 
+   !!   lim_wri_init_2 : initialization and namelist read
    !!----------------------------------------------------------------------
    USE ioipsl
@@ -23,6 +23,6 @@
    USE ice_oce         ! ice variables
    USE flx_oce
-   USE dom_ice
-   USE ice
+   USE dom_ice_2
+   USE ice_2
    USE lbclnk
 
@@ -30,5 +30,5 @@
    PRIVATE
 
-   PUBLIC   lim_wri        ! routine called by lim_step.F90
+   PUBLIC   lim_wri_2        ! routine called by lim_step_2.F90
 
    INTEGER, PARAMETER                       ::   jpnoumax = 40   ! maximum number of variable for ice output
@@ -61,5 +61,5 @@
    !!   'key_dimgout'                                    Direct Access file
    !!----------------------------------------------------------------------
-# include "limwri_dimg.h90"
+# include "limwri_dimg_2.h90"
 #else
    !!----------------------------------------------------------------------
@@ -67,7 +67,7 @@
    !!----------------------------------------------------------------------
 
-   SUBROUTINE lim_wri( kt )
-      !!-------------------------------------------------------------------
-      !!                    ***   ROUTINE lim_wri  ***
+   SUBROUTINE lim_wri_2( kt )
+      !!-------------------------------------------------------------------
+      !!                    ***   ROUTINE lim_wri_2  ***
       !!                
       !! ** Purpose :   write the sea-ice output file in NetCDF
@@ -92,5 +92,5 @@
       IF ( kt == nit000 ) THEN                !   Initialisation   !
          !                                       !--------------------!
-         CALL lim_wri_init 
+         CALL lim_wri_init_2 
                            
          zsto     = rdt_ice
@@ -123,6 +123,6 @@
       IF(lwp) THEN
          WRITE(numout,*)
-         WRITE(numout,*) 'lim_wri : write ice outputs in NetCDF files at time : ', nyear, nmonth, nday, kt + nfice - 1
-         WRITE(numout,*) '~~~~~~~ '
+         WRITE(numout,*) 'lim_wri_2 : write ice outputs in NetCDF files at time : ', nyear, nmonth, nday, kt + nfice - 1
+         WRITE(numout,*) '~~~~~~~~~ '
       ENDIF
 
@@ -189,11 +189,11 @@
       ENDIF
       !
-   END SUBROUTINE lim_wri
+   END SUBROUTINE lim_wri_2
    
 #endif
    
-   SUBROUTINE lim_wri_init
-      !!-------------------------------------------------------------------
-      !!                    ***   ROUTINE lim_wri_init  ***
+   SUBROUTINE lim_wri_init_2
+      !!-------------------------------------------------------------------
+      !!                    ***   ROUTINE lim_wri_init_2  ***
       !!                
       !! ** Purpose :   intialisation of LIM sea-ice output
@@ -267,6 +267,6 @@
       IF(lwp) THEN
          WRITE(numout,*)
-         WRITE(numout,*) 'lim_wri_init : Ice parameters for outputs'
-         WRITE(numout,*) '~~~~~~~~~~~~'
+         WRITE(numout,*) 'lim_wri_init_2 : Ice parameters for outputs'
+         WRITE(numout,*) '~~~~~~~~~~~~~~'
          WRITE(numout,*) '    number of fields to be stored         noumef = ', noumef
          WRITE(numout,*) '           title                            name     unit      Saving (1/0) ',   &
@@ -278,15 +278,15 @@
       ENDIF
       !    
-   END SUBROUTINE lim_wri_init
+   END SUBROUTINE lim_wri_init_2
 
 #else
    !!----------------------------------------------------------------------
-   !!   Default option :         Empty module          NO LIM sea-ice model
+   !!   Default option :         Empty module      NO LIM 2.0 sea-ice model
    !!----------------------------------------------------------------------
 CONTAINS
-   SUBROUTINE lim_wri          ! Empty routine
-   END SUBROUTINE lim_wri
+   SUBROUTINE lim_wri_2          ! Empty routine
+   END SUBROUTINE lim_wri_2
 #endif
 
    !!======================================================================
-END MODULE limwri
+END MODULE limwri_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/limwri_dimg.h90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/limwri_dimg.h90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/limwri_dimg.h90	(revision 821)
@@ -1,3 +1,3 @@
-    SUBROUTINE lim_wri(kt)
+    SUBROUTINE lim_wri_2(kt)
    !!----------------------------------------------------------------------
    !!  LIM 2.0, UCL-LOCEAN-IPSL (2005)
@@ -52,5 +52,5 @@
     IF ( kt == nit000 ) THEN 
 
-       CALL lim_wri_init 
+       CALL lim_wri_init_2 
 
        nwf = 0 
@@ -58,5 +58,5 @@
 
        IF (lwp ) THEN
-          WRITE(numout,*) 'lim_wri : Write ice outputs in dimg'
+          WRITE(numout,*) 'lim_wri_2 : Write ice outputs in dimg'
           WRITE(numout,*) '~~~~~~~~'
           WRITE(numout,*) '   According to namelist_ice, following fields saved:'
@@ -203,3 +203,3 @@
        END IF     !  MOD(kt+nfice-1-nit000+1, nwrite == 0 ) !
 
-     END SUBROUTINE lim_wri
+     END SUBROUTINE lim_wri_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/par_ice.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/par_ice.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/par_ice.F90	(revision 821)
@@ -1,5 +1,6 @@
-MODULE par_ice
+MODULE par_ice_2
+#if defined key_lim2
    !!======================================================================
-   !!                       ***  MODULE par_ice   ***
+   !!                       ***  MODULE par_ice_2   ***
    !! Sea-Ice model : definition of the parameters
    !!======================================================================
@@ -24,3 +25,4 @@
 
    !!======================================================================
-END MODULE par_ice
+#endif
+END MODULE par_ice_2
Index: branches/dev_002_LIM/NEMO/LIM_SRC/thd_ice.F90
===================================================================
--- branches/dev_002_LIM/NEMO/LIM_SRC/thd_ice.F90	(revision 820)
+++ branches/dev_002_LIM/NEMO/LIM_SRC/thd_ice.F90	(revision 821)
@@ -1,6 +1,7 @@
-MODULE thd_ice
+MODULE thd_ice_2
+#if defined key_lim2
    !!======================================================================
-   !!                       ***  MODULE thd_ice  ***
-   !! LIM sea-ice :   Ice thermodynamics in 1D
+   !!                       ***  MODULE thd_ice_2  ***
+   !! LIM 2.0 sea-ice :   Ice thermodynamics in 1D
    !!=====================================================================
    !! History :
@@ -12,5 +13,5 @@
    !!----------------------------------------------------------------------
    !! * Modules used
-   USE par_ice
+   USE par_ice_2
 
    IMPLICIT NONE
@@ -82,3 +83,4 @@
 
    !!======================================================================
-END MODULE thd_ice
+#endif
+END MODULE thd_ice_2
