Index: branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/CONFIG/SHARED/namelist_ref
===================================================================
--- branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/CONFIG/SHARED/namelist_ref	(revision 8897)
+++ branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/CONFIG/SHARED/namelist_ref	(revision 8898)
@@ -835,4 +835,5 @@
          rn_bt_cmax   =  0.8        ! =T : the Maximum Courant Number allowed
          nn_baro      = 30          ! =F : the number of sub-step in rn_rdt seconds
+      rn_bt_alpha   = 0.1        ! Temporal diffusion parameter (if ln_bt_av=F)
 /
 !-----------------------------------------------------------------------
Index: branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/NST_SRC/agrif_opa_update.F90
===================================================================
--- branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/NST_SRC/agrif_opa_update.F90	(revision 8897)
+++ branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/NST_SRC/agrif_opa_update.F90	(revision 8898)
@@ -103,4 +103,12 @@
       !
       nbcline = nbcline + 1
+      !
+# if ! defined DECAL_FEEDBACK
+      ! Account for updated thicknesses at boundary edges
+      IF (.NOT.ln_linssh) THEN
+         CALL Agrif_Update_Variable(un_update_id,locupdate1=(/0,0/),locupdate2=(/0,0/),procname = correct_u_bdy)
+         CALL Agrif_Update_Variable(vn_update_id,locupdate1=(/0,0/),locupdate2=(/0,0/),procname = correct_v_bdy)
+      ENDIF
+# endif
       ! 
       IF ( ln_dynspg_ts.AND.ln_bt_fw ) THEN
@@ -379,5 +387,5 @@
                   !
                   IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN ! Add asselin part
-                     zub  = ub(ji,jj,jk) * e3u_b(ji,jj,jk)
+                     zub  = ub(ji,jj,jk) * e3u_b(ji,jj,jk)  ! fse3t_b prior update should be used
                      zuno = un(ji,jj,jk) * e3u_a(ji,jj,jk)
                      zunu = tabres(ji,jj,jk)
@@ -399,4 +407,48 @@
    END SUBROUTINE updateu
 
+   SUBROUTINE correct_u_bdy( tabres, i1, i2, j1, j2, k1, k2, before, nb, ndir )
+      !!---------------------------------------------
+      !!           *** ROUTINE correct_u_bdy ***
+      !!---------------------------------------------
+      INTEGER                               , INTENT(in   ) :: i1, i2, j1, j2, k1, k2
+      REAL(wp), DIMENSION(i1:i2,j1:j2,k1:k2), INTENT(inout) :: tabres
+      LOGICAL                               , INTENT(in   ) :: before
+      INTEGER                               , INTENT(in)    :: nb, ndir
+      !!
+      LOGICAL :: western_side, eastern_side 
+      !
+      INTEGER  :: jj, jk
+      REAL(wp) :: zcor
+      !!---------------------------------------------
+      ! 
+      IF( .NOT.before ) THEN
+         !
+         western_side  = (nb == 1).AND.(ndir == 1)
+         eastern_side  = (nb == 1).AND.(ndir == 2)
+         !
+         IF (western_side) THEN
+            DO jj=j1,j2
+               zcor = un_b(i1-1,jj) * hu_a(i1-1,jj) * r1_hu_n(i1-1,jj) - un_b(i1-1,jj)
+               un_b(i1-1,jj) = un_b(i1-1,jj) + zcor
+               DO jk=1,jpkm1
+                  un(i1-1,jj,jk) = un(i1-1,jj,jk) + zcor * umask(i1-1,jj,jk)
+               END DO 
+            END DO
+         ENDIF
+         !
+         IF (eastern_side) THEN
+            DO jj=j1,j2
+               zcor = un_b(i2+1,jj) * hu_a(i2+1,jj) * r1_hu_n(i2+1,jj) - un_b(i2+1,jj)
+               un_b(i2+1,jj) = un_b(i2+1,jj) + zcor
+               DO jk=1,jpkm1
+                  un(i2+1,jj,jk) = un(i2+1,jj,jk) + zcor * umask(i2+1,jj,jk)
+               END DO 
+            END DO
+         ENDIF
+         !
+      ENDIF
+      ! 
+   END SUBROUTINE correct_u_bdy
+
 
    SUBROUTINE updatev( tabres, i1, i2, j1, j2, k1, k2, before)
@@ -428,5 +480,5 @@
                   !
                   IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN ! Add asselin part
-                     zvb  = vb(ji,jj,jk) * e3v_b(ji,jj,jk)
+                     zvb  = vb(ji,jj,jk) * e3v_b(ji,jj,jk) ! fse3t_b prior update should be used
                      zvno = vn(ji,jj,jk) * e3v_a(ji,jj,jk)
                      zvnu = tabres(ji,jj,jk)
@@ -447,4 +499,48 @@
       ! 
    END SUBROUTINE updatev
+
+   SUBROUTINE correct_v_bdy( tabres, i1, i2, j1, j2, k1, k2, before, nb, ndir )
+      !!---------------------------------------------
+      !!           *** ROUTINE correct_u_bdy ***
+      !!---------------------------------------------
+      INTEGER                               , INTENT(in   ) :: i1, i2, j1, j2, k1, k2
+      REAL(wp), DIMENSION(i1:i2,j1:j2,k1:k2), INTENT(inout) :: tabres
+      LOGICAL                               , INTENT(in   ) :: before
+      INTEGER                               , INTENT(in)    :: nb, ndir
+      !!
+      LOGICAL :: southern_side, northern_side 
+      !
+      INTEGER  :: ji, jk
+      REAL(wp) :: zcor
+      !!---------------------------------------------
+      ! 
+      IF( .NOT.before ) THEN
+         !
+         southern_side = (nb == 2).AND.(ndir == 1)
+         northern_side = (nb == 2).AND.(ndir == 2)
+         !
+         IF (southern_side) THEN
+            DO ji=i1,i2
+               zcor = vn_b(ji,j1-1) * hv_a(ji,j1-1) * r1_hv_n(ji,j1-1) - vn_b(ji,j1-1)
+               vn_b(ji,j1-1) = vn_b(ji,j1-1) + zcor
+               DO jk=1,jpkm1
+                  vn(ji,j1-1,jk) = vn(ji,j1-1,jk) + zcor * vmask(ji,j1-1,jk)
+               END DO 
+            END DO
+         ENDIF
+         !
+         IF (northern_side) THEN
+            DO ji=i1,i2
+               zcor = vn_b(ji,j2+1) * hv_a(ji,j2+1) * r1_hv_n(ji,j2+1) - vn_b(ji,j2+1)
+               vn_b(ji,j2+1) = vn_b(ji,j2+1) + zcor
+               DO jk=1,jpkm1
+                  vn(ji,j2+1,jk) = vn(ji,j2+1,jk) + zcor * vmask(ji,j2+1,jk)
+               END DO 
+            END DO
+         ENDIF
+         !
+      ENDIF
+      ! 
+   END SUBROUTINE correct_v_bdy
 
 
@@ -602,9 +698,5 @@
          END DO
       ELSE
-         IF (     (.NOT.(lk_agrif_fstep.AND.(neuler==0)).AND.(ln_dynspg_exp)) &
-            & .OR.(.NOT.(lk_agrif_fstep.AND.(neuler==0)).AND.(ln_dynspg_ts    &
-            & .AND.(.NOT.ln_bt_fw)))) THEN
-! tsplit_new
-!         IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN
+         IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN
             DO jj=j1,j2
                DO ji=i1,i2
@@ -662,6 +754,5 @@
                ub2_i_b(ji,jj) = ub2_i_b(ji,jj) + za1 * zcor 
                ! Update corrective fluxes:
-! tsplit_new
-!               un_bf(ji,jj)  = un_bf(ji,jj) + zcor
+               un_bf(ji,jj)  = un_bf(ji,jj) + zcor
                ! Update half step back fluxes:
                ub2_b(ji,jj) = tabres(ji,jj)
@@ -720,5 +811,4 @@
    END SUBROUTINE reflux_sshu
 
-
    SUBROUTINE updatevb2b( tabres, i1, i2, j1, j2, before )
       !!---------------------------------------------
@@ -752,6 +842,5 @@
                vb2_i_b(ji,jj) = vb2_i_b(ji,jj) + za1 * zcor 
                ! Update corrective fluxes:
-! tsplit_new
-!               vn_bf(ji,jj)  = vn_bf(ji,jj) + zcor
+               vn_bf(ji,jj)  = vn_bf(ji,jj) + zcor
                ! Update half step back fluxes:
                vb2_b(ji,jj) = tabres(ji,jj)
@@ -952,10 +1041,5 @@
 !         hdivn(i1:i2,j1:j2,1:jpkm1)   = e3t_b(i1:i2,j1:j2,1:jpkm1)
 
-         IF (     (.NOT.(lk_agrif_fstep.AND.(neuler==0)).AND.(ln_dynspg_exp)) &
-            & .OR.(.NOT.(lk_agrif_fstep.AND.(neuler==0)).AND.(ln_dynspg_ts    &
-            & .AND.(.NOT.ln_bt_fw)))) THEN
-! tsplit_new
-!         IF (.NOT.(lk_agrif_fstep.AND.(neuler==0) )) THEN
-
+         IF (.NOT.(lk_agrif_fstep.AND.(neuler==0) )) THEN
             DO jk = 1, jpkm1
                DO jj=j1,j2
Index: branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90
===================================================================
--- branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90	(revision 8897)
+++ branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90	(revision 8898)
@@ -53,4 +53,5 @@
    INTEGER,  PUBLIC :: nn_baro          !: Number of barotropic iterations during one baroclinic step (rdt)
    REAL(wp), PUBLIC :: rn_bt_cmax       !: Maximum allowed courant number (used if ln_bt_auto=T)
+   REAL(wp), PUBLIC :: rn_bt_alpha      !: Time stepping diffusion parameter
 
 
Index: branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/DYN/dynnxt.F90
===================================================================
--- branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/DYN/dynnxt.F90	(revision 8897)
+++ branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/DYN/dynnxt.F90	(revision 8898)
@@ -209,27 +209,23 @@
             ! (used as a now filtered scale factor until the swap)
             ! ----------------------------------------------------
-            IF( ln_dynspg_ts .AND. ln_bt_fw ) THEN    ! No asselin filtering on thicknesses if forward time splitting
-               e3t_b(:,:,1:jpkm1) = e3t_n(:,:,1:jpkm1)
-            ELSE
-               DO jk = 1, jpkm1
-                  e3t_b(:,:,jk) = e3t_n(:,:,jk) + atfp * ( e3t_b(:,:,jk) - 2._wp * e3t_n(:,:,jk) + e3t_a(:,:,jk) )
+            DO jk = 1, jpkm1
+               e3t_b(:,:,jk) = e3t_n(:,:,jk) + atfp * ( e3t_b(:,:,jk) - 2._wp * e3t_n(:,:,jk) + e3t_a(:,:,jk) )
+            END DO
+            ! Add volume filter correction: compatibility with tracer advection scheme
+            ! => time filter + conservation correction (only at the first level)
+            zcoef = atfp * rdt * r1_rau0
+            IF ( .NOT. ln_isf ) THEN   ! if no ice shelf melting
+               e3t_b(:,:,1) = e3t_b(:,:,1) - zcoef * ( emp_b(:,:) - emp(:,:) &
+                              &                      - rnf_b(:,:) + rnf(:,:) ) * tmask(:,:,1)
+            ELSE                     ! if ice shelf melting
+               DO jj = 1, jpj
+                  DO ji = 1, jpi
+                     ikt = mikt(ji,jj)
+                     e3t_b(ji,jj,ikt) = e3t_b(ji,jj,ikt) - zcoef * (  emp_b   (ji,jj) - emp   (ji,jj)  &
+                        &                                           - rnf_b   (ji,jj) + rnf   (ji,jj)  &
+                        &                                           + fwfisf_b(ji,jj) - fwfisf(ji,jj)  ) * tmask(ji,jj,ikt)
+                  END DO
                END DO
-               ! Add volume filter correction: compatibility with tracer advection scheme
-               ! => time filter + conservation correction (only at the first level)
-               zcoef = atfp * rdt * r1_rau0
-               IF ( .NOT. ln_isf ) THEN   ! if no ice shelf melting
-                  e3t_b(:,:,1) = e3t_b(:,:,1) - zcoef * ( emp_b(:,:) - emp(:,:) &
-                                 &                      - rnf_b(:,:) + rnf(:,:) ) * tmask(:,:,1)
-               ELSE                     ! if ice shelf melting
-                  DO jj = 1, jpj
-                     DO ji = 1, jpi
-                        ikt = mikt(ji,jj)
-                        e3t_b(ji,jj,ikt) = e3t_b(ji,jj,ikt) - zcoef * (  emp_b   (ji,jj) - emp   (ji,jj)  &
-                           &                                           - rnf_b   (ji,jj) + rnf   (ji,jj)  &
-                           &                                           + fwfisf_b(ji,jj) - fwfisf(ji,jj)  ) * tmask(ji,jj,ikt)
-                     END DO
-                  END DO
-               END IF
-            ENDIF
+            END IF
             !
             IF( ln_dynadv_vec ) THEN      ! Asselin filter applied on velocity
Index: branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90
===================================================================
--- branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90	(revision 8897)
+++ branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90	(revision 8898)
@@ -183,5 +183,5 @@
       NAMELIST/namdyn_spg/ ln_dynspg_exp       , ln_dynspg_ts,   &
       &                    ln_bt_fw, ln_bt_av  , ln_bt_auto  ,   &
-      &                    nn_baro , rn_bt_cmax, nn_bt_flt
+      &                    nn_baro , rn_bt_cmax, nn_bt_flt, rn_bt_alpha
       !!----------------------------------------------------------------------
       !
Index: branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90
===================================================================
--- branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90	(revision 8897)
+++ branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90	(revision 8898)
@@ -67,6 +67,6 @@
    PUBLIC ts_rst            !    "      "     "    "
 
-   INTEGER, SAVE :: icycle  ! Number of barotropic sub-steps for each internal step nn_baro <= 2.5 nn_baro
-   REAL(wp),SAVE :: rdtbt   ! Barotropic time step
+   INTEGER, SAVE :: icycle      ! Number of barotropic sub-steps for each internal step nn_baro <= 2.5 nn_baro
+   REAL(wp),SAVE :: rdtbt       ! Barotropic time step
 
    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) ::   wgtbtp1, wgtbtp2   !: 1st & 2nd weights used in time filtering of barotropic fields
@@ -151,5 +151,5 @@
       REAL(wp) ::   zhura, zhvra         	!   -      -
       REAL(wp) ::   za0, za1, za2, za3		!   -      -
-      !
+      REAL(wp) ::   zepsilon, zgamma            !   -      -
       REAL(wp), POINTER, DIMENSION(:,:) :: zsshp2_e
       REAL(wp), POINTER, DIMENSION(:,:) :: zu_trd, zv_trd, zu_frc, zv_frc, zssh_frc
@@ -759,8 +759,17 @@
            za3= 0._wp              
          ELSE                               ! AB3-AM4 Coefficients; bet=0.281105 ; eps=0.013 ; gam=0.0880 
-           za0=0.614_wp                     ! za0 = 1/2 +   gam + 2*eps    
-           za1=0.285_wp                     ! za1 = 1/2 - 2*gam - 3*eps 
-           za2=0.088_wp                     ! za2 = gam
-           za3=0.013_wp                     ! za3 = eps
+            IF (rn_bt_alpha==0._wp) THEN
+               za0=0.614_wp                 ! za0 = 1/2 +   gam + 2*eps
+               za1=0.285_wp                 ! za1 = 1/2 - 2*gam - 3*eps
+               za2=0.088_wp                 ! za2 = gam
+               za3=0.013_wp                 ! za3 = eps
+            ELSE
+               zepsilon = 0.00976186_wp - 0.13451357_wp * rn_bt_alpha
+               zgamma = 0.08344500_wp - 0.51358400_wp * rn_bt_alpha
+               za0 = 0.5_wp + zgamma + 2._wp * rn_bt_alpha + 2._wp * zepsilon
+               za1 = 1._wp - za0 - zgamma - zepsilon
+               za2 = zgamma
+               za3 = zepsilon
+            ENDIF 
          ENDIF
          !
@@ -1024,7 +1033,14 @@
          zwy(:,:) = vn_adv(:,:)
          IF( .NOT.( kt == nit000 .AND. neuler==0 ) ) THEN
-            un_adv(:,:) = z1_2 * ( ub2_b(:,:) + zwx(:,:) ) 
-            vn_adv(:,:) = z1_2 * ( vb2_b(:,:) + zwy(:,:) )
-         END IF
+            un_adv(:,:) = z1_2 * ( ub2_b(:,:) + zwx(:,:) - atfp * un_bf(:,:) )
+            vn_adv(:,:) = z1_2 * ( vb2_b(:,:) + zwy(:,:) - atfp * vn_bf(:,:) )
+            !
+            ! Update corrective fluxes for next time step:
+            un_bf(:,:)  = atfp * un_bf(:,:) + (zwx(:,:) - ub2_b(:,:))
+            vn_bf(:,:)  = atfp * vn_bf(:,:) + (zwy(:,:) - vb2_b(:,:))
+         ELSE
+            un_bf(:,:) = 0._wp
+            vn_bf(:,:) = 0._wp 
+         END IF         
          ! Save integrated transport for next computation
          ub2_b(:,:) = zwx(:,:)
@@ -1198,4 +1214,6 @@
          CALL iom_get( numror, jpdom_autoglo, 'ub2_b'  , ub2_b  (:,:) )   
          CALL iom_get( numror, jpdom_autoglo, 'vb2_b'  , vb2_b  (:,:) ) 
+         CALL iom_get( numror, jpdom_autoglo, 'un_bf'  , un_bf  (:,:) )   
+         CALL iom_get( numror, jpdom_autoglo, 'vn_bf'  , vn_bf  (:,:) ) 
          IF( .NOT.ln_bt_av ) THEN
             CALL iom_get( numror, jpdom_autoglo, 'sshbb_e'  , sshbb_e(:,:) )   
@@ -1217,4 +1235,6 @@
          CALL iom_rstput( kt, nitrst, numrow, 'ub2_b'   , ub2_b  (:,:) )
          CALL iom_rstput( kt, nitrst, numrow, 'vb2_b'   , vb2_b  (:,:) )
+         CALL iom_rstput( kt, nitrst, numrow, 'un_bf'   , un_bf  (:,:) )
+         CALL iom_rstput( kt, nitrst, numrow, 'vn_bf'   , vn_bf  (:,:) )
          !
          IF (.NOT.ln_bt_av) THEN
@@ -1295,5 +1315,5 @@
 #if defined key_agrif
       ! Restrict the use of Agrif to the forward case only
-      IF( .NOT.ln_bt_fw .AND. .NOT.Agrif_Root() )   CALL ctl_stop( 'AGRIF not implemented if ln_bt_fw=.FALSE.' )
+!!!      IF( .NOT.ln_bt_fw .AND. .NOT.Agrif_Root() )   CALL ctl_stop( 'AGRIF not implemented if ln_bt_fw=.FALSE.' )
 #endif
       !
@@ -1311,4 +1331,9 @@
       IF(lwp) WRITE(numout,*) '     Maximum Courant number is   :', zcmax
       !
+      IF(lwp) WRITE(numout,*)    '     Time diffusion parameter rn_bt_alpha: ', rn_bt_alpha
+      IF ((ln_bt_av.AND.nn_bt_flt/=0).AND.(rn_bt_alpha>0._wp)) THEN
+         CALL ctl_stop( 'dynspg_ts ERROR: if rn_bt_alpha > 0, remove temporal averaging' )
+      ENDIF
+      !
       IF( .NOT.ln_bt_av .AND. .NOT.ln_bt_fw ) THEN
          CALL ctl_stop( 'dynspg_ts ERROR: No time averaging => only forward integration is possible' )
Index: branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/DYN/sshwzv.F90
===================================================================
--- branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/DYN/sshwzv.F90	(revision 8897)
+++ branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/DYN/sshwzv.F90	(revision 8898)
@@ -260,6 +260,5 @@
       ENDIF
       !              !==  Euler time-stepping: no filter, just swap  ==!
-      IF(  ( neuler == 0 .AND. kt == nit000 ) .OR.    &
-         & ( ln_bt_fw    .AND. ln_dynspg_ts )      ) THEN 
+      IF  ( neuler == 0 .AND. kt == nit000 ) THEN
          sshb(:,:) = sshn(:,:)                              ! before <-- now
          sshn(:,:) = ssha(:,:)                              ! now    <-- after  (before already = now)
Index: branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90
===================================================================
--- branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90	(revision 8897)
+++ branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90	(revision 8898)
@@ -606,4 +606,8 @@
          &                                               'Compile with key_nosignedzero enabled' )
       !
+#if defined key_agrif
+      IF( nn_timing == 1 ) CALL ctl_stop( 'AGRIF not implemented with nn_timing = 1')
+#endif
+      !
    END SUBROUTINE nemo_ctl
 
Index: branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/oce.F90
===================================================================
--- branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/oce.F90	(revision 8897)
+++ branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/oce.F90	(revision 8898)
@@ -45,4 +45,5 @@
    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::                              hvr_e  !: inverse of v-depth
    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   ub2_b  , vb2_b           !: Half step fluxes (ln_bt_fw=T)
+   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   un_bf  , vn_bf           !: Asselin filtered half step fluxes (ln_bt_fw=T)
 #if defined key_agrif
    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   ub2_i_b, vb2_i_b         !: Half step time integrated fluxes 
@@ -119,5 +120,5 @@
          &        hu_e(jpi,jpj),   hur_e(jpi,jpj),   hv_e(jpi,jpj),   hvr_e(jpi,jpj), STAT=ierr(5) )
          !
-      ALLOCATE( ub2_b(jpi,jpj), vb2_b(jpi,jpj)                                      , STAT=ierr(6) )
+      ALLOCATE( ub2_b(jpi,jpj), vb2_b(jpi,jpj), un_bf(jpi,jpj), vn_bf(jpi,jpj)      , STAT=ierr(6) )
 #if defined key_agrif
       ALLOCATE( ub2_i_b(jpi,jpj), vb2_i_b(jpi,jpj)                                  , STAT=ierr(7) )
