Index: /trunk/NEMO/TOP_SRC/PISCES/p4zflx.F90
===================================================================
--- /trunk/NEMO/TOP_SRC/PISCES/p4zflx.F90	(revision 1835)
+++ /trunk/NEMO/TOP_SRC/PISCES/p4zflx.F90	(revision 1836)
@@ -204,12 +204,19 @@
           CALL mpp_sum( t_oce_co2_flx )   ! sum over the global domain
         ENDIF
+        ! Conversion in GtC/yr ; negative for outgoing from ocean
+        t_oce_co2_flx = (-1.) * t_oce_co2_flx  * 12. / 1.e15
+        !
         WRITE(numout,*) ' Atmospheric pCO2    :'
         WRITE(numout,*) '-------------------- : ',kt,'  ',t_atm_co2_flx
         WRITE(numout,*) '(ppm)'
-        WRITE(numout,*) 'Total Flux of Carbon :'
-        WRITE(numout,*) '-------------------- : ',t_oce_co2_flx * 12. / 1e15
-        WRITE(numout,*) '(GtC/an)'
+        WRITE(numout,*) 'Total Flux of Carbon out of the ocean :'
+        WRITE(numout,*) '-------------------- : ',t_oce_co2_flx
+        WRITE(numout,*) '(GtC/yr)'
         t_atm_co2_flx = 0.
         t_oce_co2_flx = 0.
+# if defined key_iomput
+        CALL iom_put( "tatpco2" , t_atm_co2_flx  )
+        CALL iom_put( "tco2flx" , t_oce_co2_flx  )
+#endif
       ENDIF
 #endif
Index: /trunk/NEMO/TOP_SRC/PISCES/p4zlys.F90
===================================================================
--- /trunk/NEMO/TOP_SRC/PISCES/p4zlys.F90	(revision 1835)
+++ /trunk/NEMO/TOP_SRC/PISCES/p4zlys.F90	(revision 1836)
@@ -67,5 +67,5 @@
 #if defined key_trc_dia3d && defined key_iomput
       REAL(wp) ::   zrfact2
-      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zcaldiss, zw3d
+      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zcaldiss
 #endif
       CHARACTER (len=25) :: charout
@@ -94,4 +94,7 @@
                   ! SET DUMMY VARIABLE FOR TOTAL BORATE
                   zbot  = borat(ji,jj,jk)
+
+                  ! SET DUMMY VARIABLE FOR TOTAL BORATE
+                  zbot  = borat(ji,jj,jk)
                   zfact = rhop (ji,jj,jk) / 1000. + rtrn
 
@@ -171,12 +174,8 @@
 #  else
       zrfact2 = 1.e3 * rfact2r
-      zw3d(:,:,:) = hi  (:,:,:)                    * tmask(:,:,:)
-      CALL iom_put( "PH", zw3d )
-      zw3d(:,:,:) = zco3(:,:,:)                    * tmask(:,:,:)
-      CALL iom_put( "CO3", zw3d )
-      zw3d(:,:,:) = aksp(:,:,:) / calcon           * tmask(:,:,:)
-      CALL iom_put( "CO3sat", zw3d )
-      zw3d(:,:,:) = zcaldiss(:,:,:) * zrfact2 * tmask(:,:,:)
-      CALL iom_put( "Dcal", zw3d )
+      CALL iom_put( "PH"    , hi      (:,:,:)           * tmask(:,:,:) )
+      CALL iom_put( "CO3"   , zco3    (:,:,:)           * tmask(:,:,:) )
+      CALL iom_put( "CO3sat", aksp    (:,:,:) / calcon  * tmask(:,:,:) )
+      CALL iom_put( "DCAL"  , zcaldiss(:,:,:) * zrfact2 * tmask(:,:,:) )
 #  endif
 # endif
@@ -232,5 +231,4 @@
    END SUBROUTINE p4z_lys
 #endif 
-
    !!======================================================================
 END MODULE  p4zlys
Index: /trunk/NEMO/TOP_SRC/PISCES/p4zmeso.F90
===================================================================
--- /trunk/NEMO/TOP_SRC/PISCES/p4zmeso.F90	(revision 1835)
+++ /trunk/NEMO/TOP_SRC/PISCES/p4zmeso.F90	(revision 1836)
@@ -76,5 +76,4 @@
 #if defined key_trc_diaadd && defined key_trc_dia3d && defined key_iomput
       REAL(wp) :: zrfact2
-      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zw3d
 #endif
 
@@ -203,4 +202,10 @@
       END DO
       
+#if defined key_trc_dia3d
+      ! Total grazing ( grazing by microzoo is already computed in p4zmicro ) 
+      grazing(:,:,:) = grazing(:,:,:) + (  zgrazd  (:,:,:) + zgrazz  (:,:,:) + zgrazn(:,:,:) &
+                     &                   + zgrazpoc(:,:,:) + zgrazffe(:,:,:)  )
+#endif
+
 
       DO jk = 1,jpkm1
@@ -311,10 +316,12 @@
 #if defined key_trc_diaadd && defined key_trc_dia3d && defined key_iomput
       zrfact2 = 1.e3 * rfact2r
-      zw3d(:,:,:) = (     zgrazd(:,:,:) +   zgrazz(:,:,:) + zgrazn(:,:,:) &
-                    & + zgrazpoc(:,:,:) + zgrazffe(:,:,:)                 ) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "Graz2" , zw3d )
-
-      zw3d(:,:,:) = prodcal(:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "Pcal"  , zw3d )
+      ! Total grazing of phyto by zoo
+      grazing(:,:,:) = grazing(:,:,:) * zrfact2 * tmask(:,:,:)
+      ! Calcite production
+      prodcal(:,:,:) = prodcal(:,:,:) * zrfact2 * tmask(:,:,:)
+      IF( jnt == nrdttrc ) then 
+         CALL iom_put( "GRAZ" , grazing  )  ! Total grazing of phyto by zooplankton
+         CALL iom_put( "PCAL" , prodcal  )  ! Calcite production
+      ENDIF
 #endif
 
Index: /trunk/NEMO/TOP_SRC/PISCES/p4zmicro.F90
===================================================================
--- /trunk/NEMO/TOP_SRC/PISCES/p4zmicro.F90	(revision 1835)
+++ /trunk/NEMO/TOP_SRC/PISCES/p4zmicro.F90	(revision 1836)
@@ -70,8 +70,4 @@
       REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazmf, zgrazsf, zgrazpf
       CHARACTER (len=25) :: charout
-#if defined key_trc_diaadd && defined key_trc_dia3d && defined key_iomput
-      REAL(wp) :: zrfact2
-      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zw3d
-#endif
 
       !!---------------------------------------------------------------------
@@ -88,4 +84,7 @@
       zgrazpf(:,:,:) = 0.
 
+#if defined key_trc_dia3d
+      grazing(:,:,:) = 0.  !: Initialisation of  grazing
+#endif
 
       zstep = rfact2 / rday      ! Time step duration for biology
@@ -156,4 +155,8 @@
       END DO
       
+#if defined key_trc_dia3d
+      ! Grazing by microzooplankton
+      grazing(:,:,:) = grazing(:,:,:) + zgrazp(:,:,:) + zgrazm(:,:,:) + zgrazsd(:,:,:) 
+#endif
 
       DO jk = 1,jpkm1
@@ -231,15 +234,9 @@
       END DO
       !
-#if defined key_trc_diaadd && defined key_trc_dia3d && defined key_iomput
-      zrfact2 = 1.e3 * rfact2r
-      zw3d(:,:,:) = ( zgrazp(:,:,:) + zgrazm(:,:,:) + zgrazsd(:,:,:) ) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "Graz" , zw3d )
-#endif
-
-       IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
          WRITE(charout, FMT="('micro')")
          CALL prt_ctl_trc_info(charout)
          CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm)
-       ENDIF
+      ENDIF
 
    END SUBROUTINE p4z_micro
Index: /trunk/NEMO/TOP_SRC/PISCES/p4zopt.F90
===================================================================
--- /trunk/NEMO/TOP_SRC/PISCES/p4zopt.F90	(revision 1835)
+++ /trunk/NEMO/TOP_SRC/PISCES/p4zopt.F90	(revision 1836)
@@ -61,8 +61,4 @@
       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zekg, zekr, zekb
       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ze1 , ze2 , ze3, ze0
-#if defined key_trc_diaadd && defined key_iomput
-     REAL(wp), DIMENSION(jpi,jpj)      ::   zw2d
-     REAL(wp), DIMENSION(jpi,jpj,jpk)  ::   zw3d
-#endif
       !!---------------------------------------------------------------------
 
@@ -238,8 +234,8 @@
 # else
       ! write diagnostics 
-      zw2d(:,:  ) =  heup(:,:  ) * tmask(:,:,1)
-      zw3d(:,:,:) =  etot(:,:,:) * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "Heup", zw2d )               
-      IF( jnt == nrdttrc ) CALL iom_put( "PAR" , zw3d )
+      IF( jnt == nrdttrc ) then 
+         CALL iom_put( "Heup", heup(:,:  ) * tmask(:,:,1) )  ! euphotic layer deptht
+         CALL iom_put( "PAR" , etot(:,:,:) * tmask(:,:,:) )  ! Photosynthetically Available Radiation
+      ENDIF
 # endif
 #endif
Index: /trunk/NEMO/TOP_SRC/PISCES/p4zprod.F90
===================================================================
--- /trunk/NEMO/TOP_SRC/PISCES/p4zprod.F90	(revision 1835)
+++ /trunk/NEMO/TOP_SRC/PISCES/p4zprod.F90	(revision 1836)
@@ -81,7 +81,4 @@
 #if defined key_trc_diaadd && defined key_trc_dia3d
       REAL(wp) ::   zrfact2
-#if  defined key_iomput
-      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zw3d
-#endif
 #endif
       REAL(wp), DIMENSION(jpi,jpj)     ::   zmixnano   , zmixdiat, zstrn
@@ -352,12 +349,11 @@
         WRITE(numout,*) 'Total PP :'
         WRITE(numout,*) '-------------------- : ',tpp * 12. / 1.E12
-        WRITE(numout,*) '(GtC/an)'
+        WRITE(numout,*) '(GtC/yr)'
         tpp = 0.
       ENDIF
 
-#if defined key_trc_diaadd && defined key_trc_dia3d
+#if defined key_trc_diaadd && defined key_trc_dia3d && ! defined key_iomput
+      !   Supplementary diagnostics
       zrfact2 = 1.e3 * rfact2r
-      !   Supplementary diagnostics
-#  if ! defined key_iomput
       trc3d(:,:,:,jp_pcs0_3d + 4)  = zprorca (:,:,:) * zrfact2 * tmask(:,:,:)
       trc3d(:,:,:,jp_pcs0_3d + 5)  = zprorcad(:,:,:) * zrfact2 * tmask(:,:,:)
@@ -366,24 +362,20 @@
       trc3d(:,:,:,jp_pcs0_3d + 8)  = zprorcad(:,:,:) * zrfact2 * tmask(:,:,:) * zysopt(:,:,:)
       trc3d(:,:,:,jp_pcs0_3d + 9)  = zprofed (:,:,:) * zrfact2 * tmask(:,:,:)
-#if ! defined key_kriest
+#  if ! defined key_kriest
       trc3d(:,:,:,jp_pcs0_3d + 10) = zprofen (:,:,:) * zrfact2 * tmask(:,:,:)
+#  endif
 #endif
 
-# else
-      zw3d(:,:,:) = zprorca (:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "PPPHY" , zw3d )
-      zw3d(:,:,:) = zprorcad(:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "PPPHY2", zw3d )
-      zw3d(:,:,:) = zpronew (:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "PPNEWN" , zw3d )
-      zw3d(:,:,:) = zpronewd(:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "PPNEWD", zw3d )
-      zw3d(:,:,:) = zprorcad(:,:,:) * zrfact2 * tmask(:,:,:) * zysopt(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "PBSi"  , zw3d )
-      zw3d(:,:,:) = zprofed (:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "PFeD"  , zw3d )
-      zw3d(:,:,:) = zprofen (:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "PFeN"  , zw3d )
-# endif
+#if defined key_trc_diaadd && defined key_trc_dia3d && defined key_iomput
+      zrfact2 = 1.e3 * rfact2r
+      IF ( jnt == nrdttrc ) then
+         CALL iom_put( "PPPHY" , zprorca (:,:,:) * zrfact2 * tmask(:,:,:) )  ! primary production by nanophyto
+         CALL iom_put( "PPPHY2", zprorcad(:,:,:) * zrfact2 * tmask(:,:,:) )  ! primary production by diatom
+         CALL iom_put( "PPNEWN", zpronew (:,:,:) * zrfact2 * tmask(:,:,:) )  ! new primary production by nanophyto
+         CALL iom_put( "PPNEWD", zpronewd(:,:,:) * zrfact2 * tmask(:,:,:) )  ! new primary production by diatom
+         CALL iom_put( "PBSi"  , zprorcad(:,:,:) * zrfact2 * tmask(:,:,:) * zysopt(:,:,:) ) ! biogenic silica production
+         CALL iom_put( "PFeD"  , zprofed (:,:,:) * zrfact2 * tmask(:,:,:) )  ! biogenic iron production by diatom
+         CALL iom_put( "PFeN"  , zprofen (:,:,:) * zrfact2 * tmask(:,:,:) )  ! biogenic iron production by nanophyto
+      ENDIF
 #endif
 
Index: /trunk/NEMO/TOP_SRC/PISCES/p4zsed.F90
===================================================================
--- /trunk/NEMO/TOP_SRC/PISCES/p4zsed.F90	(revision 1835)
+++ /trunk/NEMO/TOP_SRC/PISCES/p4zsed.F90	(revision 1836)
@@ -96,5 +96,4 @@
       REAL(wp) :: zrfact2
 # if defined key_iomput
-     REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zw3d 
      REAL(wp), DIMENSION(jpi,jpj)    ::    zw2d 
 # endif
@@ -332,12 +331,11 @@
       trc2d(:,:,jp_pcs0_2d + 12) = znitrpot(:,:,1) * 1.e-7 * zrfact2 * fse3t(:,:,1) * tmask(:,:,1)
 # else
-      ! write diagnostics
-      zw2d(:,:)   =  ( zirondep(:,:,1) + ironsed(:,:,1) * rfact2 ) &
-      &            * zrfact2 * fse3t(:,:,1) * tmask(:,:,1)     
+      ! surface downward net flux of iron
+      zw2d(:,:)   =  ( zirondep(:,:,1) + ironsed(:,:,1) * rfact2 ) * zrfact2 * fse3t(:,:,1) * tmask(:,:,1) 
       IF( jnt == nrdttrc ) CALL iom_put( "Irondep", zw2d )
-      zw3d(:,:,:) = znitrpot(:,:,:) * 1.e-7 * zrfact2  * fse3t(:,:,:) * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "Nfix", zw3d  ) 
-# endif
-
+      ! nitrogen fixation at surface
+      zw2d(:,:)   =  znitrpot(:,:,1) * 1.e-7 * zrfact2  * fse3t(:,:,1) * tmask(:,:,1)
+      IF( jnt == nrdttrc ) CALL iom_put( "Nfix" , zw2d )
+# endif
 # endif
       !
Index: /trunk/NEMO/TOP_SRC/PISCES/p4zsink.F90
===================================================================
--- /trunk/NEMO/TOP_SRC/PISCES/p4zsink.F90	(revision 1835)
+++ /trunk/NEMO/TOP_SRC/PISCES/p4zsink.F90	(revision 1836)
@@ -99,8 +99,5 @@
 #if defined key_trc_diaadd
       REAL(wp) :: zrfact2
-      INTEGER  :: iksed1
-#if defined key_iomput
-      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zw3d
-#endif
+      INTEGER  :: ik1
 #endif
       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   znum3d
@@ -286,11 +283,11 @@
 #if defined key_trc_diaadd
       zrfact2 = 1.e3 * rfact2r
-      iksed1 = iksed + 1
+      ik1 = iksed + 1
 #  if ! defined key_iomput
-      trc2d(:,:  ,jp_pcs0_2d + 4)  = sinking (:,:,iksed1) * zrfact2 * tmask(:,:,1)
-      trc2d(:,:  ,jp_pcs0_2d + 5)  = sinking2(:,:,iksed1) * zrfact2 * tmask(:,:,1)
-      trc2d(:,:  ,jp_pcs0_2d + 6)  = sinkfer (:,:,iksed1) * zrfact2 * tmask(:,:,1)
-      trc2d(:,:  ,jp_pcs0_2d + 7)  = sinksil (:,:,iksed1) * zrfact2 * tmask(:,:,1)
-      trc2d(:,:  ,jp_pcs0_2d + 8)  = sinkcal (:,:,iksed1) * zrfact2 * tmask(:,:,1)
+      trc2d(:,:  ,jp_pcs0_2d + 4)  = sinking (:,:,ik1) * zrfact2 * tmask(:,:,1)
+      trc2d(:,:  ,jp_pcs0_2d + 5)  = sinking2(:,:,ik1) * zrfact2 * tmask(:,:,1)
+      trc2d(:,:  ,jp_pcs0_2d + 6)  = sinkfer (:,:,ik1) * zrfact2 * tmask(:,:,1)
+      trc2d(:,:  ,jp_pcs0_2d + 7)  = sinksil (:,:,ik1) * zrfact2 * tmask(:,:,1)
+      trc2d(:,:  ,jp_pcs0_2d + 8)  = sinkcal (:,:,ik1) * zrfact2 * tmask(:,:,1)
       trc3d(:,:,:,jp_pcs0_3d + 11) = sinking (:,:,:)      * zrfact2 * tmask(:,:,:)
       trc3d(:,:,:,jp_pcs0_3d + 12) = sinking2(:,:,:)      * zrfact2 * tmask(:,:,:)
@@ -301,28 +298,18 @@
       trc3d(:,:,:,jp_pcs0_3d + 17) = wsbio4  (:,:,:)                * tmask(:,:,:)
 #else
-      zw3d(:,:,:)  = sinking (:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "PMO" , zw3d )
-      zw3d(:,:,:)  = sinking2(:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "PMO2", zw3d )
-      zw3d(:,:,:)  = sinkfer (:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "ExpFe1", zw3d )
-      zw3d(:,:,:)  = sinksil (:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "ExpSi", zw3d )
-      zw3d(:,:,:)  = sinkcal (:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "ExpCaCO3", zw3d )
-      zw3d(:,:,:)  = sinking (:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "POCFlx", zw3d )
-      zw3d(:,:,:)  = sinking2(:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "GOCFlx", zw3d )
-      zw3d(:,:,:)  = sinksil (:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "SiFlx", zw3d )
-      zw3d(:,:,:)  = sinkcal (:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "CaCO3Flx", zw3d )
-      zw3d(:,:,:)  = znum3d  (:,:,:)           * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "xnum", zw3d )
-      zw3d(:,:,:)  = wsbio3  (:,:,:)           * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "W1", zw3d )
-      zw3d(:,:,:)  = wsbio4  (:,:,:)           * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "W2", zw3d )
+      IF( jnt == nrdttrc ) then
+        CALL iom_put( "POCFlx"  , sinking (:,:,:)      * zrfact2 * tmask(:,:,:) )  ! POC export
+        CALL iom_put( "NumFlx"  , sinking2 (:,:,:)     * zrfact2 * tmask(:,:,:) )  ! Num export
+        CALL iom_put( "SiFlx"   , sinksil (:,:,:)      * zrfact2 * tmask(:,:,:) )  ! Silica export
+        CALL iom_put( "CaCO3Flx", sinkcal (:,:,:)      * zrfact2 * tmask(:,:,:) )  ! Calcite export
+        CALL iom_put( "xnum"    , znum3d  (:,:,:)                * tmask(:,:,:) )  ! Number of particles in aggregats
+        CALL iom_put( "W1"      , wsbio3  (:,:,:)                * tmask(:,:,:) )  ! sinking speed of POC
+        CALL iom_put( "W2"      , wsbio4  (:,:,:)                * tmask(:,:,:) )  ! sinking speed of aggregats
+        CALL iom_put( "PMO"     , sinking (:,:,ik1) * zrfact2 * tmask(:,:,1) )  ! POC export at 100m
+        CALL iom_put( "PMO2"    , sinking2(:,:,ik1) * zrfact2 * tmask(:,:,1) )  ! Num export at 100m
+        CALL iom_put( "ExpFe1"  , sinkfer (:,:,ik1) * zrfact2 * tmask(:,:,1) )  ! Export of iron at 100m
+        CALL iom_put( "ExpSi"   , sinksil (:,:,ik1) * zrfact2 * tmask(:,:,1) )  ! export of silica at 100m
+        CALL iom_put( "ExpCaCO3", sinkcal (:,:,ik1) * zrfact2 * tmask(:,:,1) )  ! export of calcite at 100m
+     ENDIF
 #  endif
 
@@ -489,8 +476,5 @@
 #if defined key_trc_dia3d
       REAL(wp) ::   zrfact2
-      INTEGER  ::   iksed1
-#endif
-#if defined key_iomput
-      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zw3d
+      INTEGER  ::   ik1
 #endif
       CHARACTER (len=25) :: charout
@@ -613,26 +597,20 @@
 #if defined key_trc_diaadd
       zrfact2 = 1.e3 * rfact2r
-      iksed1 = iksed + 1
+      ik1  = iksed + 1
 #  if ! defined key_iomput
-      trc2d(:,:,jp_pcs0_2d + 4) = sinking (:,:,iksed1) * zrfact2 * tmask(:,:,1)
-      trc2d(:,:,jp_pcs0_2d + 5) = sinking2(:,:,iksed1) * zrfact2 * tmask(:,:,1)
-      trc2d(:,:,jp_pcs0_2d + 6) = sinkfer (:,:,iksed1) * zrfact2 * tmask(:,:,1)
-      trc2d(:,:,jp_pcs0_2d + 7) = sinkfer2(:,:,iksed1) * zrfact2 * tmask(:,:,1)
-      trc2d(:,:,jp_pcs0_2d + 8) = sinksil (:,:,iksed1) * zrfact2 * tmask(:,:,1)
-      trc2d(:,:,jp_pcs0_2d + 9) = sinkcal (:,:,iksed1) * zrfact2 * tmask(:,:,1)
+      trc2d(:,:,jp_pcs0_2d + 4) = sinking (:,:,ik1) * zrfact2 * tmask(:,:,1)
+      trc2d(:,:,jp_pcs0_2d + 5) = sinking2(:,:,ik1) * zrfact2 * tmask(:,:,1)
+      trc2d(:,:,jp_pcs0_2d + 6) = sinkfer (:,:,ik1) * zrfact2 * tmask(:,:,1)
+      trc2d(:,:,jp_pcs0_2d + 7) = sinkfer2(:,:,ik1) * zrfact2 * tmask(:,:,1)
+      trc2d(:,:,jp_pcs0_2d + 8) = sinksil (:,:,ik1) * zrfact2 * tmask(:,:,1)
+      trc2d(:,:,jp_pcs0_2d + 9) = sinkcal (:,:,ik1) * zrfact2 * tmask(:,:,1)
 #  else
-      zw3d(:,:,:)  = sinking (:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "ExpPOC" , zw3d )
-      zw3d(:,:,:)  = sinking2(:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "ExpGOC", zw3d )
-      zw3d(:,:,:)  = sinkfer (:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "ExpFe1", zw3d )
-      zw3d(:,:,:)  = sinkfer2(:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "ExpFe2", zw3d )
-      zw3d(:,:,:)  = sinksil (:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "ExpSi", zw3d )
-      zw3d(:,:,:)  = sinkcal (:,:,:) * zrfact2 * tmask(:,:,:)
-      IF( jnt == nrdttrc ) CALL iom_put( "Expcal", zw3d )
-#  endif
+      IF( jnt == nrdttrc )  then
+         CALL iom_put( "EPC100"  , ( sinking(:,:,ik1) + sinking2(:,:,ik1) ) * zrfact2 * tmask(:,:,1) ) ! Export of carbon at 100m
+         CALL iom_put( "EPFE100" , ( sinkfer(:,:,ik1) + sinkfer2(:,:,ik1) ) * zrfact2 * tmask(:,:,1) ) ! Export of iron at 100m
+         CALL iom_put( "EPCAL100",   sinkcal(:,:,ik1)                       * zrfact2 * tmask(:,:,1) ) ! Export of calcite  at 100m
+         CALL iom_put( "EPSI100" ,   sinksil(:,:,ik1)                       * zrfact2 * tmask(:,:,1) ) ! Export of biogenic silica at 100m
+      ENDIF
+#endif
 #endif
       !
Index: /trunk/NEMO/TOP_SRC/PISCES/sms_pisces.F90
===================================================================
--- /trunk/NEMO/TOP_SRC/PISCES/sms_pisces.F90	(revision 1835)
+++ /trunk/NEMO/TOP_SRC/PISCES/sms_pisces.F90	(revision 1836)
@@ -64,4 +64,5 @@
 #if defined key_trc_dia3d
    REAL(wp), DIMENSION(jpi,jpj,jpk) ::   prodcal    !: Calcite production
+   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   grazing    !: Total zooplankton grazing
 #endif
 
Index: /trunk/NEMO/TOP_SRC/PISCES/trcrst_pisces.F90
===================================================================
--- /trunk/NEMO/TOP_SRC/PISCES/trcrst_pisces.F90	(revision 1835)
+++ /trunk/NEMO/TOP_SRC/PISCES/trcrst_pisces.F90	(revision 1836)
@@ -263,7 +263,5 @@
 #if defined key_dtatrc
       ! Restore close seas values to initial data
-      nmonth = 1
-      nday   = 1
-      CALL trc_dta( nittrc000) 
+      CALL trc_dta( nittrc000 ) 
       DO jn = 1, jptra
          IF( lutini(jn) ) THEN
Index: /trunk/NEMO/TOP_SRC/par_trc.F90
===================================================================
--- /trunk/NEMO/TOP_SRC/par_trc.F90	(revision 1835)
+++ /trunk/NEMO/TOP_SRC/par_trc.F90	(revision 1836)
@@ -18,6 +18,6 @@
    USE par_lobster   ! LOBSTER model
    USE par_pisces    ! PISCES  model
+   USE par_c14b      ! C14 bomb tracer
    USE par_cfc       ! CFC 11 and 12 tracers
-   USE par_c14b      ! C14 bomb tracer 
    USE par_my_trc    ! user defined passive tracers
 
@@ -27,9 +27,9 @@
    ! 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_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
+   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
    !                     ! total number of sms diagnostic arrays
-   INTEGER, PUBLIC, PARAMETER ::   jpdiabio = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_c14b_trd + jp_my_trc_trd
+   INTEGER, PUBLIC, PARAMETER ::   jpdiabio = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_my_trc_trd
    
    !  1D configuration ("key_c1d")
@@ -40,18 +40,34 @@
    LOGICAL, PUBLIC, PARAMETER ::   lk_trc_c1d   = .FALSE.  !: 1D pass. tracer configuration flag
 # endif
-
    ! Passive tracers : size for TRP trends diagnotics (used if 'key_trc_diatrd' defined)
-#if defined key_trcldf_eiv
-# if defined key_trcdmp
-   INTEGER, PARAMETER :: jpdiatrc = 11      !: trends: 3*(advection + diffusion + eiv ) + damping + sms
-# else
-   INTEGER, PARAMETER :: jpdiatrc = 10      !: trends: 3*(advection + diffusion + eiv )           + sms
-# endif
-#else
-# if defined key_trcdmp
-   INTEGER, PARAMETER :: jpdiatrc =  8      !: trends: 3*(advection + diffusion       ) + damping + sms
-# else
-   INTEGER, PARAMETER :: jpdiatrc =  7      !: trends: 3*(advection + diffusion       ) + damping + sms
-# endif
+# if defined key_trc_diatrd
+   ! Passive tracers : size for TRP trends diagnotics (used if 'key_trc_diatrd' defined)
+   INTEGER, PARAMETER ::   jptrc_xad     =  1   !: x- horizontal advection
+   INTEGER, PARAMETER ::   jptrc_yad     =  2   !: y- horizontal advection
+   INTEGER, PARAMETER ::   jptrc_zad     =  3   !: z- vertical   advection
+   INTEGER, PARAMETER ::   jptrc_xdf     =  4   !: lateral       diffusion
+   INTEGER, PARAMETER ::   jptrc_ydf     =  5   !: lateral       diffusion
+   INTEGER, PARAMETER ::   jptrc_zdf     =  6   !: vertical diffusion (Kz)
+   INTEGER, PARAMETER ::   jptrc_sbc     =  7   !: surface boundary condition
+#if ! defined key_trcldf_eiv && ! defined key_trcdmp
+   INTEGER, PARAMETER ::   jpdiatrc      =  7  !: trends: 3*(advection + diffusion       ) + sbc
+#endif
+#if defined key_trcldf_eiv && defined key_trcdmp
+   INTEGER, PARAMETER ::   jptrc_xei     =  8   !: x- horiz. EIV advection
+   INTEGER, PARAMETER ::   jptrc_yei     =  9   !: y- horiz. EIV advection
+   INTEGER, PARAMETER ::   jptrc_zei     = 10   !: z- vert.  EIV advection
+   INTEGER, PARAMETER ::   jptrc_dmp     = 11   !: damping
+   INTEGER, PARAMETER ::   jpdiatrc      = 11   !: trends: 3*(advection + diffusion + eiv ) + sbc + damping
+#endif
+#if defined key_trcldf_eiv && ! defined key_trcdmp
+   INTEGER, PARAMETER ::   jptrc_xei     =  8   !: x- horiz. EIV advection
+   INTEGER, PARAMETER ::   jptrc_yei     =  9   !: y- horiz. EIV advection
+   INTEGER, PARAMETER ::   jptrc_zei     = 10   !: z- vert.  EIV advection
+   INTEGER, PARAMETER ::   jpdiatrc      = 10   !: trends: 3*(advection + diffusion + eiv ) + sbc 
+#endif
+#if ! defined key_trcldf_eiv && defined key_trcdmp
+   INTEGER, PARAMETER ::   jptrc_dmp     =  8   !: damping
+   INTEGER, PARAMETER ::   jpdiatrc      =  8   !: trends: 3*(advection + diffusion       ) + sbc + damping
+#endif
 #endif
 
Index: /trunk/NEMO/TOP_SRC/trcdia.F90
===================================================================
--- /trunk/NEMO/TOP_SRC/trcdia.F90	(revision 1835)
+++ /trunk/NEMO/TOP_SRC/trcdia.F90	(revision 1836)
@@ -25,4 +25,5 @@
    USE trc
    USE trp_trc
+   USE par_trc
    USE trdmld_trc_oce, ONLY : luttrd
    USE dianam    ! build name of file (routine)
@@ -41,5 +42,5 @@
    INTEGER  ::   ndimt50   !: number of ocean points in index array
    INTEGER  ::   ndimt51   !: number of ocean points in index array
-   REAL(wp) ::   xjulian   !: ????   not DOCTOR !
+   REAL(wp) ::   zjulian   !: ????   not DOCTOR !
    INTEGER , DIMENSION (jpij*jpk) ::   ndext50   !: integer arrays for ocean 3D index
    INTEGER , DIMENSION (jpij)     ::   ndext51   !: integer arrays for ocean surface index
@@ -157,10 +158,10 @@
 
          ! Compute julian date from starting date of the run
-         CALL ymds2ju( nyear, nmonth, nday, rdt, xjulian )
-         xjulian = xjulian - adatrj   !   set calendar origin to the beginning of the experiment
+         CALL ymds2ju( nyear, nmonth, nday, rdt, zjulian )
+         zjulian = zjulian - adatrj   !   set calendar origin to the beginning of the experiment
          IF(lwp)WRITE(numout,*)' '  
          IF(lwp)WRITE(numout,*)' Date 0 used :', nittrc000                         &
             &                 ,' YEAR ', nyear, ' MONTH ', nmonth, ' DAY ', nday   &
-            &                 ,'Julian day : ', xjulian  
+            &                 ,'Julian day : ', zjulian  
   
          IF(lwp) WRITE(numout,*) ' indexes of zoom = ', iimi, iima, ijmi, ijma,  &
@@ -171,5 +172,5 @@
          IF(lwp) THEN
             CALL dia_nam( clhstnam, nwritetrc,' ' )
-            CALL ctl_opn( inum, 'date.file', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea )
+            CALL ctlopn( inum, 'date.file', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', 1, numout, lwp, narea )
             WRITE(inum,*) clhstnam
             CLOSE(inum)
@@ -184,5 +185,5 @@
          CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,     &
             &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,         & 
-            &          nittrc000-ndttrc, xjulian, zdt, nhorit5, nit5 , domain_id=nidom)
+            &          nittrc000-ndttrc, zjulian, zdt, nhorit5, nit5 , domain_id=nidom)
 
          ! Vertical grid for tracer : gdept
@@ -258,5 +259,5 @@
       CHARACTER (len=80) ::   cltral
       CHARACTER (len=10) ::   csuff
-      INTEGER  ::   jn, jl
+      INTEGER  ::   jn, jl, ikn
       INTEGER  ::   iimi, iima, ijmi, ijma, ipk, it, itmod
       REAL(wp) ::   zsto, zout, zdt
@@ -313,5 +314,5 @@
                CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,       &
                   &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,   &
-                  &          nittrc000-ndttrc, xjulian, zdt, nhorit6(jn),  &
+                  &          nittrc000-ndttrc, zjulian, zdt, nhorit6(jn),  &
                   &          nit6(jn) , domain_id=nidom )
 
@@ -322,80 +323,68 @@
 
           ! Declare all the output fields as NETCDF variables
-
-          ! trends for tracer concentrations
           DO jn = 1, jptra
             IF( luttrd(jn) ) THEN
                 DO jl = 1, jpdiatrc
-                  IF( jl == 1 ) THEN
+                  IF( jl == jptrc_xad ) THEN
                       ! short and long title for x advection for tracer
                       WRITE (cltra,'("XAD_",16a)') ctrcnm(jn)
-                      WRITE (cltral,'("X advective trend for ",58a)')  &
-                         &      ctrcnl(jn)(1:58)
-                  END IF
-                  IF( jl == 2 ) THEN
+                      WRITE (cltral,'("X advective trend for ",58a)') ctrcnl(jn)(1:58)
+                  END IF
+                  IF( jl == jptrc_yad ) THEN
                       ! short and long title for y advection for tracer
                       WRITE (cltra,'("YAD_",16a)') ctrcnm(jn)
-                      WRITE (cltral,'("Y advective trend for ",58a)')  &
-                         &      ctrcnl(jn)(1:58)
-                  END IF
-                  IF( jl == 3 ) THEN
+                      WRITE (cltral,'("Y advective trend for ",58a)') ctrcnl(jn)(1:58)
+                  END IF
+                  IF( jl == jptrc_zad ) THEN
                       ! short and long title for Z advection for tracer
                       WRITE (cltra,'("ZAD_",16a)') ctrcnm(jn)
-                      WRITE (cltral,'("Z advective trend for ",58a)')  &
-                         &      ctrcnl(jn)(1:58)
-                  END IF
-                  IF( jl == 4 ) THEN
+                      WRITE (cltral,'("Z advective trend for ",58a)') ctrcnl(jn)(1:58)
+                  END IF
+                  IF( jl == jptrc_xdf ) THEN
                       ! short and long title for X diffusion for tracer
                       WRITE (cltra,'("XDF_",16a)') ctrcnm(jn)
-                      WRITE (cltral,'("X diffusion trend for ",58a)')  &
-                         &      ctrcnl(jn)(1:58)
-                  END IF
-                  IF( jl == 5 ) THEN
+                      WRITE (cltral,'("X diffusion trend for ",58a)') ctrcnl(jn)(1:58)
+                  END IF
+                  IF( jl == jptrc_ydf ) THEN
                       ! short and long title for Y diffusion for tracer
                       WRITE (cltra,'("YDF_",16a)') ctrcnm(jn)
-                      WRITE (cltral,'("Y diffusion trend for ",58a)')  &
-                         &      ctrcnl(jn)(1:58)
-                  END IF
-                  IF( jl == 6 ) THEN
+                      WRITE (cltral,'("Y diffusion trend for ",58a)') ctrcnl(jn)(1:58)
+                  END IF
+                  IF( jl == jptrc_zdf ) THEN
                       ! short and long title for Z diffusion for tracer
                       WRITE (cltra,'("ZDF_",16a)') ctrcnm(jn)
-                      WRITE (cltral,'("Z diffusion trend for ",58a)')  &
-                         &      ctrcnl(jn)(1:58)
+                      WRITE (cltral,'("Z diffusion trend for ",58a)') ctrcnl(jn)(1:58)
                   END IF
 # if defined key_trcldf_eiv
-                  IF( jl == 7 ) THEN
+                  IF( jl == jptrc_xei ) THEN
                       ! short and long title for x gent velocity for tracer
                       WRITE (cltra,'("XGV_",16a)') ctrcnm(jn)
-                      WRITE (cltral,'("X gent velocity trend for ",53a)')  &
-                         &      ctrcnl(jn)(1:53)
-                  END IF
-                  IF( jl == 8 ) THEN
+                      WRITE (cltral,'("X gent velocity trend for ",53a)') ctrcnl(jn)(1:53)
+                  END IF
+                  IF( jl == jptrc_yei ) THEN
                       ! short and long title for y gent velocity for tracer
                       WRITE (cltra,'("YGV_",16a)') ctrcnm(jn)
-                      WRITE (cltral,'("Y gent velocity trend for ",53a)')  &
-                         &      ctrcnl(jn)(1:53)
-                  END IF
-                  IF( jl == 9 ) THEN
+                      WRITE (cltral,'("Y gent velocity trend for ",53a)') ctrcnl(jn)(1:53)
+                  END IF
+                  IF( jl == jptrc_zei ) THEN
                       ! short and long title for Z gent velocity for tracer
                       WRITE (cltra,'("ZGV_",16a)') ctrcnm(jn)
-                      WRITE (cltral,'("Z gent velocity trend for ",53a)')  &
-                         &      ctrcnl(jn)(1:53)
+                      WRITE (cltral,'("Z gent velocity trend for ",53a)') ctrcnl(jn)(1:53)
                   END IF
 # endif
 # if defined key_trcdmp
-                  IF( jl == jpdiatrc - 1 ) THEN
+                  IF( jl == jptrc_dmp ) THEN
                       ! last trends for tracer damping : short and long title
                       WRITE (cltra,'("TDM_",16a)') ctrcnm(jn)
-                      WRITE (cltral,'("Tracer damping trend for ",55a)')  &
-                         &      ctrcnl(jn)(1:55)
-                  END IF
-# endif
-                  IF( jl == jpdiatrc ) THEN
+                      WRITE (cltral,'("Tracer damping trend for ",55a)') ctrcnl(jn)(1:55)
+                  END IF
+# endif
+                  IF( jl == jptrc_sbc ) THEN
                       ! last trends for tracer damping : short and long title
                       WRITE (cltra,'("SBC_",16a)') ctrcnm(jn)
-                      WRITE (cltral,'("Surface boundary flux ",58a)')  &
-                      &      ctrcnl(jn)(1:58)
-                  END IF
-
+                      WRITE (cltral,'("Surface boundary flux ",58a)') ctrcnl(jn)(1:55)
+                  END IF
+                      WRITE (cltral,'("Surface boundary flux ",58a)') ctrcnl(jn)(1:55)
+                  END IF
                   CALL FLUSH( numout )
                   cltrau = ctrcun(jn)      ! UNIT for tracer /trends
@@ -406,5 +395,4 @@
             END IF
          END DO
-
          ! CLOSE netcdf Files
           DO jn = 1, jptra
@@ -432,23 +420,24 @@
       DO jn = 1, jptra
          IF( luttrd(jn) ) THEN
+            ikn = ikeep(jn) 
             DO jl = 1, jpdiatrc
-               ! short titles 
-               IF( jl == 1)   WRITE (cltra,'("XAD_",16a)') ctrcnm(jn)      ! x advection for tracer
-               IF( jl == 2)   WRITE (cltra,'("YAD_",16a)') ctrcnm(jn)      ! z advection for tracer
-               IF( jl == 3)   WRITE (cltra,'("ZAD_",16a)') ctrcnm(jn)      ! z advection for tracer
-               IF( jl == 4)   WRITE (cltra,'("XDF_",16a)') ctrcnm(jn)      ! x diffusion for tracer
-               IF( jl == 5)   WRITE (cltra,'("YDF_",16a)') ctrcnm(jn)      ! y diffusion for tracer
-               IF( jl == 6)   WRITE (cltra,'("ZDF_",16a)') ctrcnm(jn)      ! z diffusion for tracer
+               ! short titles
+               IF( jl == jptrc_xad)   WRITE (cltra,'("XAD_",16a)') ctrcnm(jn)
+               IF( jl == jptrc_yad)   WRITE (cltra,'("YAD_",16a)') ctrcnm(jn)
+               IF( jl == jptrc_zad)   WRITE (cltra,'("ZAD_",16a)') ctrcnm(jn)
+               IF( jl == jptrc_xdf)   WRITE (cltra,'("XDF_",16a)') ctrcnm(jn)
+               IF( jl == jptrc_ydf)   WRITE (cltra,'("YDF_",16a)') ctrcnm(jn)
+               IF( jl == jptrc_zdf)   WRITE (cltra,'("ZDF_",16a)') ctrcnm(jn)
 # if defined key_trcldf_eiv
-               IF( jl == 7)   WRITE (cltra,'("XGV_",16a)') ctrcnm(jn)      ! x gent velocity for tracer
-               IF( jl == 8)   WRITE (cltra,'("YGV_",16a)') ctrcnm(jn)      ! y gent velocity for tracer
-               IF( jl == 9)   WRITE (cltra,'("ZGV_",16a)') ctrcnm(jn)      ! z gent velocity for tracer
+               IF( jl == jptrc_xei)   WRITE (cltra,'("XGV_",16a)') ctrcnm(jn)
+               IF( jl == jptrc_yei)   WRITE (cltra,'("YGV_",16a)') ctrcnm(jn)
+               IF( jl == jptrc_zei)   WRITE (cltra,'("ZGV_",16a)') ctrcnm(jn)
 # endif
 # if defined key_trcdmp
-               IF( jl == jpdiatrc - 1 )   WRITE (cltra,'("TDM_",16a)') ctrcnm(jn)      ! damping
-# endif
-               IF( jl == jpdiatrc )   WRITE (cltra,'("SBC_",a)') ctrcnm(jn)      ! surface boundary conditions
+               IF( jl == jptrc_dmp )  WRITE (cltra,'("TDM_",16a)') ctrcnm(jn)
+# endif
+               IF( jl == jptrc_sbc )  WRITE (cltra,'("SBC_",16a)') ctrcnm(jn)
                !
-               CALL histwrite(nit6(jn), cltra, it, trtrd(:,:,:,ikeep(jn),jl),ndimt50, ndext50)
+               CALL histwrite(nit6(jn), cltra, it, trtrd(:,:,:,ikn,jl),ndimt50, ndext50)
             END DO
          END IF
@@ -552,5 +541,5 @@
          CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,             &
             &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,         &
-            &          nittrc000-ndttrc, xjulian, zdt, nhoritd, nitd , domain_id=nidom )
+            &          nittrc000-ndttrc, zjulian, zdt, nhoritd, nitd , domain_id=nidom )
 
          ! Vertical grid for 2d and 3d arrays
@@ -700,5 +689,5 @@
          CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,      &
             &    iimi, iima-iimi+1, ijmi, ijma-ijmi+1,          &
-            &    nittrc000-ndttrc, xjulian, zdt, nhoritb, nitb , domain_id=nidom )
+            &    nittrc000-ndttrc, zjulian, zdt, nhoritb, nitb , domain_id=nidom )
          ! Vertical grid for biological trends
          CALL histvert(nitb, 'deptht', 'Vertical T levels', 'm', ipk, gdept_0, ndepitb)
Index: /trunk/NEMO/TOP_SRC/trcini.F90
===================================================================
--- /trunk/NEMO/TOP_SRC/trcini.F90	(revision 1835)
+++ /trunk/NEMO/TOP_SRC/trcini.F90	(revision 1836)
@@ -122,8 +122,7 @@
          trb(:,:,:,:) = trn(:,:,:,:)
       ELSE
+         !
          CALL trc_rst_read      ! restart from a file
-#if defined key_off_tra
-         CALL day_init          ! calendar
-#endif
+         !
       ENDIF
 
Index: /trunk/NEMO/TOP_SRC/trcrst.F90
===================================================================
--- /trunk/NEMO/TOP_SRC/trcrst.F90	(revision 1835)
+++ /trunk/NEMO/TOP_SRC/trcrst.F90	(revision 1836)
@@ -33,5 +33,7 @@
    USE trcrst_c14b     ! C14 bomb restart
    USE trcrst_my_trc   ! MY_TRC   restart
-
+#if defined key_off_tra
+    USE daymod
+#endif
    IMPLICIT NONE
    PRIVATE
@@ -277,4 +279,7 @@
            WRITE(numout,*)
          ENDIF
+         !
+         CALL day_init          ! compute calendar
+         !
 #endif
 
Index: /trunk/NEMO/TOP_SRC/trcwri.F90
===================================================================
--- /trunk/NEMO/TOP_SRC/trcwri.F90	(revision 1835)
+++ /trunk/NEMO/TOP_SRC/trcwri.F90	(revision 1836)
@@ -1,9 +1,9 @@
 MODULE trcwri
-   !!======================================================================
+   !!===================================================================================
    !!                       *** MODULE trcwri ***
-   !!    TOP :   Output of passive tracers 
-   !!======================================================================
-   !!             1.0  !  
-   !!                  !  2009-05 (C. Ethe )
+   !!    TOP :   Output of passive tracers
+   !!====================================================================================
+   !! History :   1.0  !  2009-05 (C. Ethe)  Original code
+   !!                  !  2010-03 (C. Ethe, R. Seferian ) Add the tracer transport trends
    !!----------------------------------------------------------------------
 #if defined key_top &&  defined key_iomput
@@ -11,7 +11,12 @@
    !!   'key_top' && 'key_iomput'                              TOP models
    !!----------------------------------------------------------------------
-   !! trc_wri     :  outputs of concentration fields
+   !! trc_wri_trc   :  outputs of concentration fields
+   !! trc_wri_trd   :  outputs of transport trends
    !!----------------------------------------------------------------------
+   USE dom_oce         ! ocean space and time domain variables
+   USE oce_trc
+   USE trp_trc
    USE trc
+   USE trdmld_trc_oce, ONLY : luttrd
    USE iom
 #if defined key_off_tra
@@ -35,7 +40,24 @@
 CONTAINS
 
-   SUBROUTINE trc_wri( kt )  
+   SUBROUTINE trc_wri( kt )
       !!---------------------------------------------------------------------
       !!                     ***  ROUTINE trc_wri  ***
+      !! 
+      !! ** Purpose :   output passive tracers fields and dynamical trends
+      !!---------------------------------------------------------------------
+      INTEGER, INTENT( in ) :: kt
+      !!---------------------------------------------------------------------
+
+      !
+      CALL iom_setkt  ( kt + ndttrc - 1 )       ! set the passive tracer time step
+      CALL trc_wri_trc( kt              )       ! outputs for tracer concentration
+      CALL trc_wri_trd( kt              )       ! outputs for dynamical trends
+      CALL iom_setkt  ( kt              )       ! set the model time step
+      !
+   END SUBROUTINE trc_wri
+
+   SUBROUTINE trc_wri_trc( kt )  
+      !!---------------------------------------------------------------------
+      !!                     ***  ROUTINE trc_wri_trc  ***
       !!
       !! ** Purpose :   output passive tracers fields 
@@ -43,17 +65,11 @@
       INTEGER, INTENT( in ) :: kt       ! ocean time-step
       INTEGER               :: jn
-      CHARACTER (len=20)    :: cltra
+      CHARACTER (len=20)    :: cltra, cltras
 #if defined key_off_tra
       CHARACTER (len=40) :: clhstnam
       INTEGER ::   inum = 11            ! temporary logical unit
 #endif
-
       !!---------------------------------------------------------------------
  
-      ! Initialisation
-      ! --------------
-
-      CALL iom_setkt( kt + ndttrc - 1 ) ! set the passive tracer time step
-
 #if defined key_off_tra
       IF( kt == nittrc000 ) THEN
@@ -67,6 +83,4 @@
       ENDIF
 #endif
-
-
       ! write the tracer concentrations in the file
       ! ---------------------------------------
@@ -76,9 +90,53 @@
       END DO
       !
-      CALL iom_setkt( kt )       ! set the model time step
+   END SUBROUTINE trc_wri_trc
 
+# if defined key_trc_diatrd
+
+   SUBROUTINE trc_wri_trd( kt )
+      !!----------------------------------------------------------------------
+      !!                     ***  ROUTINE trc_wri_trd  ***
+      !!
+      !! ** Purpose :   output of passive tracer : advection-diffusion trends
+      !!
+      !!----------------------------------------------------------------------
+      INTEGER, INTENT( in ) ::   kt          ! ocean time-step
+      !!
+      CHARACTER (len=3) ::   cltra
+      INTEGER  ::   jn, jl, ikn
+      !!----------------------------------------------------------------------
+
+      DO jn = 1, jptra
+         IF( luttrd(jn) ) THEN
+            ikn = ikeep(jn)
+            DO jl = 1, jpdiatrc
+               IF( jl == jptrc_xad ) WRITE (cltra,"(3a)") 'XAD' ! x advection for tracer
+               IF( jl == jptrc_yad ) WRITE (cltra,"(3a)") 'YAD'  ! y advection for tracer
+               IF( jl == jptrc_zad ) WRITE (cltra,"(3a)") 'ZAD'  ! z advection for tracer
+               IF( jl == jptrc_xdf ) WRITE (cltra,"(3a)") 'XDF'  ! x diffusion for tracer
+               IF( jl == jptrc_ydf ) WRITE (cltra,"(3a)") 'YDF'  ! y diffusion for tracer
+               IF( jl == jptrc_zdf ) WRITE (cltra,"(3a)") 'ZDF'  ! z diffusion for tracer
+# if defined key_trcldf_eiv
+               IF( jl == jptrc_xei ) WRITE (cltra,"(3a)") 'XGV'  ! x gent velocity for tracer
+               IF( jl == jptrc_yei ) WRITE (cltra,"(3a)") 'YGV'  ! y gent velocity for tracer
+               IF( jl == jptrc_zei ) WRITE (cltra,"(3a)") 'ZGV'  ! z gent velocity for tracer
+# endif
+# if defined key_trcdmp
+               IF( jl == jptrc_dmp ) WRITE (cltra,"(3a)") 'DMP'  ! damping
+# endif
+               IF( jl == jptrc_sbc ) WRITE (cltra,"(3a)") 'SBC'  ! surface boundary conditions
+               ! write the trends
+               CALL iom_put( cltra, trtrd(:,:,:,ikn,jl) )
+            END DO
+         END IF
+      END DO
       !
-   END SUBROUTINE trc_wri
+   END SUBROUTINE trc_wri_trd
 
+# else
+   SUBROUTINE trc_wri_trd( kt )                      ! Dummy routine
+      INTEGER, INTENT ( in ) ::   kt
+   END SUBROUTINE trc_wri_trd
+#endif
 #else
    !!----------------------------------------------------------------------
@@ -90,5 +148,4 @@
    INTEGER, INTENT(in) :: kt
    END SUBROUTINE trc_wri
-
 #endif
 
