Index: trunk/NEMO/TOP_SRC/oce_trc.F90
===================================================================
--- trunk/NEMO/TOP_SRC/oce_trc.F90	(revision 910)
+++ trunk/NEMO/TOP_SRC/oce_trc.F90	(revision 945)
@@ -2,285 +2,234 @@
    !!======================================================================
    !!                      ***  MODULE  oce_trc  ***
-   !! Ocean passive tracer  :  share ocean-passive tracers variables
+   !! TOP :   variables shared between ocean and passive tracers
    !!======================================================================
-   !! History :
-   !!   9.0  !  04-03  (C. Ethe)  F90: Free form and module
-   !!----------------------------------------------------------------------
-   !!  TOP 1.0,  LOCEAN-IPSL (2005)
-   !! $Header: /home/opalod/NEMOCVSROOT/NEMO/TOP_SRC/oce_trc.F90,v 1.17 2007/05/28 02:55:05 opalod Exp $
-   !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt
-   !!----------------------------------------------------------------------
-   !! * Modules used
-   !! Domain characteristics
-   USE par_oce , ONLY :       &
-      cp_cfg   =>   cp_cfg,  & !: name of the configuration
-      jp_cfg   =>   jp_cfg,  & !: resolution of the configuration
-      jpiglo   =>   jpiglo,  & !: first  dimension of global domain --> i
-      jpjglo   =>   jpjglo,  & !: second dimension of global domain --> j
-      jpi      =>   jpi   ,  & !: first  dimension of grid --> i 
-      jpj      =>   jpj   ,  & !: second dimension of grid --> j  
-      jpk      =>   jpk   ,  & !: number of levels  
-      jpim1    =>   jpim1 ,  & !: jpi - 1
-      jpjm1    =>   jpjm1 ,  & !: jpj - 1 
-      jpkm1    =>   jpkm1 ,  & !: jpk - 1  
-      jpij     =>   jpij  ,  & !: jpi x jpj
-      jpidta   =>   jpidta,  & !: first horizontal dimension  > or = jpi
-      jpjdta   =>   jpjdta,  & !: second horizontal dimension > or = jpj
-      jpkdta   =>   jpkdta,  & !: number of levels            > or = jpk
-      lk_esopa =>   lk_esopa   !: flag to activate the all option
-
-
-   !! run controm   
-
-   USE in_out_manager
-      
-   USE dom_oce , ONLY :           &            
-      lzoom      => lzoom     ,  & !: zoom flag
-      lzoom_e    => lzoom_e   ,  & !: East  zoom type flag
-      lzoom_w    => lzoom_w   ,  & !: West  zoom type flag
-      lzoom_s    => lzoom_s   ,  & !: South zoom type flag
-      lzoom_n    => lzoom_n   ,  & !: North zoom type flag
-      lzoom_arct => lzoom_arct,  & !: ORCA    arctic zoom flag
-      lzoom_anta => lzoom_anta     !: ORCA antarctic zoom flag
-
-
-
-   USE dom_oce , ONLY :       & 
-      nperio   =>   nperio,  & !: type of lateral boundary condition       
-      nimpp    =>   nimpp ,  & !: i index for mpp-subdomain left bottom
-      njmpp    =>   njmpp ,  & !: j index for mpp-subdomain left bottom
-      nproc    =>   nproc ,  & !: number for local processor
-      narea    =>   narea ,  & !: number for local area
-      mig      =>   mig   ,  & !: local  ==> global  domain i-indice
-      mjg      =>   mjg   ,  & !: local  ==> global  domain i-indice
-      mi0      =>   mi0   ,  & !: global ==> local domain i-indice 
-      mi1      =>   mi1   ,  & !: (mi0=1 and mi1=0 if the global indice is not in the local domain)
-      mj0      =>   mj0   ,  & !: global ==> local domain j-indice 
-      mj1      =>   mj1   ,  & !: (mj0=1 and mj1=0 if the global indice is not in the local domain)
-      nidom    =>   nidom
+   !! History :   1.0  !  2004-03  (C. Ethe)  original code
+   !!             2.0  !  2007-12 (C. Ethe, G. Madec)  rewritting
+   !!----------------------------------------------------------------------
+   !! NEMO/TOP 2.0,  LOCEAN-IPSL (2007)
+   !! $Header: $
+   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
+   !!----------------------------------------------------------------------
+#if defined key_top
+   !!----------------------------------------------------------------------
+   !!   'key_top'                                                TOP models
+   !!----------------------------------------------------------------------
+
+   !* Domain size *
+   USE par_oce , ONLY :   cp_cfg   =>   cp_cfg     !: name of the configuration
+   USE par_oce , ONLY :   jp_cfg   =>   jp_cfg     !: resolution of the configuration
+   USE par_oce , ONLY :   jpiglo   =>   jpiglo     !: first  dimension of global domain --> i
+   USE par_oce , ONLY :   jpjglo   =>   jpjglo     !: second dimension of global domain --> j
+   USE par_oce , ONLY :   jpi      =>   jpi        !: first  dimension of grid --> i 
+   USE par_oce , ONLY :   jpj      =>   jpj        !: second dimension of grid --> j  
+   USE par_oce , ONLY :   jpk      =>   jpk        !: number of levels  
+   USE par_oce , ONLY :   jpim1    =>   jpim1      !: jpi - 1
+   USE par_oce , ONLY :   jpjm1    =>   jpjm1      !: jpj - 1 
+   USE par_oce , ONLY :   jpkm1    =>   jpkm1      !: jpk - 1  
+   USE par_oce , ONLY :   jpij     =>   jpij       !: jpi x jpj
+   USE par_oce , ONLY :   jpidta   =>   jpidta     !: first horizontal dimension  > or = jpi
+   USE par_oce , ONLY :   jpjdta   =>   jpjdta     !: second horizontal dimension > or = jpj
+   USE par_oce , ONLY :   jpkdta   =>   jpkdta     !: number of levels            > or = jpk
+   USE par_oce , ONLY :   lk_esopa =>   lk_esopa   !: flag to activate the all option
+
+   !* IO manager *
+   USE in_out_manager      ! use all the variables
+   !* physical constants *
+   USE phycst              ! use all the variables
+
+   !* model domain *
+   USE dom_oce , ONLY :   lzoom      => lzoom        !: zoom flag
+   USE dom_oce , ONLY :   lzoom_e    => lzoom_e      !: East  zoom type flag
+   USE dom_oce , ONLY :   lzoom_w    => lzoom_w      !: West  zoom type flag
+   USE dom_oce , ONLY :   lzoom_s    => lzoom_s      !: South zoom type flag
+   USE dom_oce , ONLY :   lzoom_n    => lzoom_n      !: North zoom type flag
+   USE dom_oce , ONLY :   lzoom_arct => lzoom_arct   !: ORCA    arctic zoom flag
+   USE dom_oce , ONLY :   lzoom_anta => lzoom_anta   !: ORCA antarctic zoom flag
+   USE dom_oce , ONLY :   nperio     =>   nperio     !: type of lateral boundary condition       
+   USE dom_oce , ONLY :   nimpp      =>   nimpp      !: i index for mpp-subdomain left bottom
+   USE dom_oce , ONLY :   njmpp      =>   njmpp      !: j index for mpp-subdomain left bottom
+   USE dom_oce , ONLY :   nproc      =>   nproc      !: number for local processor
+   USE dom_oce , ONLY :   narea      =>   narea      !: number for local area
+   USE dom_oce , ONLY :   mig        =>   mig        !: local  ==> global  domain i-indice
+   USE dom_oce , ONLY :   mjg        =>   mjg        !: local  ==> global  domain i-indice
+   USE dom_oce , ONLY :   mi0        =>   mi0        !: global ==> local domain i-indice 
+   USE dom_oce , ONLY :   mi1        =>   mi1        !: (mi0=1 and mi1=0 if the global indice is not in the local one)
+   USE dom_oce , ONLY :   mj0        =>   mj0        !: global ==> local domain j-indice 
+   USE dom_oce , ONLY :   mj1        =>   mj1        !: (mj0=1 and mj1=0 if the global indice is not in the local one)
+   USE dom_oce , ONLY :   nidom      =>   nidom
+   USE dom_oce , ONLY :   nimppt     => nimppt     !:i-indexes for each processor
+   USE dom_oce , ONLY :   njmppt     => njmppt       !:j-indexes for each processor
+   USE dom_oce , ONLY :   ibonit     => ibonit       !:i-processor neighbour existence
+   USE dom_oce , ONLY :   ibonjt     => ibonjt       !:j- processor neighbour existence 
+   USE dom_oce , ONLY :   nlci       => nlci         !:i- & j-dimensions of the local subdomain
+   USE dom_oce , ONLY :   nlcj       => nlcj         !:
+   USE dom_oce , ONLY :   nldi       => nldi         !:first and last indoor i- and j-indexes
+   USE dom_oce , ONLY :   nlei       => nlei         !:
+   USE dom_oce , ONLY :   nldj       => nldj         !:
+   USE dom_oce , ONLY :   nlej       => nlej         !:
+   USE dom_oce , ONLY :   nlcit      => nlcit        !:dimensions of every i-subdomain
+   USE dom_oce , ONLY :   nlcjt      => nlcjt        !:dimensions of every j-subdomain
+   USE dom_oce , ONLY :   nldit      => nldit        !:first indoor index for each i-domain 
+   USE dom_oce , ONLY :   nleit      => nleit        !:last indoor index for each i-domain 
+   USE dom_oce , ONLY :   nldjt      => nldjt        !:first indoor index for each j-domain 
+   USE dom_oce , ONLY :   nlejt      => nlejt        !:last indoor index for each j-domain 
  
-   USE dom_oce , ONLY :       & 
-      nimppt   => nimppt  ,  & !:i-indexes for each processor
-      njmppt   => njmppt  ,  & !:j-indexes for each processor
-      ibonit   => ibonit  ,  & !:i-processor neighbour existence
-      ibonjt   => ibonjt  ,  & !:j- processor neighbour existence 
-      nlci     => nlci    ,  & !:i- & j-dimensions of the local subdomain
-      nlcj     => nlcj    ,  & !:
-      nldi     => nldi    ,  & !:first and last indoor i- and j-indexes
-      nlei     => nlei    ,  & !:
-      nldj     => nldj    ,  & !:
-      nlej     => nlej    ,  & !:
-      nlcit    => nlcit   ,  & !:dimensions of every i-subdomain
-      nlcjt    => nlcjt   ,  & !:dimensions of every j-subdomain
-      nldit    => nldit   ,  & !:first indoor index for each i-domain 
-      nleit    => nleit   ,  & !:last indoor index for each i-domain 
-      nldjt    => nldjt   ,  & !:first indoor index for each j-domain 
-      nlejt    => nlejt        !:last indoor index for each j-domain 
-
-    
-      !! horizontal curvilinear coordinate and scale factors
-   USE dom_oce , ONLY :            &    
-      glamt    =>   glamt ,  & !: longitude of t-point (degre)  
-      glamu    =>   glamu ,  & !: longitude of t-point (degre)  
-      glamv    =>   glamv ,  & !: longitude of t-point (degre)  
-      glamf    =>   glamf ,  & !: longitude of t-point (degre)  
-      gphit    =>   gphit ,  & !: latitude  of t-point (degre)   
-      gphiu    =>   gphiu ,  & !: latitude  of t-point (degre)   
-      gphiv    =>   gphiv ,  & !: latitude  of t-point (degre)   
-      gphif    =>   gphif ,  & !: latitude  of t-point (degre)   
-      e1t      =>   e1t   ,  & !: horizontal scale factors at t-point (m)  
-      e2t      =>   e2t   ,  & !: horizontal scale factors at t-point (m)   
-      e1u      =>   e1u   ,  & !: horizontal scale factors at u-point (m)
-      e2u      =>   e2u   ,  & !: horizontal scale factors at u-point (m)
-      e1v      =>   e1v   ,  & !: horizontal scale factors at v-point (m)
-      e2v      =>   e2v        !: horizontal scale factors at v-point (m)  
-
-   !! vertical coordinate and scale factors
-   USE dom_oce , ONLY :              &   
-      gdept_0    =>   gdept_0 ,  & !: reference depth of t-points (m)
-      e3t_0      =>   e3t_0   ,  & !: reference depth of t-points (m)  
-      e3w_0      =>   e3w_0   ,  & !: reference depth of w-points (m)
-      gdepw_0    =>   gdepw_0      !: reference depth of w-points (m)
-
-#if ! defined key_zco
-   USE dom_oce , ONLY :                &
-      gdep3w   =>  gdep3w  ,  & !: ???
-      gdept =>  gdept,  & !: depth of t-points (m)
-      gdepw =>  gdepw,  & !: depth of t-points (m)
-      e3t   =>  e3t  ,  & !: vertical scale factors at t-
-      e3u   =>  e3u  ,  & !: vertical scale factors at u-
-      e3v   =>  e3v  ,  & !: vertical scale factors v-
-      e3w   =>  e3w  ,  & !: w-points (m)
-      e3f   =>  e3f  ,  & !: f-points (m)
-      e3uw  =>  e3uw ,  & !: uw-points (m)
-      e3vw  =>  e3vw      !: vw-points (m)
+   !* horizontal mesh *
+   USE dom_oce , ONLY :   glamt      =>   glamt      !: longitude of t-point (degre)  
+   USE dom_oce , ONLY :   glamu      =>   glamu      !: longitude of t-point (degre)  
+   USE dom_oce , ONLY :   glamv      =>   glamv      !: longitude of t-point (degre)  
+   USE dom_oce , ONLY :   glamf      =>   glamf      !: longitude of t-point (degre)  
+   USE dom_oce , ONLY :   gphit      =>   gphit      !: latitude  of t-point (degre)   
+   USE dom_oce , ONLY :   gphiu      =>   gphiu      !: latitude  of t-point (degre)   
+   USE dom_oce , ONLY :   gphiv      =>   gphiv      !: latitude  of t-point (degre)   
+   USE dom_oce , ONLY :   gphif      =>   gphif      !: latitude  of t-point (degre)   
+   USE dom_oce , ONLY :   e1t        =>   e1t        !: horizontal scale factors at t-point (m)  
+   USE dom_oce , ONLY :   e2t        =>   e2t        !: horizontal scale factors at t-point (m)   
+   USE dom_oce , ONLY :   e1u        =>   e1u        !: horizontal scale factors at u-point (m)
+   USE dom_oce , ONLY :   e2u        =>   e2u        !: horizontal scale factors at u-point (m)
+   USE dom_oce , ONLY :   e1v        =>   e1v        !: horizontal scale factors at v-point (m)
+   USE dom_oce , ONLY :   e2v        =>   e2v        !: horizontal scale factors at v-point (m)  
+
+   !* vertical mesh *
+   USE dom_oce , ONLY :   gdept_0    =>   gdept_0    !: reference depth of t-points (m)
+   USE dom_oce , ONLY :   e3t_0      =>   e3t_0      !: reference depth of t-points (m)  
+   USE dom_oce , ONLY :   e3w_0      =>   e3w_0      !: reference depth of w-points (m)
+   USE dom_oce , ONLY :   gdepw_0    =>   gdepw_0    !: reference depth of w-points (m)
+# if ! defined key_zco
+   USE dom_oce , ONLY :   gdep3w     =>  gdep3w      !: ???
+   USE dom_oce , ONLY :   gdept      =>  gdept       !: depth of t-points (m)
+   USE dom_oce , ONLY :   gdepw      =>  gdepw       !: depth of t-points (m)
+   USE dom_oce , ONLY :   e3t        =>  e3t         !: vertical scale factors at t-
+   USE dom_oce , ONLY :   e3u        =>  e3u         !: vertical scale factors at u-
+   USE dom_oce , ONLY :   e3v        =>  e3v         !: vertical scale factors v-
+   USE dom_oce , ONLY :   e3w        =>  e3w         !: w-points (m)
+   USE dom_oce , ONLY :   e3f        =>  e3f         !: f-points (m)
+   USE dom_oce , ONLY :   e3uw       =>  e3uw        !: uw-points (m)
+   USE dom_oce , ONLY :   e3vw       =>  e3vw        !: vw-points (m)
+# endif
+   USE dom_oce , ONLY :   ln_zps     =>  ln_zps      !: partial steps flag
+   USE dom_oce , ONLY :   ln_sco     =>  ln_sco      !: s-coordinate flag
+   USE dom_oce , ONLY :   ln_zco     =>  ln_zco      !: z-coordinate flag
+   USE dom_oce , ONLY :   lk_zco     =>  lk_zco      !: z-coordinate flag (1D or 3D arrays)
+   USE dom_oce , ONLY :   hbatt     =>   hbatt       !: ocean depth at the vertical of  t-point (m)
+   USE dom_oce , ONLY :   hbatu     =>   hbatu       !: ocean depth at the vertical of  u-point (m)
+   USE dom_oce , ONLY :   hbatv     =>   hbatv       !: ocean depth at the vertical of w-point (m)
+   USE dom_oce , ONLY :   gsigt     =>   gsigt       !: model level depth coefficient at T-levels
+   USE dom_oce , ONLY :   gsigw     =>   gsigw       !: model level depth coefficient at W-levels
+   USE dom_oce , ONLY :   gsi3w     =>   gsi3w       !: model level depth coef at w-levels (defined as the sum of e3w)
+   USE dom_oce , ONLY :   esigt     =>   esigt       !: vertical scale factor coef. at t-levels
+   USE dom_oce , ONLY :   esigw     =>   esigw       !: vertical scale factor coef. at w-levels
+
+   !* masks, bathymetry *
+   USE dom_oce , ONLY :   mbathy    =>   mbathy      !: number of ocean level (=0,  & 1, ... , jpk-1) 
+   USE dom_oce , ONLY :   tmask_i   =>   tmask_i     !: Interior mask at t-points
+   USE dom_oce , ONLY :   tmask     =>   tmask       !: land/ocean mask at t-points
+   USE dom_oce , ONLY :   umask     =>   umask       !: land/ocean mask at u-points   
+   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_off_degrad
+   USE dom_oce , ONLY :   facvol    =>   facvol      !: volume factor for degradation
+# endif
+
+   !* time domain *
+   USE dom_oce , ONLY :   neuler    =>   neuler      !: restart euler forward option (0=Euler)
+   USE dom_oce , ONLY :   rdt       =>   rdt         !: time step for the dynamics 
+   USE dom_oce , ONLY :   atfp      =>   atfp        !: asselin time filter parameter
+   USE dom_oce , ONLY :   atfp1     =>   atfp1       !: asselin time filter coeff. (atfp1= 1-2*atfp)
+   USE dom_oce , ONLY :   rdttra    =>   rdttra      !: vertical profile of tracer time step
+   USE daymod  , ONLY :   ndastp    =>   ndastp      !: time step date in year/month/day aammjj
+   USE daymod  , ONLY :   nday_year =>   nday_year   !: curent day counted from jan 1st of the current year
+   USE daymod  , ONLY :   nyear     =>   nyear       !: Current year
+   USE daymod  , ONLY :   nmonth    =>   nmonth      !: Current month
+   USE daymod  , ONLY :   nday      =>   nday        !: Current day
+   USE daymod  , ONLY :   nobis     =>   nobis       !: number of days per month
+
+   !* ocean fields: here now and after fields *
+   USE oce , ONLY :   ua      =>    ua      !: i-horizontal velocity (m s-1) 
+   USE oce , ONLY :   va      =>    va      !: j-horizontal velocity (m s-1)
+   USE oce , ONLY :   un      =>    un      !: i-horizontal velocity (m s-1) 
+   USE oce , ONLY :   vn      =>    vn      !: j-horizontal velocity (m s-1)
+   USE oce , ONLY :   wn      =>    wn      !: vertical velocity (m s-1)  
+   USE oce , ONLY :   tn      =>    tn      !: pot. temperature (celsius)
+   USE oce , ONLY :   sn      =>    sn      !: salinity (psu)
+   USE oce , ONLY :   rhop    =>    rhop    !: potential volumic mass (kg m-3) 
+   USE oce , ONLY :   rhd     =>    rhd     !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units)
+# if defined key_trc_diatrd
+   USE oce , ONLY :   hdivn   =>    hdivn   !: horizontal divergence (1/s)
+# endif
+
+
+   USE lib_mpp , ONLY :   lk_mpp    =>  lk_mpp       !: Mpp flag
+
+   USE dynspg_oce , ONLY :   lk_dynspg_rl   =>  lk_dynspg_rl      !: rigid lid flag
+
+   USE dom_oce , ONLY :   n_cla     =>   n_cla         !: flag (0/1) for cross land advection 
+
+
+
+   !* surface fluxes *
+   USE sbc_oce , ONLY :   utau       =>    utau       !: i-surface stress component
+   USE sbc_oce , ONLY :   vtau       =>    vtau       !: j-surface stress component
+   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 traqsr  , ONLY :   xsi1       =>    xsi1       !: first depth of extinction
+   USE traqsr  , ONLY :   ln_qsr_sms =>    ln_qsr_sms !: flag to use or not the biological fluxes for light
+   USE sbcrnf  , ONLY :   rnfmsk     =>    rnfmsk     !: mixed adv scheme in runoffs vicinity (hori.) 
+   USE sbcrnf  , ONLY :   rnfmsk_z   =>    rnfmsk_z   !: mixed adv scheme in runoffs vicinity (vert.)
+
+   !* freezing area *
+   USE ocfzpt , ONLY :   freeze      =>    freeze     !: ice mask (0 or 1)  
+   USE ocfzpt , ONLY :   fzptn       =>    fzptn      !: now freezing temperature at ocean surface  
+
+   !* bottom boundary layer *
+# if   defined key_trabbl_dif   ||   defined key_trabbl_adv
+   USE trabbl , ONLY :   atrbbl   =>   atrbbl     !: lateral coeff. for bottom boundary layer scheme (m2/s)
+#  if defined key_off_tra
+   USE trabbl, ONLY :   bblx   => bblx         !: ???
+   USE trabbl, ONLY :   bbly   => bbly         !: ???
+#  endif
+# endif
+
+   !* lateral diffusivity (tracers) *
+   USE ldftra_oce , ONLY :   aht0    =>   aht0     !: horizontal eddy diffusivity for tracers (m2/s)
+   USE ldftra_oce , ONLY :   ahtb0   =>   ahtb0    !: background eddy diffusivity for isopycnal diff. (m2/s)
+   USE ldftra_oce , ONLY :   ahtu    =>   ahtu     !: lateral diffusivity coef. at u-points 
+   USE ldftra_oce , ONLY :   ahtv    =>   ahtv     !: lateral diffusivity coef. at v-points 
+   USE ldftra_oce , ONLY :   ahtw    =>   ahtw     !: lateral diffusivity coef. at w-points 
+   USE ldftra_oce , ONLY :   ahtt    =>   ahtt     !: lateral diffusivity coef. at t-points
+   USE ldftra_oce , ONLY :   aeiv0   =>   aeiv0    !: eddy induced velocity coefficient (m2/s) 
+   USE ldftra_oce , ONLY :   aeiu    =>   aeiu     !: eddy induced velocity coef. at u-points (m2/s)   
+   USE ldftra_oce , ONLY :   aeiv    =>   aeiv     !: eddy induced velocity coef. at v-points (m2/s) 
+   USE ldftra_oce , ONLY :   aeiw    =>   aeiw     !: eddy induced velocity coef. at w-points (m2/s) 
+
+   !* vertical diffusion *
+   USE zdf_oce , ONLY :   avt        =>   avt         !: vert. diffusivity coef. at w-point for temp  
+   USE zdf_oce , ONLY :   avt0       =>   avt0        !: vertical eddy diffusivity for tracers (m2/s)
+   USE zdf_oce , ONLY :   ln_zdfnpc  =>   ln_zdfnpc   !: convection: non-penetrative convection flag
+# if defined key_zdfddm
+   USE zdfddm  , ONLY :   avs        =>    avs        !: salinity vertical diffusivity coeff. at w-point
+# endif
+
+   !* mixing & mixed layer depth *
+   USE zdfmxl , ONLY :   hmld        =>   hmld        !: mixing layer depth (turbocline)
+   USE zdfmxl , ONLY :   hmlp        =>   hmlp        !: mixed layer depth  (rho=rho0+zdcrit) (m)
+   USE zdfmxl , ONLY :   hmlpt       =>   hmlpt       !: mixed layer depth at t-points (m)
+
+   !* direction of lateral diffusion *
+   USE ldfslp , ONLY :   lk_ldfslp  =>  lk_ldfslp     !: slopes flag
+# if   defined key_ldfslp
+   USE ldfslp , ONLY :   uslp       =>   uslp         !: i-direction slope at u-, w-points
+   USE ldfslp , ONLY :   vslp       =>   vslp         !: j-direction slope at v-, w-points
+   USE ldfslp , ONLY :   wslpi      =>   wslpi        !: i-direction slope at u-, w-points
+   USE ldfslp , ONLY :   wslpj      =>   wslpj        !: j-direction slope at v-, w-points
+# endif
+
+#else
+   !!----------------------------------------------------------------------
+   !!  Empty module :                                     No passive tracer
+   !!----------------------------------------------------------------------
 #endif
 
-   USE dom_oce ,   ONLY :            &      
-      ln_zps   =>  ln_zps ,  & !: partial steps flag
-      ln_sco   =>  ln_sco ,  & !: s-coordinate flag
-      ln_zco   =>  ln_zco ,  & !: z-coordinate flag
-      lk_zco   =>  lk_zco      !: z-coordinate flag (1D or 3D arrays)
-
-   USE lib_mpp ,   ONLY :            &     
-      lk_mpp   =>  lk_mpp      !: Mpp flag
-
-   USE dynspg_oce ,   ONLY :            &     
-      lk_dynspg_rl   =>  lk_dynspg_rl      !: rigid lid flag
-
-
-   USE dom_oce , ONLY :              &   
-      hbatt   =>   hbatt  ,  & !: ocean depth at the vertical of  t-point (m)
-      hbatu   =>   hbatu  ,  & !: ocean depth at the vertical of  u-point (m)
-      hbatv   =>   hbatv  ,  & !: ocean depth at the vertical of w-point (m)
-      gsigt   =>   gsigt  ,  & !: model level depth coefficient at t-,  & w-levelsvertical scale factors at u-
-      gsigw   =>   gsigw  ,  & !: model level depth coefficient at t-,  & w-levelsvertical scale factors v-
-      gsi3w   =>   gsi3w  ,  & !: model level depth coef at w-levels (defined as the sum of e3w)
-      esigt   =>   esigt  ,  & !: vertical scale factor coef. at t-levels
-      esigw   =>   esigw       !: vertical scale factor coef. at w-levels
-
-   !! masks, bathymetry
-   USE dom_oce , ONLY :             &    
-      mbathy   =>   mbathy,  & !: number of ocean level (=0,  & 1, ... , jpk-1) 
-      tmask_i  =>   tmask_i, & !: Interior mask at t-points
-      tmask    =>   tmask ,  & !: land/ocean mask at t-points
-      umask    =>   umask ,  & !: land/ocean mask at u-points   
-      vmask    =>   vmask ,  & !: land/ocean mask at v-points 
-      fmask    =>   fmask      !: land/ocean mask at f-points 
-
-#if defined key_off_degrad
-   USE dom_oce , ONLY :                 &
-      facvol   =>   facvol     !: volume factor for degradation
-#endif
-
-   USE dom_oce , ONLY :         &
-      n_cla   =>   n_cla       !: flag (0/1) for cross land advection 
-
-   !! time domain
-   USE dom_oce , ONLY :                 &
-      neuler   =>   neuler,  & !: restart euler forward option (0=Euler)
-      rdt      =>   rdt   ,  & !: time step for the dynamics 
-      atfp     =>   atfp  ,  & !: asselin time filter parameter
-      atfp1    =>   atfp1 ,  & !: asselin time filter coeff. (atfp1= 1-2*atfp)
-      rdttra   =>   rdttra     !: vertical profile of tracer time step
-
-   USE daymod , ONLY :                 &
-      ndastp    =>   ndastp,  &    !: time step date in year/month/day aammjj
-      nday_year =>   nday_year, &  !: curent day counted from jan 1st of the current year
-      nyear     =>   nyear,   &  !: Current year
-      nmonth    =>   nmonth,  &  !: Current month
-      nday      =>   nday        !: Current day
-
-   !! physical constants
-   USE phycst ,   ONLY :                &  
-      ra       =>   ra    ,  & !: earth radius
-      rpi      =>   rpi   ,  & !: pi
-      rday     =>   rday  ,  & !: day
-      rauw     =>   rauw  ,  & !: density of pure water kg/m3
-      ro0cpr   =>   ro0cpr,  & !: = 1. / ( rau0 * rcp )
-      rad      =>   rad   ,  & !: conversion coeff. from degre into radian
-      raass    =>   raass ,  & !: number of seconds in one year
-      rmoss    =>   rmoss ,  & !: number of seconds in one month
-      rjjss    =>   rjjss      !: number of seconds in one day
-
-   !! present fields (now)
-   USE oce , ONLY :            &     
-      ua      =>    ua    ,  & !: i-horizontal velocity (m s-1) 
-      va      =>    va    ,  & !: j-horizontal velocity (m s-1)
-      un      =>    un    ,  & !: i-horizontal velocity (m s-1) 
-      vn      =>    vn    ,  & !: j-horizontal velocity (m s-1)
-      wn      =>    wn    ,  & !: vertical velocity (m s-1)  
-      tn      =>    tn    ,  & !: pot. temperature (celsius)
-      sn      =>    sn    ,  & !: salinity (psu)
-      rhop    =>    rhop  ,  & !: potential volumic mass (kg m-3) 
-      rhd     =>    rhd        !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units)
-
-#if defined key_trc_diatrd
-   USE oce , ONLY :          &
-      hdivn   =>    hdivn      !: horizontal divergence (1/s)
-#endif
-
-#if defined key_flx_bulk_monthly || defined key_flx_bulk_daily || defined key_flx_core
-   !! wind speed
-   USE blk_oce , ONLY :        &     
-      vatm    =>    vatm       !: wind speed at sea surface (m s-1)
-#endif
-
-   !! wind speed
-   USE sbc_oce , ONLY :     &     
-      taux    =>    utau ,  &  !: i-surface stress component
-      tauy    =>    vtau ,  &  !: j-surface stress component
-      qsr     =>    qsr  ,  &  !: penetrative solar radiation (w m-2)  
-      emp     =>    emp  ,  &  !: evaporation minus precipitation (kg m-2 s-2) 
-      emps    =>    emps       !: evaporation minus precipitation (kg m-2 s-2)
-
-
-#if   defined key_trabbl_dif   ||   defined key_trabbl_adv
-   USE trabbl , ONLY :           &      
-      atrbbl   =>   atrbbl     !: lateral coeff. for bottom boundary layer scheme (m2/s)
-#  if defined key_off_tra
-   USE trabbl, ONLY :            &
-      bblx   => bblx,       &
-      bbly   => bbly
-#  endif
-#endif
-
-   !! lateral diffusivity (tracers)
-   USE ldftra_oce ,   ONLY :             &    
-      aht0    =>   aht0  ,  &  !: horizontal eddy diffusivity for tracers (m2/s)
-      ahtb0   =>   ahtb0 ,  &  !: background eddy diffusivity for isopycnal diff. (m2/s)
-      ahtu    =>   ahtu  ,  &  !: lateral diffusivity coef. at u-points 
-      ahtv    =>   ahtv  ,  &  !: lateral diffusivity coef. at v-points 
-      ahtw    =>   ahtw  ,  &  !: lateral diffusivity coef. at w-points 
-      ahtt    =>   ahtt  ,  &  !: lateral diffusivity coef. at t-points
-      aeiv0   =>   aeiv0 ,  &  !: eddy induced velocity coefficient (m2/s) 
-      aeiu    =>   aeiu  ,  &  !: eddy induced velocity coef. at u-points (m2/s)   
-      aeiv    =>   aeiv  ,  &  !: eddy induced velocity coef. at v-points (m2/s) 
-      aeiw    =>   aeiw        !: eddy induced velocity coef. at w-points (m2/s) 
-
-   !! vertical diffusion
-   USE zdf_oce , ONLY :      &    
-      avt            =>   avt          ,  & !: vert. diffusivity coef. at w-point for temp  
-      avt0           =>   avt0         ,  & !: vertical eddy diffusivity for tracers (m2/s)
-      ln_zdfnpc      =>   ln_zdfnpc         !: convection: non-penetrative convection flag
-
-
-#if defined key_zdfddm
-   USE zdfddm , ONLY :             &     
-      avs     =>    avs        !: salinity vertical diffusivity coeff. at w-point
-#endif
-
-   !! penetrative solar radiation
-   USE traqsr , ONLY :            &
-      xsi1        =>   xsi1    ,  & !: first depth of extinction
-      ln_qsr_sms  =>  ln_qsr_sms    !: flag to use or not the biological fluxes for light
-
-   !! freezing area
-   USE ocfzpt , ONLY :            &      
-      freeze  =>    freeze,  & !: ice mask (0 or 1)  
-      fzptn   =>    fzptn      !: now freezing temperature at ocean surface  
-
-
-   !! mixing layer depth (turbocline)
-   USE zdfmxl , ONLY :             &    
-      hmld    =>   hmld   ,  & !: mixing layer depth (turbocline)
-      hmlp    =>   hmlp   ,  & !: mixed layer depth  (rho=rho0+zdcrit) (m)
-      hmlpt   =>   hmlpt       !: mixed layer depth at t-points (m)
-
-   USE ldfslp , ONLY :              & 
-      lk_ldfslp  =>  lk_ldfslp     !: slopes flag
-#if   defined key_ldfslp
-   !! direction of lateral diffusion (momentum  tracers) 
-   USE ldfslp , ONLY :              & 
-      uslp       =>   uslp    ,  & !: i-direction slope at u-, w-points
-      vslp       =>   vslp    ,  & !: j-direction slope at v-, w-points
-      wslpi      =>   wslpi   ,  & !: i-direction slope at u-, w-points
-      wslpj      =>   wslpj        !: j-direction slope at v-, w-points
-#endif
-
-   !! ocean forcings runoff
-   USE sbcrnf , ONLY :         &   
-      upsrnfh => rnfmsk     ,  & !: mixed adv scheme in runoffs vicinity (hori.) 
-      upsrnfz => rnfmsk_z        !: mixed adv scheme in runoffs vicinity (vert.)
-
+   !!======================================================================
 END MODULE oce_trc
