Index: /branches/UKMO/r6232_INGV1_WAVE-coupling/NEMOGCM/CONFIG/SHARED/namelist_ref
===================================================================
--- /branches/UKMO/r6232_INGV1_WAVE-coupling/NEMOGCM/CONFIG/SHARED/namelist_ref	(revision 7738)
+++ /branches/UKMO/r6232_INGV1_WAVE-coupling/NEMOGCM/CONFIG/SHARED/namelist_ref	(revision 7739)
@@ -277,4 +277,8 @@
                            !  = 1  Average and redistribute per-category fluxes, forced mode only, not yet implemented coupled
                            !  = 2  Redistribute a single flux over categories (coupled mode only)
+   nn_drag   = 0           !  formula to calculate momentum from the wind components
+                           !  = 0 UKMO SHELF formulation
+                           !  = 1 standard formulation with forced of coupled drag coefficient
+                           !  = 2 standard formulation with constant drag coefficient
 /
 !-----------------------------------------------------------------------
@@ -1298,7 +1302,4 @@
 ! 
    cn_dir      = './'  !  root directory for the location of drag coefficient files
-   nn_drag     = 0     !  formula to calculate momentum from the wind components
-                              =0 UKMO SHELF formulation
-                              =1 standard formulation
 /
 !-----------------------------------------------------------------------
Index: /branches/UKMO/r6232_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
===================================================================
--- /branches/UKMO/r6232_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90	(revision 7738)
+++ /branches/UKMO/r6232_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90	(revision 7739)
@@ -956,5 +956,5 @@
       !!----------------------------------------------------------------------
       USE zdf_oce,  ONLY : ln_zdfqiao
-      USE sbcflx ,  ONLY : ln_shelf_flx
+      USE sbcflx ,  ONLY : ln_shelf_flx, nn_drag, jp_std
 
       INTEGER, INTENT(in)           ::   kt          ! ocean model time step index
Index: /branches/UKMO/r6232_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcflx.F90
===================================================================
--- /branches/UKMO/r6232_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcflx.F90	(revision 7738)
+++ /branches/UKMO/r6232_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcflx.F90	(revision 7739)
@@ -38,4 +38,9 @@
    LOGICAL , PUBLIC    ::   ln_shelf_flx = .FALSE. ! UKMO SHELF specific flux flag
    INTEGER             ::   jpfld_local   ! maximum number of files to read (locally modified depending on ln_shelf_flx) 
+
+   INTEGER, PUBLIC            ::   nn_drag        ! type of formula to calculate wind stress from wind components
+   INTEGER, PUBLIC, PARAMETER ::   jp_ukmo  = 0        ! UKMO SHELF formulation
+   INTEGER, PUBLIC, PARAMETER ::   jp_std   = 1        ! standard formulation with forced or coupled drag coefficient 
+   INTEGER, PUBLIC, PARAMETER ::   jp_const = 2        ! standard formulation with constant drag coefficient 
 
    !! * Substitutions
@@ -147,20 +152,30 @@
          !                                                        ! add modification due to drag coefficient read from wave forcing
          !                                                        ! this code is inefficient but put here to allow merging with another UKMO branch
-         IF( ln_shelf_flx .AND. ln_cdgw .AND. nn_drag == jp_std ) THEN
-            IF( cpl_wdrag ) THEN 
-               ! reset utau and vtau to the wind components: the momentum will
-               ! be calculated from the coupled value of the drag coefficient
-               DO jj = 1, jpj
-                  DO ji = 1, jpi
-                     utau(ji,jj) = sf(jp_utau)%fnow(ji,jj,1)
-                     vtau(ji,jj) = sf(jp_vtau)%fnow(ji,jj,1)
+         IF( ln_shelf_flx ) THEN
+            IF( ln_cdgw .AND. nn_drag == jp_std ) THEN
+               IF( cpl_wdrag ) THEN 
+                  ! reset utau and vtau to the wind components: the momentum will
+                  ! be calculated from the coupled value of the drag coefficient
+                  DO jj = 1, jpj
+                     DO ji = 1, jpi
+                        utau(ji,jj) = sf(jp_utau)%fnow(ji,jj,1)
+                        vtau(ji,jj) = sf(jp_vtau)%fnow(ji,jj,1)
+                     END DO
                   END DO
-               END DO
-            ELSE
+               ELSE
+                  DO jj = 1, jpj
+                     DO ji = 1, jpi
+                        totwind = sqrt((sf(jp_utau)%fnow(ji,jj,1))**2.0 + (sf(jp_vtau)%fnow(ji,jj,1))**2.0)
+                        utau(ji,jj) = zrhoa * cdn_wave(ji,jj) * sf(jp_utau)%fnow(ji,jj,1) * totwind
+                        vtau(ji,jj) = zrhoa * cdn_wave(ji,jj) * sf(jp_vtau)%fnow(ji,jj,1) * totwind
+                     END DO
+                  END DO
+               ENDIF
+            ELSE IF( nn_drag == jp_const ) THEN
                DO jj = 1, jpj
                   DO ji = 1, jpi
                      totwind = sqrt((sf(jp_utau)%fnow(ji,jj,1))**2.0 + (sf(jp_vtau)%fnow(ji,jj,1))**2.0)
-                     utau(ji,jj) = zrhoa * cdn_wave(ji,jj) * sf(jp_utau)%fnow(ji,jj,1) * totwind
-                     vtau(ji,jj) = zrhoa * cdn_wave(ji,jj) * sf(jp_vtau)%fnow(ji,jj,1) * totwind
+                     utau(ji,jj) = zrhoa * zcdrag * sf(jp_utau)%fnow(ji,jj,1) * totwind
+                     vtau(ji,jj) = zrhoa * zcdrag * sf(jp_vtau)%fnow(ji,jj,1) * totwind
                   END DO
                END DO
Index: /branches/UKMO/r6232_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
===================================================================
--- /branches/UKMO/r6232_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90	(revision 7738)
+++ /branches/UKMO/r6232_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90	(revision 7739)
@@ -90,5 +90,5 @@
          &             ln_ssr    , nn_isf    , nn_fwb, ln_cdgw    , ln_wave    , ln_sdw   ,   &
          &             ln_tauoc  , ln_stcor  , nn_lsm, nn_limflx , nn_components, ln_cpl  ,   &
-         &             ln_wavcpl
+         &             ln_wavcpl , nn_drag
       INTEGER  ::   ios
       INTEGER  ::   ierr, ierr0, ierr1, ierr2, ierr3, jpm
@@ -152,4 +152,5 @@
          WRITE(numout,*) '              closed sea (=0/1) (set in namdom)          nn_closea   = ', nn_closea
          WRITE(numout,*) '              n. of iterations if land-sea-mask applied  nn_lsm      = ', nn_lsm
+         WRITE(numout,*) '              momentum formulation (ln_shelf_flx)        nn_drag     = ', nn_drag
       ENDIF
 
Index: /branches/UKMO/r6232_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcwave.F90
===================================================================
--- /branches/UKMO/r6232_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcwave.F90	(revision 7738)
+++ /branches/UKMO/r6232_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcwave.F90	(revision 7739)
@@ -64,9 +64,4 @@
    REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:,:) ::   usd  , vsd  , wsd   !: Stokes drift velocities at u-, v- & w-points, resp.
 
-   INTEGER, PUBLIC            ::   nn_drag       ! type of formula to calculate wind stress from wind components
-   INTEGER, PUBLIC, PARAMETER ::   jp_ukmo = 0        ! UKMO SHELF formulation
-   INTEGER, PUBLIC, PARAMETER ::   jp_std  = 1        ! standard formulation: 
-
-   !! * Substitutions
 #  include "vectopt_loop_substitute.h90"
    !!----------------------------------------------------------------------
@@ -214,6 +209,4 @@
          CALL fld_read( kt, nn_fsbc, sf_cd )             ! read from external forcing
          cdn_wave(:,:) = sf_cd(1)%fnow(:,:,1)
-         ! make sure that the interpolation does not write silly fill values in case it fails in a grid point
-         where( cdn_wave > 1.0 ) cdn_wave = 1.5e-3 
       ENDIF
 
@@ -271,5 +264,5 @@
                              &   sn_hsw, sn_wmp, sn_wnum, sn_tauoc      ! informations about the fields to be read
       !
-      NAMELIST/namsbc_wave/  sn_cdg, cn_dir, sn_usd, sn_vsd, sn_hsw, sn_wmp, sn_wnum, sn_tauoc, nn_drag
+      NAMELIST/namsbc_wave/  sn_cdg, cn_dir, sn_usd, sn_vsd, sn_hsw, sn_wmp, sn_wnum, sn_tauoc
       !!---------------------------------------------------------------------
       !
@@ -284,10 +277,4 @@
       !
       IF( ln_cdgw ) THEN
-         ! check the value of nn_drag
-         IF( .NOT. ( nn_drag == jp_ukmo .OR. nn_drag == jp_std )) THEN
-            CALL ctl_stop( 'sbc_wave_init: nn_drag does not specify a valid drag formulation' )
-            RETURN  
-         ENDIF
-           
          IF( .NOT. cpl_wdrag ) THEN
             ALLOCATE( sf_cd(1), STAT=ierror )           !* allocate and fill sf_wave with sn_cdg
