Index: branches/UKMO/2014_Surge_Modelling/NEMOGCM/CONFIG/AMM7_SURGE/EXP00/iodef.xml
===================================================================
--- branches/UKMO/2014_Surge_Modelling/NEMOGCM/CONFIG/AMM7_SURGE/EXP00/iodef.xml	(revision 5274)
+++ branches/UKMO/2014_Surge_Modelling/NEMOGCM/CONFIG/AMM7_SURGE/EXP00/iodef.xml	(revision 5275)
@@ -165,5 +165,5 @@
 	  <variable id="buffer_server_factor_size" type="integer">2</variable>
 	  <variable id="info_level"                type="integer">0</variable>
-	  <variable id="using_server"              type="boolean">false</variable>
+	  <variable id="using_server"              type="boolean">true</variable>
 	  <variable id="using_oasis"               type="boolean">false</variable>
 	  <variable id="oasis_codes_id"            type="string" >oceanx</variable>
Index: branches/UKMO/2014_Surge_Modelling/NEMOGCM/CONFIG/AMM7_SURGE/EXP00/namelist_cfg
===================================================================
--- branches/UKMO/2014_Surge_Modelling/NEMOGCM/CONFIG/AMM7_SURGE/EXP00/namelist_cfg	(revision 5274)
+++ branches/UKMO/2014_Surge_Modelling/NEMOGCM/CONFIG/AMM7_SURGE/EXP00/namelist_cfg	(revision 5275)
@@ -131,4 +131,5 @@
    ln_taudif   = .false.   !  HF tau contribution: use "mean of stress module - module of the mean stress" data
    rn_pfac     = 1.        !  multiplicative factor for precipitation (total & snow)
+   ln_charnock = .true.    ! logical flag for charnock wind stress in surge model(true) or not(false)
 /
 !-----------------------------------------------------------------------
Index: branches/UKMO/2014_Surge_Modelling/NEMOGCM/CONFIG/AMM7_SURGE/EXP00/namelist_ref
===================================================================
--- branches/UKMO/2014_Surge_Modelling/NEMOGCM/CONFIG/AMM7_SURGE/EXP00/namelist_ref	(revision 5274)
+++ branches/UKMO/2014_Surge_Modelling/NEMOGCM/CONFIG/AMM7_SURGE/EXP00/namelist_ref	(revision 5275)
@@ -305,4 +305,5 @@
    rn_vfac     = 0.        !  multiplicative factor for ocean/ice velocity 
                            !  in the calculation of the wind stress (0.=absolute winds or 1.=relative winds)
+   ln_charnock = .false.   ! logical flag for charnock wind stress in surge model(true) or not(false)
 /
 !-----------------------------------------------------------------------
Index: branches/UKMO/2014_Surge_Modelling/NEMOGCM/CONFIG/cfg.txt
===================================================================
--- branches/UKMO/2014_Surge_Modelling/NEMOGCM/CONFIG/cfg.txt	(revision 5274)
+++ branches/UKMO/2014_Surge_Modelling/NEMOGCM/CONFIG/cfg.txt	(revision 5275)
@@ -12,3 +12,2 @@
 AMM12 OPA_SRC
 AMM7_SURGE OPA_SRC
-AMM7 OPA_SRC
Index: branches/UKMO/2014_Surge_Modelling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90
===================================================================
--- branches/UKMO/2014_Surge_Modelling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90	(revision 5274)
+++ branches/UKMO/2014_Surge_Modelling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90	(revision 5275)
@@ -83,4 +83,5 @@
    REAL(wp) ::   rn_zqt      ! z(q,t) : height of humidity and temperature measurements
    REAL(wp) ::   rn_zu       ! z(u)   : height of wind measurements
+   LOGICAL  ::   ln_charnock ! logical flag for charnock wind stress in surge model(true) or not(false)
 
    !! * Substitutions
@@ -139,5 +140,5 @@
          &                  sn_wndi, sn_wndj, sn_humi  , sn_qsr ,           &
          &                  sn_qlw , sn_tair, sn_prec  , sn_snow,           &
-         &                  sn_tdif, rn_zqt , ln_bulk2z, rn_zu
+         &                  sn_tdif, rn_zqt , ln_bulk2z, rn_zu, ln_charnock 
       !!---------------------------------------------------------------------
 
@@ -239,4 +240,7 @@
       INTEGER  ::   ji, jj               ! dummy loop indices
       REAL(wp) ::   zcoef_qsatw, zztmp   ! local variable
+      REAL(wp) ::   z_z0, z_Cd1          ! local variable
+      REAL(wp) ::   i                    ! local variable
+      REAL(wp) ::   charn_const=0.0275    ! local variable
       REAL(wp), DIMENSION(:,:), POINTER ::   zwnd_i, zwnd_j    ! wind speed components at T-point
       REAL(wp), DIMENSION(:,:), POINTER ::   zqsatw            ! specific humidity at pst
@@ -300,5 +304,5 @@
       !      I   Radiative FLUXES                                                     !
       ! ----------------------------------------------------------------------------- !
-    
+      
       ! ocean albedo assumed to be constant + modify now Qsr to include the diurnal cycle                    ! Short Wave
       zztmp = 1. - albo
@@ -316,43 +320,61 @@
       !     II    Turbulent FLUXES                                                    !
       ! ----------------------------------------------------------------------------- !
-
-      ! ... specific humidity at SST and IST
+      IF (ln_charnock) THEN
+          Cd(:,:)=0.0001_wp
+          DO jj = 1,jpj
+             DO ji = 1,jpi
+                z_Cd1=0._wp
+                i=1
+                !Iterate
+                DO WHILE((abs(Cd(ji,jj)-z_Cd1))>1E-6)
+                z_Cd1=Cd(ji,jj)
+                z_z0=charn_const*z_Cd1*wndm(ji,jj)**2/grav
+                Cd(ji,jj)=(0.41_wp/log(10._wp/z_z0))**2
+                i=i+1
+                ENDDO
+             ENDDO
+          ENDDO
+      ELSE
+
+        ! ... specific humidity at SST and IST
 !CDIR NOVERRCHK
 !CDIR COLLAPSE
-      zqsatw(:,:) = zcoef_qsatw * EXP( -5107.4 / zst(:,:) ) 
-
-      ! ... NCAR Bulk formulae, computation of Cd, Ch, Ce at T-point :
-      IF( ln_2m ) THEN
-         !! If air temp. and spec. hum. are given at different height (2m) than wind (10m) :
-         CALL TURB_CORE_2Z(2.,10., zst   , sf(jp_tair)%fnow,         &
-            &                      zqsatw, sf(jp_humi)%fnow, wndm,   &
-            &                      Cd    , Ch              , Ce  ,   &
-            &                      zt_zu , zq_zu                   )
-      ELSE IF( ln_bulk2z ) THEN
-         !! If the height of the air temp./spec. hum. and wind are to be specified by hand :
-         IF( rn_zqt == rn_zu ) THEN
-            !! If air temp. and spec. hum. are at the same height as wind :
-            CALL TURB_CORE_1Z( rn_zu, zst   , sf(jp_tair)%fnow(:,:,1),       &
-               &                      zqsatw, sf(jp_humi)%fnow(:,:,1), wndm, &
-               &                      Cd    , Ch                     , Ce  )
-         ELSE
-            !! If air temp. and spec. hum. are at a different height to wind :
-            CALL TURB_CORE_2Z(rn_zqt, rn_zu , zst   , sf(jp_tair)%fnow,         &
-               &                              zqsatw, sf(jp_humi)%fnow, wndm,   &
-               &                              Cd    , Ch              , Ce  ,   &
-               &                              zt_zu , zq_zu                 )
-         ENDIF
-      ELSE
-         !! If air temp. and spec. hum. are given at same height than wind (10m) :
+        zqsatw(:,:) = zcoef_qsatw * EXP( -5107.4 / zst(:,:) ) 
+
+        ! ... NCAR Bulk formulae, computation of Cd, Ch, Ce at T-point :
+        IF( ln_2m ) THEN
+           !! If air temp. and spec. hum. are given at different height (2m) than wind (10m) :
+           CALL TURB_CORE_2Z(2.,10., zst   , sf(jp_tair)%fnow,         &
+              &                      zqsatw, sf(jp_humi)%fnow, wndm,   &
+              &                      Cd    , Ch              , Ce  ,   &
+              &                      zt_zu , zq_zu                   )
+        ELSE IF( ln_bulk2z ) THEN
+           !! If the height of the air temp./spec. hum. and wind are to be specified by hand :
+           IF( rn_zqt == rn_zu ) THEN
+              !! If air temp. and spec. hum. are at the same height as wind :
+              CALL TURB_CORE_1Z( rn_zu, zst   , sf(jp_tair)%fnow(:,:,1),       &
+                 &                      zqsatw, sf(jp_humi)%fnow(:,:,1), wndm, &
+                 &                      Cd    , Ch                     , Ce  )
+           ELSE
+              !! If air temp. and spec. hum. are at a different height to wind :
+              CALL TURB_CORE_2Z(rn_zqt, rn_zu , zst   , sf(jp_tair)%fnow,         &
+                 &                              zqsatw, sf(jp_humi)%fnow, wndm,   &
+                 &                              Cd    , Ch              , Ce  ,   &
+                 &                              zt_zu , zq_zu                 )
+           ENDIF
+        ELSE
+           !! If air temp. and spec. hum. are given at same height than wind (10m) :
 !gm bug?  at the compiling phase, add a copy in temporary arrays...  ==> check perf
-!         CALL TURB_CORE_1Z( 10., zst   (:,:), sf(jp_tair)%fnow(:,:),              &
-!            &                    zqsatw(:,:), sf(jp_humi)%fnow(:,:), wndm(:,:),   &
-!            &                    Cd    (:,:),             Ch  (:,:), Ce  (:,:)  )
+!           CALL TURB_CORE_1Z( 10., zst   (:,:), sf(jp_tair)%fnow(:,:),              &
+!              &                    zqsatw(:,:), sf(jp_humi)%fnow(:,:), wndm(:,:),   &
+!              &                    Cd    (:,:),             Ch  (:,:), Ce  (:,:)  )
 !gm bug
 ! ARPDBG - this won't compile with gfortran. Fix but check performance
 ! as per comment above.
-         CALL TURB_CORE_1Z( 10., zst   , sf(jp_tair)%fnow(:,:,1),       &
-            &                    zqsatw, sf(jp_humi)%fnow(:,:,1), wndm, &
-            &                    Cd    , Ch              , Ce    )
+           CALL TURB_CORE_1Z( 10., zst   , sf(jp_tair)%fnow(:,:,1),       &
+              &                    zqsatw, sf(jp_humi)%fnow(:,:,1), wndm, &
+              &                    Cd    , Ch              , Ce    )
+        ENDIF
+
       ENDIF
 
