Index: /branches/UKMO/dev_r5518_GO6_package_r8638_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_ice.F90
===================================================================
--- /branches/UKMO/dev_r5518_GO6_package_r8638_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_ice.F90	(revision 9713)
+++ /branches/UKMO/dev_r5518_GO6_package_r8638_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_ice.F90	(revision 9714)
@@ -126,4 +126,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(:,:)   ::  rough_ice_fmd, rough_ice_skin
 #endif
 
@@ -188,4 +189,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( rough_ice_fmd(jpi,jpj) , rough_ice_skin(jpi,jpj) , STAT=ierr(5) ) 
 #endif
 
Index: /branches/UKMO/dev_r5518_GO6_package_r8638_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
===================================================================
--- /branches/UKMO/dev_r5518_GO6_package_r8638_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90	(revision 9713)
+++ /branches/UKMO/dev_r5518_GO6_package_r8638_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90	(revision 9714)
@@ -149,5 +149,7 @@
    INTEGER, PARAMETER ::   jps_bio_dms = 35           ! MEDUSA DMS surface concentration
    INTEGER, PARAMETER ::   jps_bio_chloro = 36        ! MEDUSA chlorophyll surface concentration
-   INTEGER, PARAMETER ::   jpsnd      = 36            ! total number of fields sent
+   INTEGER, PARAMETER ::   jps_rough_ice_fmd = 37     ! ice form drag roughness length
+   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
@@ -163,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
+   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                   
 
@@ -241,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_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,  &
@@ -868,7 +870,21 @@
       CASE default   ;   CALL ctl_stop( 'sbc_cpl_init: wrong definition of sn_snd_cond%cldes' )
       END SELECT
-      !
-      
-
+      !     
+      !                                                      ! ------------------------- !
+      !                                                      !   Sea ice form drag       !
+      !                                                      ! ------------------------- !
+      ssnd(jps_rough_ice_fmd )%clname = 'OIceFmd'
+      ssnd(jps_rough_ice_skin )%clname = 'ORghIcSk'
+      SELECT CASE ( TRIM( sn_snd_icerough%cldes ) )
+         CASE ( 'none' )
+            ssnd(jps_rough_ice_fmd)%laction = .FALSE.
+            ssnd(jps_rough_ice_skin)%laction = .FALSE.
+         CASE ( 'ice', 'weighted ice' )
+            ssnd(jps_rough_ice_fmd)%laction = .TRUE.
+            ssnd(jps_rough_ice_skin)%laction = .TRUE.
+         CASE default   ;   CALL ctl_stop( 'sbc_cpl_init: wrong definition of sn_snd_icerough%cldes' )
+      END SELECT
+      !
+      !
       !                                                      ! ------------------------------- !
       !                                                      !   OPA-SAS coupling - snd by opa !   
@@ -2627,4 +2643,32 @@
 #endif
       !
+      !     
+      !                                                      ! ------------------------- !
+      !                                                      !   Sea ice form drag       !
+      !                                                      ! ------------------------- !
+#if defined key_cice
+      IF( ssnd(jps_rough_ice_fmd)%laction ) THEN
+          SELECT CASE( sn_snd_icerough%cldes )
+             CASE( 'ice' )
+                ztmp1(:,:) = rough_ice_fmd(:,:)
+             CASE( 'weighted ice' )
+                ztmp1(:,:) = rough_ice_fmd(:,:) * 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_fmd)%laction )   CALL cpl_snd( jps_rough_ice_fmd, 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
+      !
       CALL wrk_dealloc( jpi,jpj, zfr_l, ztmp1, ztmp2, zotx1, zoty1, zotz1, zitx1, zity1, zitz1 )
       CALL wrk_dealloc( jpi,jpj, zotx1_in, zoty1_in )
Index: /branches/UKMO/dev_r5518_GO6_package_r8638_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90
===================================================================
--- /branches/UKMO/dev_r5518_GO6_package_r8638_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90	(revision 9713)
+++ /branches/UKMO/dev_r5518_GO6_package_r8638_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90	(revision 9714)
@@ -71,5 +71,5 @@
 #endif
    USE ice_forcing, only: frcvdr,frcvdf,frcidr,frcidf
-   USE ice_atmo, only: calc_strair
+   USE ice_atmo, only: calc_strair, z0atm, z0atmskin
 
    USE CICE_InitMod
@@ -261,4 +261,8 @@
          snwice_mass_b(:,:) = 0.0_wp         ! no mass exchanges
       ENDIF
+
+      CALL cice2nemo(z0atm,rough_ice_fmd,'T', 1. )
+      CALL cice2nemo(z0atmskin,rough_ice_skin,'T', 1. )
+
       IF( .NOT. ln_rstart ) THEN
          IF( nn_ice_embd == 2 ) THEN            ! full embedment (case 2) deplete the initial ssh below sea-ice area
@@ -808,4 +812,10 @@
       ENDIF       
 
+! Surface roughness length for form drag
+      CALL cice2nemo(z0atm,rough_ice_fmd,'T', 1. )
+
+! Surface skin roughness length
+      CALL cice2nemo(z0atmskin,rough_ice_skin,'T', 1. )
+
       !
       IF( nn_timing == 1 )  CALL timing_stop('cice_sbc_hadgam')
