Index: branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90
===================================================================
--- branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90	(revision 6410)
+++ branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90	(revision 6583)
@@ -30,9 +30,9 @@
    !!----------------------------------------------------------------------
    !                                   !!* namsbc namelist *
-   LOGICAL , PUBLIC ::   ln_ana         !: analytical boundary condition flag
-   LOGICAL , PUBLIC ::   ln_flx         !: flux      formulation
-   LOGICAL , PUBLIC ::   ln_blk_clio    !: CLIO bulk formulation
-   LOGICAL , PUBLIC ::   ln_blk_core    !: CORE bulk formulation
-   LOGICAL , PUBLIC ::   ln_blk_mfs     !: MFS  bulk formulation
+   LOGICAL , PUBLIC ::   ln_ana         !: user defined formulation
+   LOGICAL , PUBLIC ::   ln_flx         !: flux         formulation
+   LOGICAL , PUBLIC ::   ln_blk_clio    !: CLIO bulk    formulation
+   LOGICAL , PUBLIC ::   ln_blk_core    !: CORE bulk    formulation
+   LOGICAL , PUBLIC ::   ln_blk_mfs     !: MFS  bulk    formulation
 #if defined key_oasis3
    LOGICAL , PUBLIC ::   lk_oasis = .TRUE.  !: OASIS used
@@ -72,6 +72,5 @@
    !!           switch definition (improve readability)
    !!----------------------------------------------------------------------
-   INTEGER , PUBLIC, PARAMETER ::   jp_gyre    = 0        !: GYRE analytical               formulation
-   INTEGER , PUBLIC, PARAMETER ::   jp_ana     = 1        !: analytical                    formulation
+   INTEGER , PUBLIC, PARAMETER ::   jp_ana     = 1        !: user defined                  formulation
    INTEGER , PUBLIC, PARAMETER ::   jp_flx     = 2        !: flux                          formulation
    INTEGER , PUBLIC, PARAMETER ::   jp_clio    = 3        !: CLIO bulk                     formulation
Index: branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
===================================================================
--- branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90	(revision 6410)
+++ branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90	(revision 6583)
@@ -28,5 +28,4 @@
    USE sbcdcy         ! surface boundary condition: diurnal cycle
    USE sbcssm         ! surface boundary condition: sea-surface mean variables
-   USE sbcana         ! surface boundary condition: analytical formulation
    USE sbcflx         ! surface boundary condition: flux formulation
    USE sbcblk_clio    ! surface boundary condition: bulk formulation : CLIO
@@ -38,4 +37,5 @@
    USE sbcice_cice    ! surface boundary condition: CICE    sea-ice model
    USE sbccpl         ! surface boundary condition: coupled florulation
+   USE usrdef_sbc     ! user defined: surface boundary condition
    USE cpl_oasis3     ! OASIS routines for coupling
    USE sbcssr         ! surface boundary condition: sea surface restoring
@@ -120,8 +120,4 @@
         IF( lk_cice )   nn_ice      = 4
       ENDIF
-      IF( cp_cfg == 'gyre' ) THEN            ! GYRE configuration
-          ln_ana      = .TRUE.   
-          nn_ice      =   0
-      ENDIF
       !
       IF(lwp) THEN               ! Control print
@@ -129,9 +125,9 @@
          WRITE(numout,*) '           frequency update of sbc (and ice)             nn_fsbc     = ', nn_fsbc
          WRITE(numout,*) '           Type of air-sea fluxes : '
-         WRITE(numout,*) '              analytical formulation                     ln_ana        = ', ln_ana
-         WRITE(numout,*) '              flux       formulation                     ln_flx        = ', ln_flx
-         WRITE(numout,*) '              CLIO bulk  formulation                     ln_blk_clio   = ', ln_blk_clio
-         WRITE(numout,*) '              CORE bulk  formulation                     ln_blk_core   = ', ln_blk_core
-         WRITE(numout,*) '              MFS  bulk  formulation                     ln_blk_mfs    = ', ln_blk_mfs
+         WRITE(numout,*) '              user defined formulation                   ln_ana        = ', ln_ana
+         WRITE(numout,*) '              flux         formulation                   ln_flx        = ', ln_flx
+         WRITE(numout,*) '              CLIO bulk    formulation                   ln_blk_clio   = ', ln_blk_clio
+         WRITE(numout,*) '              CORE bulk    formulation                   ln_blk_core   = ', ln_blk_core
+         WRITE(numout,*) '              MFS  bulk    formulation                   ln_blk_mfs    = ', ln_blk_mfs
          WRITE(numout,*) '           Type of coupling (Ocean/Ice/Atmosphere) : '
          WRITE(numout,*) '              ocean-atmosphere coupled formulation       ln_cpl        = ', ln_cpl
@@ -160,7 +156,7 @@
          SELECT CASE ( nn_limflx )        ! LIM3 Multi-category heat flux formulation
          CASE ( -1 )   ;   WRITE(numout,*) '   LIM3: use per-category fluxes (nn_limflx = -1) '
-         CASE ( 0  )   ;   WRITE(numout,*) '   LIM3: use average per-category fluxes (nn_limflx = 0) ' 
-         CASE ( 1  )   ;   WRITE(numout,*) '   LIM3: use average then redistribute per-category fluxes (nn_limflx = 1) '
-         CASE ( 2  )   ;   WRITE(numout,*) '   LIM3: Redistribute a single flux over categories (nn_limflx = 2) '
+         CASE (  0 )   ;   WRITE(numout,*) '   LIM3: use average per-category fluxes (nn_limflx = 0) ' 
+         CASE (  1 )   ;   WRITE(numout,*) '   LIM3: use average then redistribute per-category fluxes (nn_limflx = 1) '
+         CASE (  2 )   ;   WRITE(numout,*) '   LIM3: Redistribute a single flux over categories (nn_limflx = 2) '
          END SELECT
       ENDIF
@@ -224,5 +220,5 @@
       !
       icpt = 0
-      IF( ln_ana          ) THEN   ;   nsbc = jp_ana     ; icpt = icpt + 1   ;   ENDIF       ! analytical           formulation
+      IF( ln_ana          ) THEN   ;   nsbc = jp_ana     ; icpt = icpt + 1   ;   ENDIF       ! user defined         formulation
       IF( ln_flx          ) THEN   ;   nsbc = jp_flx     ; icpt = icpt + 1   ;   ENDIF       ! flux                 formulation
       IF( ln_blk_clio     ) THEN   ;   nsbc = jp_clio    ; icpt = icpt + 1   ;   ENDIF       ! CLIO bulk            formulation
@@ -230,5 +226,4 @@
       IF( ln_blk_mfs      ) THEN   ;   nsbc = jp_mfs     ; icpt = icpt + 1   ;   ENDIF       ! MFS  bulk            formulation
       IF( ll_purecpl      ) THEN   ;   nsbc = jp_purecpl ; icpt = icpt + 1   ;   ENDIF       ! Pure Coupled         formulation
-      IF( cp_cfg == 'gyre') THEN   ;   nsbc = jp_gyre                        ;   ENDIF       ! GYRE analytical      formulation
       IF( nn_components == jp_iam_opa )   &
          &                  THEN   ;   nsbc = jp_none    ; icpt = icpt + 1   ;   ENDIF       ! opa coupling via SAS module
@@ -239,6 +234,5 @@
          WRITE(numout,*)
          SELECT CASE( nsbc )
-         CASE( jp_gyre    )   ;   WRITE(numout,*) '   GYRE analytical formulation'
-         CASE( jp_ana     )   ;   WRITE(numout,*) '   analytical formulation'
+         CASE( jp_ana     )   ;   WRITE(numout,*) '   user defined formulation'
          CASE( jp_flx     )   ;   WRITE(numout,*) '   flux formulation'
          CASE( jp_clio    )   ;   WRITE(numout,*) '   CLIO bulk formulation'
@@ -337,6 +331,5 @@
       SELECT CASE( nsbc )                                ! Compute ocean surface boundary condition
       !                                                  ! (i.e. utau,vtau, qns, qsr, emp, sfx)
-      CASE( jp_gyre  )   ;   CALL sbc_gyre    ( kt )                    ! analytical formulation : GYRE configuration
-      CASE( jp_ana   )   ;   CALL sbc_ana     ( kt )                    ! analytical formulation : uniform sbc
+      CASE( jp_ana   )   ;   CALL usr_def_sbc ( kt )                    ! user defined formulation 
       CASE( jp_flx   )   ;   CALL sbc_flx     ( kt )                    ! flux formulation
       CASE( jp_clio  )   ;   CALL sbc_blk_clio( kt )                    ! bulk formulation : CLIO for the ocean
