Index: /NEMO/branches/MOI/NEMO_4.03_IODRAG/src/ICE/iceupdate.F90
===================================================================
--- /NEMO/branches/MOI/NEMO_4.03_IODRAG/src/ICE/iceupdate.F90	(revision 12963)
+++ /NEMO/branches/MOI/NEMO_4.03_IODRAG/src/ICE/iceupdate.F90	(revision 12964)
@@ -26,5 +26,5 @@
    USE icectl         ! sea-ice: control prints
    USE bdy_oce , ONLY : ln_bdy
-   USE zdfdrg
+   USE zdfdrg , ONLY: ln_drgice_imp
    !
    USE in_out_manager ! I/O manager
Index: /NEMO/branches/MOI/NEMO_4.03_IODRAG/src/OCE/SBC/sbc_ice.F90
===================================================================
--- /NEMO/branches/MOI/NEMO_4.03_IODRAG/src/OCE/SBC/sbc_ice.F90	(revision 12963)
+++ /NEMO/branches/MOI/NEMO_4.03_IODRAG/src/OCE/SBC/sbc_ice.F90	(revision 12964)
@@ -70,4 +70,5 @@
    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   wndm_ice       !: wind speed module at T-point                 [m/s]
    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   sstfrz         !: wind speed module at T-point                 [m/s]
+   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   rCdU_ice       !: ice-ocean drag at T-point (<0)               [m/s]
 #endif
 
@@ -131,5 +132,5 @@
          &      qemp_ice(jpi,jpj)     , qevap_ice(jpi,jpj,jpl) , qemp_oce   (jpi,jpj)     ,   &
          &      qns_oce (jpi,jpj)     , qsr_oce  (jpi,jpj)     , emp_oce    (jpi,jpj)     ,   &
-         &      emp_ice (jpi,jpj)     , sstfrz   (jpi,jpj)     , STAT= ierr(2) )
+         &      emp_ice (jpi,jpj)     , sstfrz   (jpi,jpj)     , rCdU_ice   (jpi,jpj)     , STAT= ierr(2) )
 #endif
 
Index: /NEMO/branches/MOI/NEMO_4.03_IODRAG/src/OCE/ZDF/zdfdrg.F90
===================================================================
--- /NEMO/branches/MOI/NEMO_4.03_IODRAG/src/OCE/ZDF/zdfdrg.F90	(revision 12963)
+++ /NEMO/branches/MOI/NEMO_4.03_IODRAG/src/OCE/ZDF/zdfdrg.F90	(revision 12964)
@@ -32,4 +32,5 @@
    USE lib_mpp        ! distributed memory computing
    USE prtctl         ! Print control
+   USE sbc_oce, ONLY: nn_ice 
 
    IMPLICIT NONE
@@ -46,6 +47,5 @@
    LOGICAL          ::   ln_loglayer  ! logarithmic drag: Cd = vkarmn/log(z/z0)
    LOGICAL , PUBLIC ::   ln_drgimp    ! implicit top/bottom friction flag
-   LOGICAL , PUBLIC ::   ln_drgice_imp ! implicit ice-ocean drag
-
+   LOGICAL , PUBLIC ::   ln_drgice_imp ! implicit ice-ocean drag 
    !                                 !!* Namelist namdrg_top & _bot: TOP or BOTTOM coefficient namelist *
    REAL(wp)         ::   rn_Cd0       !: drag coefficient                                           [ - ]
@@ -72,5 +72,4 @@
    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC ::   rCd0_top, rCd0_bot   !: precomputed top/bottom drag coeff. at t-point (>0)
    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC ::   rCdU_top, rCdU_bot   !: top/bottom drag coeff. at t-point (<0)  [m/s]
-   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC ::   rCdU_ice             !: ice-ocean drag (used if ln_drgice_imp=T)
 
    !! * Substitutions
@@ -270,4 +269,7 @@
          &                CALL ctl_stop( 'zdf_drg_init: ln_drgice_imp=T requires ln_drgimp=T' )
       !
+      IF ( ln_drgice_imp.AND.( nn_ice /=2 ) ) &
+         &  CALL ctl_stop( 'zdf_drg_init: ln_drgice_imp=T requires si3' )
+      !
       !                     !==  BOTTOM drag setting  ==!   (applied at seafloor)
       !
@@ -281,8 +283,5 @@
       IF( ln_isfcav.OR.ln_drgice_imp ) THEN              ! Ocean cavities: top friction setting
          ALLOCATE( rCdU_top(jpi,jpj) )
-         rCdU_top(:,:) = 0._wp
-      ENDIF
-      !
-      IF (ln_drgice_imp) ALLOCATE( rCdU_ice(jpi,jpj) )
+      ENDIF
       !
       IF( ln_isfcav ) THEN
Index: /NEMO/branches/MOI/NEMO_4.03_IODRAG/src/OCE/ZDF/zdfphy.F90
===================================================================
--- /NEMO/branches/MOI/NEMO_4.03_IODRAG/src/OCE/ZDF/zdfphy.F90	(revision 12963)
+++ /NEMO/branches/MOI/NEMO_4.03_IODRAG/src/OCE/ZDF/zdfphy.F90	(revision 12964)
@@ -28,4 +28,5 @@
    USE sbc_oce        ! surface module (only for nn_isf in the option compatibility test)
    USE sbcrnf         ! surface boundary condition: runoff variables
+   USE sbc_ice        ! sea ice drag
 #if defined key_agrif
    USE agrif_oce_interp   ! interpavm
