Index: NEMO/branches/UKMO/NEMO_4.0.1_fix_cpl/cfgs/SHARED/namelist_ice_ref
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0.1_fix_cpl/cfgs/SHARED/namelist_ice_ref	(revision 11917)
+++ NEMO/branches/UKMO/NEMO_4.0.1_fix_cpl/cfgs/SHARED/namelist_ice_ref	(revision 11918)
@@ -186,5 +186,7 @@
 !------------------------------------------------------------------------------
    ln_iceini        = .true.          !  activate ice initialization (T) or not (F)
-   ln_iceini_file   = .false.         !  netcdf file provided for initialization (T) or not (F)
+   nn_iceini_file   = 0               !        0 = Initialise sea ice based on SSTs
+                                      !        1 = Initialise sea ice from single category netcdf file
+                                      !        2 = Initialise sea ice from multi category restart file
    rn_thres_sst     =   2.0           !  max temp. above Tfreeze with initial ice = (sst - tfreeze)
    rn_hti_ini_n     =   3.0           !  initial ice thickness       (m), North
Index: NEMO/branches/UKMO/NEMO_4.0.1_fix_cpl/src/ICE/iceistate.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0.1_fix_cpl/src/ICE/iceistate.F90	(revision 11917)
+++ NEMO/branches/UKMO/NEMO_4.0.1_fix_cpl/src/ICE/iceistate.F90	(revision 11918)
@@ -41,5 +41,8 @@
    !                             !! ** namelist (namini) **
    LOGICAL, PUBLIC  ::   ln_iceini        !: Ice initialization or not
-   LOGICAL, PUBLIC  ::   ln_iceini_file   !: Ice initialization from 2D netcdf file
+   INTEGER, PUBLIC  ::   nn_iceini_file   ! Ice initialization:
+                                  !        0 = Initialise sea ice based on SSTs
+                                  !        1 = Initialise sea ice from single category netcdf file
+                                  !        2 = Initialise sea ice from multi category restart file
    REAL(wp) ::   rn_thres_sst
    REAL(wp) ::   rn_hti_ini_n, rn_hts_ini_n, rn_ati_ini_n, rn_smi_ini_n, rn_tmi_ini_n, rn_tsu_ini_n, rn_tms_ini_n
@@ -167,5 +170,5 @@
       IF( ln_iceini ) THEN
          !                             !---------------!
-         IF( ln_iceini_file )THEN      ! Read a file   !
+         IF( nn_iceini_file == 1 )THEN      ! Read a file   !
             !                          !---------------!
             WHERE( ff_t(:,:) >= 0._wp )   ;   zswitch(:,:) = 1._wp
@@ -466,5 +469,5 @@
       TYPE(FLD_N), DIMENSION(jpfldi) ::   slf_i                 ! array of namelist informations on the fields to read
       !
-      NAMELIST/namini/ ln_iceini, ln_iceini_file, rn_thres_sst, &
+      NAMELIST/namini/ ln_iceini, nn_iceini_file, rn_thres_sst, &
          &             rn_hti_ini_n, rn_hti_ini_s, rn_hts_ini_n, rn_hts_ini_s, &
          &             rn_ati_ini_n, rn_ati_ini_s, rn_smi_ini_n, rn_smi_ini_s, &
@@ -493,5 +496,5 @@
          WRITE(numout,*) '   Namelist namini:'
          WRITE(numout,*) '      ice initialization (T) or not (F)                ln_iceini      = ', ln_iceini
-         WRITE(numout,*) '      ice initialization from a netcdf file            ln_iceini_file = ', ln_iceini_file
+         WRITE(numout,*) '      ice initialization from a netcdf file            nn_iceini_file = ', nn_iceini_file
          WRITE(numout,*) '      max ocean temp. above Tfreeze with initial ice   rn_thres_sst   = ', rn_thres_sst
          IF( ln_iceini .AND. .NOT.ln_iceini_file ) THEN
@@ -508,5 +511,5 @@
       ENDIF
       !
-      IF( ln_iceini_file ) THEN                      ! Ice initialization using input file
+      IF( nn_iceini_file == 1 ) THEN                      ! Ice initialization using input file
          !
          ! set si structure
Index: NEMO/branches/UKMO/NEMO_4.0.1_fix_cpl/src/ICE/icestp.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0.1_fix_cpl/src/ICE/icestp.F90	(revision 11917)
+++ NEMO/branches/UKMO/NEMO_4.0.1_fix_cpl/src/ICE/icestp.F90	(revision 11918)
@@ -252,9 +252,10 @@
       !
       !                                ! Initial sea-ice state
-      IF( .NOT. ln_rstart ) THEN              ! start from rest: sea-ice deduced from sst
-         CALL ice_istate_init
-         CALL ice_istate( nit000 )
-      ELSE                                    ! start from a restart file
-         CALL ice_rst_read
+
+      CALL ice_istate_init
+      IF ( ln_rstart .OR. nn_iceini_file == 2 ) THEN
+         CALL ice_rst_read                      ! start from a restart file
+      ELSE
+         CALL ice_istate( nit000 )              ! start from rest: sea-ice deduced from sst
       ENDIF
       CALL ice_var_glo2eqv
