Index: trunk/NEMO/TOP_SRC/TRP/trcadv_cen2.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trcadv_cen2.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trcadv_cen2.F90	(revision 202)
@@ -11,8 +11,6 @@
    !!----------------------------------------------------------------------
    !! * Modules used
-   USE oce_trc             ! ocean dynamics and active tracers
-   USE trc
-   USE trcbbl          ! advective term in the BBL
-   USE lbclnk
+   USE oce_trc             ! ocean dynamics and active tracers variables
+   USE trc                 ! ocean passive tracers variables
 
    IMPLICIT NONE
@@ -256,6 +254,6 @@
          !                                                ! ===============
 
-         IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging)
-            ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) )
+         IF(l_ctl) THEN         ! print mean trends (used for debugging)
+            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
             WRITE(numout,*) ' trc/had - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn) 
             tra_ctl(jn) = ztra 
@@ -269,11 +267,9 @@
 
          ! Surface value
-#if defined key_dynspg_fsc
-         ! free surface-constant volume
-         zwx(:,:, 1 ) = zwn(:,:,1) * trn(:,:,1,jn)
-#else
-         ! rigid lid : flux set to zero
-         zwx(:,:, 1 ) = 0.e0  
-#endif
+         IF( lk_dynspg_fsc ) THEN       ! free surface-constant volume
+            zwx(:,:, 1 ) = zwn(:,:,1) * trn(:,:,1,jn)
+         ELSE                           ! rigid lid : flux set to zero
+            zwx(:,:, 1 ) = 0.e0  
+         ENDIF
 
          ! 1. Vertical advective fluxes
@@ -321,6 +317,6 @@
          END DO
 
-         IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging)
-            ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) )
+         IF(l_ctl) THEN         ! print mean trends (used for debugging)
+            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
             WRITE(numout,*) ' trc/zad - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn), ' centered2' 
             tra_ctl(jn) = ztra 
Index: trunk/NEMO/TOP_SRC/TRP/trcadv_muscl.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trcadv_muscl.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trcadv_muscl.F90	(revision 202)
@@ -10,8 +10,7 @@
    !!----------------------------------------------------------------------
    !! * Modules used
-   USE oce_trc         ! ocean dynamics and active tracers
-   USE trc
-   USE trcbbl          ! tracers: bottom boundary layer
-   USE lbclnk
+   USE oce_trc         ! ocean dynamics and active tracers variables
+   USE trc             ! ocean passive tracers variables
+   USE lbclnk          ! ocean lateral boundary conditions (or mpp link)
 
    IMPLICIT NONE
@@ -94,5 +93,4 @@
 
 #if defined key_trcbbl_adv
-         
       ! Advective bottom boundary layer
       ! -------------------------------
@@ -132,18 +130,9 @@
          DO jk = 1, jpkm1
             DO jj = 2, jpj
-               DO ji = fs_2, fs_jpim1   ! vector opt.
-                  z0u = zt1(ji,jj,jk) * zt1(ji-1,jj,jk)
-                  IF( z0u > 0. ) THEN
-                     ztp1(ji,jj,jk) = 0.5 * ( zt1(ji,jj,jk)+zt1(ji-1,jj,jk) )
-                  ELSE
-                     ztp1(ji,jj,jk) = 0.e0
-                  ENDIF
-
-                  z0v = zt2(ji,jj,jk) * zt2(ji,jj-1,jk)
-                  IF( z0v > 0. ) THEN
-                     ztp2(ji,jj,jk) = 0.5 * ( zt2(ji,jj,jk)+zt2(ji,jj-1,jk) )
-                  ELSE
-                     ztp2(ji,jj,jk) = 0.e0
-                  ENDIF
+               DO ji = fs_2, jpi   ! vector opt.
+                  ztp1(ji,jj,jk) =                    ( zt1(ji,jj,jk) + zt1(ji-1,jj  ,jk) )   &
+                     &           * ( 0.25 + SIGN( 0.25, zt1(ji,jj,jk) * zt1(ji-1,jj  ,jk) ) )
+                  ztp2(ji,jj,jk) =                    ( zt2(ji,jj,jk) + zt2(ji  ,jj-1,jk) )   &
+                     &           * ( 0.25 + SIGN( 0.25, zt2(ji,jj,jk) * zt2(ji  ,jj-1,jk) ) )
                END DO
             END DO
@@ -246,4 +235,9 @@
          END DO
 
+         IF(l_ctl) THEN         ! print mean trends (used for debugging)
+            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
+            WRITE(numout,*) ' trc/had  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn), ' muscl' 
+            tra_ctl(jn) = ztra 
+         ENDIF
 
          ! II. Vertical advective fluxes
@@ -255,5 +249,5 @@
             zt1(:,:,jk) = tmask(:,:,jk) * ( trb(:,:,jk-1,jn) - trb(:,:,jk,jn) )
          END DO
-         ! surface bottom boundary conditions
+         ! surface and bottom boundary conditions
          zt1 (:,:, 1 ) = 0.e0 
          zt1 (:,:,jpk) = 0.e0
@@ -262,10 +256,6 @@
             DO jj = 1, jpj
                DO ji = 1, jpi
-                  z0w = zt1(ji,jj,jk) * zt1(ji,jj,jk+1) 
-                  IF( z0w > 0. ) THEN
-                     ztp1(ji,jj,jk) = 0.5 * ( zt1(ji,jj,jk) + zt1(ji,jj,jk+1) )
-                  ELSE
-                     ztp1(ji,jj,jk) = 0.e0
-                  ENDIF
+                  ztp1(ji,jj,jk) =                    ( zt1(ji,jj,jk) + zt1(ji,jj,jk+1) )   &
+                     &           * ( 0.25 + SIGN( 0.25, zt1(ji,jj,jk) * zt1(ji,jj,jk+1) ) )
                END DO
             END DO
@@ -302,11 +292,10 @@
          END DO
          ! surface values
-#if defined key_dynspg_fsc
-         ! free surface-constant volume
-         zt1(:,:, 1 ) = zwn(:,:,1) * trb(:,:,1,jn)
-#else
-         ! rigid lid : flux set to zero
-         zt1(:,:, 1 ) = 0.e0
-#endif
+         IF( lk_dynspg_fsc .OR. lk_dynspg_fsc_tsk ) THEN        ! free surface-constant volume
+            zt1(:,:, 1 ) = zwn(:,:,1) * trb(:,:,1,jn)
+         ELSE                                                   ! rigid lid : flux set to zero
+            zt1(:,:, 1 ) = 0.e0
+         ENDIF
+
          ! bottom values
          zt1(:,:,jpk) = 0.e0
@@ -330,10 +319,11 @@
          END DO
 
-         IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging)
-            ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) )
+         IF(l_ctl) THEN         ! print mean trends (used for debugging)
+            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
             WRITE(numout,*) ' trc/zad  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn), ' muscl' 
             tra_ctl(jn) = ztra 
          ENDIF
-   ENDDO
+
+      END DO
 
 END SUBROUTINE trc_adv_muscl
Index: trunk/NEMO/TOP_SRC/TRP/trcadv_muscl2.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trcadv_muscl2.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trcadv_muscl2.F90	(revision 202)
@@ -10,8 +10,7 @@
    !!----------------------------------------------------------------------
    !! * Modules used
-   USE oce_trc         ! ocean dynamics and active tracers
-   USE trc             ! ocean passive tracers
-   USE trcbbl          ! tracers: bottom boudary layer
-   USE lbclnk
+   USE oce_trc         ! ocean dynamics and active tracers variables
+   USE trc             ! ocean passive tracers variables
+   USE lbclnk          ! ocean lateral boundary conditions (or mpp link)
 
    IMPLICIT NONE
@@ -125,18 +124,9 @@
          DO jk = 1, jpkm1
             DO jj = 2, jpj
-               DO ji = fs_2, fs_jpim1   ! vector opt.
-                  z0u = zt1(ji,jj,jk) * zt1(ji-1,jj,jk)
-                  IF( z0u > 0. ) THEN
-                     ztp1(ji,jj,jk) = 0.5 * ( zt1(ji,jj,jk)+zt1(ji-1,jj,jk) )
-                  ELSE
-                     ztp1(ji,jj,jk) = 0.e0
-                  ENDIF
-
-                  z0v = zt2(ji,jj,jk) * zt2(ji,jj-1,jk)
-                  IF( z0v > 0. ) THEN
-                     ztp2(ji,jj,jk) = 0.5 * ( zt2(ji,jj,jk)+zt2(ji,jj-1,jk) )
-                  ELSE
-                     ztp2(ji,jj,jk) = 0.e0
-                  ENDIF
+               DO ji = fs_2, jpi   ! vector opt.
+                  ztp1(ji,jj,jk) =                    ( zt1(ji,jj,jk) + zt1(ji-1,jj  ,jk) )   &
+                     &           * ( 0.25 + SIGN( 0.25, zt1(ji,jj,jk) * zt1(ji-1,jj  ,jk) ) )
+                  ztp2(ji,jj,jk) =                    ( zt2(ji,jj,jk) + zt2(ji  ,jj-1,jk) )   &
+                     &           * ( 0.25 + SIGN( 0.25, zt2(ji,jj,jk) * zt2(ji  ,jj-1,jk) ) )
                END DO
             END DO
@@ -287,6 +277,9 @@
          END DO
 
-
-
+         IF(l_ctl) THEN         ! print mean trends (used for debugging)
+            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
+            WRITE(numout,*) ' trc/had  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn), ' muscl' 
+            tra_ctl(jn) = ztra 
+         ENDIF
 
          ! II. Vertical advective fluxes
@@ -306,10 +299,6 @@
             DO jj = 1, jpj
                DO ji = 1, jpi
-                  z0w = zt1(ji,jj,jk) * zt1(ji,jj,jk+1) 
-                  IF( z0w > 0. ) THEN
-                     ztp1(ji,jj,jk) = 0.5 * ( zt1(ji,jj,jk) + zt1(ji,jj,jk+1) )
-                  ELSE
-                     ztp1(ji,jj,jk) = 0.e0
-                  ENDIF
+                  ztp1(ji,jj,jk) =                    ( zt1(ji,jj,jk) + zt1(ji,jj,jk+1) )   &
+                     &           * ( 0.25 + SIGN( 0.25, zt1(ji,jj,jk) * zt1(ji,jj,jk+1) ) )
                END DO
             END DO
@@ -360,11 +349,9 @@
 
          ! surface values
-#if defined key_dynspg_fsc
-         ! free surface-constant volume
-         zt1(:,:, 1 ) = zwn(:,:,1) * trb(:,:,1,jn)
-#else
-         ! rigid lid : flux set to zero
-         zt1(:,:, 1 ) = 0.e0
-#endif
+         IF( lk_dynspg_fsc .OR. lk_dynspg_fsc_tsk ) THEN        ! free surface-constant volume
+            zt1(:,:, 1 ) = zwn(:,:,1) * trb(:,:,1,jn)
+         ELSE                                                   ! rigid lid : flux set to zero
+            zt1(:,:, 1 ) = 0.e0
+         ENDIF
 
          ! bottom values
@@ -389,11 +376,11 @@
          END DO
 
-         IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging)
-            ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) )
+         IF(l_ctl) THEN         ! print mean trends (used for debugging)
+            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
             WRITE(numout,*) ' trc/zad  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn), ' muscl2' 
             tra_ctl(jn) = ztra 
          ENDIF
 
-      ENDDO
+      END DO
 
    END SUBROUTINE trc_adv_muscl2
Index: trunk/NEMO/TOP_SRC/TRP/trcadv_smolar.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trcadv_smolar.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trcadv_smolar.F90	(revision 202)
@@ -11,8 +11,7 @@
    !!----------------------------------------------------------------------
    !! * Modules used
-   USE oce_trc             ! ocean dynamics and active tracers
-   USE trc
-   USE trcbbl             !  Advective term of BBL
-   USE lbclnk
+   USE oce_trc             ! ocean dynamics and active tracers variables
+   USE trc                 ! ocean passive tracers variables
+   USE lbclnk              ! ocean lateral boundary conditions (or mpp link)
 
    IMPLICIT NONE
@@ -177,14 +176,11 @@
          ! II. Vertical advection
          ! ----------------------
-!!! Chris
+
          ! Surface value
-#if defined key_dynspg_fsc
-         ! free surface-constant volume
-         zkz(:,:, 1 ) = zwn(:,:,1) * trn(:,:,1,jn) * tmask(ji,jj,1)
-#else
-         ! rigid lid : flux set to zero
-         zkz(:,:, 1 ) = 0.e0  
-#endif
-!!! Chris
+         IF( lk_dynspg_fsc .OR. lk_dynspg_fsc_tsk ) THEN        ! free surface-constant volume
+            zkz(:,:, 1 ) = zwn(:,:,1) * trn(:,:,1,jn) * tmask(ji,jj,1)
+         ELSE                                                   ! rigid lid : flux set to zero
+            zkz(:,:, 1 ) = 0.e0  
+         ENDIF
 
         DO jk = 2,jpk
@@ -502,6 +498,6 @@
 #endif
 
-        IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging)
-           ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) )
+        IF(l_ctl) THEN         ! print mean trends (used for debugging)
+           ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
            WRITE(numout,*) ' trc/zad  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn), ' smolar' 
            tra_ctl(jn) = ztra 
Index: trunk/NEMO/TOP_SRC/TRP/trcadv_tvd.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trcadv_tvd.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trcadv_tvd.F90	(revision 202)
@@ -12,8 +12,7 @@
    !!----------------------------------------------------------------------
    !! * Modules used
-   USE oce_trc             ! ocean dynamics and active tracers
-   USE trc
-   USE trcbbl             !  Advective term of BBL
-   USE lbclnk
+   USE oce_trc             ! ocean dynamics and active tracers variables
+   USE trc                 ! ocean passive tracers variables
+   USE lbclnk              ! ocean lateral boundary conditions (or mpp link)
 
    IMPLICIT NONE
@@ -92,5 +91,4 @@
 
 #if defined key_trcbbl_adv
-         
       ! Advective Bottom boundary layer: add the velocity
       ! -------------------------------------------------
@@ -131,16 +129,14 @@
          ! upstream tracer flux in the k direction
          ! Surface value
-#if defined key_dynspg_fsc
-         ! free surface-constant volume
-         DO jj = 1, jpj
-            DO ji = 1, jpi
-               zew = e1t(ji,jj) * e2t(ji,jj) * zwn(ji,jj,1)
-               ztw(ji,jj,1) = zew * trb(ji,jj,1,jn)
-            END DO
-         END DO
-#else                                  
-         ! rigid lid : flux set to zero
-         ztw(:,:,1) = 0.e0
-#endif
+         IF( lk_dynspg_fsc .OR. lk_dynspg_fsc_tsk ) THEN   ! free surface-constant volume
+            DO jj = 1, jpj
+               DO ji = 1, jpi
+                  zew = e1t(ji,jj) * e2t(ji,jj) * zwn(ji,jj,1)
+                  ztw(ji,jj,1) = zew * trb(ji,jj,1,jn)
+               END DO
+            END DO
+         ELSE                                              ! rigid lid : flux set to zero
+            ztw(:,:,1) = 0.e0
+         ENDIF
 
          ! Interior value
@@ -235,6 +231,6 @@
          END DO
 
-         IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging)
-            ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) )
+         IF(l_ctl) THEN         ! print mean trends (used for debugging)
+            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
             WRITE(numout,*) ' trc/zad  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn), ' tvd' 
             tra_ctl(jn) = ztra 
Index: trunk/NEMO/TOP_SRC/TRP/trcbbc.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trcbbc.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trcbbc.F90	(revision 202)
@@ -12,6 +12,6 @@
    !!----------------------------------------------------------------------
    !! * Modules used
-   USE oce_trc             ! ocean dynamics and active tracers
-   USE trc
+   USE oce_trc             ! ocean dynamics and active tracers variables
+   USE trc                 ! ocean passive tracers variables
  
    IMPLICIT NONE
@@ -104,6 +104,6 @@
             END DO
 #endif
-            IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging)
-               ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) )
+            IF(l_ctl) THEN         ! print mean trends (used for debugging)
+               ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
                WRITE(numout,*) ' trc/bbc  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn) 
                tra_ctl(jn) = ztra 
Index: trunk/NEMO/TOP_SRC/TRP/trcbbl.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trcbbl.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trcbbl.F90	(revision 202)
@@ -16,6 +16,6 @@
    !!----------------------------------------------------------------------
    !! * Modules used
-   USE oce_trc             ! ocean dynamics and active tracers
-   USE trc             ! ocean active tracer trends
+   USE oce_trc             ! ocean dynamics and active tracers variables
+   USE trc                 ! ocean passive tracers variables
 
    IMPLICIT NONE
@@ -339,6 +339,6 @@
 #  endif
          END DO
-         IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging)
-            ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) )
+         IF(l_ctl) THEN         ! print mean trends (used for debugging)
+            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
             WRITE(numout,*) ' trc/bbl  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn) 
             tra_ctl(jn) = ztra 
Index: trunk/NEMO/TOP_SRC/TRP/trcbbl_adv.h90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trcbbl_adv.h90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trcbbl_adv.h90	(revision 202)
@@ -51,5 +51,5 @@
       !!----------------------------------------------------------------------     
       !! * Modules used
-      USE lbclnk
+      USE lbclnk           ! ocean lateral boundary conditions (or mpp link)
 
       !! * Arguments
@@ -382,6 +382,6 @@
 #endif
           END DO
-          IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging)
-             ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) )
+          IF(l_ctl) THEN         ! print mean trends (used for debugging)
+             ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
              WRITE(numout,*) ' trc/bbl  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn) 
              tra_ctl(jn) = ztra 
Index: trunk/NEMO/TOP_SRC/TRP/trcdmp.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trcdmp.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trcdmp.F90	(revision 202)
@@ -16,6 +16,6 @@
    !! * Modules used
    USE oce_trc         ! ocean dynamics and tracers variables
-   USE trc             ! ocean active tracer trend variables
-   USE trctrp_lec     
+   USE trc             ! ocean passive tracers variables
+   USE trctrp_lec      ! passive tracers transport
 
    IMPLICIT NONE
@@ -154,6 +154,6 @@
          ENDIF
 
-         IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging)
-            ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) )
+         IF(l_ctl) THEN         ! print mean trends (used for debugging)
+            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
             WRITE(numout,*) ' trc/dmp  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn) 
             tra_ctl(jn) = ztra 
@@ -264,8 +264,10 @@
       ! damping along the forced closed boundary over 6 grid-points
       DO jn = 1, 6
-         IF( lzoom_e )   restotr( mi0(jn+1) , : , :,:) = zfact(jn)         ! east  closed
-         IF( lzoom_s )   restotr( : , mj0(jn+1) , :,:) = zfact(jn)         ! south closed 
-         IF( lzoom_w )   restotr( mi0(jpiglo-jn) , : , : ,:) = zfact(jn)    ! west  closed 
-         IF( lzoom_n )   restotr( : , mi0(jpjglo-jn) , : ,:) = zfact(jn)    ! north closed
+         IF( lzoom_w )   resto( mi0(jn+jpizoom):mi1(jn+jpizoom), : , : ) = zfact(jn) ! west  closed
+         IF( lzoom_s )   resto( : , mj0(jn+jpjzoom):mj1(jn+jpjzoom), : ) = zfact(jn) ! south closed 
+         IF( lzoom_e )   resto( mi0(jpiglo+jpizoom-1-jn):mi1(jpiglo+jpizoom-1-jn) , : , : ) &
+                       &              = zfact(jn)                                 ! east  closed 
+         IF( lzoom_n )   resto( : , mj0(jpjglo+jpjzoom-1-jn):mj1(jpjglo+jpjzoom-1-jn) , : ) &
+                       &              = zfact(jn)                                 ! north closed
       END DO
 
@@ -343,34 +345,24 @@
 
       !! * Local declarations
-      INTEGER ::  jk, jn      ! dummy loop indices
+      INTEGER ::  ji, jj, jk, je, jn     ! dummy loop indices
       INTEGER, PARAMETER ::   jpmois=1
       INTEGER ::   ipi, ipj, ipk       ! temporary integers
+      INTEGER ::   ii0, ii1, ij0, ij1  !    "          "
       INTEGER ::   &
          idmp,     &  ! logical unit for file restoring damping term
          icot         ! logical unit for file distance to the coast
-      INTEGER :: itime, istep(jpmois)
-      CHARACTER (len=32) ::  clname, clname3
+      INTEGER :: itime, istep(jpmois), ie
+      LOGICAL :: llbon
+      CHARACTER (len=32) ::  clname, clname2, clname3
       REAL(wp) ::   &
-         zdate0                      ! temporary scalars
-      REAL(wp), DIMENSION(jpk) ::   &
-         zdept
-      REAL(wp), DIMENSION(jpi,jpj) ::   &
-         zlamt, zphit
-
-      INTEGER ::   ji, jj, ie, je      ! dummy loop indices
-      INTEGER ::   ii0, ii1, ij0, ij1  !    "          "
-      LOGICAL :: llbon
-      CHARACTER (len=32) ::  clname2
-      REAL(wp) ::   &
-         zinfl, zlon,                 & ! temporary scalars
+         zdate0, zinfl, zlon,         & ! temporary scalars
          zlat, zlat0, zlat1, zlat2,   & !    "         "
          zsdmp, zbdmp                   !    "         "
       REAL(wp), DIMENSION(jpk) ::   &
-         zhfac
+         zdept, zhfac
       REAL(wp), DIMENSION(jpi,jpj) ::   &
-         zmrs
+         zmrs, zlamt, zphit
       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   &
          zdct
-
       !!----------------------------------------------------------------------
 
@@ -486,9 +478,9 @@
                      !   ... Decrease the value in the vicinity of the coast
                      restotr(ji,jj,jk,jn) = restotr(ji,jj,1,jn)*0.5   &
-                        * ( 1. - COS( rpi*zdct(ji,jj,jk)/zinfl) )
+                        &                 * ( 1. - COS( rpi*zdct(ji,jj,jk)/zinfl) )
 
                      !   ... Vertical variation from zsdmp (sea surface) to zbdmp (bottom)
-                     restotr(ji,jj,jk,jn) = restotr(ji,jj,jk,jn)*   &
-                        ( zbdmp + (zsdmp-zbdmp)*EXP(-fsdept(ji,jj,jk)/hdmptr) )
+                     restotr(ji,jj,jk,jn) = restotr(ji,jj,jk,jn)   &
+                        &                 * ( zbdmp + (zsdmp-zbdmp)*EXP(-fsdept(ji,jj,jk)/hdmptr) )
                   END DO
                END DO
@@ -519,5 +511,5 @@
             ii0 =  81   ;   ii1 =  91   ;   zmrs( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 1.e0
             ij0 =  50   ;   ij1 =  55
-            ii0 =  70   ;   ii1 =  80   ;   zmrs( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 1.e0
+            ii0 =  75   ;   ii1 =  80   ;   zmrs( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 1.e0
             ij0 =  52   ;   ij1 =  53
             ii0 =  70   ;   ii1 =  74   ;   zmrs( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 1.e0
@@ -574,5 +566,5 @@
             ii0 = 568   ;   ii1 = 574 
             ij0 = 324   ;   ij1 = 333   ;   zmrs( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 1.e0
-            ii0 = 575   ;   ii1 = 314
+            ii0 = 575   ;   ii1 = 658
             ij0 = 314   ;   ij1 = 366   ;   zmrs( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 1.e0
             ! Black Sea (remaining part
@@ -695,5 +687,6 @@
       REAL(wp) ::   zdate0
       REAL(wp), DIMENSION(jpi,jpj) ::   &
-         zxt, zyt, zzt            ! cartesian coordinates for T-points
+         zxt, zyt, zzt,                 &  ! cartesian coordinates for T-points
+         zmask                             
       REAL(wp), DIMENSION(3*jpi*jpj) ::   &
          zxc, zyc, zzc, zdis      ! temporary workspace
@@ -728,8 +721,9 @@
          DO jj = 2, jpjm1
             DO ji = 2, jpim1
-               llcotu(ji,jj) = ( umask(ji,jj,jk) == 0. ) .AND. ( tmask(ji,jj  ,jk)+tmask(ji+1,jj  ,jk) == 1. ) 
-               llcotv(ji,jj) = ( vmask(ji,jj,jk) == 0. ) .AND. ( tmask(ji,jj  ,jk)+tmask(ji  ,jj+1,jk) == 1. ) 
-               llcotf(ji,jj) = ( fmask(ji,jj,jk) == 0. ) .AND. ( tmask(ji,jj+1,jk)+tmask(ji+1,jj+1,jk)   &
-                                                               + tmask(ji,jj  ,jk)+tmask(ji+1,jj  ,jk) <  4. )
+               zmask(ji,jj) =  ( tmask(ji,jj+1,jk) + tmask(ji+1,jj+1,jk) &
+                   &           + tmask(ji,jj  ,jk) + tmask(ji+1,jj  ,jk) )
+               llcotu(ji,jj) = ( tmask(ji,jj,  jk) + tmask(ji+1,jj  ,jk) == 1. ) 
+               llcotv(ji,jj) = ( tmask(ji,jj  ,jk) + tmask(ji  ,jj+1,jk) == 1. ) 
+               llcotf(ji,jj) = ( zmask(ji,jj) > 0. ) .AND. ( zmask(ji,jj) < 4. )
             END DO
          END DO
Index: trunk/NEMO/TOP_SRC/TRP/trcldf_bilap.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trcldf_bilap.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trcldf_bilap.F90	(revision 202)
@@ -10,6 +10,6 @@
    !!----------------------------------------------------------------------
    !! * Modules used
-   USE oce_trc         ! ocean dynamics and active tracers
-   USE trc             ! ocean space and time domain 
+   USE oce_trc         ! ocean dynamics and active tracers variables
+   USE trc             ! ocean passive tracers variables
    USE lbclnk          ! ocean lateral boundary conditions (or mpp link)
 
@@ -84,10 +84,13 @@
       !! * Local declarations
       INTEGER ::   ji, jj, jk, jn             ! dummy loop indices
-
+#if defined key_partial_steps
+      INTEGER ::   iku, ikv                   ! temporary integers
+#endif
       REAL(wp) ::   ztra     ! temporary scalars
 
       REAL(wp), DIMENSION(jpi,jpj) ::   & 
-         zeeu, zeev, zbtr,             &  ! workspace
-         zlt, ztu, ztv
+         zeeu, zeev, zbtr, zlt                 ! workspace
+      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   & 
+         ztu, ztv                              ! workspace
       !!----------------------------------------------------------------------
 
@@ -130,14 +133,29 @@
             DO jj = 1, jpjm1
                DO ji = 1, fs_jpim1   ! vector opt.
-                  ztu(ji,jj) = zeeu(ji,jj) * ( trb(ji+1,jj  ,jk,jn) - trb(ji,jj,jk,jn) )
-                  ztv(ji,jj) = zeev(ji,jj) * ( trb(ji  ,jj+1,jk,jn) - trb(ji,jj,jk,jn) )
-               END DO
-            END DO
-
+                  ztu(ji,jj,jk) = zeeu(ji,jj) * ( trb(ji+1,jj  ,jk,jn) - trb(ji,jj,jk,jn) )
+                  ztv(ji,jj,jk) = zeev(ji,jj) * ( trb(ji  ,jj+1,jk,jn) - trb(ji,jj,jk,jn) )
+               END DO
+            END DO
+#if defined key_partial_steps
+
+            DO jj = 1, jpj-1
+               DO ji = 1, jpi-1
+                  ! last level
+                  iku = MIN ( mbathy(ji,jj), mbathy(ji+1,jj  ) ) - 1
+                  ikv = MIN ( mbathy(ji,jj), mbathy(ji  ,jj+1) ) - 1
+                  IF( iku == jk ) THEN
+                     ztu(ji,jj,jk) = zeeu(ji,jj) * gtu(ji,jj)
+                  ENDIF
+                  IF( ikv == jk ) THEN
+                     ztv(ji,jj,jk) = zeev(ji,jj) * gtv(ji,jj)
+                  ENDIF
+               END DO
+            END DO
+#endif
 
             ! Second derivative (divergence)
             DO jj = 2, jpjm1
                DO ji = fs_2, fs_jpim1   ! vector opt.
-                  zlt(ji,jj) = zbtr(ji,jj) * (  ztu(ji,jj) - ztu(ji-1,jj) + ztv(ji,jj) - ztv(ji,jj-1)  )
+                  zlt(ji,jj) = zbtr(ji,jj) * (  ztu(ji,jj,jk) - ztu(ji-1,jj,jk) + ztv(ji,jj,jk) - ztv(ji,jj-1,jk)  )
                END DO
             END DO
@@ -159,6 +177,6 @@
             DO jj = 1, jpjm1
                DO ji = 1, fs_jpim1   ! vector opt.
-                  ztu(ji,jj) = zeeu(ji,jj) * ( zlt(ji+1,jj  ) - zlt(ji,jj) )
-                  ztv(ji,jj) = zeev(ji,jj) * ( zlt(ji  ,jj+1) - zlt(ji,jj) )
+                  ztu(ji,jj,jk) = zeeu(ji,jj) * ( zlt(ji+1,jj  ) - zlt(ji,jj) )
+                  ztv(ji,jj,jk) = zeev(ji,jj) * ( zlt(ji  ,jj+1) - zlt(ji,jj) )
                END DO
             END DO
@@ -168,11 +186,11 @@
                DO ji = fs_2, fs_jpim1   ! vector opt.
                   ! horizontal diffusive trends
-                  ztra = zbtr(ji,jj) * (  ztu(ji,jj) - ztu(ji-1,jj) + ztv(ji,jj) - ztv(ji,jj-1)  )
+                  ztra = zbtr(ji,jj) * (  ztu(ji,jj,jk) - ztu(ji-1,jj,jk) + ztv(ji,jj,jk) - ztv(ji,jj-1,jk)  )
                   ! add it to the general tracer trends
                   tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + ztra
 #if defined key_trc_diatrd
                   ! save the horizontal diffusive trends
-                  trtrd(ji,jj,jk,jn,4) = (  ztu(ji,jj) - ztu(ji-1,jj) ) * zbtr(ji,jj)
-                  trtrd(ji,jj,jk,jn,5) = (  ztv(ji,jj) - ztv(ji-1,jj) ) * zbtr(ji,jj)
+                  trtrd(ji,jj,jk,jn,4) = (  ztu(ji,jj,jk) - ztu(ji-1,jj,jk) ) * zbtr(ji,jj)
+                  trtrd(ji,jj,jk,jn,5) = (  ztv(ji,jj,jk) - ztv(ji-1,jj,jk) ) * zbtr(ji,jj)
 #endif
                END DO
@@ -185,6 +203,6 @@
          CALL lbc_lnk( trtrd(1,1,1,jn,5), 'T', 1. )  
 #endif
-         IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging)
-            ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) )
+         IF(l_ctl) THEN         ! print mean trends (used for debugging)
+            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
             WRITE(numout,*) ' trc/ldf  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn)
             tra_ctl(jn) = ztra 
Index: trunk/NEMO/TOP_SRC/TRP/trcldf_bilapg.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trcldf_bilapg.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trcldf_bilapg.F90	(revision 202)
@@ -14,6 +14,6 @@
    !! * Modules used
    USE oce_trc             ! ocean dynamics and tracers variables
-   USE trc            ! ocean space and time domain variables
-   USE lbclnk          ! ocean lateral boundary condition (or mpp link)
+   USE trc                 ! ocean passive tracers variables
+   USE lbclnk              ! ocean lateral boundary condition (or mpp link)
 
    IMPLICIT NONE
@@ -64,5 +64,6 @@
 
       !! * Local declarations
-      INTEGER ::   ji, jj, jk,jn                 ! dummy loop indices
+      INTEGER ::   ji, jj, jk,jn              ! dummy loop indices
+      REAL(wp) ::  ztra                       ! workspace   
       REAL(wp), DIMENSION(jpi,jpj,jpk,jptra) ::   &
          wk1, wk2               ! work array used for rotated biharmonic
@@ -114,4 +115,11 @@
          END DO                                           !   End of slab
          !                                                ! ===============
+
+         IF(l_ctl) THEN         ! print mean trends (used for debugging)
+            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
+            WRITE(numout,*) ' trc/ldf  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn)
+            tra_ctl(jn) = ztra 
+         ENDIF
+
       END DO
 
@@ -185,9 +193,9 @@
 
       REAL(wp), DIMENSION(jpi,jpj) ::   &
-         zftu, zftv ,                  &  ! workspace
+         zftu, zftv ,                   &  ! workspace
          zdkt, zdk1t
 
       REAL(wp), DIMENSION(jpi,jpk) ::   &
-         zftw,                   &  ! workspace
+         zftw,                          &  ! workspace
          zdit, zdjt, zdj1t
 
@@ -222,7 +230,7 @@
 
                   zmku=1./MAX( tmask(ji+1,jj,jk  )+tmask(ji,jj,jk+1)   &
-                     +tmask(ji+1,jj,jk+1)+tmask(ji,jj,jk  ),1. )
+                              +tmask(ji+1,jj,jk+1)+tmask(ji,jj,jk  ),1. )
                   zmkv=1./MAX( tmask(ji,jj+1,jk  )+tmask(ji,jj,jk+1)   &
-                     +tmask(ji,jj+1,jk+1)+tmask(ji,jj,jk  ),1. )
+                              +tmask(ji,jj+1,jk+1)+tmask(ji,jj,jk  ),1. )
 
                   zcof1= -e2u(ji,jj) * uslp(ji,jj,jk) * zmku
@@ -231,11 +239,11 @@
                   zftu(ji,jj)= umask(ji,jj,jk) *   &
                      (  zabe1 *( pt(ji+1,jj,jk,jn) - pt(ji,jj,jk,jn) )   &
-                     + zcof1 *( zdkt (ji+1,jj) + zdk1t(ji,jj)     &
-                     +zdk1t(ji+1,jj) + zdkt (ji,jj) )  )
+                      + zcof1 *( zdkt (ji+1,jj) + zdk1t(ji,jj)           &
+                                +zdk1t(ji+1,jj) + zdkt (ji,jj) )  )
 
                   zftv(ji,jj)= vmask(ji,jj,jk) *   &
                      (  zabe2 *( pt(ji,jj+1,jk,jn) - pt(ji,jj,jk,jn) )   &
-                     + zcof2 *( zdkt (ji,jj+1) + zdk1t(ji,jj)     &
-                     +zdk1t(ji,jj+1) + zdkt (ji,jj) )  )
+                      + zcof2 *( zdkt (ji,jj+1) + zdk1t(ji,jj)           &
+                                +zdk1t(ji,jj+1) + zdkt (ji,jj) )  )
                END DO
             END DO
@@ -284,11 +292,11 @@
                   zcof0 = e1t(ji,jj) * e2t(ji,jj) / fse3w(ji,jj,jk)   &
                      * (  wslpi(ji,jj,jk) * wslpi(ji,jj,jk)        &
-                     + wslpj(ji,jj,jk) * wslpj(ji,jj,jk)  )
+                        + wslpj(ji,jj,jk) * wslpj(ji,jj,jk)  )
 
                   zmku =1./MAX(  umask(ji  ,jj,jk-1)+umask(ji-1,jj,jk)   &
-                     +umask(ji-1,jj,jk-1)+umask(ji  ,jj,jk), 1. )
+                                +umask(ji-1,jj,jk-1)+umask(ji  ,jj,jk), 1. )
 
                   zmkv =1./MAX(  vmask(ji,jj  ,jk-1)+vmask(ji,jj-1,jk)   &
-                     +vmask(ji,jj-1,jk-1)+vmask(ji,jj  ,jk), 1. )
+                                +vmask(ji,jj-1,jk-1)+vmask(ji,jj  ,jk), 1. )
 
                   zcof3 = - e2t(ji,jj) * wslpi (ji,jj,jk) * zmku
@@ -297,8 +305,8 @@
                   zftw(ji,jk) = tmask(ji,jj,jk) *   &
                      (  zcof0 * ( pt  (ji,jj,jk-1,jn) - pt  (ji,jj,jk,jn) )   &
-                     + zcof3 * ( zdit (ji  ,jk-1) + zdit (ji-1,jk)     &
-                     +zdit (ji-1,jk-1) + zdit (ji  ,jk) )   &
-                     + zcof4 * ( zdjt (ji  ,jk-1) + zdj1t(ji  ,jk)     &
-                     +zdj1t(ji  ,jk-1) + zdjt (ji  ,jk) )  )
+                      + zcof3 * ( zdit (ji  ,jk-1) + zdit (ji-1,jk)           &
+                                 +zdit (ji-1,jk-1) + zdit (ji  ,jk) )         &
+                      + zcof4 * ( zdjt (ji  ,jk-1) + zdj1t(ji  ,jk)           &
+                                 +zdj1t(ji  ,jk-1) + zdjt (ji  ,jk) )  )
                END DO
             END DO
Index: trunk/NEMO/TOP_SRC/TRP/trcldf_iso.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trcldf_iso.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trcldf_iso.F90	(revision 202)
@@ -14,6 +14,5 @@
    !! * Modules used
    USE oce_trc      ! ocean dynamics and tracers variables
-   USE trc          ! ocean space and time domain variables
-   USE lbclnk
+   USE trc          ! ocean passive tracers variables
 
    IMPLICIT NONE
@@ -200,6 +199,6 @@
          END DO                                        !   End of slab  
          !                                             ! ===============
-         IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging)
-            ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) )
+         IF(l_ctl) THEN         ! print mean trends (used for debugging)
+            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
             WRITE(numout,*) ' trc/ldf  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn)
             tra_ctl(jn) = ztra 
Index: trunk/NEMO/TOP_SRC/TRP/trcldf_iso_zps.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trcldf_iso_zps.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trcldf_iso_zps.F90	(revision 202)
@@ -12,7 +12,6 @@
    !!----------------------------------------------------------------------
    !! * Modules used
-   USE oce_trc             ! ocean dynamics and active tracers
-   USE trc         ! ocean space and time domain
-   USE lbclnk
+   USE oce_trc             ! ocean dynamics and active tracers variables
+   USE trc                 ! ocean passive tracers variables
 
    IMPLICIT NONE
@@ -108,5 +107,5 @@
          IF(lwp) WRITE(numout,*) 'trc_ldf_iso_zps : iso neutral laplacian diffusion in '
          IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~~~   z-coordinates with partial steps'
-#if defined key_diaeiv
+#if defined key_trcldf_eiv && defined key_diaeiv
          u_trc_eiv(:,:,:) = 0.e0
          v_trc_eiv(:,:,:) = 0.e0
@@ -239,6 +238,6 @@
          END DO                                        !   End of slab  
          !                                             ! ===============
-         IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging)
-            ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) )
+         IF(l_ctl) THEN         ! print mean trends (used for debugging)
+            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
             WRITE(numout,*) ' trc/ldf  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn)
             tra_ctl(jn) = ztra 
Index: trunk/NEMO/TOP_SRC/TRP/trcldf_lap.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trcldf_lap.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trcldf_lap.F90	(revision 202)
@@ -10,7 +10,6 @@
    !!----------------------------------------------------------------------
    !! * Modules used
-   USE oce_trc             ! ocean dynamics and active tracers
-   USE trc                 ! ocean space and time domain
-   USE lbclnk
+   USE oce_trc             ! ocean dynamics and active tracers variables
+   USE trc                 ! ocean passive tracers variables
 
    IMPLICIT NONE
@@ -77,6 +76,5 @@
 
       REAL(wp) ::   &
-         ztrax, ztray 
-                       ! workspace
+         ztra, ztrax, ztray              ! workspace
       !!----------------------------------------------------------------------
       
@@ -139,4 +137,10 @@
          !                                                  ! =============
 
+         IF(l_ctl) THEN         ! print mean trends (used for debugging)
+            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
+            WRITE(numout,*) ' trc/ldf  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn)
+            tra_ctl(jn) = ztra 
+         ENDIF
+
       END DO
 
Index: trunk/NEMO/TOP_SRC/TRP/trcnxt.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trcnxt.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trcnxt.F90	(revision 202)
@@ -10,7 +10,7 @@
    !! * Modules used
    USE oce_trc         ! ocean dynamics and tracers variables
-   USE trc
+   USE trc             ! ocean passive tracers variables
    USE lbclnk          ! ocean lateral boundary conditions (or mpp link)
-   USE trctrp_lec
+   USE trctrp_lec      ! pasive tracers transport
 
    IMPLICIT NONE
@@ -64,5 +64,5 @@
       !! * Local declarations
       INTEGER ::   ji, jj, jk,jn   ! dummy loop indices
-      REAL(wp) ::   zfact          ! temporary scalar
+      REAL(wp) ::   zfact, ztra    ! temporary scalar
       !!----------------------------------------------------------------------
 
@@ -93,8 +93,8 @@
 
 #if defined key_obc
-
-????????Passive tracers and key_obc not yet implemented
-????????Forced compiled error
-
+        IF(lwp) WRITE(numout,cform_err)
+        IF(lwp) WRITE(numout,*) '          Passive tracers and Open Boundary condition can not be used together '
+        IF(lwp) WRITE(numout,*) '          Check in trc_nxt routine'
+        nstop = nstop + 1
 #endif
 
@@ -137,6 +137,7 @@
          END DO                                           !   End of slab
          !                                                ! ===============
-         IF( l_ctl .AND. lwp ) THEN         ! print mean field (used for debugging)
-            WRITE(numout,*) ' trc/nxt  - ',ctrcnm(jn),' : ',SUM( trn(:,:,:,jn) * tmask(:,:,:) ) 
+         IF(l_ctl) THEN         ! print mean field (used for debugging)
+            ztra = SUM( trn(2:nictl,2:njctl,1:jpkm1,jn)*tmask(2:nictl,2:njctl,1:jpkm1) ) 
+            WRITE(numout,*) ' trc/nxt  - ',ctrcnm(jn),' : ', ztra
          ENDIF
 
Index: trunk/NEMO/TOP_SRC/TRP/trcrad.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trcrad.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trcrad.F90	(revision 202)
@@ -10,5 +10,5 @@
    !! * Modules used
    USE oce_trc             ! ocean dynamics and tracers variables
-   USE trc
+   USE trc                 ! ocean passive tracers variables
 
    IMPLICIT NONE
@@ -44,4 +44,5 @@
       !! * Local declarations
       INTEGER ::  ji, jj, jk, jn             ! dummy loop indices
+      REAL(wp) :: ztra
 #if defined key_trc_hamocc3 || defined key_trc_pisces
       REAL(wp) :: zvolk, trcorb, trmasb ,trcorn, trmasn  
@@ -158,6 +159,7 @@
 #endif
       DO jn = 1, jptra
-         IF( l_ctl .AND. lwp ) THEN         ! print mean field (used for debugging)
-            WRITE(numout,*) ' trc/rad  - ',ctrcnm(jn),' : ',SUM( trn(:,:,:,jn) * tmask(:,:,:) ) 
+         IF(l_ctl) THEN         ! print mean field (used for debugging)
+            ztra = SUM( trn(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) ) 
+            WRITE(numout,*) ' trc/rad  - ',ctrcnm(jn),' : ', ztra
          ENDIF
       ENDDO
@@ -168,5 +170,5 @@
 #else
    !!----------------------------------------------------------------------
-   !!   Dummy module :                      Rigid-lid case
+   !!   Dummy module :                      NO passive tracer
    !!----------------------------------------------------------------------
 CONTAINS
Index: trunk/NEMO/TOP_SRC/TRP/trcsbc.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trcsbc.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trcsbc.F90	(revision 202)
@@ -9,6 +9,6 @@
    !!----------------------------------------------------------------------
    !! * Modules used
-   USE oce_trc             ! ocean dynamics and active tracers
-   USE trc             ! ocean  passive tracers
+   USE oce_trc             ! ocean dynamics and active tracers variables
+   USE trc                 ! ocean  passive tracers variables
 
    IMPLICIT NONE
@@ -87,7 +87,7 @@
          END DO
          
-         IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging)
-            ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) )
-            WRITE(numout,*) ' trc/sbc  - ',ctrcnm(jn),' : ', ztra
+         IF(l_ctl) THEN         ! print mean trends (used for debugging)
+            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
+            WRITE(numout,*) ' trc/sbc  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn)
             tra_ctl(jn) = ztra 
          ENDIF
@@ -98,5 +98,5 @@
 #else
    !!----------------------------------------------------------------------
-   !!   Dummy module :                      Rigid-lid case
+   !!   Dummy module :                      NO passive tracer
    !!----------------------------------------------------------------------
 CONTAINS
Index: trunk/NEMO/TOP_SRC/TRP/trcstp.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trcstp.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trcstp.F90	(revision 202)
@@ -9,8 +9,8 @@
    !!----------------------------------------------------------------------
    !! * Modules used
-   !! * Modules used
-   USE oce_trc     ! ocean dynamics variables
-   USE trc         ! passive tracers variables 
-   USE trctrp      ! passive tracers transport
+   USE oce_trc          ! ocean dynamics and active tracers variables
+   USE trc              ! ocean passive tracers variables 
+   USE trctrp           ! passive tracers transport
+
    IMPLICIT NONE
    PRIVATE
@@ -59,5 +59,5 @@
 #else
    !!----------------------------------------------------------------------
-   !!   Default key                                     No passive tracers
+   !!   Default key                                     NO passive tracers
    !!----------------------------------------------------------------------
 CONTAINS
Index: trunk/NEMO/TOP_SRC/TRP/trctrp.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trctrp.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trctrp.F90	(revision 202)
@@ -2,5 +2,5 @@
    !!======================================================================
    !!                       ***  MODULE trctrp  ***
-   !! Ocean Physics    : manage of passive tracer transport
+   !! Ocean Physics    : manage the passive tracer transport
    !!======================================================================
 #if defined key_passivetrc
@@ -9,35 +9,34 @@
    !!----------------------------------------------------------------------
    !! * Modules used
-   USE oce_trc     ! ocean dynamics variables
-   USE trc         ! passive tracers variables 
-   USE lbclnk
+   USE oce_trc         ! ocean dynamics and active tracers variables
+   USE trc             ! ocean passive tracers variables 
 
-   USE trctrp_lec
+   USE trctrp_lec      ! passive tracers transport
 
-   USE trcbbl          ! bottom boundary layer        (trc_bbl routine)
-   USE trcdmp          ! internal damping             (trc_dmp routine)
+   USE trcbbl          ! bottom boundary layer               (trc_bbl routine)
+   USE trcdmp          ! internal damping                    (trc_dmp routine)
 
-   USE trcldf_bilapg   ! lateral mixing        (trc_ldf_bilapg routine)
-   USE trcldf_bilap    ! lateral mixing         (trc_ldf_bilap routine)
-   USE trcldf_iso      ! lateral mixing           (trc_ldf_iso routine)
-   USE trcldf_iso_zps  ! lateral mixing       (trc_ldf_iso_zps routine)
-   USE trcldf_lap      ! lateral mixing           (trc_ldf_lap routine)
+   USE trcldf_bilapg   ! lateral mixing               (trc_ldf_bilapg routine)
+   USE trcldf_bilap    ! lateral mixing                (trc_ldf_bilap routine)
+   USE trcldf_iso      ! lateral mixing                  (trc_ldf_iso routine)
+   USE trcldf_iso_zps  ! lateral mixing              (trc_ldf_iso_zps routine)
+   USE trcldf_lap      ! lateral mixing                  (trc_ldf_lap routine)
  
-   USE trcnxt          ! time-stepping                (trc_nxt routine)
-   USE trcrad          ! positivity                   (trc_rad routine)
+   USE trcnxt          ! time-stepping                       (trc_nxt routine)
+   USE trcrad          ! positivity                          (trc_rad routine)
 
-   USE trcadv_cen2     ! 2nd order centered advection (trc_adv_cen2 routine)
-   USE trcadv_muscl    ! MUSCL advection              (trc_adv_muscl routine)
+   USE trcadv_cen2     ! 2nd order centered advection   (trc_adv_cen2 routine)
+   USE trcadv_muscl    ! MUSCL advection               (trc_adv_muscl routine)
    USE trcadv_muscl2   ! MUSCL2 advection             (trc_adv_muscl2 routine)
-   USE trcadv_tvd      ! TVD advection                (trc_adv_tvd routine)
+   USE trcadv_tvd      ! TVD advection                   (trc_adv_tvd routine)
    USE trcadv_smolar   ! SMOLAR advection             (trc_adv_smolar routine)
 
-   USE trczdf_exp      ! vertical diffusion       (trc_zdf_exp routine)
-   USE trczdf_imp      ! vertical diffusion       (trc_zdf_exp routine)
-   USE trczdf_iso      ! vertical diffusion       (trc_zdf_exp routine)
-   USE trczdf_iso_vopt ! vertical diffusion       (trc_zdf_exp routine)
-   USE trcsbc          ! surface boundary condition   (trc_sbc routine)
+   USE trczdf_exp      ! vertical diffusion              (trc_zdf_exp routine)
+   USE trczdf_imp      ! vertical diffusion              (trc_zdf_exp routine)
+   USE trczdf_iso      ! vertical diffusion              (trc_zdf_exp routine)
+   USE trczdf_iso_vopt ! vertical diffusion              (trc_zdf_exp routine)
+   USE trcsbc          ! surface boundary condition          (trc_sbc routine)
 
-   USE zpshde_trc      ! partial step: hor. derivative (zps_hde_trc routine)
+   USE zpshde_trc      ! partial step: hor. derivative   (zps_hde_trc routine)
 
 
@@ -71,8 +70,5 @@
       !! * Arguments
       INTEGER, INTENT( in ) ::  kt  ! ocean time-step index
-
-
       !! ---------------------------------------------------------------------
-
 
       !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@@ -82,45 +78,45 @@
 
  
-                                CALL trc_sbc( kt )             ! surface boundary condition
+                               CALL trc_sbc( kt )            ! surface boundary condition
+# if defined key_trcbbc
+      IF(lwp) WRITE(numout,cform_err)
+      IF(lwp) WRITE(numout,*) ' Bottom heat flux not yet implemented'
+      IF(lwp) WRITE(numout,*) ' With passive tracers. '
+      IF(lwp) WRITE(numout,*) ' Check trc_trp routine'
+      nstop = nstop + 1
+# endif 
+      !                                                      ! bottom boundary condition
+      IF( lk_trcbbl_dif    )   CALL trc_bbl_dif( kt )                ! diffusive bottom boundary layer scheme
+      IF( lk_trcbbl_adv    )   CALL trc_bbl_adv( kt )                ! advective (and/or diffusive) bottom boundary layer scheme
+
+      IF( lk_trcdmp        )   CALL trc_dmp( kt )            ! internal damping trends
  
-  
-#if defined key_trabbc
-????????Passive tracers and key_obc not yet implemented
-????????Forced compiled error
-#endif
-
-      IF( lk_trcbbl_dif    )   CALL trc_bbl_dif( kt )           ! diffusive bottom boundary layer scheme
-      IF( lk_trcbbl_adv    )   CALL trc_bbl_adv( kt )           ! advective (and/or diffusive) bottom boundary layer scheme
-
-
-      IF( lk_trcdmp        )   CALL trc_dmp( kt )             ! internal damping trends
- 
-      !                                                             ! horizontal & vertical advection
-      IF( ln_trcadv_cen2   )  CALL trc_adv_cen2  ( kt )             ! 2nd order centered scheme
-      IF( ln_trcadv_muscl  )  CALL trc_adv_muscl ( kt )             ! MUSCL scheme
-      IF( ln_trcadv_muscl2 )  CALL trc_adv_muscl2( kt )             ! MUSCL2 scheme
-      IF( ln_trcadv_tvd    )  CALL trc_adv_tvd   ( kt )             ! TVD scheme
-      IF( ln_trcadv_smolar )  CALL trc_adv_smolar( kt )
-   
+      !                                                      ! horizontal & vertical advection
+      IF( ln_trcadv_cen2   )   CALL trc_adv_cen2  ( kt )             ! 2nd order centered scheme
+      IF( ln_trcadv_muscl  )   CALL trc_adv_muscl ( kt )             ! MUSCL scheme
+      IF( ln_trcadv_muscl2 )   CALL trc_adv_muscl2( kt )             ! MUSCL2 scheme
+      IF( ln_trcadv_tvd    )   CALL trc_adv_tvd   ( kt )             ! TVD scheme
+      IF( ln_trcadv_smolar )   CALL trc_adv_smolar( kt )             ! SMOLARKIEWICZ scheme
  
       IF( n_cla == 1   )   THEN 
-         WRITE(numout,*) ' Cross Land Advection not yet implemented'
-         WRITE(numout,*) ' With Passive tracers. STOPPPPPP !!!!'
-         STOP
+         IF(lwp) WRITE(numout,cform_err)
+         IF(lwp) WRITE(numout,*) '          Cross Land Advection not yet implemented'
+         IF(lwp) WRITE(numout,*) '          With Passive tracers. n_cla = ', n_cla
+         IF(lwp) WRITE(numout,*) '          Check trc_trp routine'
+         nstop = nstop + 1
       ENDIF
 
-      !   
-                                                  ! lateral mixing 
-      IF( l_trcldf_bilapg  )   CALL trc_ldf_bilapg ( kt )           ! s-coord. horizontal bilaplacian
-      IF( l_trcldf_bilap   )   CALL trc_ldf_bilap  ( kt )           ! iso-level bilaplacian 
-      IF( l_trcldf_iso     )   CALL trc_ldf_iso    ( kt )           ! iso-neutral laplacian 
-      IF( l_trcldf_iso_zps )   CALL trc_ldf_iso_zps( kt )           ! partial step iso-neutral laplacian
-      IF( l_trcldf_lap     )   CALL trc_ldf_lap    ( kt )           ! iso-level laplacian
+      !                                                      ! lateral mixing 
+      IF( l_trcldf_bilapg  )   CALL trc_ldf_bilapg ( kt )            ! s-coord. horizontal bilaplacian
+      IF( l_trcldf_bilap   )   CALL trc_ldf_bilap  ( kt )            ! iso-level bilaplacian 
+      IF( l_trcldf_iso     )   CALL trc_ldf_iso    ( kt )            ! iso-neutral laplacian 
+      IF( l_trcldf_iso_zps )   CALL trc_ldf_iso_zps( kt )            ! partial step iso-neutral laplacian
+      IF( l_trcldf_lap     )   CALL trc_ldf_lap    ( kt )            ! iso-level laplacian
  
-      !                                                     ! vertical diffusion
-      IF( l_trczdf_exp     )   CALL trc_zdf_exp( kt )               ! explicit time stepping (time splitting scheme)
-      IF( l_trczdf_imp     )   CALL trc_zdf_imp( kt )               ! implicit time stepping (euler backward)
-      IF( l_trczdf_iso     )   CALL trc_zdf_iso( kt )               ! isopycnal
-      IF( l_trczdf_iso_vo  )   CALL trc_zdf_iso_vopt( kt )          ! vector opt. isopycnal
+      !                                                      ! vertical diffusion
+      IF( l_trczdf_exp     )   CALL trc_zdf_exp( kt )                ! explicit time stepping (time splitting scheme)
+      IF( l_trczdf_imp     )   CALL trc_zdf_imp( kt )                ! implicit time stepping (euler backward)
+      IF( l_trczdf_iso     )   CALL trc_zdf_iso( kt )                ! isopycnal
+      IF( l_trczdf_iso_vo  )   CALL trc_zdf_iso_vopt( kt )           ! vector opt. isopycnal
 
                                CALL trc_nxt( kt )            ! tracer fields at next time step
@@ -137,5 +133,5 @@
 #else
    !!----------------------------------------------------------------------
-   !!   Dummy module :                      Rigid-lid case
+   !!   Dummy module :                      NO passive tracers
    !!----------------------------------------------------------------------
 CONTAINS
Index: trunk/NEMO/TOP_SRC/TRP/trctrp_ctl.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trctrp_ctl.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trctrp_ctl.F90	(revision 202)
@@ -9,7 +9,7 @@
    !!----------------------------------------------------------------------
    !! * Modules used
-   USE oce_trc             ! ocean dynamics and active tracers
-   USE trc                 ! ocean space and time domain
-   USE trctrp_lec  
+   USE oce_trc             ! ocean dynamics and active tracers variables
+   USE trc                 ! ocean passive tracers variables
+   USE trctrp_lec          ! passive tracers transport
 
    IMPLICIT NONE
@@ -23,5 +23,5 @@
       LOGICAL, PARAMETER ::   lk_trcldf_eiv   = .TRUE.   !: eddy induced velocity flag
 #else   
-      LOGICAL, PARAMETER ::   lk_trcldf_eiv   = .FALSE.   !: eddy induced velocity flag
+      LOGICAL, PARAMETER ::   lk_trcldf_eiv   = .FALSE.  !: eddy induced velocity flag
 #endif
 
@@ -40,5 +40,4 @@
       !!
       !! History :
-      !!
       !!   9.0  !  04-0.  (C. Ethe) 
       !!----------------------------------------------------------------------
@@ -385,5 +384,5 @@
 #else
    !!----------------------------------------------------------------------
-   !!   Dummy module :                      Rigid-lid case
+   !!   Dummy module :                      NO passive tracer
    !!----------------------------------------------------------------------
 CONTAINS
Index: trunk/NEMO/TOP_SRC/TRP/trctrp_lec.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trctrp_lec.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trctrp_lec.F90	(revision 202)
@@ -9,6 +9,6 @@
    !!----------------------------------------------------------------------
    !! * Modules used
-   USE oce_trc             ! ocean dynamics and active tracers
-   USE trc                 ! ocean space and time domain
+   USE oce_trc             ! ocean dynamics and active tracers variables
+   USE trc                 ! ocean passive tracers variables
 
    IMPLICIT NONE
@@ -22,9 +22,9 @@
    !! Advection
    LOGICAL, PUBLIC ::   &
-      ln_trcadv_cen2   = .FALSE. ,   &  ! 2nd order centered scheme flag
-      ln_trcadv_tvd    = .FALSE. ,   &  ! TVD scheme flag
-      ln_trcadv_muscl  = .FALSE. ,   &  ! MUSCL scheme flag
-      ln_trcadv_muscl2 = .FALSE. ,   &  ! MUSCL2 scheme flag
-      ln_trcadv_smolar = .TRUE.         ! Smolarkiewicz scheme flag
+      ln_trcadv_cen2   = .FALSE. ,  & !!: 2nd order centered scheme flag
+      ln_trcadv_tvd    = .FALSE. ,  &  !: TVD scheme flag
+      ln_trcadv_muscl  = .FALSE. ,  &  !: MUSCL scheme flag
+      ln_trcadv_muscl2 = .FALSE. ,  &  !: MUSCL2 scheme flag
+      ln_trcadv_smolar = .TRUE.        !: Smolarkiewicz scheme flag
 
    !! Lateral diffusion
@@ -37,5 +37,5 @@
       ln_trcldf_iso   = .TRUE.         !: iso-neutral direction
 
-   LOGICAL , PUBLIC ::              &  !: flag of the lateral diff. scheme used
+   LOGICAL , PUBLIC ::              & !!: flag of the lateral diff. scheme used
       l_trcldf_lap         ,        &  !: iso-level laplacian operator
       l_trcldf_bilap       ,        &  !: iso-level bilaplacian operator
@@ -47,25 +47,25 @@
 
    !! Vertical diffusion
-   LOGICAL , PUBLIC ::           & !!! nam_trczdf: vertical diffusion
-      ln_trczdf_exp = .FALSE.   ! explicit vertical diffusion scheme flag
-
-   INTEGER, PUBLIC ::    & !!: namzdf:  vertical diffusion
-      n_trczdf_exp = 3          !: number of sub-time step (explicit time stepping)
-
-   LOGICAL, PUBLIC ::    &   !:
-      l_trczdf_exp     = .FALSE. ,   &  !: ???
-      l_trczdf_imp     = .FALSE.         !:
+   LOGICAL , PUBLIC ::              & !!: nam_trczdf: vertical diffusion
+      ln_trczdf_exp = .FALSE.          !: explicit vertical diffusion scheme flag
+
+   INTEGER, PUBLIC ::               & !!: namzdf:  vertical diffusion
+      n_trczdf_exp = 3                 !: number of sub-time step (explicit time stepping)
+
+   LOGICAL, PUBLIC ::               &  !:
+      l_trczdf_exp     = .FALSE. ,  &  !: explicit vertical diffusion
+      l_trczdf_imp     = .FALSE.       !: implicit vertical diffusion
 
 #if defined key_trcdmp
    !! Newtonian damping
-   INTEGER  , PUBLIC ::             & !!! * newtonian damping namelist (nam_trcdmp) *
-      ndmptr   =   -1 ,      &  ! = 0/-1/'latitude' for damping over tracers
-      ndmpftr  =    2 ,      &  ! = 1 create a damping.coeff NetCDF file 
-      nmldmptr =    0           ! = 0/1/2 flag for damping in the mixed layer
-
-   REAL(wp) , PUBLIC ::             & !!!  * newtonian damping namelist *
-      sdmptr   =   50.,      &  ! surface time scale for internal damping (days)
-      bdmptr   =  360.,      &  ! bottom time scale for internal damping (days)
-      hdmptr   =  800.          ! depth of transition between sdmp and bdmp (meters)
+   INTEGER  , PUBLIC ::             & !!: * newtonian damping namelist (nam_trcdmp) *
+      ndmptr   =   -1 ,             &  !: = 0/-1/'latitude' for damping over tracers
+      ndmpftr  =    2 ,             &  !: = 1 create a damping.coeff NetCDF file 
+      nmldmptr =    0                  !: = 0/1/2 flag for damping in the mixed layer
+
+   REAL(wp) , PUBLIC ::             & !!:  * newtonian damping namelist *
+      sdmptr   =   50.,             &  !: surface time scale for internal damping (days)
+      bdmptr   =  360.,             &  !: bottom time scale for internal damping (days)
+      hdmptr   =  800.                 !: depth of transition between sdmp and bdmp (meters)
 #endif
    !!----------------------------------------------------------------------
@@ -82,5 +82,4 @@
       !!
       !! History :
-      !!
       !!   9.0  !  04-03  (C. Ethe) 
       !!----------------------------------------------------------------------
@@ -193,5 +192,5 @@
 #else
    !!----------------------------------------------------------------------
-   !!   Dummy module :                      Rigid-lid case
+   !!   Dummy module :                      NO passive tracer
    !!----------------------------------------------------------------------
 CONTAINS
Index: trunk/NEMO/TOP_SRC/TRP/trczdf_exp.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trczdf_exp.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trczdf_exp.F90	(revision 202)
@@ -11,7 +11,7 @@
    !!----------------------------------------------------------------------
    !! * Modules used
-   USE oce_trc     ! ocean dynamics and active tracers 
-   USE trc         ! ocean space and time domain 
-   USE trctrp_lec
+   USE oce_trc          ! ocean dynamics and active tracers variables
+   USE trc              ! ocean passive tracers variables
+   USE trctrp_lec       ! passive tracers transport
 
    IMPLICIT NONE
@@ -163,5 +163,5 @@
 #else
    !!----------------------------------------------------------------------
-   !!   Dummy module :                      Rigid-lid case
+   !!   Dummy module :                      NO passive tracer
    !!----------------------------------------------------------------------
 CONTAINS
Index: trunk/NEMO/TOP_SRC/TRP/trczdf_imp.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trczdf_imp.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trczdf_imp.F90	(revision 202)
@@ -10,7 +10,7 @@
    !!----------------------------------------------------------------------
    !! * Modules used
-   USE oce_trc             ! ocean dynamics and active tracers
-   USE trc         ! ocean space and time domain
-   USE trctrp_lec
+   USE oce_trc             ! ocean dynamics and active tracers variables
+   USE trc                 ! ocean passive tracers variables
+   USE trctrp_lec          ! passive tracers transport
 
    IMPLICIT NONE
@@ -122,5 +122,5 @@
                END DO
             END DO
-         ENDDO
+         END DO
 
          ! Surface boudary conditions
@@ -181,5 +181,5 @@
          END DO
 
-         IF( l_ctl .AND. lwp ) THEN 
+         IF(l_ctl) THEN 
             DO jk = 1, jpkm1
                DO jj = 2, jpjm1
@@ -191,6 +191,6 @@
          ENDIF
       
-         IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging)
-            ztra = SUM( ztrd(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) )
+         IF(l_ctl) THEN         ! print mean trends (used for debugging)
+            ztra = SUM( ztrd(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
             WRITE(numout,*) ' trc/zdf  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn)
             tra_ctl(jn) = ztra 
@@ -203,5 +203,5 @@
 #else
    !!----------------------------------------------------------------------
-   !!   Dummy module :                      Rigid-lid case
+   !!   Dummy module :                      NO passive tracer
    !!----------------------------------------------------------------------
 CONTAINS
Index: trunk/NEMO/TOP_SRC/TRP/trczdf_iso.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trczdf_iso.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trczdf_iso.F90	(revision 202)
@@ -13,8 +13,8 @@
    !!----------------------------------------------------------------------
    !! * Modules used
-   USE oce_trc     ! ocean dynamics and tracers variables
-   USE trc         ! ocean space and time domain variables 
-   USE lbclnk      ! ocean lateral boundary conditions (or mpp link)
-   USE trctrp_lec
+   USE oce_trc          ! ocean dynamics and tracers variables
+   USE trc              ! ocean passive tracers variables 
+   USE lbclnk           ! ocean lateral boundary conditions (or mpp link)
+   USE trctrp_lec       ! passive tracers transport
 
    IMPLICIT NONE
@@ -342,6 +342,6 @@
          !                                                ! ===============
 
-         IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging)
-            ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) )
+         IF(l_ctl) THEN         ! print mean trends (used for debugging)
+            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
             WRITE(numout,*) ' trc/zdf 1  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn)
             tra_ctl(jn) = ztra 
@@ -433,6 +433,6 @@
 
 
-         IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging)
-            ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) )
+         IF(l_ctl) THEN         ! print mean trends (used for debugging)
+            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
             WRITE(numout,*) ' trc/zdf 2  - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn)
             tra_ctl(jn) = ztra 
Index: trunk/NEMO/TOP_SRC/TRP/trczdf_iso_vopt.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/trczdf_iso_vopt.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/trczdf_iso_vopt.F90	(revision 202)
@@ -17,7 +17,7 @@
    !! * Modules used
    USE oce_trc         ! ocean dynamics and tracers variables
-   USE trc             ! ocean space and time domain variables 
+   USE trc             ! ocean passive tracers variables 
    USE lbclnk          ! ocean lateral boundary conditions (or mpp link)
-   USE trctrp_lec
+   USE trctrp_lec      ! passive tracers transport
 
    IMPLICIT NONE
@@ -51,5 +51,4 @@
       !! * Arguments
       INTEGER, INTENT( in ) ::   kt      ! ocean time-step index
-      !! * Local variables
       !!---------------------------------------------------------------------
       !!  OPA 8.5, LODYC-IPSL (2002)
@@ -315,6 +314,6 @@
 #  endif
 #endif
-         IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging)
-            ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) )
+         IF(l_ctl) THEN         ! print mean trends (used for debugging)
+            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
             WRITE(numout,*) ' trc/zdf 1 - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn)
             tra_ctl(jn) = ztra 
@@ -549,6 +548,6 @@
          END DO
 
-         IF( l_ctl .AND. lwp ) THEN         ! print mean trends (used for debugging)
-            ztra = SUM( tra(2:jpim1,2:jpjm1,1:jpkm1,jn) * tmask(2:jpim1,2:jpjm1,1:jpkm1) )
+         IF(l_ctl) THEN         ! print mean trends (used for debugging)
+            ztra = SUM( tra(2:nictl,2:njctl,1:jpkm1,jn) * tmask(2:nictl,2:njctl,1:jpkm1) )
             WRITE(numout,*) ' trc/zdf 2 - ',ctrcnm(jn),' : ', ztra-tra_ctl(jn)
             tra_ctl(jn) = ztra 
Index: trunk/NEMO/TOP_SRC/TRP/zpshde_trc.F90
===================================================================
--- trunk/NEMO/TOP_SRC/TRP/zpshde_trc.F90	(revision 201)
+++ trunk/NEMO/TOP_SRC/TRP/zpshde_trc.F90	(revision 202)
@@ -13,5 +13,5 @@
    !! * Modules used
    USE oce_trc         ! ocean dynamics and tracers variables
-   USE trc             ! physical constants
+   USE trc             ! ocean passive tracers variables
    USE lbclnk          ! lateral boundary conditions (or mpp link)
 
