Index: /trunk/CONFIG/GYRE/EXP00/namelist
===================================================================
--- /trunk/CONFIG/GYRE/EXP00/namelist	(revision 1240)
+++ /trunk/CONFIG/GYRE/EXP00/namelist	(revision 1241)
@@ -78,5 +78,5 @@
    rdtmax      = 7200.     !  maximum time step on tracers (used if nacc=1)
    rdth        =  800.     !  depth variation of tracer time step  (used if nacc=1)
-   rdtbt       =  120.     !  barotropic time step (for the split explicit algorithm) ("key_dynspg_ts")
+   nn_baro     =   60      !  number of barotropic time step (for the split explicit algorithm) ("key_dynspg_ts")
    nclosea     =    0      !  = 0 no closed sea in the model domain
                            !  = 1 closed sea (Black Sea, Caspian Sea, Great US Lakes...) 
Index: /trunk/CONFIG/GYRE_LOBSTER/EXP00/namelist
===================================================================
--- /trunk/CONFIG/GYRE_LOBSTER/EXP00/namelist	(revision 1240)
+++ /trunk/CONFIG/GYRE_LOBSTER/EXP00/namelist	(revision 1241)
@@ -78,5 +78,5 @@
    rdtmax      = 7200.     !  maximum time step on tracers (used if nacc=1)
    rdth        =  800.     !  depth variation of tracer time step  (used if nacc=1)
-   rdtbt       =  120.     !  barotropic time step (for the split explicit algorithm) ("key_dynspg_ts")
+   nn_baro     =   60      !  number of barotropic time step (for the split explicit algorithm) ("key_dynspg_ts")
    nclosea     =    0      !  = 0 no closed sea in the model domain
                            !  = 1 closed sea (Black Sea, Caspian Sea, Great US Lakes...) 
Index: /trunk/CONFIG/ORCA2_LIM/EXP00/1_namelist
===================================================================
--- /trunk/CONFIG/ORCA2_LIM/EXP00/1_namelist	(revision 1240)
+++ /trunk/CONFIG/ORCA2_LIM/EXP00/1_namelist	(revision 1241)
@@ -78,5 +78,5 @@
    rdtmax      = 2880.     !  maximum time step on tracers (used if nacc=1)
    rdth        =  800.     !  depth variation of tracer time step  (used if nacc=1)
-   rdtbt       =   90.     !  barotropic time step (for the split explicit algorithm) ("key_dynspg_ts")
+   nn_baro     =   64      !  number of barotropic time step (for the split explicit algorithm) ("key_dynspg_ts")
    nclosea     =    0      !  = 0 no closed sea in the model domain
                            !  = 1 closed sea (Black Sea, Caspian Sea, Great US Lakes...) 
Index: /trunk/CONFIG/ORCA2_LIM/EXP00/namelist
===================================================================
--- /trunk/CONFIG/ORCA2_LIM/EXP00/namelist	(revision 1240)
+++ /trunk/CONFIG/ORCA2_LIM/EXP00/namelist	(revision 1241)
@@ -78,5 +78,5 @@
    rdtmax      = 5760.     !  maximum time step on tracers (used if nacc=1)
    rdth        =  800.     !  depth variation of tracer time step  (used if nacc=1)
-   rdtbt       =   90.     !  barotropic time step (for the split explicit algorithm) ("key_dynspg_ts")
+   nn_baro     =   64      !  number of barotropic time step (for the split explicit algorithm) ("key_dynspg_ts")
    nclosea     =    0      !  = 0 no closed sea in the model domain
                            !  = 1 closed sea (Black Sea, Caspian Sea, Great US Lakes...) 
Index: /trunk/CONFIG/ORCA2_LIM_PISCES/EXP00/namelist
===================================================================
--- /trunk/CONFIG/ORCA2_LIM_PISCES/EXP00/namelist	(revision 1240)
+++ /trunk/CONFIG/ORCA2_LIM_PISCES/EXP00/namelist	(revision 1241)
@@ -78,5 +78,5 @@
    rdtmax      = 5760.     !  maximum time step on tracers (used if nacc=1)
    rdth        =  800.     !  depth variation of tracer time step  (used if nacc=1)
-   rdtbt       =   90.     !  barotropic time step (for the split explicit algorithm) ("key_dynspg_ts")
+   nn_baro     =   64      !  number of barotropic time step (for the split explicit algorithm) ("key_dynspg_ts")
    nclosea     =    0      !  = 0 no closed sea in the model domain
                            !  = 1 closed sea (Black Sea, Caspian Sea, Great US Lakes...) 
Index: /trunk/NEMO/OPA_SRC/BDY/bdydta.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/BDY/bdydta.F90	(revision 1240)
+++ /trunk/NEMO/OPA_SRC/BDY/bdydta.F90	(revision 1241)
@@ -669,6 +669,6 @@
       ! *********************************************
 
-      itimer = ((kt-1)-nit000+1)*rdt      ! current time in seconds for interpolation 
-      itimer = itimer + jit*rdtbt         ! in non-climatological case
+      itimer = ((kt-1)-nit000+1)*rdt                      ! current time in seconds for interpolation 
+      itimer = itimer + jit*rdt/REAL(nn_baro,wp)      ! in non-climatological case
 
       IF ( ln_bdy_tides ) THEN
Index: /trunk/NEMO/OPA_SRC/BDY/bdytides.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/BDY/bdytides.F90	(revision 1240)
+++ /trunk/NEMO/OPA_SRC/BDY/bdytides.F90	(revision 1241)
@@ -301,5 +301,5 @@
          z_arg = kt * rdt * rad / 3600.0
       ELSE                              ! we are in a barotropic subcycle (for timesplitting option)
-         z_arg = ( (kt-1) * rdt + jit * rdtbt ) * rad / 3600.0
+         z_arg = ( (kt-1) * rdt + jit * rdt / REAL(nn_baro,lwp) ) * rad / 3600.0
       ENDIF
 
Index: /trunk/NEMO/OPA_SRC/DOM/dom_oce.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/DOM/dom_oce.F90	(revision 1240)
+++ /trunk/NEMO/OPA_SRC/DOM/dom_oce.F90	(revision 1241)
@@ -200,8 +200,8 @@
    !! time domain
    !!----------------------------------------------------------------------
-   INTEGER, PUBLIC ::    & !!: * Namelist * ???
-      nacc   = 0 ,       &  !: = 0/1 use of the acceleration of convergence technique
-      neuler                !: restart euler forward option (0=Euler)
-
+   INTEGER, PUBLIC ::      & !!: * Namelist * ???
+      nacc   = 0   ,       &  !: = 0/1 use of the acceleration of convergence technique
+      neuler       ,       &  !: restart euler forward option (0=Euler)
+      nn_baro = 64            !: number of barotropic time steps (key_dynspg_ts)
 
    REAL(wp), PUBLIC ::       & !!: * Namelist ??? *
@@ -210,5 +210,4 @@
       rdtmax = 3600._wp ,    &  !: maximum time step on tracers
       rdth   =  800._wp ,    &  !: depth variation of tracer step
-      rdtbt  =   90._wp ,    &  !: barotropic time step for the dynamics (lk_dynspg_ts=T)
       atfp   = 0.1_wp   ,    &  !: asselin time filter parameter
       atfp1                     !: asselin time filter coeff. (atfp1= 1-2*atfp)
Index: /trunk/NEMO/OPA_SRC/DOM/domain.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/DOM/domain.F90	(revision 1240)
+++ /trunk/NEMO/OPA_SRC/DOM/domain.F90	(revision 1241)
@@ -146,5 +146,5 @@
       NAMELIST/namdom/ ntopo , e3zps_min, e3zps_rat, nmsh   ,   &
          &             nacc  , atfp     , rdt      , rdtmin ,   &
-         &             rdtmax, rdth     , rdtbt    , nclosea
+         &             rdtmax, rdth     , nn_baro  , nclosea
       NAMELIST/namcla/ n_cla
       !!----------------------------------------------------------------------
@@ -248,5 +248,5 @@
          WRITE(numout,*) '           maximum time step on tracers   rdtmax    = ', rdtmax
          WRITE(numout,*) '           depth variation tracer step    rdth      = ', rdth
-         WRITE(numout,*) '           barotropic time step           rdtbt     = ', rdtbt
+         WRITE(numout,*) '           number of barotropic time step nn_baro   = ', nn_baro
       ENDIF
 
Index: /trunk/NEMO/OPA_SRC/DYN/dynspg.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/DYN/dynspg.F90	(revision 1240)
+++ /trunk/NEMO/OPA_SRC/DYN/dynspg.F90	(revision 1241)
@@ -158,7 +158,7 @@
       ! Control of timestep choice
       ! --------------------------
-      IF( lk_dynspg_ts ) THEN
-         IF( MOD( rdt , rdtbt ) /= 0. )   &
-           &   CALL ctl_stop( ' The barotropic timestep must be an integer divisor of the baroclinic timestep' )
+      IF( lk_dynspg_ts .OR. lk_dynspg_exp ) THEN
+         IF( n_cla == 1 )   &
+           &   CALL ctl_stop( ' Crossland advection not implemented for this free surface formulation ' )
       ENDIF
 
Index: /trunk/NEMO/OPA_SRC/DYN/dynspg_ts.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/DYN/dynspg_ts.F90	(revision 1240)
+++ /trunk/NEMO/OPA_SRC/DYN/dynspg_ts.F90	(revision 1241)
@@ -99,5 +99,5 @@
       !! * Local declarations
       INTEGER  ::  ji, jj, jk, jit             ! dummy loop indices
-      INTEGER  ::  icycle, ibaro               ! temporary scalar
+      INTEGER  ::  icycle                      ! temporary scalar
       REAL(wp) ::                           &
          zraur, zcoef, z2dt_e, z2dt_b, zfac25,   &  ! temporary scalars
@@ -128,5 +128,5 @@
          IF(lwp) WRITE(numout,*) 'dyn_spg_ts : surface pressure gradient trend'
          IF(lwp) WRITE(numout,*) '~~~~~~~~~~   free surface with time splitting'
-         IF(lwp) WRITE(numout,*) ' Number of sub cycle in 1 time-step (2 rdt) : icycle = ', FLOOR( 2*rdt/rdtbt )
+         IF(lwp) WRITE(numout,*) ' Number of sub cycle in 1 time-step (2 rdt) : icycle = ',  2*nn_baro
 
          CALL ts_rst( nit000, 'READ' )   ! read or initialize the following fields:
@@ -304,6 +304,5 @@
       !----------------
       ! Number of iteration of the barotropic loop
-      ibaro = FLOOR( rdt / rdtbt )
-      icycle = 3 /2 * ibaro 
+      icycle = 3  * nn_baro / 2
 
       ! variables for the barotropic equations
@@ -341,6 +340,6 @@
       DO jit = 1, icycle                                   !  sub-time-step loop  !
          !                                                 ! ==================== !
-         z2dt_e = 2. * rdtbt
-         IF ( jit == 1 )   z2dt_e = rdtbt
+         z2dt_e = 2. * ( rdt / nn_baro )
+         IF ( jit == 1 )   z2dt_e = rdt / nn_baro
 
          ! Time interpolation of open boundary condition data
@@ -484,5 +483,5 @@
          ! temporal sum
          !-------------
-         IF( jit >= ibaro/2 ) THEN
+         IF( jit >= nn_baro / 2 ) THEN
             zssha_b(:,:) = zssha_b(:,:) + ssha_e(:,:)
             zua_b  (:,:) = zua_b  (:,:) + ua_e  (:,:)
@@ -552,13 +551,13 @@
 
       ! Time average of after barotropic variables
-      zcoef =  1.e0 / ( ibaro + 1 )
+      zcoef =  1.e0 / ( nn_baro + 1 ) 
       zssha_b(:,:) = zcoef * zssha_b(:,:) 
       zua_b  (:,:) = zcoef *  zua_b (:,:) 
       zva_b  (:,:) = zcoef *  zva_b (:,:) 
 #if defined key_obc
-         IF( lp_obc_east  )   sshfoe_b(:,:) = zcoef * sshfoe_b(:,:)
-         IF( lp_obc_west  )   sshfow_b(:,:) = zcoef * sshfow_b(:,:)
-         IF( lp_obc_north )   sshfon_b(:,:) = zcoef * sshfon_b(:,:)
-         IF( lp_obc_south )   sshfos_b(:,:) = zcoef * sshfos_b(:,:)
+      IF( lp_obc_east  )   sshfoe_b(:,:) = zcoef * sshfoe_b(:,:)
+      IF( lp_obc_west  )   sshfow_b(:,:) = zcoef * sshfow_b(:,:)
+      IF( lp_obc_north )   sshfon_b(:,:) = zcoef * sshfon_b(:,:)
+      IF( lp_obc_south )   sshfos_b(:,:) = zcoef * sshfos_b(:,:)
 #endif
      
@@ -620,5 +619,5 @@
       ! ------------------------------------------
       sshb_b(:,:) = sshn_b (:,:)
-      IF ( kt == nit000 ) zssha_b(:,:) = sshn(:,:)
+      IF ( neuler == 0 .AND. kt == nit000 ) zssha_b(:,:) = sshn(:,:)
       sshn_b(:,:) = zssha_b(:,:)
       un_b  (:,:) = zua_b  (:,:) 
Index: /trunk/NEMO/OPA_SRC/DYN/wzvmod.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/DYN/wzvmod.F90	(revision 1240)
+++ /trunk/NEMO/OPA_SRC/DYN/wzvmod.F90	(revision 1241)
@@ -21,4 +21,6 @@
    USE bdy_oce         ! unstructured open boundaries
    USE lbclnk          ! ocean lateral boundary condition (or mpp link)
+   USE obc_par         ! open boundary cond. parameter
+   USE obc_oce
 
    IMPLICIT NONE
Index: /trunk/NEMO/OPA_SRC/OBC/obcdta.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/OBC/obcdta.F90	(revision 1240)
+++ /trunk/NEMO/OPA_SRC/OBC/obcdta.F90	(revision 1241)
@@ -986,8 +986,8 @@
 
     IF( lk_dynspg_ts ) THEN
-       isrel = (kt-1)*rdt + kbt*rdtbt
+       isrel = (kt-1)*rdt + kbt*(rdt/REAL(nn_baro,wp))
 
        IF( nobc_dta == 1 ) THEN
-          isrel = (kt-1)*rdt + kbt*rdtbt
+          isrel = (kt-1)*rdt + kbt*(rdt/REAL(nn_baro,wp))
           itimo  = FLOOR(  kt*rdt    / (tcobc(2)-tcobc(1)) )
           itimom = FLOOR( (kt-1)*rdt / (tcobc(2)-tcobc(1)) )
