Index: branches/UKMO/dev_r5518_GO6_package_r8356_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_ice.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_package_r8356_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_ice.F90	(revision 8670)
+++ branches/UKMO/dev_r5518_GO6_package_r8356_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_ice.F90	(revision 8819)
@@ -116,5 +116,5 @@
    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  a_i
    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  ht_i, ht_s
-   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::  fmdice
+   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::  fmdice, rough_ice_skin
 #endif
 
@@ -176,5 +176,5 @@
 #if defined key_cice || defined key_lim2
       IF( ln_cpl )   ALLOCATE( ht_i(jpi,jpj,jpl) , ht_s(jpi,jpj,jpl) , STAT=ierr(5) )
-      IF( ln_cpl )   ALLOCATE( fmdice(jpi,jpj) , STAT=ierr(5) ) 
+      IF( ln_cpl )   ALLOCATE( fmdice(jpi,jpj) , rough_ice_skin(jpi,jpj) , STAT=ierr(5) ) 
 #endif
 
Index: branches/UKMO/dev_r5518_GO6_package_r8356_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_package_r8356_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90	(revision 8670)
+++ branches/UKMO/dev_r5518_GO6_package_r8356_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90	(revision 8819)
@@ -150,5 +150,6 @@
    INTEGER, PARAMETER ::   jps_bio_chloro = 36        ! MEDUSA chlorophyll surface concentration
    INTEGER, PARAMETER ::   jps_fmdice = 37            ! ice form drag
-   INTEGER, PARAMETER ::   jpsnd      = 37            ! total number of fields sent
+   INTEGER, PARAMETER ::   jps_rough_ice_skin = 38    ! ice skin roughness length
+   INTEGER, PARAMETER ::   jpsnd      = 38            ! total number of fields sent
 
    REAL(wp), PARAMETER :: dms_unit_conv = 1.0e+6      ! Coversion factor to get outgong DMS in standard units for coupling
@@ -164,5 +165,5 @@
    END TYPE FLD_C
    ! Send to the atmosphere                           !
-   TYPE(FLD_C) ::   sn_snd_temp, sn_snd_alb, sn_snd_thick, sn_snd_crt, sn_snd_co2, sn_snd_cond, sn_snd_mpnd, sn_snd_sstfrz, sn_snd_thick1, sn_snd_fmd
+   TYPE(FLD_C) ::   sn_snd_temp, sn_snd_alb, sn_snd_thick, sn_snd_crt, sn_snd_co2, sn_snd_cond, sn_snd_mpnd, sn_snd_sstfrz, sn_snd_thick1, sn_snd_icerough
    TYPE(FLD_C) ::   sn_snd_bio_co2, sn_snd_bio_dms, sn_snd_bio_chloro                   
 
@@ -242,5 +243,5 @@
       !!
       NAMELIST/namsbc_cpl/  sn_snd_temp, sn_snd_alb   , sn_snd_thick , sn_snd_crt   , sn_snd_co2,     &
-         &                  sn_snd_cond, sn_snd_mpnd  , sn_snd_sstfrz, sn_snd_thick1, sn_snd_fmd,     &
+         &                  sn_snd_cond, sn_snd_mpnd  , sn_snd_sstfrz, sn_snd_thick1, sn_snd_icerough,&
          &                  sn_rcv_w10m, sn_rcv_taumod, sn_rcv_tau   , sn_rcv_dqnsdt, sn_rcv_qsr,     &
          &                  sn_rcv_qns , sn_rcv_emp   , sn_rcv_rnf   , sn_rcv_cal   , sn_rcv_iceflx,  &
@@ -315,5 +316,5 @@
          WRITE(numout,*)'      meltponds fraction & depth      = ', TRIM(sn_snd_mpnd%cldes  ), ' (', TRIM(sn_snd_mpnd%clcat   ), ')'
          WRITE(numout,*)'      sea surface freezing temp       = ', TRIM(sn_snd_sstfrz%cldes   ), ' (', TRIM(sn_snd_sstfrz%clcat   ), ')'
-         WRITE(numout,*)'      ice formdrag                    = ', TRIM(sn_snd_fmd%cldes   ), ' (', TRIM(sn_snd_fmd%clcat   ), ')'
+         WRITE(numout,*)'      ice formdrag                    = ', TRIM(sn_snd_icerough%cldes   ), ' (', TRIM(sn_snd_icerough%clcat   ), ')'
 
          WRITE(numout,*)'  nn_cplmodel                         = ', nn_cplmodel
@@ -875,10 +876,13 @@
       !                                                      ! ------------------------- !
       ssnd(jps_fmdice )%clname = 'OIceFmd'
-      SELECT CASE ( TRIM( sn_snd_fmd%cldes ) )
+      ssnd(jps_rough_ice_skin )%clname = 'ORghIcSk'
+      SELECT CASE ( TRIM( sn_snd_icerough%cldes ) )
          CASE ( 'none' )
             ssnd(jps_fmdice)%laction = .FALSE.
+            ssnd(jps_rough_ice_skin)%laction = .FALSE.
          CASE ( 'ice', 'weighted ice' ) 
             ssnd(jps_fmdice)%laction = .TRUE.
-         CASE default   ;   CALL ctl_stop( 'sbc_cpl_init: wrong definition of sn_snd_fmd%cldes' )
+            ssnd(jps_rough_ice_skin)%laction = .TRUE.
+         CASE default   ;   CALL ctl_stop( 'sbc_cpl_init: wrong definition of sn_snd_icerough%cldes' )
       END SELECT
       !
@@ -2640,13 +2644,24 @@
 #if defined key_cice
       IF( ssnd(jps_fmdice)%laction ) THEN
-          SELECT CASE( sn_snd_fmd%cldes )
+          SELECT CASE( sn_snd_icerough%cldes )
              CASE( 'ice' )
                 ztmp1(:,:) = fmdice(:,:)
              CASE( 'weighted ice' ) 
                 ztmp1(:,:) = fmdice(:,:) * fr_i(:,:)
-             CASE default      ;  CALL ctl_stop( 'sbc_cpl_snd: wrong definition of sn_snd_fmd%cldes' )
+             CASE default      ;  CALL ctl_stop( 'sbc_cpl_snd: wrong definition of sn_snd_icerough%cldes' )
           END SELECT
       ENDIF
       IF( ssnd(jps_fmdice)%laction )   CALL cpl_snd( jps_fmdice, isec, RESHAPE ( ztmp1, (/jpi,jpj,1/) ), info ) 
+
+      IF( ssnd(jps_rough_ice_skin)%laction ) THEN
+          SELECT CASE( sn_snd_icerough%cldes )
+             CASE( 'ice' )
+                ztmp1(:,:) = rough_ice_skin(:,:)
+             CASE( 'weighted ice' ) 
+                ztmp1(:,:) = rough_ice_skin(:,:) * fr_i(:,:)
+             CASE default      ;  CALL ctl_stop( 'sbc_cpl_snd: wrong definition of sn_snd_icerough%cldes' )
+          END SELECT
+      ENDIF
+      IF( ssnd(jps_rough_ice_skin)%laction )   CALL cpl_snd( jps_rough_ice_skin, isec, RESHAPE ( ztmp1, (/jpi,jpj,1/) ), info ) 
 #endif
       !
Index: branches/UKMO/dev_r5518_GO6_package_r8356_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_package_r8356_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90	(revision 8670)
+++ branches/UKMO/dev_r5518_GO6_package_r8356_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90	(revision 8819)
@@ -68,5 +68,5 @@
 #endif
    USE ice_forcing, only: frcvdr,frcvdf,frcidr,frcidf
-   USE ice_atmo, only: calc_strair, z0atm
+   USE ice_atmo, only: calc_strair, z0atm, z0atmskin
 
    USE CICE_InitMod
@@ -187,16 +187,4 @@
       CALL CICE_Initialize
 
-      IF(lwp) THEN                        ! control print
-        WRITE(numout,*)
-        WRITE(numout,*)'============================================================='
-        WRITE(numout,*)'In cice_sbc_init, after call to CICE_Initialize'
-        WRITE(numout,*)'MAXVAL(z0atm): ', MAXVAL(z0atm)
-        WRITE(numout,*)'MAXLOC(z0atm): ', MAXLOC(z0atm)
-        WRITE(numout,*)'MINVAL(z0atm): ', MINVAL(z0atm)
-        WRITE(numout,*)'MINLOC(z0atm): ', MINLOC(z0atm)
-        WRITE(numout,*)'============================================================='
-        WRITE(numout,*)
-      ENDIF
-
       ! Do some CICE consistency checks
       IF ( (ksbc == jp_flx) .OR. (ksbc == jp_purecpl) ) THEN
@@ -272,4 +260,5 @@
 
       CALL cice2nemo(z0atm,fmdice,'T', 1. )
+      CALL cice2nemo(z0atmskin,rough_ice_skin,'T', 1. )
 
       IF( .NOT. ln_rstart ) THEN
@@ -323,4 +312,24 @@
       IF( nn_timing == 1 )  CALL timing_stop('cice_sbc_init')
       !
+
+
+      IF(lwp) THEN                        ! control print
+        WRITE(numout,*)
+        WRITE(numout,*)'============================================================='
+        WRITE(numout,*)'At end of subroutine cice_sbc_init'
+        WRITE(numout,*)'MAXVAL(z0atm): ', MAXVAL(z0atm)
+        WRITE(numout,*)'MAXLOC(z0atm): ', MAXLOC(z0atm)
+        WRITE(numout,*)'MINVAL(z0atm): ', MINVAL(z0atm)
+        WRITE(numout,*)'MINLOC(z0atm): ', MINLOC(z0atm)
+        WRITE(numout,*)'MAXVAL(z0atmskin): ', MAXVAL(z0atmskin)
+        WRITE(numout,*)'MAXLOC(z0atmskin): ', MAXLOC(z0atmskin)
+        WRITE(numout,*)'MINVAL(z0atmskin): ', MINVAL(z0atmskin)
+        WRITE(numout,*)'MINLOC(z0atmskin): ', MINLOC(z0atmskin)
+        WRITE(numout,*)'============================================================='
+        WRITE(numout,*)
+      ENDIF
+
+
+
    END SUBROUTINE cice_sbc_init
 
@@ -803,4 +812,7 @@
       CALL cice2nemo(z0atm,fmdice,'T', 1. )
 
+! Surface skin roughness length
+      CALL cice2nemo(z0atmskin,rough_ice_skin,'T', 1. )
+
       !
       IF( nn_timing == 1 )  CALL timing_stop('cice_sbc_hadgam')
Index: branches/UKMO/dev_r5518_GO6_package_r8356_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_package_r8356_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90	(revision 8670)
+++ branches/UKMO/dev_r5518_GO6_package_r8356_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90	(revision 8819)
@@ -306,7 +306,6 @@
       !
       IF( nn_ice == 3      )   CALL sbc_lim_init               ! LIM3 initialisation
-
       IF( nn_ice == 4      )   CALL cice_sbc_init( nsbc )      ! CICE initialisation
-      
+
    END SUBROUTINE sbc_init
 
