Index: branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/traadv_cen2.F90
===================================================================
--- branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/traadv_cen2.F90	(revision 2051)
+++ branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/traadv_cen2.F90	(revision 2052)
@@ -20,5 +20,5 @@
    !!                  area (set for orca 2 and 4 only)
    !!----------------------------------------------------------------------
-   USE oce, ONLY: tsn  ! now ocean temperature and salinity
+   USE oce, ONLY: tn, sn  ! now ocean temperature and salinity
    USE dom_oce         ! ocean space and time domain
    USE eosbn2          ! equation of state
@@ -159,10 +159,10 @@
 !!gm  not strickly exact : the freezing point should be computed at each ocean levels...
 !!gm  not a big deal since cen2 is no more used in global ice-ocean simulations
-      ztfreez(:,:) = tfreez( tsn(:,:,1,jp_sal) )
+      ztfreez(:,:) = tfreez( sn(:,:,1) )
       DO jk = 1, jpk
          DO jj = 1, jpj
             DO ji = 1, jpi
                !                                        ! below ice covered area (if tn < "freezing"+0.1 )
-               IF( tsn(ji,jj,jk,jp_tem) <= ztfreez(ji,jj) + 0.1 ) THEN   ;   zice = 1.e0
+               IF( tn(ji,jj,jk) <= ztfreez(ji,jj) + 0.1 ) THEN   ;   zice = 1.e0
                ELSE                                              ;   zice = 0.e0
                ENDIF
Index: branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/trasbc.F90
===================================================================
--- branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/trasbc.F90	(revision 2051)
+++ branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/trasbc.F90	(revision 2052)
@@ -200,5 +200,5 @@
                 ENDIF  
   
-              ELSE IF( rnf(ji,jj) > 0.) THEN   ! for use in baltic when flow is out of domain, want no change in temp and sal  
+              ELSE IF( rnf(ji,jj) < 0.) THEN   ! for use in baltic when flow is out of domain, want no change in temp and sal  
   
                 IF( lk_vvl ) THEN  
Index: branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/trazdf_imp.F90
===================================================================
--- branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/trazdf_imp.F90	(revision 2051)
+++ branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/trazdf_imp.F90	(revision 2052)
@@ -180,4 +180,17 @@
                END DO
             END DO
+            ! first recurrence:   Tk = Dk - Ik Sk-1 / Tk-1   (increasing k)
+            DO jj = 2, jpjm1
+               DO ji = fs_2, fs_jpim1
+                  zwt(ji,jj,1) = zwd(ji,jj,1)
+               END DO
+            END DO
+            DO jk = 2, jpkm1
+               DO jj = 2, jpjm1
+                  DO ji = fs_2, fs_jpim1
+                    zwt(ji,jj,jk) = zwd(ji,jj,jk) - zwi(ji,jj,jk) * zws(ji,jj,jk-1)  /zwt(ji,jj,jk-1)
+                  END DO
+               END DO
+            END DO
             !
          ELSE IF( ( cdtype == 'TRA' .AND. jn == jp_sal ) .OR. ( cdtype == 'TRC' .AND. jn == 1 ) ) THEN
@@ -191,5 +204,5 @@
                            & * (  wslpi(ji,jj,jk) * wslpi(ji,jj,jk)   &
                            &    + wslpj(ji,jj,jk) * wslpj(ji,jj,jk)  )
-                        zwt(ji,jj,jk) = fsavs(ji,jj,jk) + zavi              ! zwt=avt+zavi (total vertical mixing coef. on temperature)
+                        zwt(ji,jj,jk) = fsavs(ji,jj,jk) + zavi              ! zwt=avt+zavi (total vertical mixing coef. on salinity)
                      END DO
                   END DO
@@ -223,39 +236,22 @@
             END DO
             !
-         END IF
+            ! first recurrence:   Tk = Dk - Ik Sk-1 / Tk-1   (increasing k)
+            DO jj = 2, jpjm1
+               DO ji = fs_2, fs_jpim1
+                  zwt(ji,jj,1) = zwd(ji,jj,1)
+               END DO
+            END DO
+            DO jk = 2, jpkm1
+               DO jj = 2, jpjm1
+                  DO ji = fs_2, fs_jpim1
+                    zwt(ji,jj,jk) = zwd(ji,jj,jk) - zwi(ji,jj,jk) * zws(ji,jj,jk-1)  /zwt(ji,jj,jk-1)
+                  END DO
+               END DO
+            END DO
+            !
+         END IF 
 
          ! II.1. Vertical diffusion on tracer
          ! ---------------------------
-
-         !! Matrix inversion from the first level
-         !!----------------------------------------------------------------------
-         !   solve m.x = y  where m is a tri diagonal matrix ( jpk*jpk )
-         !
-         !        ( zwd1 zws1   0    0    0  )( zwx1 ) ( zwy1 )
-         !        ( zwi2 zwd2 zws2   0    0  )( zwx2 ) ( zwy2 )
-         !        (  0   zwi3 zwd3 zws3   0  )( zwx3 )=( zwy3 )
-         !        (        ...               )( ...  ) ( ...  )
-         !        (  0    0    0   zwik zwdk )( zwxk ) ( zwyk )
-         !
-         !   m is decomposed in the product of an upper and lower triangular matrix
-         !   The 3 diagonal terms are in 2d arrays: zwd, zws, zwi
-         !   The second member is in 2d array zwy
-         !   The solution is in 2d array zwx
-         !   The 3d arry zwt is a work space array
-         !   zwy is used and then used as a work space array : its value is modified!
-         
-         ! first recurrence:   Tk = Dk - Ik Sk-1 / Tk-1   (increasing k)
-         DO jj = 2, jpjm1
-            DO ji = fs_2, fs_jpim1
-               zwt(ji,jj,1) = zwd(ji,jj,1)
-            END DO
-         END DO
-         DO jk = 2, jpkm1
-            DO jj = 2, jpjm1
-               DO ji = fs_2, fs_jpim1
-                  zwt(ji,jj,jk) = zwd(ji,jj,jk) - zwi(ji,jj,jk) * zws(ji,jj,jk-1)  /zwt(ji,jj,jk-1)
-               END DO
-            END DO
-         END DO
          
          ! second recurrence:    Zk = Yk - Ik / Tk-1  Zk-1
Index: branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/opa.F90
===================================================================
--- branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/opa.F90	(revision 2051)
+++ branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/opa.F90	(revision 2052)
@@ -261,7 +261,4 @@
                             CALL ldf_dyn_init   ! Lateral ocean momentum physics
       IF( lk_ldfslp )       CALL ldf_slp_init   ! slope of lateral mixing
-#if defined key_traldf_c2d
-      IF( lk_traldf_eiv )   CALL ldf_eiv( kstp )      ! eddy induced velocity coefficient
-#  endif
       !                                     ! Active tracers
                             CALL tra_qsr_init   ! penetrative solar radiation qsr
Index: branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/C14b/par_c14b.F90
===================================================================
--- branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/C14b/par_c14b.F90	(revision 2051)
+++ branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/C14b/par_c14b.F90	(revision 2052)
@@ -27,10 +27,9 @@
 
    IMPLICIT NONE
-   PUBLIC
 
-   INTEGER, PUBLIC, PARAMETER ::   jp_lp      = jp_lobster     + jp_pisces     + jp_cfc     !: cum. number of pass. tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_lp_2d   = jp_lobster_2d  + jp_pisces_2d  + jp_cfc_2d  !:
-   INTEGER, PUBLIC, PARAMETER ::   jp_lp_3d   = jp_lobster_3d  + jp_pisces_3d  + jp_cfc_3d  !:
-   INTEGER, PUBLIC, PARAMETER ::   jp_lp_trd  = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd !:
+   INTEGER, PARAMETER ::   jp_lb      = jp_lobster     + jp_pisces     + jp_cfc     !: cum. number of pass. tracers
+   INTEGER, PARAMETER ::   jp_lb_2d   = jp_lobster_2d  + jp_pisces_2d  + jp_cfc_2d  !:
+   INTEGER, PARAMETER ::   jp_lb_3d   = jp_lobster_3d  + jp_pisces_3d  + jp_cfc_3d  !:
+   INTEGER, PARAMETER ::   jp_lb_trd  = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd !:
    
 #if defined key_c14b
@@ -40,10 +39,8 @@
    LOGICAL, PUBLIC, PARAMETER ::   lk_c14b     = .TRUE.      !: C14 bomb flag 
    INTEGER, PUBLIC, PARAMETER ::   jp_c14b     =  1          !: number of passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_c14b_2d  =  2          !: additional 2d output arrays ('key_diatrc')
-   INTEGER, PUBLIC, PARAMETER ::   jp_c14b_3d  =  1          !: additional 3d output arrays ('key_diatrc')
+   INTEGER, PUBLIC, PARAMETER ::   jp_c14b_2d  =  2          !: additional 2d output arrays ('key_trc_diaadd')
+   INTEGER, PUBLIC, PARAMETER ::   jp_c14b_3d  =  1          !: additional 3d output arrays ('key_trc_diaadd')
    INTEGER, PUBLIC, PARAMETER ::   jp_c14b_trd =  0          !: number of sms trends for C14
-   
-   ! assign an index in trc arrays for each CFC prognostic variables
-   INTEGER, PUBLIC, PARAMETER ::   jpc14       = jp_lp + 1   !: C14 bomb 
+   INTEGER, PUBLIC, PARAMETER ::   jpc14       = jp_lb + 1   !: assign an index in trc arrays for C14 bomb 
 #else
    !!---------------------------------------------------------------------
@@ -58,12 +55,12 @@
 
    ! Starting/ending C14 do-loop indices (N.B. no C14 : jp_c14b0 > jp_c14b1 the do-loop are never done)
-   INTEGER, PUBLIC, PARAMETER ::   jp_c14b0     = jp_lp + 1                !: First index of C14 tracer
-   INTEGER, PUBLIC, PARAMETER ::   jp_c14b1     = jp_lp + jp_c14b          !: Last  index of C14 tracer
-   INTEGER, PUBLIC, PARAMETER ::   jp_c14b0_2d  = jp_lp_2d  + 1            !: First index of C14 tracer
-   INTEGER, PUBLIC, PARAMETER ::   jp_c14b1_2d  = jp_lp_2d  + jp_c14b_2d   !: Last  index of C14 tracer
-   INTEGER, PUBLIC, PARAMETER ::   jp_c14b0_3d  = jp_lp_3d  + 1            !: First index of C14 tracer
-   INTEGER, PUBLIC, PARAMETER ::   jp_c14b1_3d  = jp_lp_3d  + jp_c14b_3d   !: Last  index of C14 tracer
-   INTEGER, PUBLIC, PARAMETER ::   jp_c14b0_trd = jp_lp_trd + 1            !: First index of C14 tracer
-   INTEGER, PUBLIC, PARAMETER ::   jp_c14b1_trd = jp_lp_trd + jp_c14b_trd  !: Last  index of C14 tracer
+   INTEGER, PUBLIC, PARAMETER ::   jp_c14b0     = jp_lb + 1                !: First index of C14 tracer
+   INTEGER, PUBLIC, PARAMETER ::   jp_c14b1     = jp_lb + jp_c14b          !: Last  index of C14 tracer
+   INTEGER, PUBLIC, PARAMETER ::   jp_c14b0_2d  = jp_lb_2d  + 1            !: First index of C14 tracer
+   INTEGER, PUBLIC, PARAMETER ::   jp_c14b1_2d  = jp_lb_2d  + jp_c14b_2d   !: Last  index of C14 tracer
+   INTEGER, PUBLIC, PARAMETER ::   jp_c14b0_3d  = jp_lb_3d  + 1            !: First index of C14 tracer
+   INTEGER, PUBLIC, PARAMETER ::   jp_c14b1_3d  = jp_lb_3d  + jp_c14b_3d   !: Last  index of C14 tracer
+   INTEGER, PUBLIC, PARAMETER ::   jp_c14b0_trd = jp_lb_trd + 1            !: First index of C14 tracer
+   INTEGER, PUBLIC, PARAMETER ::   jp_c14b1_trd = jp_lb_trd + jp_c14b_trd  !: Last  index of C14 tracer
 
    !!======================================================================
Index: branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/CFC/par_cfc.F90
===================================================================
--- branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/CFC/par_cfc.F90	(revision 2051)
+++ branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/CFC/par_cfc.F90	(revision 2052)
@@ -21,10 +21,9 @@
 
    IMPLICIT NONE
-   PUBLIC
 
-   INTEGER, PUBLIC, PARAMETER ::   jp_lp      = jp_lobster     + jp_pisces     !: cumulative number of passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_lp_2d   = jp_lobster_2d  + jp_pisces_2d  !:
-   INTEGER, PUBLIC, PARAMETER ::   jp_lp_3d   = jp_lobster_3d  + jp_pisces_3d  !:
-   INTEGER, PUBLIC, PARAMETER ::   jp_lp_trd  = jp_lobster_trd + jp_pisces_trd !:
+   INTEGER, PARAMETER ::   jp_lc      = jp_lobster     + jp_pisces     !: cumulative number of passive tracers
+   INTEGER, PARAMETER ::   jp_lc_2d   = jp_lobster_2d  + jp_pisces_2d  !:
+   INTEGER, PARAMETER ::   jp_lc_3d   = jp_lobster_3d  + jp_pisces_3d  !:
+   INTEGER, PARAMETER ::   jp_lc_trd  = jp_lobster_trd + jp_pisces_trd !:
    
 #if defined key_cfc
@@ -34,11 +33,11 @@
    LOGICAL, PUBLIC, PARAMETER ::   lk_cfc     = .TRUE.      !: CFC flag 
    INTEGER, PUBLIC, PARAMETER ::   jp_cfc     =  2          !: number of passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_2d  =  2          !: additional 2d output arrays ('key_diatrc')
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_3d  =  0          !: additional 3d output arrays ('key_diatrc')
+   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_2d  =  2          !: additional 2d output arrays ('key_trc_diaadd')
+   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_3d  =  0          !: additional 3d output arrays ('key_trc_diaadd')
    INTEGER, PUBLIC, PARAMETER ::   jp_cfc_trd =  0          !: number of sms trends for CFC
    
    ! assign an index in trc arrays for each CFC prognostic variables
-   INTEGER, PUBLIC, PARAMETER ::   jpc11       = jp_lp + 1   !: CFC-11 
-   INTEGER, PUBLIC, PARAMETER ::   jpc12       = jp_lp + 2   !: CFC-12   
+   INTEGER, PUBLIC, PARAMETER ::   jpc11       = jp_lc + 1   !: CFC-11 
+   INTEGER, PUBLIC, PARAMETER ::   jpc12       = jp_lc + 2   !: CFC-12   
 #else
    !!---------------------------------------------------------------------
@@ -53,12 +52,12 @@
 
    ! Starting/ending CFC do-loop indices (N.B. no CFC : jp_cfc0 > jp_cfc1 the do-loop are never done)
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc0     = jp_lp + 1       !: First index of CFC tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc1     = jp_lp + jp_cfc  !: Last  index of CFC tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc0_2d  = jp_lp_2d  + 1       !: First index of CFC tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc1_2d  = jp_lp_2d  + jp_cfc_2d  !: Last  index of CFC tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc0_3d  = jp_lp_3d  + 1       !: First index of CFC tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc1_3d  = jp_lp_3d  + jp_cfc_3d  !: Last  index of CFC tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc0_trd = jp_lp_trd + 1       !: First index of CFC tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc1_trd = jp_lp_trd + jp_cfc_trd  !: Last  index of CFC tracers
+   INTEGER, PUBLIC, PARAMETER ::   jp_cfc0     = jp_lc + 1       !: First index of CFC tracers
+   INTEGER, PUBLIC, PARAMETER ::   jp_cfc1     = jp_lc + jp_cfc  !: Last  index of CFC tracers
+   INTEGER, PUBLIC, PARAMETER ::   jp_cfc0_2d  = jp_lc_2d  + 1       !: First index of CFC tracers
+   INTEGER, PUBLIC, PARAMETER ::   jp_cfc1_2d  = jp_lc_2d  + jp_cfc_2d  !: Last  index of CFC tracers
+   INTEGER, PUBLIC, PARAMETER ::   jp_cfc0_3d  = jp_lc_3d  + 1       !: First index of CFC tracers
+   INTEGER, PUBLIC, PARAMETER ::   jp_cfc1_3d  = jp_lc_3d  + jp_cfc_3d  !: Last  index of CFC tracers
+   INTEGER, PUBLIC, PARAMETER ::   jp_cfc0_trd = jp_lc_trd + 1       !: First index of CFC tracers
+   INTEGER, PUBLIC, PARAMETER ::   jp_cfc1_trd = jp_lc_trd + jp_cfc_trd  !: Last  index of CFC tracers
 
    !!======================================================================
Index: branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/CFC/trcini_cfc.F90
===================================================================
--- branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/CFC/trcini_cfc.F90	(revision 2051)
+++ branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/CFC/trcini_cfc.F90	(revision 2052)
@@ -22,4 +22,6 @@
 
    PUBLIC   trc_ini_cfc   ! called by trcini.F90 module
+
+   CHARACTER (len=34) ::   clname = 'cfc1112.atm'   ! ???
 
    INTEGER  ::   inum                   ! unit number
@@ -47,5 +49,4 @@
       !!----------------------------------------------------------------------
 
-
       IF(lwp) WRITE(numout,*)
       IF(lwp) WRITE(numout,*) ' trc_ini_cfc: initialisation of CFC chemical model'
@@ -56,13 +57,5 @@
       ! --------------------------------------- 
       xphem (:,:)    = 0.e0
-      DO jl = 1, jp_cfc
-         jn = jp_cfc0 + jl - 1
-         DO jm = 1, jphem
-            DO js = 1, jpyear
-               p_cfc(js,jm,jn) = 0.0
-            END DO
-         END DO
-      END DO
-      
+      p_cfc(:,:,:)   = 0.e0
       
       ! Initialization of qint in case of  no restart 
@@ -74,8 +67,8 @@
             WRITE(numout,*) 'Initialization de qint ; No restart : qint equal zero '
          ENDIF
+         qint_cfc(:,:,:) = 0.e0
          DO jl = 1, jp_cfc
             jn = jp_cfc0 + jl - 1
             trn     (:,:,:,jn) = 0.e0
-            qint_cfc(:,:  ,jn) = 0.e0
          END DO
       ENDIF
@@ -89,5 +82,5 @@
       IF(lwp) WRITE(numout,*) 'read of formatted file cfc1112atm'
       
-      CALL ctl_opn( inum, 'cfc1112.atm', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
+      CALL ctl_opn( inum, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
       REWIND(inum)
       
@@ -147,5 +140,5 @@
 
    END SUBROUTINE trc_ini_cfc
- 
+   
 #else
    !!----------------------------------------------------------------------
Index: branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/CFC/trcsms_cfc.F90
===================================================================
--- branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/CFC/trcsms_cfc.F90	(revision 2051)
+++ branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/CFC/trcsms_cfc.F90	(revision 2052)
@@ -27,5 +27,5 @@
    PUBLIC   trc_sms_cfc       ! called in ???    
 
-   INTEGER , PUBLIC, PARAMETER ::   jpyear = 100   ! temporal parameter 
+   INTEGER , PUBLIC, PARAMETER ::   jpyear = 150   ! temporal parameter 
    INTEGER , PUBLIC, PARAMETER ::   jphem  =   2   ! parameter for the 2 hemispheres
    INTEGER , PUBLIC    ::   ndate_beg      ! initial calendar date (aammjj) for CFC
Index: branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/LOBSTER/par_lobster.F90
===================================================================
--- branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/LOBSTER/par_lobster.F90	(revision 2051)
+++ branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/LOBSTER/par_lobster.F90	(revision 2052)
@@ -12,5 +12,4 @@
 
    IMPLICIT NONE
-   PUBLIC
 
 #if defined key_lobster
Index: branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/MY_TRC/par_my_trc.F90
===================================================================
--- branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/MY_TRC/par_my_trc.F90	(revision 2051)
+++ branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/MY_TRC/par_my_trc.F90	(revision 2052)
@@ -31,10 +31,9 @@
 
    IMPLICIT NONE
-   PUBLIC
 
-   INTEGER, PUBLIC, PARAMETER ::   jp_lpc      = jp_lobster     + jp_pisces     + jp_cfc     + jp_c14b     !: 
-   INTEGER, PUBLIC, PARAMETER ::   jp_lpc_2d   = jp_lobster_2d  + jp_pisces_2d  + jp_cfc_2d  + jp_c14b_2d  !:
-   INTEGER, PUBLIC, PARAMETER ::   jp_lpc_3d   = jp_lobster_3d  + jp_pisces_3d  + jp_cfc_3d  + jp_c14b_3d  !:
-   INTEGER, PUBLIC, PARAMETER ::   jp_lpc_trd  = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_c14b_trd !:
+   INTEGER, PARAMETER ::   jp_lm      = jp_lobster     + jp_pisces     + jp_cfc     + jp_c14b     !: 
+   INTEGER, PARAMETER ::   jp_lm_2d   = jp_lobster_2d  + jp_pisces_2d  + jp_cfc_2d  + jp_c14b_2d  !:
+   INTEGER, PARAMETER ::   jp_lm_3d   = jp_lobster_3d  + jp_pisces_3d  + jp_cfc_3d  + jp_c14b_3d  !:
+   INTEGER, PARAMETER ::   jp_lm_trd  = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_c14b_trd !:
 
 #if defined key_my_trc
@@ -44,11 +43,11 @@
    LOGICAL, PUBLIC, PARAMETER ::   lk_my_trc     = .TRUE.   !: PTS flag 
    INTEGER, PUBLIC, PARAMETER ::   jp_my_trc     =  2       !: number of PTS tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_my_trc_2d  =  0       !: additional 2d output arrays ('key_diatrc')
-   INTEGER, PUBLIC, PARAMETER ::   jp_my_trc_3d  =  0       !: additional 3d output arrays ('key_diatrc')
+   INTEGER, PUBLIC, PARAMETER ::   jp_my_trc_2d  =  0       !: additional 2d output arrays ('key_trc_diaadd')
+   INTEGER, PUBLIC, PARAMETER ::   jp_my_trc_3d  =  0       !: additional 3d output arrays ('key_trc_diaadd')
    INTEGER, PUBLIC, PARAMETER ::   jp_my_trc_trd =  0       !: number of sms trends for MY_TRC
 
    ! assign an index in trc arrays for each PTS prognostic variables
-   INTEGER, PUBLIC, PARAMETER ::   jpmyt1 = jp_lpc + 1     !: 1st MY_TRC tracer
-   INTEGER, PUBLIC, PARAMETER ::   jpmyt2 = jp_lpc + 2     !: 2nd MY_TRC tracer
+   INTEGER, PUBLIC, PARAMETER ::   jpmyt1 = jp_lm + 1     !: 1st MY_TRC tracer
+   INTEGER, PUBLIC, PARAMETER ::   jpmyt2 = jp_lm + 2     !: 2nd MY_TRC tracer
 
 #else
@@ -64,12 +63,12 @@
 
    ! Starting/ending PISCES do-loop indices (N.B. no PISCES : jpl_pcs < jpf_pcs the do-loop are never done)
-   INTEGER, PUBLIC, PARAMETER ::   jp_myt0     = jp_lpc     + 1              !: First index of MY_TRC passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_myt1     = jp_lpc     + jp_my_trc      !: Last  index of MY_TRC passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_myt0_2d  = jp_lpc_2d  + 1              !: First index of MY_TRC passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_myt1_2d  = jp_lpc_2d  + jp_my_trc_2d   !: Last  index of MY_TRC passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_myt0_3d  = jp_lpc_3d  + 1              !: First index of MY_TRC passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_myt1_3d  = jp_lpc_3d  + jp_my_trc_3d   !: Last  index of MY_TRC passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_myt0_trd = jp_lpc_trd + 1              !: First index of MY_TRC passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_myt1_trd = jp_lpc_trd + jp_my_trc_trd  !: Last  index of MY_TRC passive tracers
+   INTEGER, PUBLIC, PARAMETER ::   jp_myt0     = jp_lm     + 1              !: First index of MY_TRC passive tracers
+   INTEGER, PUBLIC, PARAMETER ::   jp_myt1     = jp_lm     + jp_my_trc      !: Last  index of MY_TRC passive tracers
+   INTEGER, PUBLIC, PARAMETER ::   jp_myt0_2d  = jp_lm_2d  + 1              !: First index of MY_TRC passive tracers
+   INTEGER, PUBLIC, PARAMETER ::   jp_myt1_2d  = jp_lm_2d  + jp_my_trc_2d   !: Last  index of MY_TRC passive tracers
+   INTEGER, PUBLIC, PARAMETER ::   jp_myt0_3d  = jp_lm_3d  + 1              !: First index of MY_TRC passive tracers
+   INTEGER, PUBLIC, PARAMETER ::   jp_myt1_3d  = jp_lm_3d  + jp_my_trc_3d   !: Last  index of MY_TRC passive tracers
+   INTEGER, PUBLIC, PARAMETER ::   jp_myt0_trd = jp_lm_trd + 1              !: First index of MY_TRC passive tracers
+   INTEGER, PUBLIC, PARAMETER ::   jp_myt1_trd = jp_lm_trd + jp_my_trc_trd  !: Last  index of MY_TRC passive tracers
 
    !!======================================================================
Index: branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/PISCES/par_pisces.F90
===================================================================
--- branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/PISCES/par_pisces.F90	(revision 2051)
+++ branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/PISCES/par_pisces.F90	(revision 2052)
@@ -18,8 +18,8 @@
    PUBLIC
 
-   INTEGER, PUBLIC, PARAMETER ::   jp_l      = jp_lobster      !: cumulative number of already defined TRC
-   INTEGER, PUBLIC, PARAMETER ::   jp_l_2d   = jp_lobster_2d   !:
-   INTEGER, PUBLIC, PARAMETER ::   jp_l_3d   = jp_lobster_3d   !:
-   INTEGER, PUBLIC, PARAMETER ::   jp_l_trd  = jp_lobster_trd  !:
+   INTEGER, PUBLIC, PARAMETER ::   jp_lp      = jp_lobster      !: cumulative number of already defined TRC
+   INTEGER, PUBLIC, PARAMETER ::   jp_lp_2d   = jp_lobster_2d   !:
+   INTEGER, PUBLIC, PARAMETER ::   jp_lp_3d   = jp_lobster_3d   !:
+   INTEGER, PUBLIC, PARAMETER ::   jp_lp_trd  = jp_lobster_trd  !:
 
 #if defined key_pisces  &&  defined key_kriest
@@ -37,27 +37,27 @@
    !    WARNING: be carefull about the order when reading the restart
         !   !!gm  this warning should be obsolet with IOM
-   INTEGER, PUBLIC, PARAMETER ::   jpdic = jp_l +  1    !: dissolved inoganic carbon concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jptal = jp_l +  2    !: total alkalinity 
-   INTEGER, PUBLIC, PARAMETER ::   jpoxy = jp_l +  3    !: oxygen carbon concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jpcal = jp_l +  4    !: calcite  concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jppo4 = jp_l +  5    !: phosphate concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jppoc = jp_l +  6    !: small particulate organic phosphate concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpsil = jp_l +  7    !: silicate concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpphy = jp_l +  8    !: phytoplancton concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jpzoo = jp_l +  9    !: zooplancton concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpdoc = jp_l + 10    !: dissolved organic carbon concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jpdia = jp_l + 11    !: Diatoms Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpmes = jp_l + 12    !: Mesozooplankton Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpbsi = jp_l + 13    !: (big) Silicate Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpfer = jp_l + 14    !: Iron Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpnum = jp_l + 15    !: Big iron particles Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpsfe = jp_l + 16    !: number of particulate organic phosphate concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpdfe = jp_l + 17    !: Diatoms iron Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpdsi = jp_l + 18    !: Diatoms Silicate Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpnfe = jp_l + 19    !: Nano iron Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpnch = jp_l + 20    !: Nano Chlorophyll Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpdch = jp_l + 21    !: Diatoms Chlorophyll Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpno3 = jp_l + 22    !: Nitrates Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpnh4 = jp_l + 23    !: Ammonium Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpdic = jp_lp +  1    !: dissolved inoganic carbon concentration 
+   INTEGER, PUBLIC, PARAMETER ::   jptal = jp_lp +  2    !: total alkalinity 
+   INTEGER, PUBLIC, PARAMETER ::   jpoxy = jp_lp +  3    !: oxygen carbon concentration 
+   INTEGER, PUBLIC, PARAMETER ::   jpcal = jp_lp +  4    !: calcite  concentration 
+   INTEGER, PUBLIC, PARAMETER ::   jppo4 = jp_lp +  5    !: phosphate concentration 
+   INTEGER, PUBLIC, PARAMETER ::   jppoc = jp_lp +  6    !: small particulate organic phosphate concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpsil = jp_lp +  7    !: silicate concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpphy = jp_lp +  8    !: phytoplancton concentration 
+   INTEGER, PUBLIC, PARAMETER ::   jpzoo = jp_lp +  9    !: zooplancton concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpdoc = jp_lp + 10    !: dissolved organic carbon concentration 
+   INTEGER, PUBLIC, PARAMETER ::   jpdia = jp_lp + 11    !: Diatoms Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpmes = jp_lp + 12    !: Mesozooplankton Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpbsi = jp_lp + 13    !: (big) Silicate Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpfer = jp_lp + 14    !: Iron Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpnum = jp_lp + 15    !: Big iron particles Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpsfe = jp_lp + 16    !: number of particulate organic phosphate concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpdfe = jp_lp + 17    !: Diatoms iron Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpdsi = jp_lp + 18    !: Diatoms Silicate Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpnfe = jp_lp + 19    !: Nano iron Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpnch = jp_lp + 20    !: Nano Chlorophyll Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpdch = jp_lp + 21    !: Diatoms Chlorophyll Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpno3 = jp_lp + 22    !: Nitrates Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpnh4 = jp_lp + 23    !: Ammonium Concentration
 
 #elif defined key_pisces
@@ -75,28 +75,28 @@
    !    WARNING: be carefull about the order when reading the restart
         !   !!gm  this warning should be obsolet with IOM
-   INTEGER, PUBLIC, PARAMETER ::   jpdic = jp_l +  1    !: dissolved inoganic carbon concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jptal = jp_l +  2    !: total alkalinity 
-   INTEGER, PUBLIC, PARAMETER ::   jpoxy = jp_l +  3    !: oxygen carbon concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jpcal = jp_l +  4    !: calcite  concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jppo4 = jp_l +  5    !: phosphate concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jppoc = jp_l +  6    !: small particulate organic phosphate concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpsil = jp_l +  7    !: silicate concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpphy = jp_l +  8    !: phytoplancton concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jpzoo = jp_l +  9    !: zooplancton concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpdoc = jp_l + 10    !: dissolved organic carbon concentration 
-   INTEGER, PUBLIC, PARAMETER ::   jpdia = jp_l + 11    !: Diatoms Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpmes = jp_l + 12    !: Mesozooplankton Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpbsi = jp_l + 13    !: (big) Silicate Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpfer = jp_l + 14    !: Iron Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpbfe = jp_l + 15    !: Big iron particles Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpgoc = jp_l + 16    !: big particulate organic phosphate concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpsfe = jp_l + 17    !: Small iron particles Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpdfe = jp_l + 18    !: Diatoms iron Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpdsi = jp_l + 19    !: Diatoms Silicate Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpnfe = jp_l + 20    !: Nano iron Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpnch = jp_l + 21    !: Nano Chlorophyll Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpdch = jp_l + 22    !: Diatoms Chlorophyll Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpno3 = jp_l + 23    !: Nitrates Concentration
-   INTEGER, PUBLIC, PARAMETER ::   jpnh4 = jp_l + 24    !: Ammonium Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpdic = jp_lp +  1    !: dissolved inoganic carbon concentration 
+   INTEGER, PUBLIC, PARAMETER ::   jptal = jp_lp +  2    !: total alkalinity 
+   INTEGER, PUBLIC, PARAMETER ::   jpoxy = jp_lp +  3    !: oxygen carbon concentration 
+   INTEGER, PUBLIC, PARAMETER ::   jpcal = jp_lp +  4    !: calcite  concentration 
+   INTEGER, PUBLIC, PARAMETER ::   jppo4 = jp_lp +  5    !: phosphate concentration 
+   INTEGER, PUBLIC, PARAMETER ::   jppoc = jp_lp +  6    !: small particulate organic phosphate concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpsil = jp_lp +  7    !: silicate concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpphy = jp_lp +  8    !: phytoplancton concentration 
+   INTEGER, PUBLIC, PARAMETER ::   jpzoo = jp_lp +  9    !: zooplancton concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpdoc = jp_lp + 10    !: dissolved organic carbon concentration 
+   INTEGER, PUBLIC, PARAMETER ::   jpdia = jp_lp + 11    !: Diatoms Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpmes = jp_lp + 12    !: Mesozooplankton Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpbsi = jp_lp + 13    !: (big) Silicate Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpfer = jp_lp + 14    !: Iron Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpbfe = jp_lp + 15    !: Big iron particles Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpgoc = jp_lp + 16    !: big particulate organic phosphate concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpsfe = jp_lp + 17    !: Small iron particles Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpdfe = jp_lp + 18    !: Diatoms iron Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpdsi = jp_lp + 19    !: Diatoms Silicate Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpnfe = jp_lp + 20    !: Nano iron Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpnch = jp_lp + 21    !: Nano Chlorophyll Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpdch = jp_lp + 22    !: Diatoms Chlorophyll Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpno3 = jp_lp + 23    !: Nitrates Concentration
+   INTEGER, PUBLIC, PARAMETER ::   jpnh4 = jp_lp + 24    !: Ammonium Concentration
 
 #else
@@ -113,12 +113,12 @@
 
    ! Starting/ending PISCES do-loop indices (N.B. no PISCES : jpl_pcs < jpf_pcs the do-loop are never done)
-   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0     = jp_l + 1                  !: First index of PISCES tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1     = jp_l + jp_pisces          !: Last  index of PISCES tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_2d  = jp_l_2d + 1               !: First index of 2D diag
-   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_2d  = jp_l_2d + jp_pisces_2d    !: Last  index of 2D diag
-   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_3d  = jp_l_3d + 1               !: First index of 3D diag
-   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_3d  = jp_l_3d + jp_pisces_3d    !: Last  index of 3d diag
-   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_trd = jp_l_trd + 1              !: First index of bio diag
-   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_trd = jp_l_trd + jp_pisces_trd  !: Last  index of bio diag
+   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0     = jp_lp + 1                  !: First index of PISCES tracers
+   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1     = jp_lp + jp_pisces          !: Last  index of PISCES tracers
+   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_2d  = jp_lp_2d + 1               !: First index of 2D diag
+   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_2d  = jp_lp_2d + jp_pisces_2d    !: Last  index of 2D diag
+   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_3d  = jp_lp_3d + 1               !: First index of 3D diag
+   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_3d  = jp_lp_3d + jp_pisces_3d    !: Last  index of 3d diag
+   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_trd = jp_lp_trd + 1              !: First index of bio diag
+   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_trd = jp_lp_trd + jp_pisces_trd  !: Last  index of bio diag
 
 
Index: branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trcsbc.F90
===================================================================
--- branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trcsbc.F90	(revision 2051)
+++ branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trcsbc.F90	(revision 2052)
@@ -66,4 +66,5 @@
       INTEGER  ::   ji, jj, jn           ! dummy loop indices
       REAL(wp) ::   ztra, zsrau, zse3t   ! temporary scalars
+      REAL(wp), DIMENSION(jpi,jpj) ::   zemps  ! surface freshwater flux
       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::   ztrtrd
       CHARACTER (len=22) :: charout
@@ -76,6 +77,18 @@
       ENDIF
 
+
       IF( l_trdtrc ) ALLOCATE( ztrtrd(jpi,jpj,jpk) )
 
+#if ! defined key_offline
+      ! Concentration dilution effect on tracer due to evaporation, precipitation, and river runoff
+      IF( lk_vvl ) THEN   ;   zemps(:,:) = emps(:,:) - emp(:,:)   ! volume variable
+      ELSE                ;   zemps(:,:) = emps(:,:) - rnf(:,:)   ! linear free surface 
+      ENDIF 
+#else
+      ! emps in dynamical files contains emps - rnf
+      IF( lk_vvl ) THEN   ;   zemps(:,:) = 0.         ! No concentration/dilution effect 
+      ELSE                ;   zemps(:,:) = emps(:,:)  ! emps -rnf 
+      ENDIF
+#endif
       ! 0. initialization
       zsrau = 1. / rau0
@@ -85,15 +98,14 @@
 
       DO jn = 1, jptra
-         ! 1. Concentration dillution effect on tra
+         !
          IF( l_trdtrc ) ztrtrd(:,:,:) = tra(:,:,:,jn)  ! save trends
 
          DO jj = 2, jpj
             DO ji = fs_2, fs_jpim1   ! vector opt.
-#if ! defined key_zco
+#if ! defined key_zco 
                zse3t = 1. / fse3t(ji,jj,1)
 #endif
-               IF( lk_vvl ) THEN   ;   ztra = 0.e0                         ! No concent./dilut. effect
-               ELSE                ;   ztra = emps(ji,jj) * zsrau * trn(ji,jj,1,jn) * zse3t * tmask(ji,jj,1) 
-               ENDIF
+               ! add the trend to the general tracer trend
+               ztra = zemps(ji,jj) *  zsrau * trn(ji,jj,1,jn) * zse3t
                tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + ztra
             END DO
@@ -107,6 +119,6 @@
       END DO                                                     ! tracer loop
       !                                                          ! ===========
+      IF( l_trdtrc ) DEALLOCATE( ztrtrd )
 
-      IF( l_trdtrc ) DEALLOCATE( ztrtrd )
       IF( ln_ctl )   THEN
          WRITE(charout, FMT="('sbc ')") ;  CALL prt_ctl_trc_info(charout)
Index: branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trctrp.F90
===================================================================
--- branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trctrp.F90	(revision 2051)
+++ branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trctrp.F90	(revision 2052)
@@ -62,28 +62,29 @@
       IF( .NOT. lk_trc_c1d ) THEN
          !
-                                 CALL trc_sbc( kstp )            ! surface boundary condition
-          IF( lk_trabbl )        CALL trc_bbl( kstp )            ! advective (and/or diffusive) bottom boundary layer scheme
-          IF( lk_trcdmp )        CALL trc_dmp( kstp )            ! internal damping trends
-                                 CALL trc_adv( kstp )            ! horizontal & vertical advection 
-                                 CALL trc_ldf( kstp )            ! lateral mixing
+                                CALL trc_sbc( kstp )            ! surface boundary condition
+         IF( lk_trabbl )        CALL trc_bbl( kstp )            ! advective (and/or diffusive) bottom boundary layer scheme
+         IF( lk_trcdmp )        CALL trc_dmp( kstp )            ! internal damping trends
+                                CALL trc_adv( kstp )            ! horizontal & vertical advection 
+                                CALL trc_ldf( kstp )            ! lateral mixing
 #if ! defined key_offline
-          IF( lk_zdfkpp )        CALL trc_kpp( kstp )            ! KPP non-local tracer fluxes
+         IF( lk_zdfkpp )        CALL trc_kpp( kstp )            ! KPP non-local tracer fluxes
 #endif
 #if defined key_agrif
-          IF(.NOT. Agrif_Root()) CALL Agrif_Sponge_trc           ! tracers sponge
+         IF(.NOT. Agrif_Root()) CALL Agrif_Sponge_trc           ! tracers sponge
 #endif
-                                 CALL trc_zdf( kstp )            ! vertical mixing and after tracer fields
-                                 CALL trc_nxt( kstp )            ! tracer fields at next time step     
-         IF( ln_trcrad )         CALL trc_rad( kstp )            ! Correct artificial negative concentrations
-         IF( ln_zps    )         CALL zps_hde_trc( kstp, jptra, trb, gtru, gtrv )  ! Partial steps: now horizontal gradient of passive
-                                                                          ! tracers at the bottom ocean level
-      ELSE
-                                 CALL trc_sbc( kstp )            ! surface boundary condition
+                                CALL trc_zdf( kstp )            ! vertical mixing and after tracer fields
+         IF( ln_zps    )        CALL zps_hde_trc( kstp, jptra, trn, gtru, gtrv )  ! Partial steps: now horizontal gradient of passive
+                                                                ! tracers at the bottom ocean level
+                                CALL trc_nxt( kstp )            ! tracer fields at next time step     
+         IF( ln_trcrad )        CALL trc_rad( kstp )            ! Correct artificial negative concentrations
+         !
+      ELSE                                               ! 1D vertical configuration
+                                CALL trc_sbc( kstp )            ! surface boundary condition
 #if ! defined key_offline
-          IF( lk_zdfkpp )        CALL trc_kpp( kstp )            ! KPP non-local tracer fluxes
+          IF( lk_zdfkpp )       CALL trc_kpp( kstp )            ! KPP non-local tracer fluxes
 #endif
-                                 CALL trc_zdf( kstp )            ! vertical mixing and after tracer fields
-                                 CALL trc_nxt( kstp )            ! tracer fields at next time step     
-          IF( ln_trcrad )        CALL trc_rad( kstp )            ! Correct artificial negative concentrations
+                                CALL trc_zdf( kstp )            ! vertical mixing and after tracer fields
+                                CALL trc_nxt( kstp )            ! tracer fields at next time step     
+          IF( ln_trcrad )       CALL trc_rad( kstp )            ! Correct artificial negative concentrations
          !
       END IF
Index: branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trczdf.F90
===================================================================
--- branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trczdf.F90	(revision 2051)
+++ branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trczdf.F90	(revision 2052)
@@ -63,4 +63,5 @@
       IF( kt == nittrc000 )   CALL zdf_ctl          ! initialisation & control of options
 
+#if ! defined key_pisces
       IF( neuler == 0 .AND. kt == nittrc000 ) THEN     ! at nit000
          r2dt(:) =  rdttra(:) * FLOAT(nn_dttrc)          ! = rdtra (restarting with Euler time stepping)
@@ -68,4 +69,7 @@
          r2dt(:) = 2. * rdttra(:) * FLOAT(nn_dttrc)      ! = 2 rdttra (leapfrog)
       ENDIF
+#else
+      r2dt(:) =  rdttra(:) * FLOAT(nn_dttrc)          ! = rdtra (restarting with Euler time stepping)
+#endif
 
       IF( l_trdtrc )  THEN
Index: branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trdmld_trc.F90
===================================================================
--- branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trdmld_trc.F90	(revision 2051)
+++ branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trdmld_trc.F90	(revision 2052)
@@ -382,5 +382,5 @@
             DO ji = 1,jpi
                ik = nmld_trc(ji,jj)
-               zavt = fstravs(ji,jj,ik)
+               zavt = fsavs(ji,jj,ik)
                DO jn = 1, jptra
                   IF( ln_trdtrc(jn) )    &
Index: branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trdmld_trc_rst.F90
===================================================================
--- branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trdmld_trc_rst.F90	(revision 2051)
+++ branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/TRP/trdmld_trc_rst.F90	(revision 2052)
@@ -9,5 +9,4 @@
 #if defined key_top && defined key_trdmld_trc
    !!----------------------------------------------------------------------
-   USE oce_trc
    USE in_out_manager  ! I/O manager
    USE iom             ! I/O module
Index: branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/oce_trc.F90
===================================================================
--- branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/oce_trc.F90	(revision 2051)
+++ branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/oce_trc.F90	(revision 2052)
@@ -131,7 +131,4 @@
    USE dom_oce , ONLY :   vmask      =>   vmask      !: land/ocean mask at v-points 
    USE dom_oce , ONLY :   fmask      =>   fmask      !: land/ocean mask at f-points 
-# if defined key_degrad
-   USE dom_oce , ONLY :   facvol     =>   facvol     !: volume factor for degradation
-# endif
 
    !* time domain *
@@ -182,4 +179,8 @@
    USE oce , ONLY :   gsv     =>    gsv     !:
    USE oce , ONLY :   grv     =>    grv     !: 
+# if defined key_degrad
+   USE dommsk , ONLY :   facvol     =>   facvol     !: volume factor for degradation
+# endif
+
 #endif
    USE lib_mpp , ONLY :   lk_mpp    =>  lk_mpp       !: Mpp flag
@@ -192,6 +193,7 @@
    USE sbc_oce , ONLY :   wndm       =>    wndm       !: 10m wind speed 
    USE sbc_oce , ONLY :   qsr        =>    qsr        !: penetrative solar radiation (w m-2)  
-   USE sbc_oce , ONLY :   emp        =>    emp        !: evaporation minus precipitation (kg m-2 s-2) 
-   USE sbc_oce , ONLY :   emps       =>    emps       !: evaporation minus precipitation (kg m-2 s-2)
+   USE sbc_oce , ONLY :   emp        =>    emp        !: freshwater budget: volume flux               [Kg/m2/s]
+   USE sbc_oce , ONLY :   emps       =>    emps       !: freshwater budget: concentration/dillution   [Kg/m2/s]
+   USE sbc_oce , ONLY :   rnf        =>    rnf        !: river runoff   [Kg/m2/s]
    USE sbc_oce , ONLY :   fr_i       =>    fr_i       !: ice fraction (between 0 to 1)
    USE traqsr  , ONLY :   rn_abs     =>    rn_abs     !: fraction absorbed in the very near surface
@@ -219,5 +221,5 @@
    USE zdf_oce , ONLY :   avt        =>   avt         !: vert. diffusivity coef. at w-point for temp  
 # if defined key_zdfddm
-   USE zdfddm  , ONLY :   avs        =>    avs        !: salinity vertical diffusivity coeff. at w-point
+   USE zdfddm  , ONLY :   avs        =>   avs        !: salinity vertical diffusivity coeff. at w-point
 # endif
 
Index: branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/par_trc.F90
===================================================================
--- branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/par_trc.F90	(revision 2051)
+++ branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/par_trc.F90	(revision 2052)
@@ -23,13 +23,12 @@
 
    IMPLICIT NONE
-   PUBLIC
 
    ! Passive tracers : Total size
    ! ---------------               ! total number of passive tracers, of 2d and 3d output and trend arrays
-   INTEGER, PUBLIC, PARAMETER ::   jptra    =  jp_lobster    + jp_pisces     + jp_cfc     + jp_my_trc
-   INTEGER, PUBLIC, PARAMETER ::   jpdia2d  =  jp_lobster_2d + jp_pisces_2d  + jp_cfc_2d  + jp_my_trc_2d
-   INTEGER, PUBLIC, PARAMETER ::   jpdia3d  =  jp_lobster_3d + jp_pisces_3d  + jp_cfc_3d  + jp_my_trc_3d
+   INTEGER, PUBLIC,  PARAMETER ::   jptra    =  jp_lobster    + jp_pisces     + jp_cfc     + jp_c14b    + jp_my_trc
+   INTEGER, PUBLIC,  PARAMETER ::   jpdia2d  =  jp_lobster_2d + jp_pisces_2d  + jp_cfc_2d  + jp_c14b_2d + jp_my_trc_2d
+   INTEGER, PUBLIC,  PARAMETER ::   jpdia3d  =  jp_lobster_3d + jp_pisces_3d  + jp_cfc_3d  + jp_c14b_3d + jp_my_trc_3d
    !                     ! total number of sms diagnostic arrays
-   INTEGER, PUBLIC, PARAMETER ::   jpdiabio = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_my_trc_trd
+   INTEGER, PUBLIC,  PARAMETER ::   jpdiabio = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_c14b_trd + jp_my_trc_trd
    
    !  1D configuration ("key_c1d")
Index: branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/top_substitute.h90
===================================================================
--- branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/top_substitute.h90	(revision 2051)
+++ branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/top_substitute.h90	(revision 2052)
@@ -12,66 +12,4 @@
    !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
    !!----------------------------------------------------------------------
-
-    ! Lateral eddy diffusivity coefficient for passive tracer:
-    ! ========================================================
-#if defined key_traldf_c3d || defined key_off_degrad
-!   'key_traldf_c3d' :                 aht: 3D coefficient
-#       define fsahtrt(i,j,k)  trcrat * ahtt(i,j,k)
-#       define fsahtru(i,j,k)  trcrat * ahtu(i,j,k)
-#       define fsahtrv(i,j,k)  trcrat * ahtv(i,j,k)
-#       define fsahtrw(i,j,k)  trcrat * ahtw(i,j,k)
-#elif defined key_traldf_c2d
-!   'key_traldf_c2d' :                 aht: 2D coefficient
-#       define fsahtrt(i,j,k)  trcrat * ahtt(i,j)
-#       define fsahtru(i,j,k)  trcrat * ahtu(i,j)
-#       define fsahtrv(i,j,k)  trcrat * ahtv(i,j)
-#       define fsahtrw(i,j,k)  trcrat * ahtw(i,j)
-#elif defined key_traldf_c1d
-!   'key_traldf_c1d' :                 aht: 1D coefficient
-#       define fsahtrt(i,j,k)  trcrat * ahtt(k)
-#       define fsahtru(i,j,k)  trcrat * ahtu(k)
-#       define fsahtrv(i,j,k)  trcrat * ahtv(k)
-#       define fsahtrw(i,j,k)  trcrat * ahtw(k)
-#else
-!   Default option :             aht: Constant coefficient
-#       define fsahtrt(i,j,k)  ahtrc0
-#       define fsahtru(i,j,k)  ahtrc0
-#       define fsahtrv(i,j,k)  ahtrc0
-#       define fsahtrw(i,j,k)  ahtrc0
-#endif
-
-    ! Eddy induced velocity  coefficient for passive tracer:
-    ! ========================================================
-#if defined key_traldf_c3d || defined key_off_degrad
-!   'key_traldf_c3d' :                 eiv: 3D coefficient
-#       define fsaeitru(i,j,k)  trcrat * aeiu(i,j,k)
-#       define fsaeitrv(i,j,k)  trcrat * aeiv(i,j,k)
-#       define fsaeitrw(i,j,k)  trcrat * aeiw(i,j,k)
-#elif defined key_traldf_c2d
-!   'key_traldf_c2d' :                 eiv: 2D coefficient
-#       define fsaeitru(i,j,k)  trcrat * aeiu(i,j)
-#       define fsaeitrv(i,j,k)  trcrat * aeiv(i,j)
-#       define fsaeitrw(i,j,k)  trcrat * aeiw(i,j)
-#elif defined key_traldf_c1d
-!   'key_traldf_c1d' :                 eiv: 1D coefficient
-#       define fsaeitru(i,j,k)  trcrat * aeiu(k)
-#       define fsaeitrv(i,j,k)  trcrat * aeiv(k)
-#       define fsaeitrw(i,j,k)  trcrat * aeiw(k)
-#else
-!   Default option :             eiv: Constant coefficient
-#       define fsaeitru(i,j,k)  aeiv0
-#       define fsaeitrv(i,j,k)  aeiv0
-#       define fsaeitrw(i,j,k)  aeiv0
-#endif
-    ! mixing for passive tracer:
-    ! ========================================================
-#if defined key_trc_zdfddm
-!   'key_trc_zdfddm' :    avs 
-#       define fstravs(i,j,k)   avs(i,j,k)
-#else
-!   Defautl option :   avs = avt
-#       define fstravs(i,j,k)   avt(i,j,k)
-#endif
-
 ! ========================================================
 #include "domzgr_substitute.h90"
Index: branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/trc.F90
===================================================================
--- branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/trc.F90	(revision 2051)
+++ branches/DEV_r2006_merge_TRA_TRC/NEMO/TOP_SRC/trc.F90	(revision 2052)
@@ -45,8 +45,4 @@
    REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk,jptra) ::   tra   !: traceur concentration for next time step
    REAL(wp), PUBLIC, DIMENSION (jpi,jpj,jpk,jptra) ::   trb   !: traceur concentration for before time step
-
-   !! isopycnal scheme for passive tracers
-   !! ------------------------------------  
-   REAL(wp), PUBLIC ::   ahtrb0     !: background diffusivity coefficient for passive tracer (m2/s)
 
 #if ! defined key_zco
