Index: branches/UKMO/dev_r5518_v3.4_asm_nemovar_community/NEMOGCM/NEMO/TOP_SRC/TRP/trcdmp.F90
===================================================================
--- branches/UKMO/dev_r5518_v3.4_asm_nemovar_community/NEMOGCM/NEMO/TOP_SRC/TRP/trcdmp.F90	(revision 6613)
+++ branches/UKMO/dev_r5518_v3.4_asm_nemovar_community/NEMOGCM/NEMO/TOP_SRC/TRP/trcdmp.F90	(revision 6617)
@@ -107,6 +107,6 @@
                
                jl = n_trc_index(jn) 
-               CALL trc_dta( kt, sf_trcdta(jl),rf_trfac(jl) )   ! read tracer data at nit000
-               ztrcdta(:,:,:) = sf_trcdta(jl)%fnow(:,:,:)
+               CALL trc_dta( kt, sf_trcdta(jl) )   ! read tracer data at nit000
+               ztrcdta(:,:,:) = sf_trcdta(jl)%fnow(:,:,:) * tmask(:,:,:) * rf_trfac(jl)
 
                SELECT CASE ( nn_zdmp_tr )
@@ -187,5 +187,4 @@
       INTEGER :: ji , jj, jk, jn, jl, jc                     ! dummy loop indicesa
       INTEGER :: isrow                                      ! local index
-      REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrcdta       ! 3D  workspace
 
       !!----------------------------------------------------------------------
@@ -278,16 +277,13 @@
          IF(lwp)  WRITE(numout,*)
          !
-         CALL wrk_alloc( jpi, jpj, jpk, ztrcdta )   ! Memory allocation
-         !
          DO jn = 1, jptra
             IF( ln_trc_ini(jn) ) THEN      ! update passive tracers arrays with input data read from file
                 jl = n_trc_index(jn)
-                CALL trc_dta( kt, sf_trcdta(jl),rf_trfac(jl) )   ! read tracer data at nit000
-                ztrcdta(:,:,:) = sf_trcdta(jl)%fnow(:,:,:)
+                CALL trc_dta( kt, sf_trcdta(jl) )   ! read tracer data at nit000
                 DO jc = 1, npncts
                    DO jk = 1, jpkm1
                       DO jj = nctsj1(jc), nctsj2(jc)
                          DO ji = nctsi1(jc), nctsi2(jc)
-                            trn(ji,jj,jk,jn) = ztrcdta(ji,jj,jk) * tmask(ji,jj,jk)
+                            trn(ji,jj,jk,jn) = sf_trcdta(jl)%fnow(ji,jj,jk) * tmask(ji,jj,jk) * rf_trfac(jl)
                             trb(ji,jj,jk,jn) = trn(ji,jj,jk,jn)
                          ENDDO
@@ -297,5 +293,5 @@
              ENDIF
           ENDDO
-          CALL wrk_dealloc( jpi, jpj, jpk, ztrcdta )
+          !
       ENDIF
       !
Index: branches/UKMO/dev_r5518_v3.4_asm_nemovar_community/NEMOGCM/NEMO/TOP_SRC/TRP/trcldf.F90
===================================================================
--- branches/UKMO/dev_r5518_v3.4_asm_nemovar_community/NEMOGCM/NEMO/TOP_SRC/TRP/trcldf.F90	(revision 6613)
+++ branches/UKMO/dev_r5518_v3.4_asm_nemovar_community/NEMOGCM/NEMO/TOP_SRC/TRP/trcldf.F90	(revision 6617)
@@ -56,5 +56,6 @@
       INTEGER, INTENT( in ) ::   kt   ! ocean time-step index
       !!
-      INTEGER            :: jn
+      INTEGER            :: ji, jj, jk, jn
+      REAL(wp)           :: zdep
       CHARACTER (len=22) :: charout
       REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   ztrtrd
@@ -66,5 +67,17 @@
 
       rldf = rldf_rat
-
+      !
+      r_fact_lap(:,:,:) = 1.
+      DO jk= 1, jpk
+         DO jj = 1, jpj
+            DO ji = 1, jpi
+               IF( fsdept(ji,jj,jk) > 200. .AND. gphit(ji,jj) < 5. .AND. gphit(ji,jj) > -5. ) THEN
+                  zdep = MAX( fsdept(ji,jj,jk) - 1000., 0. ) / 1000.
+                  r_fact_lap(ji,jj,jk) = MAX( 1., rn_fact_lap * EXP( -zdep ) )
+               ENDIF
+            END DO
+         END DO
+      END DO
+      !
       IF( l_trdtrc )  THEN
          CALL wrk_alloc( jpi, jpj, jpk, jptra, ztrtrd )
Index: branches/UKMO/dev_r5518_v3.4_asm_nemovar_community/NEMOGCM/NEMO/TOP_SRC/TRP/trcnam_trp.F90
===================================================================
--- branches/UKMO/dev_r5518_v3.4_asm_nemovar_community/NEMOGCM/NEMO/TOP_SRC/TRP/trcnam_trp.F90	(revision 6613)
+++ branches/UKMO/dev_r5518_v3.4_asm_nemovar_community/NEMOGCM/NEMO/TOP_SRC/TRP/trcnam_trp.F90	(revision 6617)
@@ -40,4 +40,5 @@
    REAL(wp), PUBLIC ::   rn_ahtrc_0          !: diffusivity coefficient for passive tracer (m2/s)
    REAL(wp), PUBLIC ::   rn_ahtrb_0          !: background diffusivity coefficient for passive tracer (m2/s)
+   REAL(wp), PUBLIC ::   rn_fact_lap         !: Enhanced zonal diffusivity coefficent in the equatorial domain
 
    !                                        !!: ** Treatment of Negative concentrations ( nam_trcrad )
@@ -74,5 +75,7 @@
       NAMELIST/namtrc_ldf/ ln_trcldf_lap  ,     &
          &                 ln_trcldf_bilap, ln_trcldf_level,     &
-         &                 ln_trcldf_hor  , ln_trcldf_iso  , rn_ahtrc_0, rn_ahtrb_0
+         &                 ln_trcldf_hor  , ln_trcldf_iso  , rn_ahtrc_0, rn_ahtrb_0,   &
+         &                 rn_fact_lap
+
       NAMELIST/namtrc_zdf/ ln_trczdf_exp  , nn_trczdf_exp
       NAMELIST/namtrc_rad/ ln_trcrad
@@ -127,4 +130,5 @@
          WRITE(numout,*) '      diffusivity coefficient                                 rn_ahtrc_0 = ', rn_ahtrc_0
          WRITE(numout,*) '      background hor. diffusivity                             rn_ahtrb_0 = ', rn_ahtrb_0
+         WRITE(numout,*) '      enhanced zonal diffusivity                             rn_fact_lap = ', rn_fact_lap
       ENDIF
 
Index: branches/UKMO/dev_r5518_v3.4_asm_nemovar_community/NEMOGCM/NEMO/TOP_SRC/TRP/trcnxt.F90
===================================================================
--- branches/UKMO/dev_r5518_v3.4_asm_nemovar_community/NEMOGCM/NEMO/TOP_SRC/TRP/trcnxt.F90	(revision 6613)
+++ branches/UKMO/dev_r5518_v3.4_asm_nemovar_community/NEMOGCM/NEMO/TOP_SRC/TRP/trcnxt.F90	(revision 6617)
@@ -102,4 +102,7 @@
       ENDIF
 
+#if defined key_agrif
+      CALL Agrif_trc                   ! AGRIF zoom boundaries
+#endif
       ! Update after tracer on domain lateral boundaries
       DO jn = 1, jptra
@@ -110,7 +113,4 @@
 #if defined key_bdy
 !!      CALL bdy_trc( kt )               ! BDY open boundaries
-#endif
-#if defined key_agrif
-      CALL Agrif_trc                   ! AGRIF zoom boundaries
 #endif
 
Index: branches/UKMO/dev_r5518_v3.4_asm_nemovar_community/NEMOGCM/NEMO/TOP_SRC/TRP/trcsbc.F90
===================================================================
--- branches/UKMO/dev_r5518_v3.4_asm_nemovar_community/NEMOGCM/NEMO/TOP_SRC/TRP/trcsbc.F90	(revision 6613)
+++ branches/UKMO/dev_r5518_v3.4_asm_nemovar_community/NEMOGCM/NEMO/TOP_SRC/TRP/trcsbc.F90	(revision 6617)
@@ -170,4 +170,6 @@
             END DO
          ENDIF
+         !
+         CALL lbc_lnk( sbc_trc(:,:,jn), 'T', 1. )
          !                                       Concentration dilution effect on tracers due to evaporation & precipitation 
          DO jj = 2, jpj
Index: branches/UKMO/dev_r5518_v3.4_asm_nemovar_community/NEMOGCM/NEMO/TOP_SRC/TRP/trctrp.F90
===================================================================
--- branches/UKMO/dev_r5518_v3.4_asm_nemovar_community/NEMOGCM/NEMO/TOP_SRC/TRP/trctrp.F90	(revision 6613)
+++ branches/UKMO/dev_r5518_v3.4_asm_nemovar_community/NEMOGCM/NEMO/TOP_SRC/TRP/trctrp.F90	(revision 6617)
@@ -67,5 +67,4 @@
          IF( lk_trabbl )        CALL trc_bbl( kstp )            ! advective (and/or diffusive) bottom boundary layer scheme
          IF( ln_trcdmp )        CALL trc_dmp( kstp )            ! internal damping trends
-         IF( ln_trcdmp_clo )    CALL trc_dmp_clo( kstp )        ! internal damping trends on closed seas only
                                 CALL trc_adv( kstp )            ! horizontal & vertical advection 
                                 CALL trc_ldf( kstp )            ! lateral mixing
@@ -78,4 +77,5 @@
                                 CALL trc_nxt( kstp )            ! tracer fields at next time step     
          IF( ln_trcrad )        CALL trc_rad( kstp )            ! Correct artificial negative concentrations
+         IF( ln_trcdmp_clo )    CALL trc_dmp_clo( kstp )        ! internal damping trends on closed seas only
 
 #if defined key_agrif
