Index: /branches/dev_001_GM/NEMO/TOP_SRC/CFC/par_CFC.F90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/CFC/par_CFC.F90	(revision 767)
+++ /branches/dev_001_GM/NEMO/TOP_SRC/CFC/par_CFC.F90	(revision 768)
@@ -16,4 +16,6 @@
    PUBLIC
 
+   INTEGER, PUBLIC, PARAMETER ::   jp_lp      = jp_lobster + jp_pisces   !: cumulative number of passive tracers
+   
 #if defined key_cfc
    !!---------------------------------------------------------------------
@@ -27,5 +29,4 @@
    
    ! assign an index in trc arrays for each CFC prognostic variables
-   INTEGER, PUBLIC, PARAMETER ::   jp_lp      = jp_lobster + jp_pisces   !: cumulative number of passive tracers
    INTEGER, PUBLIC, PARAMETER ::   jp11       = jp_lp + 1                !: CFC-11 
    INTEGER, PUBLIC, PARAMETER ::   jp12       = jp_lp + 2                !: CFC-12   
@@ -41,7 +42,7 @@
 #endif
 
-   ! Starting/ending CFC do-loop indices (N.B. no CFC : jpl_cfc < jpf_cfc the do-loop are never done)
-   INTEGER, PUBLIC, PARAMETER ::   jpf_cfc    = jp_lp + 1       !: First index of CFC tracers
-   INTEGER, PUBLIC, PARAMETER ::   jpl_cfc    = jp_lp + jp_cfc  !: Last  index of CFC tracers
+   ! 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
 
    !!======================================================================
Index: /branches/dev_001_GM/NEMO/TOP_SRC/CFC/trccfc.F90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/CFC/trccfc.F90	(revision 767)
+++ /branches/dev_001_GM/NEMO/TOP_SRC/CFC/trccfc.F90	(revision 768)
@@ -25,14 +25,14 @@
    PUBLIC   trc_cfc       ! called in ???    
 
-   INTEGER , PARAMETER ::   jpyear = 100   ! temporal parameter 
-   INTEGER , PARAMETER ::   jphem  =   2   ! parameter for the 2 hemispheres
+   INTEGER , PUBLIC, PARAMETER ::   jpyear = 100   ! temporal parameter 
+   INTEGER , PUBLIC, PARAMETER ::   jphem  =   2   ! parameter for the 2 hemispheres
    INTEGER , PUBLIC    ::   ndate_beg      ! initial calendar date (aammjj) for CFC
    INTEGER , PUBLIC    ::   nyear_res      ! restoring time constant (year)
    INTEGER , PUBLIC    ::   nyear_beg      ! initial year (aa) 
    
-   REAL(wp), PUBLIC, DIMENSION(jpyear,jphem, jpf_cfc:jpl_cfc) ::   p_cfc   ! partial hemispheric pressure for CFC          
+   REAL(wp), PUBLIC, DIMENSION(jpyear,jphem, jp_cfc0:jp_cfc1) ::   p_cfc   ! partial hemispheric pressure for CFC          
    REAL(wp), PUBLIC, DIMENSION(jpi,jpj)                       ::   xphem    ! spatial interpolation factor for patm
-   REAL(wp), PUBLIC, DIMENSION(jpi,jpj      ,jpf_cfc:jpl_cfc) ::   qtr      ! input function
-   REAL(wp), PUBLIC, DIMENSION(jpi,jpj      ,jpf_cfc:jpl_cfc) ::   qint     ! flux function
+   REAL(wp), PUBLIC, DIMENSION(jpi,jpj      ,jp_cfc0:jp_cfc1) ::   qtr      ! input function
+   REAL(wp), PUBLIC, DIMENSION(jpi,jpj      ,jp_cfc0:jp_cfc1) ::   qint     ! flux function
 
    REAL(wp), DIMENSION(jptra) ::   soa1, soa2, soa3, soa4   ! coefficient for solubility of CFC [mol/l/atm]
@@ -50,5 +50,5 @@
    !!----------------------------------------------------------------------
    !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007) 
-   !! $Id:$ 
+   !! $Id$ 
    !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
    !!----------------------------------------------------------------------
@@ -107,5 +107,5 @@
 
       !                                                         !------------!
-      DO jn = jpf_cfc, jpl_cfc                                  !  CFC loop  !
+      DO jn = jp_cfc0, jp_cfc1                                  !  CFC loop  !
          !                                                      !------------!
          ! time interpolation at time kt
@@ -180,5 +180,5 @@
       !!---------------------------------------------------------------------
 
-      DO jn = 1, jptra
+      DO jn = jp_cfc0, jp_cfc1
          IF ( jn == jp11 ) THEN
             ! coefficient for solubility of CFC11 in  mol/l/atm
@@ -214,7 +214,5 @@
             sca4(jn) =    -0.067430
          ENDIF
-      ENDDO
-
-      DO jn = 1, jptra
+
          WRITE(numout,*) 'coefficient for solubility of tracer',ctrcnm(jn)
          WRITE(numout,*) soa1(jn), soa2(jn),soa3(jn), soa4(jn), &
Index: /branches/dev_001_GM/NEMO/TOP_SRC/CFC/trcini_cfc.F90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/CFC/trcini_cfc.F90	(revision 767)
+++ /branches/dev_001_GM/NEMO/TOP_SRC/CFC/trcini_cfc.F90	(revision 768)
@@ -12,5 +12,7 @@
    !! trc_ini_cfc      : CFC model initialisation
    !!----------------------------------------------------------------------
+   USE oce_trc         ! Ocean variables
    USE par_trc         ! TOP parameters
+   USE trc             ! TOP variables
    USE trccfc          ! CFC sms trends
 
@@ -28,5 +30,5 @@
    !!----------------------------------------------------------------------
    !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007) 
-   !! $Id:$ 
+   !! $Id$ 
    !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
    !!----------------------------------------------------------------------
@@ -52,8 +54,7 @@
       ! Initialization of boundaries conditions
       ! --------------------------------------- 
-      pp_cfc(:,:,:) = 0.e0
       qtr   (:,:,:) = 0.e0
       xphem (:,:)   = 0.e0
-      DO jn = 1, jptra
+      DO jn = jp_cfc0, jp_cfc1
          DO jm = 1, jphem
             DO jl = 1, jpyear
@@ -71,5 +72,5 @@
             WRITE(numout,*) 'Initialization de qint ; No restart : qint equal zero '
          ENDIF
-         DO jn = 1, jptra
+         DO jn = jp_cfc0, jp_cfc1
             qint(:,:,jn) = 0.e0
          END DO
@@ -88,15 +89,9 @@
       REWIND(inum)
       
-
-      ! Skip over 1st six descriptor lines
-      !-----------------------------------
-      DO jm = 1, 6
+      DO jm = 1, 6        ! Skip over 1st six descriptor lines
          READ(inum,'(1x)')
       END DO
    
-   
-      !   Read file
-      ! ---------
-      DO jn = 31, 98
+      DO jn = 31, 98      !   Read file
          READ(inum,*) zyy, p_cfc(jn,1,jp11), p_cfc(jn,1,jp12), &
             &              p_cfc(jn,2,jp11), p_cfc(jn,2,jp12)
@@ -106,5 +101,5 @@
       END DO
 
-      p_cfc(32,1:2,jp11) = 5.e-4
+      p_cfc(32,1:2,jp11) = 5.e-4      ! modify the values of the first years
       p_cfc(33,1:2,jp11) = 8.e-4
       p_cfc(34,1:2,jp11) = 1.e-6
@@ -115,6 +110,5 @@
       p_cfc(39,1:2,jp11) = 1.e-2
       
-      
-      IF(lwp) THEN
+      IF(lwp) THEN        ! Control print
          WRITE(numout,*)
          WRITE(numout,*) ' Year   p11HN    p11HS    p12HN    p12HS '
Index: anches/dev_001_GM/NEMO/TOP_SRC/CFC/trclsm.cfc.h90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/CFC/trclsm.cfc.h90	(revision 767)
+++ 	(revision )
@@ -1,52 +1,0 @@
-   !!----------------------------------------------------------------------
-   !!                     ***  trclsm.cfc.h90  ***  
-   !! TOP :   Definition some run parameter for CFC chemical model
-   !!----------------------------------------------------------------------
-   !! History :   1.0  !  2003-08 (C. Ethe)  Original code
-   !!----------------------------------------------------------------------
-
-   !!----------------------------------------------------------------------
-   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005) 
-   !! $Id $ 
-   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
-   !!----------------------------------------------------------------------
-
-CONTAINS
-
-   SUBROUTINE trc_lsm
-      !!-------------------------------------------------------------------
-      !!                  ***  ROUTINE trc_lsm  ***
-      !!                 
-      !! ** Purpose :   Definition some run parameter for CFC model
-      !!
-      !! ** Method  :   Read the namcfc namelist and check the parameter 
-      !!       values called at the first timestep (nit000)
-      !!
-      !! ** input   :   Namelist namcfc
-      !!----------------------------------------------------------------------
-      CHARACTER (len=32) ::   clname = 'namelist.trc.sms'
-      INTEGER ::   numnat
-      !!
-      NAMELIST/namdates/ ndate_beg, nyear_res
-      !!-------------------------------------------------------------------
-
-      ndate_beg = 300101            ! default namelist value
-      nyear_res = 1950
-
-      !                             ! Open namelist file
-      CALL ctlopn( numnat, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL',   &
-         &           1, numout, .FALSE., 1 )
-         
-      READ( numnat , namdates )     ! read namelist
-
-      IF(lwp) THEN                  ! control print
-         WRITE(numout,*)
-         WRITE(numout,*) ' trc_lsm: Read namdates, namelist for CFC chemical model'
-         WRITE(numout,*) ' ~~~~~~~'
-         WRITE(numout,*) '    initial calendar date (aammjj) for CFC  ndate_beg = ', ndate_beg
-         WRITE(numout,*) '    restoring time constant (year)          nyear_res = ', nyear_res
-      ENDIF
-      nyear_beg = ndate_beg / 10000
-      IF(lwp) WRITE(numout,*) '    initial year (aa)                       nyear_beg = ', nyear_beg
-      !
-   END SUBROUTINE trc_lsm
Index: /branches/dev_001_GM/NEMO/TOP_SRC/CFC/trclsm_cfc.F90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/CFC/trclsm_cfc.F90	(revision 768)
+++ /branches/dev_001_GM/NEMO/TOP_SRC/CFC/trclsm_cfc.F90	(revision 768)
@@ -0,0 +1,81 @@
+MODULE trclsm_cfc
+   !!======================================================================
+   !!                         ***  MODULE trclsm_cfc  ***
+   !! TOP :   initialisation of some run parameters for CFC chemical model
+   !!======================================================================
+   !! History :   2.0  !  2007-12  (C. Ethe, G. Madec) from trclsm.cfc.h90
+   !!----------------------------------------------------------------------
+#if defined key_cfc
+   !!----------------------------------------------------------------------
+   !!   'key_cfc'                                               CFC tracers
+   !!----------------------------------------------------------------------
+   !! trc_lsm_cfc      : CFC model initialisation
+   !!----------------------------------------------------------------------
+   USE oce_trc         ! Ocean variables
+   USE par_trc         ! TOP parameters
+   USE trc             ! TOP variables
+   USE sms             ! sms trends
+   USE trccfc          ! CFC specific variable
+
+   IMPLICIT NONE
+   PRIVATE
+
+   PUBLIC   trc_lsm_cfc   ! called by trclsm.F90 module
+
+   !!----------------------------------------------------------------------
+   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007) 
+   !! $Id$ 
+   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
+   !!----------------------------------------------------------------------
+
+CONTAINS
+
+   SUBROUTINE trc_lsm_cfc
+      !!-------------------------------------------------------------------
+      !!                  ***  ROUTINE trc_lsm_cfc  ***
+      !!                 
+      !! ** Purpose :   Definition some run parameter for CFC model
+      !!
+      !! ** Method  :   Read the namcfc namelist and check the parameter 
+      !!       values called at the first timestep (nit000)
+      !!
+      !! ** input   :   Namelist namcfc
+      !!----------------------------------------------------------------------
+      CHARACTER (len=32) ::   clname = 'namelist.trc.sms'
+      INTEGER ::   numnat
+      !!
+      NAMELIST/namdates/ ndate_beg, nyear_res
+      !!-------------------------------------------------------------------
+
+      ndate_beg = 300101            ! default namelist value
+      nyear_res = 1950
+
+      !                             ! Open namelist file
+      CALL ctlopn( numnat, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL',   &
+         &           1, numout, .FALSE., 1 )
+         
+      READ( numnat , namdates )     ! read namelist
+
+      IF(lwp) THEN                  ! control print
+         WRITE(numout,*)
+         WRITE(numout,*) ' trc_lsm: Read namdates, namelist for CFC chemical model'
+         WRITE(numout,*) ' ~~~~~~~'
+         WRITE(numout,*) '    initial calendar date (aammjj) for CFC  ndate_beg = ', ndate_beg
+         WRITE(numout,*) '    restoring time constant (year)          nyear_res = ', nyear_res
+      ENDIF
+      nyear_beg = ndate_beg / 10000
+      IF(lwp) WRITE(numout,*) '    initial year (aa)                       nyear_beg = ', nyear_beg
+      !
+   END SUBROUTINE trc_lsm_cfc
+   
+#else
+   !!----------------------------------------------------------------------
+   !!  Dummy module :                                                No CFC
+   !!----------------------------------------------------------------------
+CONTAINS
+   SUBROUTINE trc_lsm_cfc                      ! Empty routine
+   END  SUBROUTINE  trc_lsm_cfc
+#endif  
+
+   !!======================================================================
+END MODULE trclsm_cfc
Index: /branches/dev_001_GM/NEMO/TOP_SRC/LOBSTER/par_LOBSTER.F90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/LOBSTER/par_LOBSTER.F90	(revision 767)
+++ /branches/dev_001_GM/NEMO/TOP_SRC/LOBSTER/par_LOBSTER.F90	(revision 768)
@@ -14,5 +14,5 @@
    PUBLIC
 
-# if defined key_trc_lobster1
+#if defined key_trc_lobster1
    !!---------------------------------------------------------------------
    !!   'key_trc_lobster1'   :                               LOBSTER model
@@ -31,7 +31,4 @@
    INTEGER, PUBLIC, PARAMETER ::   jpnh4          =  5        !: ammonium concentration      [mmoleN/m3]
    INTEGER, PUBLIC, PARAMETER ::   jpdom          =  6        !: dissolved organic matter    [mmoleN/m3]
-   !
-   INTEGER, PUBLIC, PARAMETER ::   jpf_lob =         1        !: First index of LOBSTER tracers
-   INTEGER, PUBLIC, PARAMETER ::   jpl_lob = jp_lobster       !: Last  index of LOBSTER tracers
 
    ! productive layer depth
Index: anches/dev_001_GM/NEMO/TOP_SRC/LOBSTER/trclsm.lobster1.h90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/LOBSTER/trclsm.lobster1.h90	(revision 767)
+++ 	(revision )
@@ -1,205 +1,0 @@
-   !!----------------------------------------------------------------------
-   !!                     ***  trclsm.lobster1.h90  ***  
-   !! TOP :   Definition some run parameter for LOBSTER biological model
-   !!----------------------------------------------------------------------
-   !! History :    -  !  1999-10 (M.A. Foujols, M. Levy) original code
-   !!              -  !  2000-12 (O. Aumont, E. Kestenare) add sediments
-   !!             1.0 !  2003-08 (C. Ethe)  Original code
-   !!----------------------------------------------------------------------
-
-   !!----------------------------------------------------------------------
-   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005) 
-   !! $Id $ 
-   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
-   !!----------------------------------------------------------------------
-
-CONTAINS
-
-   SUBROUTINE trc_lsm
-      !!----------------------------------------------------------------------
-      !!                     ***  trc_lsm  ***  
-      !!
-      !! ** Purpose :   read LOBSTER namelist
-      !!
-      !! ** input   :   file 'namelist.trc.sms' containing the following
-      !!             namelist: natbio, natopt, and natdbi ("key_trc_diabio")
-      !!----------------------------------------------------------------------
-      CHARACTER (len=32) :: clname
-      !!
-      NAMELIST/natbio/ apmin, azmin, anmin, admin,                       &
-         &   redf, reddom, slopet, toptp, psinut, akno3, aknh4, rcchl,   &
-         &   rgamma, toptgz, tmaxgz, rgz,                                &
-         &   rppz, taus, aks, filmax, rpnaz, rdnaz, eggzoo, tauzn,       &
-         &   tmmaxp, tmminp, tmmaxz, tmminz, anumin, afdmin, taudn,      &
-         &   vsed, tmumax, aki, tmaxr, tminr, taunn, taudomn, xhr,       &
-         &   sedlam, sedlostpoc,                                         &
-         &   fphylab, fzoolab, fdetlab, fdbod
-      NAMELIST/natopt/ xkg0, xkr0, xkgp, xkrp, xlg, xlr, rpig
-#if defined key_trc_diabio
-      INTEGER :: ji
-      NAMELIST/natdbi/ctrbio,ctrbil,ctrbiu,nwritebio
-#endif
-      !!----------------------------------------------------------------------
-
-      IF(lwp) WRITE(numout,*)
-      IF(lwp) WRITE(numout,*) ' trc_lsm : read LOBSTER 1 namelists'
-      IF(lwp) WRITE(numout,*) ' ~~~~~~~'
-
-      !                               ! Open the namelist file
-      !                               ! ----------------------
-      clname ='namelist.trc.sms'
-      CALL ctlopn( numnat, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL',   &
-         &           1, numout, .FALSE., 1 )
-
-      !                               ! natbio : biological parameters
-      !                               ! ------------------------------
-      apmin = 0.                           ! default values
-      azmin = 0.
-      anmin = 0.
-      admin = 0.
-      redf  = 0.
-      reddom = 0.
-      slopet = 0.
-      toptp = 0.
-      psinut = 0.
-      akno3  = 0.
-      aknh4 = 0.
-      rcchl = 0.
-      rgamma= 0.
-      toptgz= 0.
-      tmaxgz= 0.
-      rgz   = 0.
-      rppz  = 0.
-      taus  = 0.
-      aks   = 0.
-      filmax= 0.
-      rpnaz = 0.
-      rdnaz = 0.
-      eggzoo= 0.
-      tauzn = 0.
-      tmmaxp= 0.
-      tmminp= 0.
-      tmmaxz= 0.
-      tmminz= 0.
-      anumin= 0.
-      afdmin= 0.
-      taudn = 0.
-      vsed  = 0.
-      tmumax= 0.
-      aki   = 0.
-      tmaxr   = 1./(     4.*rday)*0.
-      tminr   = 1./(24.*30.*rday)*0.
-      xhr=0.
-      sedlam=0.
-      sedlostpoc=0.
-      taudomn = 0.
-      taunn = 0.
-      fphylab = 0.
-      fzoolab = 0.
-      fdetlab = 0.
-      fdbod = 0.
-
-      REWIND( numnat )                     ! read natbio
-      READ  ( numnat, natbio )
-
-      IF(lwp) THEN
-          WRITE(numout,*) ' Namelist natbio'
-          WRITE(numout,*) '    minimum phytoplancton concentration                  apmin     =', apmin
-          WRITE(numout,*) '    minimum zooplancton   concentration                  azmin     =', azmin
-          WRITE(numout,*) '    minimum nutrients     concentration                  anmin     =', anmin
-          WRITE(numout,*) '    minimum detritus      concentration                  admin     =', admin
-          WRITE(numout,*) '    redfield ratio  c:n                                  redf      =', redf
-          WRITE(numout,*) '    van t hoff coefficient                               slopet    =', slopet
-          WRITE(numout,*) '    optimal photosynthesis temperature                   toptp     =', toptp
-          WRITE(numout,*) '    inhibition of no3 uptake by nh4                      psinut    =', psinut
-          WRITE(numout,*) '    half-saturation nutrient for no3 uptake              akno3     =', akno3
-          WRITE(numout,*) '    half-saturation nutrient for nh4 uptake              aknh4     =', aknh4
-          WRITE(numout,*) '    carbone/chlorophyl ratio                             rcchl     =', rcchl
-          WRITE(numout,*) '    phytoplankton exudation fraction                     rgamma    =', rgamma
-          WRITE(numout,*) '    optimal temperature for zoo growth                   toptgz    =', toptgz
-          WRITE(numout,*) '    maximal temperature for zoo growth                   tmaxgz    =', tmaxgz
-          WRITE(numout,*) '    widtht of zoo temperature FUNCTION                   rgz       =', rgz
-          WRITE(numout,*) '    zoo preference for phyto                             rppz      =', rppz
-          WRITE(numout,*) '    maximal zoo grazing rate                             taus      =', 86400 * taus, ' d'
-          WRITE(numout,*) '    half saturation constant for zoo food                aks       =', aks
-          WRITE(numout,*) '    maximal mass clearance rate for zoo                  filmax    =', filmax
-          WRITE(numout,*) '    non-assimilated phyto by zoo                         rpnaz     =', rpnaz
-          WRITE(numout,*) '    non-assimilated detritus by zoo                      rdnaz     =', rdnaz
-          WRITE(numout,*) '    minimum  for zoo concentration                       eggzoo    =', eggzoo
-          WRITE(numout,*) '    zoo specific excretion rate                          tauzn     =', 86400 * tauzn
-          WRITE(numout,*) '    maximal phyto mortality rate                         tmmaxp    =', 86400 * tmmaxp
-          WRITE(numout,*) '    minimal phyto mortality rate                         tmminp    =', 86400 * tmminp
-          WRITE(numout,*) '    maximal zoo mortality rate                           tmmaxz    =', 86400 * tmmaxz
-          WRITE(numout,*) '    minimal zoo mortality rate                           tmminz    =', 86400 * tmminz
-          WRITE(numout,*) '    nutrient threshold for phyto mort                    anumin    =', anumin
-          WRITE(numout,*) '    food threshold for zoo mort                          afdmin    =', afdmin
-          WRITE(numout,*) '    detrital breakdown rate                              taudn     =', 86400 * taudn , ' d'
-          WRITE(numout,*) '    detritus sedimentation speed                         vsed      =', 86400 * vsed  , ' d'
-          WRITE(numout,*) '    phyto max growth rate                                tmumax    =', 86400 * tmumax, ' d'
-          WRITE(numout,*) '    light hlaf saturation constant                       aki       =', aki
-          WRITE(numout,*) '    maximum damping for d z or p                         tmaxr     =', tmaxr
-          WRITE(numout,*) '    damping-remineralisation rate                        tminr     =', tminr
-          WRITE(numout,*) '    nitrification rate                                   taunn     =', taunn
-          WRITE(numout,*) '    dom remineralisation rate                            taudomn   =', taudomn
-          WRITE(numout,*) '    coeff for martin''s remineralistion                  xhr       =', xhr
-          WRITE(numout,*) '    time coeff of POC in sediments                       sedlam    =', sedlam
-          WRITE(numout,*) '    Sediment geol loss for POC                           sedlostpoc=', sedlostpoc
-          WRITE(numout,*) '    NH4 fraction of phytoplankton exsudation             fphylab   =', fphylab
-          WRITE(numout,*) '    NH4 fraction of zooplankton excretion                fzoolab   =', fzoolab
-          WRITE(numout,*) '    NH4 fraction of detritus dissolution                 fdetlab   =', fdetlab
-          WRITE(numout,*) '    Zooplankton mortality fraction that goes to detritus fdbod     =', fdbod
-      ENDIF
-
-      !                               ! natopt : optical parameters
-      !                               ! ---------------------------
-      xkg0  = 0.                           ! default values
-      xkr0  = 0.
-      xkgp  = 0.
-      xkrp  = 0.
-      xlg   = 0.
-      xlr   = 0.
-      rpig  = 0.
-
-      REWIND( numnat )                     ! read natopt
-      READ  ( numnat, natopt )       
-
-      IF(lwp) THEN                         ! control print
-         WRITE(numout,*)
-         WRITE(numout,*) ' Namelist natopt'
-         WRITE(numout,*) '    green   water absorption coeff                       xkg0  = ', xkg0
-         WRITE(numout,*) '    red water absorption coeff                           xkr0  = ', xkr0
-         WRITE(numout,*) '    pigment red absorption coeff                         xkrp  = ', xkrp
-         WRITE(numout,*) '    pigment green absorption coeff                       xkgp  = ', xkgp
-         WRITE(numout,*) '    green chl exposant                                   xlg   = ', xlg
-         WRITE(numout,*) '    red   chl exposant                                   xlr   = ', xlr
-         WRITE(numout,*) '    chla/chla+phea ratio                                 rpig  = ', rpig
-      ENDIF
-
-#if defined key_trc_diabio
-
-      !                               ! natdbi : bio diagnostics
-      !                               ! ------------------------
-      nwritebio = 10                     ! default values
-      DO ji = 1, jpdiabio
-         IF(     ji <  10 ) THEN   ;   WRITE (ctrbio(ji),'("BIO_",I1)') ji      ! short name
-         ELSEIF (ji < 100 ) THEN   ;   WRITE (ctrbio(ji),'("BIO_",I2)') ji   
-         ELSE                      ;   WRITE (ctrbio(ji),'("BIO_",I3)') ji
-         ENDIF
-         WRITE(ctrbil(ji),'("BIOLOGICAL TREND NUMBER ",I2)') ji                 ! long name
-         ctrbiu(ji) = 'mmoleN/m3/s '                                            ! units
-      END DO
-
-      REWIND( numnat )                     ! read natdbi
-      READ  ( numnat, natdbi )  
-
-      IF(lwp) THEN
-         WRITE(numout,*)
-         WRITE(numout,*) ' Namelist natdbi'
-         WRITE(numout,*) '    frequency of outputs for biological outputs  nwritebio = ', nwritebio
-         DO ji = 1, jpdiabio
-            WRITE(numout,*) '     name of biological trend No :',ji,' : ',ctrbio(ji), ctrbil(ji), ' in ', ctrbiu(ji)
-         END DO
-      END IF
-#endif
-      !
-   END SUBROUTINE trc_lsm
Index: /branches/dev_001_GM/NEMO/TOP_SRC/LOBSTER/trclsm_lobster.F90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/LOBSTER/trclsm_lobster.F90	(revision 768)
+++ /branches/dev_001_GM/NEMO/TOP_SRC/LOBSTER/trclsm_lobster.F90	(revision 768)
@@ -0,0 +1,231 @@
+MODULE trclsm_lobster
+   !!======================================================================
+   !!                      ***  MODULE trclsm_lobster  ***
+   !! TOP :   initialisation of some run parameters for LOBSTER bio-model
+   !!======================================================================
+   !! History :   2.0  !  2007-12  (C. Ethe, G. Madec) from trclsm.lobster1.h90
+   !!----------------------------------------------------------------------
+#if defined key_trc_lobster1
+   !!----------------------------------------------------------------------
+   !!   'key_trc_lobster1'   :                            LOBSTER bio-model
+   !!----------------------------------------------------------------------
+   !! trc_lsm_lobster      : LOBSTER model namelist read
+   !!----------------------------------------------------------------------
+   USE oce_trc         ! Ocean variables
+   USE par_trc         ! TOP parameters
+   USE trc             ! TOP variables
+   USE sms             ! sms trends
+
+   IMPLICIT NONE
+   PRIVATE
+
+   PUBLIC   trc_lsm_lobster   ! called by trclsm.F90 module
+
+   !!----------------------------------------------------------------------
+   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007) 
+   !! $Id$ 
+   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
+   !!----------------------------------------------------------------------
+
+CONTAINS
+
+   SUBROUTINE trc_lsm_lobster
+      !!----------------------------------------------------------------------
+      !!                     ***  trc_lsm_lobster  ***  
+      !!
+      !! ** Purpose :   read LOBSTER namelist
+      !!
+      !! ** input   :   file 'namelist.trc.sms' containing the following
+      !!             namelist: natbio, natopt, and natdbi ("key_trc_diabio")
+      !!----------------------------------------------------------------------
+      CHARACTER (len=32) :: clname
+      !!
+      NAMELIST/natbio/ apmin, azmin, anmin, admin,                       &
+         &   redf, reddom, slopet, toptp, psinut, akno3, aknh4, rcchl,   &
+         &   rgamma, toptgz, tmaxgz, rgz,                                &
+         &   rppz, taus, aks, filmax, rpnaz, rdnaz, eggzoo, tauzn,       &
+         &   tmmaxp, tmminp, tmmaxz, tmminz, anumin, afdmin, taudn,      &
+         &   vsed, tmumax, aki, tmaxr, tminr, taunn, taudomn, xhr,       &
+         &   sedlam, sedlostpoc,                                         &
+         &   fphylab, fzoolab, fdetlab, fdbod
+      NAMELIST/natopt/ xkg0, xkr0, xkgp, xkrp, xlg, xlr, rpig
+#if defined key_trc_diabio
+      INTEGER :: ji
+      NAMELIST/natdbi/ctrbio,ctrbil,ctrbiu,nwritebio
+#endif
+      !!----------------------------------------------------------------------
+
+      IF(lwp) WRITE(numout,*)
+      IF(lwp) WRITE(numout,*) ' trc_lsm_lobster : read LOBSTER namelists'
+      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~~'
+
+      !                               ! Open the namelist file
+      !                               ! ----------------------
+      clname ='namelist.trc.sms'
+      CALL ctlopn( numnat, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL',   &
+         &           1, numout, .FALSE., 1 )
+
+      !                               ! natbio : biological parameters
+      !                               ! ------------------------------
+      apmin = 0.                           ! default values
+      azmin = 0.
+      anmin = 0.
+      admin = 0.
+      redf  = 0.
+      reddom = 0.
+      slopet = 0.
+      toptp = 0.
+      psinut = 0.
+      akno3  = 0.
+      aknh4 = 0.
+      rcchl = 0.
+      rgamma= 0.
+      toptgz= 0.
+      tmaxgz= 0.
+      rgz   = 0.
+      rppz  = 0.
+      taus  = 0.
+      aks   = 0.
+      filmax= 0.
+      rpnaz = 0.
+      rdnaz = 0.
+      eggzoo= 0.
+      tauzn = 0.
+      tmmaxp= 0.
+      tmminp= 0.
+      tmmaxz= 0.
+      tmminz= 0.
+      anumin= 0.
+      afdmin= 0.
+      taudn = 0.
+      vsed  = 0.
+      tmumax= 0.
+      aki   = 0.
+      tmaxr   = 1./(     4.*rday)*0.
+      tminr   = 1./(24.*30.*rday)*0.
+      xhr=0.
+      sedlam=0.
+      sedlostpoc=0.
+      taudomn = 0.
+      taunn = 0.
+      fphylab = 0.
+      fzoolab = 0.
+      fdetlab = 0.
+      fdbod = 0.
+
+      REWIND( numnat )                     ! read natbio
+      READ  ( numnat, natbio )
+
+      IF(lwp) THEN
+          WRITE(numout,*) ' Namelist natbio'
+          WRITE(numout,*) '    minimum phytoplancton concentration                  apmin     =', apmin
+          WRITE(numout,*) '    minimum zooplancton   concentration                  azmin     =', azmin
+          WRITE(numout,*) '    minimum nutrients     concentration                  anmin     =', anmin
+          WRITE(numout,*) '    minimum detritus      concentration                  admin     =', admin
+          WRITE(numout,*) '    redfield ratio  c:n                                  redf      =', redf
+          WRITE(numout,*) '    van t hoff coefficient                               slopet    =', slopet
+          WRITE(numout,*) '    optimal photosynthesis temperature                   toptp     =', toptp
+          WRITE(numout,*) '    inhibition of no3 uptake by nh4                      psinut    =', psinut
+          WRITE(numout,*) '    half-saturation nutrient for no3 uptake              akno3     =', akno3
+          WRITE(numout,*) '    half-saturation nutrient for nh4 uptake              aknh4     =', aknh4
+          WRITE(numout,*) '    carbone/chlorophyl ratio                             rcchl     =', rcchl
+          WRITE(numout,*) '    phytoplankton exudation fraction                     rgamma    =', rgamma
+          WRITE(numout,*) '    optimal temperature for zoo growth                   toptgz    =', toptgz
+          WRITE(numout,*) '    maximal temperature for zoo growth                   tmaxgz    =', tmaxgz
+          WRITE(numout,*) '    widtht of zoo temperature FUNCTION                   rgz       =', rgz
+          WRITE(numout,*) '    zoo preference for phyto                             rppz      =', rppz
+          WRITE(numout,*) '    maximal zoo grazing rate                             taus      =', 86400 * taus, ' d'
+          WRITE(numout,*) '    half saturation constant for zoo food                aks       =', aks
+          WRITE(numout,*) '    maximal mass clearance rate for zoo                  filmax    =', filmax
+          WRITE(numout,*) '    non-assimilated phyto by zoo                         rpnaz     =', rpnaz
+          WRITE(numout,*) '    non-assimilated detritus by zoo                      rdnaz     =', rdnaz
+          WRITE(numout,*) '    minimum  for zoo concentration                       eggzoo    =', eggzoo
+          WRITE(numout,*) '    zoo specific excretion rate                          tauzn     =', 86400 * tauzn
+          WRITE(numout,*) '    maximal phyto mortality rate                         tmmaxp    =', 86400 * tmmaxp
+          WRITE(numout,*) '    minimal phyto mortality rate                         tmminp    =', 86400 * tmminp
+          WRITE(numout,*) '    maximal zoo mortality rate                           tmmaxz    =', 86400 * tmmaxz
+          WRITE(numout,*) '    minimal zoo mortality rate                           tmminz    =', 86400 * tmminz
+          WRITE(numout,*) '    nutrient threshold for phyto mort                    anumin    =', anumin
+          WRITE(numout,*) '    food threshold for zoo mort                          afdmin    =', afdmin
+          WRITE(numout,*) '    detrital breakdown rate                              taudn     =', 86400 * taudn , ' d'
+          WRITE(numout,*) '    detritus sedimentation speed                         vsed      =', 86400 * vsed  , ' d'
+          WRITE(numout,*) '    phyto max growth rate                                tmumax    =', 86400 * tmumax, ' d'
+          WRITE(numout,*) '    light hlaf saturation constant                       aki       =', aki
+          WRITE(numout,*) '    maximum damping for d z or p                         tmaxr     =', tmaxr
+          WRITE(numout,*) '    damping-remineralisation rate                        tminr     =', tminr
+          WRITE(numout,*) '    nitrification rate                                   taunn     =', taunn
+          WRITE(numout,*) '    dom remineralisation rate                            taudomn   =', taudomn
+          WRITE(numout,*) '    coeff for martin''s remineralistion                  xhr       =', xhr
+          WRITE(numout,*) '    time coeff of POC in sediments                       sedlam    =', sedlam
+          WRITE(numout,*) '    Sediment geol loss for POC                           sedlostpoc=', sedlostpoc
+          WRITE(numout,*) '    NH4 fraction of phytoplankton exsudation             fphylab   =', fphylab
+          WRITE(numout,*) '    NH4 fraction of zooplankton excretion                fzoolab   =', fzoolab
+          WRITE(numout,*) '    NH4 fraction of detritus dissolution                 fdetlab   =', fdetlab
+          WRITE(numout,*) '    Zooplankton mortality fraction that goes to detritus fdbod     =', fdbod
+      ENDIF
+
+      !                               ! natopt : optical parameters
+      !                               ! ---------------------------
+      xkg0  = 0.                           ! default values
+      xkr0  = 0.
+      xkgp  = 0.
+      xkrp  = 0.
+      xlg   = 0.
+      xlr   = 0.
+      rpig  = 0.
+
+      REWIND( numnat )                     ! read natopt
+      READ  ( numnat, natopt )       
+
+      IF(lwp) THEN                         ! control print
+         WRITE(numout,*)
+         WRITE(numout,*) ' Namelist natopt'
+         WRITE(numout,*) '    green   water absorption coeff                       xkg0  = ', xkg0
+         WRITE(numout,*) '    red water absorption coeff                           xkr0  = ', xkr0
+         WRITE(numout,*) '    pigment red absorption coeff                         xkrp  = ', xkrp
+         WRITE(numout,*) '    pigment green absorption coeff                       xkgp  = ', xkgp
+         WRITE(numout,*) '    green chl exposant                                   xlg   = ', xlg
+         WRITE(numout,*) '    red   chl exposant                                   xlr   = ', xlr
+         WRITE(numout,*) '    chla/chla+phea ratio                                 rpig  = ', rpig
+      ENDIF
+
+#if defined key_trc_diabio
+
+      !                               ! natdbi : bio diagnostics
+      !                               ! ------------------------
+      nwritebio = 10                     ! default values
+      DO ji = 1, jpdiabio
+         IF(     ji <  10 ) THEN   ;   WRITE (ctrbio(ji),'("BIO_",I1)') ji      ! short name
+         ELSEIF (ji < 100 ) THEN   ;   WRITE (ctrbio(ji),'("BIO_",I2)') ji   
+         ELSE                      ;   WRITE (ctrbio(ji),'("BIO_",I3)') ji
+         ENDIF
+         WRITE(ctrbil(ji),'("BIOLOGICAL TREND NUMBER ",I2)') ji                 ! long name
+         ctrbiu(ji) = 'mmoleN/m3/s '                                            ! units
+      END DO
+
+      REWIND( numnat )                     ! read natdbi
+      READ  ( numnat, natdbi )  
+
+      IF(lwp) THEN
+         WRITE(numout,*)
+         WRITE(numout,*) ' Namelist natdbi'
+         WRITE(numout,*) '    frequency of outputs for biological outputs  nwritebio = ', nwritebio
+         DO ji = 1, jpdiabio
+            WRITE(numout,*) '     name of biological trend No :',ji,' : ',ctrbio(ji), ctrbil(ji), ' in ', ctrbiu(ji)
+         END DO
+      END IF
+#endif
+      !
+   END SUBROUTINE trc_lsm_lobster
+   
+#else
+   !!----------------------------------------------------------------------
+   !!  Dummy module :                                            No LOBSTER
+   !!----------------------------------------------------------------------
+CONTAINS
+   SUBROUTINE trc_lsm_lobster                      ! Empty routine
+   END  SUBROUTINE  trc_lsm_lobster
+#endif  
+
+   !!======================================================================
+END MODULE trclsm_lobster
Index: /branches/dev_001_GM/NEMO/TOP_SRC/MY_TRC/par_MY_TRC.F90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/MY_TRC/par_MY_TRC.F90	(revision 767)
+++ /branches/dev_001_GM/NEMO/TOP_SRC/MY_TRC/par_MY_TRC.F90	(revision 768)
@@ -17,4 +17,6 @@
    PUBLIC
 
+   INTEGER, PUBLIC, PARAMETER ::   jp_lpc  = jp_lobster + jp_pisces + jp_cfc   !: cumulative number of TRC
+
 #if defined key_trc_my_trc
    !!---------------------------------------------------------------------
@@ -28,8 +30,7 @@
 
    ! assign an index in trc arrays for each PTS prognostic variables
-   INTEGER, PUBLIC, PARAMETER ::   jp_lpc  = jp_lobster + jp_pisces + jp_cfc   !: cumulative number of TRC
-   INTEGER, PUBLIC, PARAMETER ::   jp_myt1 = jp_lpc + 1                        !: 1st MY_TRC tracer
-   INTEGER, PUBLIC, PARAMETER ::   jp_myt2 = jp_lpc + 1                        !: 2nd MY_TRC tracer
-   INTEGER, PUBLIC, PARAMETER ::   jp_myt3 = jp_lpc + 1                        !: 3rd MY_TRC tracer
+   INTEGER, PUBLIC, PARAMETER ::   jp_myt1 = jp_lpc + 1     !: 1st MY_TRC tracer
+   INTEGER, PUBLIC, PARAMETER ::   jp_myt2 = jp_lpc + 1     !: 2nd MY_TRC tracer
+   INTEGER, PUBLIC, PARAMETER ::   jp_myt3 = jp_lpc + 1     !: 3rd MY_TRC tracer
 
 #else
@@ -45,6 +46,6 @@
 
    ! Starting/ending PISCES do-loop indices (N.B. no PISCES : jpl_pcs < jpf_pcs the do-loop are never done)
-   INTEGER, PUBLIC, PARAMETER ::   jpf_myt = jp_l + 1           !: First index of CFC passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jpl_myt = jp_l + jp_my_trc   !: Last  index of CFC passive tracers
+   INTEGER, PUBLIC, PARAMETER ::   jpf_myt = jp_lpc + 1           !: First index of CFC passive tracers
+   INTEGER, PUBLIC, PARAMETER ::   jpl_myt = jp_lpc + jp_my_trc   !: Last  index of CFC passive tracers
 
    !!======================================================================
Index: /branches/dev_001_GM/NEMO/TOP_SRC/MY_TRC/trclsm_my_trc.F90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/MY_TRC/trclsm_my_trc.F90	(revision 768)
+++ /branches/dev_001_GM/NEMO/TOP_SRC/MY_TRC/trclsm_my_trc.F90	(revision 768)
@@ -0,0 +1,59 @@
+MODULE trclsm_my_trc
+   !!======================================================================
+   !!                      ***  MODULE trclsm_my_trc  ***
+   !! TOP :   initialisation of some run parameters for LOBSTER bio-model
+   !!======================================================================
+   !! History :   2.0  !  2007-12  (C. Ethe, G. Madec) Original code
+   !!----------------------------------------------------------------------
+#if defined key_my_trc
+   !!----------------------------------------------------------------------
+   !!   'key_my_trc'   :                                       MY_TRC model
+   !!----------------------------------------------------------------------
+   !! trc_lsm_my_trc      : MY_TRC model initialisation
+   !!----------------------------------------------------------------------
+   USE oce_trc         ! Ocean variables
+   USE par_trc         ! TOP parameters
+   USE trc             ! TOP variables
+   USE sms             ! sms trends
+
+   IMPLICIT NONE
+   PRIVATE
+
+   PUBLIC   trc_lsm_my_trc   ! called by trclsm.F90 module
+
+   !!----------------------------------------------------------------------
+   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007) 
+   !! $Id: $ 
+   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
+   !!----------------------------------------------------------------------
+
+CONTAINS
+
+   SUBROUTINE trc_lsm_my_trc
+      !!----------------------------------------------------------------------
+      !!                     ***  trc_lsm_my_trc  ***  
+      !!
+      !! ** Purpose :   read MY_TRC namelist
+      !!
+      !! ** input   :   file 'namelist.trc.sms' containing the following
+      !!             namelist: natbio, natopt, and natdbi ("key_trc_diabio")
+      !!----------------------------------------------------------------------
+      !!----------------------------------------------------------------------
+      !
+      IF(lwp) WRITE(numout,*)
+      IF(lwp) WRITE(numout,*) ' trc_lsm_my_trc : read MY_TRC namelists'
+      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~~'
+      !
+   END SUBROUTINE trc_lsm_my_trc
+   
+#else
+   !!----------------------------------------------------------------------
+   !!  Dummy module :                                             No MY_TRC
+   !!----------------------------------------------------------------------
+CONTAINS
+   SUBROUTINE trc_lsm_my_trc                      ! Empty routine
+   END  SUBROUTINE  trc_lsm_my_trc
+#endif  
+
+   !!======================================================================
+END MODULE trclsm_my_trc
Index: /branches/dev_001_GM/NEMO/TOP_SRC/PISCES/par_PISCES.F90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/PISCES/par_PISCES.F90	(revision 767)
+++ /branches/dev_001_GM/NEMO/TOP_SRC/PISCES/par_PISCES.F90	(revision 768)
@@ -15,4 +15,6 @@
    PUBLIC
 
+   INTEGER, PUBLIC, PARAMETER ::   jp_l  = jp_lobster      !: cumulative number of already defined TRC
+
 #if defined key_trc_pisces  &&  defined key_trc_kriest
    !!---------------------------------------------------------------------
@@ -29,5 +31,4 @@
    !    WARNING: be carefull about the order when reading the restart
         !   !!gm  this warning should be obsolet with IOM
-   INTEGER, PUBLIC, PARAMETER ::   jp_l  = jp_lobster   !: cumulative number of already defined TRC
    INTEGER, PUBLIC, PARAMETER ::   jpdic = jp_l +  1    !: dissolved inoganic carbon concentration 
    INTEGER, PUBLIC, PARAMETER ::   jptal = jp_l +  2    !: total alkalinity 
@@ -68,5 +69,4 @@
    !    WARNING: be carefull about the order when reading the restart
         !   !!gm  this warning should be obsolet with IOM
-   INTEGER, PUBLIC, PARAMETER ::   jp_l  = jp_lobster   !: cumulative number of TRC
    INTEGER, PUBLIC, PARAMETER ::   jpdic = jp_l +  1    !: dissolved inoganic carbon concentration 
    INTEGER, PUBLIC, PARAMETER ::   jptal = jp_l +  2    !: total alkalinity 
Index: anches/dev_001_GM/NEMO/TOP_SRC/PISCES/trclsm.pisces.h90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/PISCES/trclsm.pisces.h90	(revision 767)
+++ 	(revision )
@@ -1,204 +1,0 @@
-   !!----------------------------------------------------------------------
-   !!                     ***  trclsm.pisces.h90  ***  
-   !! TOP :   Definition some run parameter for PISCES biological model
-   !!----------------------------------------------------------------------
-   !! History :    -  !  1999-10 (M.A. Foujols, M. Levy) original code
-   !!              -  !  2000-01 (L. Bopp) hamocc3, p3zd
-   !!             1.0 !  2003-08 (C. Ethe)  module F90
-   !!----------------------------------------------------------------------
-
-   !!----------------------------------------------------------------------
-   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005) 
-   !! $Id $ 
-   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
-   !!----------------------------------------------------------------------
-
-CONTAINS
-
-   SUBROUTINE trc_lsm
-      !!----------------------------------------------------------------------
-      !!                     ***  trc_lsm  ***  
-      !!
-      !! ** Purpose :   read PISCES namelist
-      !!
-      !! ** input   :   file 'namelist.trc.sms' containing the following
-      !!             namelist: natext, natbio, natsms
-      !!                       natkriest ("key_trc_kriest")
-      !!----------------------------------------------------------------------
-      CHARACTER (len=32) ::   clname
-      !!
-      NAMELIST/natext/ atcco2
-      NAMELIST/natbio/ caco3r, kdca, nca, part,                               &
-         &             dispo0,conc0,oxymin,grosip, nrdttrc,                   &
-         &             pislope, excret,wsbio,wchl,wchld,resrat,mprat,mzrat,   &
-         &             grazrat,xprefc,xprefp,unass,xkgraz,xkmort,xksi1,       &
-         &             xksi2,xremip,xremik,xsirem,xkdoc1,xkdoc2,              &
-         &             excret2,resrat2,mprat2,mpratm,mzrat2,grazrat2,         &
-         &             xprefz, xprefpoc, unass2, xkgraz2, xlam1,              &
-         &             ferat3,conc1,conc2,conc3,concnnh4,concdnh4,            &
-         &             nitrif,epsher,epsher2,pislope2,wsbio2,sigma1,          &
-         &             sigma2, zprefc, zprefp, zprefd,fecnm,fecdm,            &
-         &             chlcnm,chlcdm, sedfeinput
-      NAMELIST/natsms/bdustfer, briver, bndepo, bsedinput
-#if defined key_trc_kriest
-      NAMELIST/natkriest/ xkr_eta  , xkr_zeta , xkr_sfact, xkr_mass_min, xkr_mass_max,   &
-         &                xkr_dnano, xkr_ddiat, xkr_dmeso, xkr_daggr   , xkr_stick
-#endif
-      !!----------------------------------------------------------------------
-
-
-      IF(lwp) WRITE(numout,*)
-      IF(lwp) WRITE(numout,*) ' trc_lsm : read PISCES namelists'
-      IF(lwp) WRITE(numout,*) ' ~~~~~~~'
-
-
-      !                               ! Open the namelist file
-      !                               ! ----------------------
-      clname ='namelist.trc.sms'
-      CALL ctlopn( numnat, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL',   &
-         &           1, numout, .FALSE., 1 )
-
-      !                               ! natext : Atmospheric parameters
-      !                               ! -------------------- ----------
-      REWIND( numnat )                     ! read natext
-      READ  ( numnat, natext )
-
-      IF(lwp) THEN                         ! control print
-         WRITE(numout,*)
-         WRITE(numout,*) ' Namelist : natext'
-         WRITE(numout,*) '    atmospheric pCO2                         atcco2 = ',atcco2
-      ENDIF
-
-
-      !                               ! natbio : biological parameters
-      !                               ! ------------------------------
-      REWIND( numnat )                     ! read natbio
-      READ  ( numnat, natbio )
-
-      IF(lwp) THEN                         ! control print
-         WRITE(numout,*) ' Namelist : natbio'
-         WRITE(numout,*) '    mean rainratio                            caco3r    =', caco3r
-         WRITE(numout,*) '    diss. rate constant calcite (per month)   kdca      =', kdca
-         WRITE(numout,*) '    order of reaction for calcite dissolution nca       =', nca
-         WRITE(numout,*) '    part of calcite not dissolved in guts     part      =', part
-         WRITE(numout,*) '    mean Si/C ratio                           grosip    =', grosip
-         WRITE(numout,*) '    Calcite dissolution half saturation       dispo0    =', dispo0
-         WRITE(numout,*) '    Phosphate half saturation                 conc0     =', conc0
-         WRITE(numout,*) '    frequence pour la biologie                nrdttrc   =', nrdttrc
-         WRITE(numout,*) '    P-I slope                                 pislope   =', pislope
-         WRITE(numout,*) '    excretion ratio of phytoplankton          excret    =', excret
-         WRITE(numout,*) '    POC sinking speed                         wsbio     =', wsbio
-         WRITE(numout,*) '    quadratic mortality of phytoplankton      wchl      =', wchl
-         WRITE(numout,*) '    maximum quadratic mortality of diatoms    wchld     =', wchld
-         WRITE(numout,*) '    exsudation rate of zooplankton            resrat    =', resrat
-         WRITE(numout,*) '    phytoplankton mortality rate              mprat     =', mprat
-         WRITE(numout,*) '    zooplankton mortality rate                mzrat     =', mzrat
-         WRITE(numout,*) '    zoo preference for phyto                  xprefc    =', xprefc
-         WRITE(numout,*) '    zoo preference for POC                    xprefp    =', xprefp
-         WRITE(numout,*) '    maximal zoo grazing rate                  grazrat   =', grazrat
-         WRITE(numout,*) '    non assimilated fraction of phyto by zoo  unass     =', unass
-         WRITE(numout,*) '    half sturation constant for grazing       xkgraz    =', xkgraz
-         WRITE(numout,*) '    half saturation constant for mortality    xkmort    =', xkmort
-         WRITE(numout,*) '    half saturation constant for Si uptake    xksi1     =', xksi1
-         WRITE(numout,*) '    half saturation constant for Si/C         xksi2     =', xksi2
-         WRITE(numout,*) '    remineralisation rate of POC              xremip    =', xremip
-         WRITE(numout,*) '    remineralization rate of DOC              xremik    =', xremik
-         WRITE(numout,*) '    remineralization rate of Si               xsirem    =', xsirem 
-         WRITE(numout,*) '    1st half-sat. of DOC remineralization     xkdoc1    =', xkdoc1
-         WRITE(numout,*) '    2nd half-sat. of DOC remineralization     xkdoc2    =', xkdoc2
-         WRITE(numout,*) '    excretion ratio of diatoms                excret2   =', excret2
-         WRITE(numout,*) '    exsudation rate of mesozooplankton        resrat2   =', resrat2
-         WRITE(numout,*) '    Diatoms mortality rate                    mprat2    =', mprat2
-         WRITE(numout,*) '    Phytoplankton minimum mortality rate      mpratm    =', mpratm
-         WRITE(numout,*) '    mesozooplankton mortality rate            mzrat2    =', mzrat2
-         WRITE(numout,*) '    zoo preference for zoo                    xprefz    =', xprefz
-         WRITE(numout,*) '    zoo preference for poc                    xprefpoc  =', xprefpoc
-         WRITE(numout,*) '    maximal mesozoo grazing rate              grazrat2  =', grazrat2
-         WRITE(numout,*) '    non assimilated fraction of P by mesozoo  unass2    =', unass2
-         WRITE(numout,*) '    Efficicency of Mesozoo growth             epsher2   =', epsher2 
-         WRITE(numout,*) '    Efficiency of microzoo growth             epsher    =', epsher
-         WRITE(numout,*) '    half sturation constant for grazing 2     xkgraz2   =', xkgraz2
-         WRITE(numout,*) '    Maximum aggregation rate for diatoms      wchld     =', wchld
-         WRITE(numout,*) '    scavenging rate of Iron                   xlam1     =', xlam1
-         WRITE(numout,*) '    Fe/C in zooplankton                       ferat3    =', ferat3
-         WRITE(numout,*) '    Phosphate half saturation for diatoms     conc1     =', conc1
-         WRITE(numout,*) '    Iron half saturation for phyto            conc2     =', conc2
-         WRITE(numout,*) '    Iron half saturation for diatoms          conc3     =', conc3
-         WRITE(numout,*) '    NH4 half saturation for phyto             concnnh4  =', concnnh4
-         WRITE(numout,*) '    NH4 half saturation for diatoms           concdnh4  =', concdnh4
-         WRITE(numout,*) '    NH4 nitrification rate                    nitrif    =', nitrif
-         WRITE(numout,*) '    P-I slope  for diatoms                    pislope2  =', pislope2
-         WRITE(numout,*) '    Big particles sinking speed               wsbio2    =', wsbio2
-         WRITE(numout,*) '    Fraction of microzoo excretion as DOM     sigma1    =', sigma1
-         WRITE(numout,*) '    Fraction of mesozoo excretion as DOM      sigma2    =', sigma2
-         WRITE(numout,*) '    Microzoo preference for POM               zprefc    =', zprefc
-         WRITE(numout,*) '    Microzoo preference for Nanophyto         zprefp    =', zprefp
-         WRITE(numout,*) '    Microzoo preference for Diatoms           zprefd    =', zprefd
-         WRITE(numout,*) '    Minimum Chl/C in nanophytoplankton        chlcnm    =', chlcnm
-         WRITE(numout,*) '    Minimum Chl/C in diatoms                  chlcdm    =', chlcdm
-         WRITE(numout,*) '    Maximum Fe/C in nanophytoplankton         fecnm     =', fecnm
-         WRITE(numout,*) '    Minimum Fe/C in diatoms                   fecdm     =', fecdm
-         WRITE(numout,*) '    Coastal release of Iron                   sedfeinput=', sedfeinput
-      ENDIF
-
-      !                               ! natsms : SMS parameters
-      !                               ! -----------------------
-      REWIND( numnat )                     ! read natsms
-      READ  ( numnat, natsms )
-      IF(lwp) THEN
-         WRITE(numout,*) ' '
-         WRITE(numout,*) ' Namelist : natsms'
-         WRITE(numout,*) '    Dust input from the atmosphere           bdustfer  = ', bdustfer
-         WRITE(numout,*) '    River input of nutrients                 briver    = ', briver
-         WRITE(numout,*) '    Atmospheric deposition of N              bndepo    = ', bndepo
-         WRITE(numout,*) '    Fe input from sediments                  bsedinput = ', bsedinput
-      ENDIF
-
-#if defined key_trc_kriest
-
-      !                               ! natkriest : kriest parameters
-      !                               ! -----------------------------
-      REWIND( numnat )                     ! read natkriest
-      READ  ( numnat, natkriest )
-
-      IF(lwp) THEN
-         WRITE(numout,*)
-         WRITE(numout,*) ' Namelist : natkriest'
-         WRITE(numout,*) '    Sinking  exponent                        xkr_eta      = ', xkr_eta 
-         WRITE(numout,*) '    N content exponent                       xkr_zeta     = ', xkr_zeta
-         WRITE(numout,*) '    Sinking factor                           xkr_sfact    = ', xkr_sfact
-         WRITE(numout,*) '    Stickiness                               xkr_stick    = ', xkr_stick
-         WRITE(numout,*) '    Minimum mass for Aggregates              xkr_mass_min = ', xkr_mass_min
-         WRITE(numout,*) '    Maximum mass for Aggregates              xkr_mass_max = ', xkr_mass_max
-         WRITE(numout,*) '    Size of particles in nano pool           xkr_dnano    = ', xkr_dnano
-         WRITE(numout,*) '    Size of particles in diatoms pool        xkr_ddiat    = ', xkr_ddiat
-         WRITE(numout,*) '    Size of particles in mesozoo pool        xkr_dmeso    = ', xkr_dmeso
-         WRITE(numout,*) '    Size of particles in aggregates pool     xkr_daggr    = ', xkr_daggr
-     ENDIF
-
-
-     ! Computation of some variables
-     xkr_massp = 5.7E-6 * 7.6 * xkr_mass_min**xkr_zeta
-     
-     ! max and min vertical particle speed
-     xkr_wsbio_min = xkr_sfact * xkr_mass_min**xkr_eta
-     xkr_wsbio_max = xkr_sfact * xkr_mass_max**xkr_eta
-     WRITE(numout,*) ' max and min vertical particle speed ', xkr_wsbio_min, xkr_wsbio_max
-     
-     !
-     !    effect of the sizes of the different living pools on particle numbers
-     !    nano = 2um-20um -> mean size=6.32 um -> ws=2.596 -> xnum=xnnano=2.337
-     !    diat and microzoo = 10um-200um -> 44.7 -> 8.732 -> xnum=xndiat=3.718
-     !    mesozoo = 200um-2mm -> 632.45 -> 45.14 -> xnum=xnmeso=7.147
-     !    aggregates = 200um-10mm -> 1414 -> 74.34 -> xnum=xnaggr=9.877
-     !    doc aggregates = 1um
-     ! ----------------------------------------------------------
-
-     xkr_nnano = 1. / ( xkr_massp * xkr_dnano )
-     xkr_ndiat = 1. / ( xkr_massp * xkr_ddiat )
-     xkr_nmeso = 1. / ( xkr_massp * xkr_dmeso )
-     xkr_naggr = 1. / ( xkr_massp * xkr_daggr )
-    
-#endif
-      !
-   END SUBROUTINE trc_lsm
Index: /branches/dev_001_GM/NEMO/TOP_SRC/PISCES/trclsm_pisces.F90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/PISCES/trclsm_pisces.F90	(revision 768)
+++ /branches/dev_001_GM/NEMO/TOP_SRC/PISCES/trclsm_pisces.F90	(revision 768)
@@ -0,0 +1,231 @@
+   !!----------------------------------------------------------------------
+   !!                     ***  trclsm.pisces.h90  ***  
+   !! TOP :   Definition some run parameter for PISCES biological model
+   !!----------------------------------------------------------------------
+   !! History :    -   !  1999-10 (M.A. Foujols, M. Levy) original code
+   !!              -   !  2000-01 (L. Bopp) hamocc3, p3zd
+   !!             1.0  !  2003-08 (C. Ethe)  module F90
+   !!             2.0  !  2007-12  (C. Ethe, G. Madec) from trclsm.pisces.h90
+   !!----------------------------------------------------------------------
+#if defined key_trc_pisces
+   !!----------------------------------------------------------------------
+   !!   'key_trc_pisces'   :                               PISCES bio-model
+   !!----------------------------------------------------------------------
+   !! trc_lsm_pisces       : PISCES model namelist read
+   !!----------------------------------------------------------------------
+   USE oce_trc         ! Ocean variables
+   USE par_trc         ! TOP parameters
+   USE trc             ! TOP variables
+   USE sms             ! sms trends
+
+   IMPLICIT NONE
+   PRIVATE
+
+   PUBLIC   trc_lsm_pisces   ! called by trclsm.F90 module
+
+   !!----------------------------------------------------------------------
+   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007) 
+   !! $Id$ 
+   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
+   !!----------------------------------------------------------------------
+
+CONTAINS
+
+   SUBROUTINE trc_lsm_pisces
+      !!----------------------------------------------------------------------
+      !!                     ***  trc_lsm_pisces  ***  
+      !!
+      !! ** Purpose :   read PISCES namelist
+      !!
+      !! ** input   :   file 'namelist.trc.sms' containing the following
+      !!             namelist: natext, natbio, natsms
+      !!                       natkriest ("key_trc_kriest")
+      !!----------------------------------------------------------------------
+      CHARACTER (len=32) ::   clname
+      !!
+      NAMELIST/natext/ atcco2
+      NAMELIST/natbio/ caco3r, kdca, nca, part,                               &
+         &             dispo0,conc0,oxymin,grosip, nrdttrc,                   &
+         &             pislope, excret,wsbio,wchl,wchld,resrat,mprat,mzrat,   &
+         &             grazrat,xprefc,xprefp,unass,xkgraz,xkmort,xksi1,       &
+         &             xksi2,xremip,xremik,xsirem,xkdoc1,xkdoc2,              &
+         &             excret2,resrat2,mprat2,mpratm,mzrat2,grazrat2,         &
+         &             xprefz, xprefpoc, unass2, xkgraz2, xlam1,              &
+         &             ferat3,conc1,conc2,conc3,concnnh4,concdnh4,            &
+         &             nitrif,epsher,epsher2,pislope2,wsbio2,sigma1,          &
+         &             sigma2, zprefc, zprefp, zprefd,fecnm,fecdm,            &
+         &             chlcnm,chlcdm, sedfeinput
+      NAMELIST/natsms/bdustfer, briver, bndepo, bsedinput
+#if defined key_trc_kriest
+      NAMELIST/natkriest/ xkr_eta  , xkr_zeta , xkr_sfact, xkr_mass_min, xkr_mass_max,   &
+         &                xkr_dnano, xkr_ddiat, xkr_dmeso, xkr_daggr   , xkr_stick
+#endif
+      !!----------------------------------------------------------------------
+
+      IF(lwp) WRITE(numout,*)
+      IF(lwp) WRITE(numout,*) ' trc_lsm_pisces : read PISCES namelists'
+      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~'
+
+
+      !                               ! Open the namelist file
+      !                               ! ----------------------
+      clname ='namelist.trc.sms'
+      CALL ctlopn( numnat, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL',   &
+         &           1, numout, .FALSE., 1 )
+
+      !                               ! natext : Atmospheric parameters
+      !                               ! -------------------- ----------
+      REWIND( numnat )                     ! read natext
+      READ  ( numnat, natext )
+
+      IF(lwp) THEN                         ! control print
+         WRITE(numout,*)
+         WRITE(numout,*) ' Namelist : natext'
+         WRITE(numout,*) '    atmospheric pCO2                         atcco2 = ',atcco2
+      ENDIF
+
+
+      !                               ! natbio : biological parameters
+      !                               ! ------------------------------
+      REWIND( numnat )                     ! read natbio
+      READ  ( numnat, natbio )
+
+      IF(lwp) THEN                         ! control print
+         WRITE(numout,*) ' Namelist : natbio'
+         WRITE(numout,*) '    mean rainratio                            caco3r    =', caco3r
+         WRITE(numout,*) '    diss. rate constant calcite (per month)   kdca      =', kdca
+         WRITE(numout,*) '    order of reaction for calcite dissolution nca       =', nca
+         WRITE(numout,*) '    part of calcite not dissolved in guts     part      =', part
+         WRITE(numout,*) '    mean Si/C ratio                           grosip    =', grosip
+         WRITE(numout,*) '    Calcite dissolution half saturation       dispo0    =', dispo0
+         WRITE(numout,*) '    Phosphate half saturation                 conc0     =', conc0
+         WRITE(numout,*) '    frequence pour la biologie                nrdttrc   =', nrdttrc
+         WRITE(numout,*) '    P-I slope                                 pislope   =', pislope
+         WRITE(numout,*) '    excretion ratio of phytoplankton          excret    =', excret
+         WRITE(numout,*) '    POC sinking speed                         wsbio     =', wsbio
+         WRITE(numout,*) '    quadratic mortality of phytoplankton      wchl      =', wchl
+         WRITE(numout,*) '    maximum quadratic mortality of diatoms    wchld     =', wchld
+         WRITE(numout,*) '    exsudation rate of zooplankton            resrat    =', resrat
+         WRITE(numout,*) '    phytoplankton mortality rate              mprat     =', mprat
+         WRITE(numout,*) '    zooplankton mortality rate                mzrat     =', mzrat
+         WRITE(numout,*) '    zoo preference for phyto                  xprefc    =', xprefc
+         WRITE(numout,*) '    zoo preference for POC                    xprefp    =', xprefp
+         WRITE(numout,*) '    maximal zoo grazing rate                  grazrat   =', grazrat
+         WRITE(numout,*) '    non assimilated fraction of phyto by zoo  unass     =', unass
+         WRITE(numout,*) '    half sturation constant for grazing       xkgraz    =', xkgraz
+         WRITE(numout,*) '    half saturation constant for mortality    xkmort    =', xkmort
+         WRITE(numout,*) '    half saturation constant for Si uptake    xksi1     =', xksi1
+         WRITE(numout,*) '    half saturation constant for Si/C         xksi2     =', xksi2
+         WRITE(numout,*) '    remineralisation rate of POC              xremip    =', xremip
+         WRITE(numout,*) '    remineralization rate of DOC              xremik    =', xremik
+         WRITE(numout,*) '    remineralization rate of Si               xsirem    =', xsirem 
+         WRITE(numout,*) '    1st half-sat. of DOC remineralization     xkdoc1    =', xkdoc1
+         WRITE(numout,*) '    2nd half-sat. of DOC remineralization     xkdoc2    =', xkdoc2
+         WRITE(numout,*) '    excretion ratio of diatoms                excret2   =', excret2
+         WRITE(numout,*) '    exsudation rate of mesozooplankton        resrat2   =', resrat2
+         WRITE(numout,*) '    Diatoms mortality rate                    mprat2    =', mprat2
+         WRITE(numout,*) '    Phytoplankton minimum mortality rate      mpratm    =', mpratm
+         WRITE(numout,*) '    mesozooplankton mortality rate            mzrat2    =', mzrat2
+         WRITE(numout,*) '    zoo preference for zoo                    xprefz    =', xprefz
+         WRITE(numout,*) '    zoo preference for poc                    xprefpoc  =', xprefpoc
+         WRITE(numout,*) '    maximal mesozoo grazing rate              grazrat2  =', grazrat2
+         WRITE(numout,*) '    non assimilated fraction of P by mesozoo  unass2    =', unass2
+         WRITE(numout,*) '    Efficicency of Mesozoo growth             epsher2   =', epsher2 
+         WRITE(numout,*) '    Efficiency of microzoo growth             epsher    =', epsher
+         WRITE(numout,*) '    half sturation constant for grazing 2     xkgraz2   =', xkgraz2
+         WRITE(numout,*) '    Maximum aggregation rate for diatoms      wchld     =', wchld
+         WRITE(numout,*) '    scavenging rate of Iron                   xlam1     =', xlam1
+         WRITE(numout,*) '    Fe/C in zooplankton                       ferat3    =', ferat3
+         WRITE(numout,*) '    Phosphate half saturation for diatoms     conc1     =', conc1
+         WRITE(numout,*) '    Iron half saturation for phyto            conc2     =', conc2
+         WRITE(numout,*) '    Iron half saturation for diatoms          conc3     =', conc3
+         WRITE(numout,*) '    NH4 half saturation for phyto             concnnh4  =', concnnh4
+         WRITE(numout,*) '    NH4 half saturation for diatoms           concdnh4  =', concdnh4
+         WRITE(numout,*) '    NH4 nitrification rate                    nitrif    =', nitrif
+         WRITE(numout,*) '    P-I slope  for diatoms                    pislope2  =', pislope2
+         WRITE(numout,*) '    Big particles sinking speed               wsbio2    =', wsbio2
+         WRITE(numout,*) '    Fraction of microzoo excretion as DOM     sigma1    =', sigma1
+         WRITE(numout,*) '    Fraction of mesozoo excretion as DOM      sigma2    =', sigma2
+         WRITE(numout,*) '    Microzoo preference for POM               zprefc    =', zprefc
+         WRITE(numout,*) '    Microzoo preference for Nanophyto         zprefp    =', zprefp
+         WRITE(numout,*) '    Microzoo preference for Diatoms           zprefd    =', zprefd
+         WRITE(numout,*) '    Minimum Chl/C in nanophytoplankton        chlcnm    =', chlcnm
+         WRITE(numout,*) '    Minimum Chl/C in diatoms                  chlcdm    =', chlcdm
+         WRITE(numout,*) '    Maximum Fe/C in nanophytoplankton         fecnm     =', fecnm
+         WRITE(numout,*) '    Minimum Fe/C in diatoms                   fecdm     =', fecdm
+         WRITE(numout,*) '    Coastal release of Iron                   sedfeinput=', sedfeinput
+      ENDIF
+
+      !                               ! natsms : SMS parameters
+      !                               ! -----------------------
+      REWIND( numnat )                     ! read natsms
+      READ  ( numnat, natsms )
+      IF(lwp) THEN
+         WRITE(numout,*) ' '
+         WRITE(numout,*) ' Namelist : natsms'
+         WRITE(numout,*) '    Dust input from the atmosphere           bdustfer  = ', bdustfer
+         WRITE(numout,*) '    River input of nutrients                 briver    = ', briver
+         WRITE(numout,*) '    Atmospheric deposition of N              bndepo    = ', bndepo
+         WRITE(numout,*) '    Fe input from sediments                  bsedinput = ', bsedinput
+      ENDIF
+
+#if defined key_trc_kriest
+
+      !                               ! natkriest : kriest parameters
+      !                               ! -----------------------------
+      REWIND( numnat )                     ! read natkriest
+      READ  ( numnat, natkriest )
+
+      IF(lwp) THEN
+         WRITE(numout,*)
+         WRITE(numout,*) ' Namelist : natkriest'
+         WRITE(numout,*) '    Sinking  exponent                        xkr_eta      = ', xkr_eta 
+         WRITE(numout,*) '    N content exponent                       xkr_zeta     = ', xkr_zeta
+         WRITE(numout,*) '    Sinking factor                           xkr_sfact    = ', xkr_sfact
+         WRITE(numout,*) '    Stickiness                               xkr_stick    = ', xkr_stick
+         WRITE(numout,*) '    Minimum mass for Aggregates              xkr_mass_min = ', xkr_mass_min
+         WRITE(numout,*) '    Maximum mass for Aggregates              xkr_mass_max = ', xkr_mass_max
+         WRITE(numout,*) '    Size of particles in nano pool           xkr_dnano    = ', xkr_dnano
+         WRITE(numout,*) '    Size of particles in diatoms pool        xkr_ddiat    = ', xkr_ddiat
+         WRITE(numout,*) '    Size of particles in mesozoo pool        xkr_dmeso    = ', xkr_dmeso
+         WRITE(numout,*) '    Size of particles in aggregates pool     xkr_daggr    = ', xkr_daggr
+     ENDIF
+
+
+     ! Computation of some variables
+     xkr_massp = 5.7E-6 * 7.6 * xkr_mass_min**xkr_zeta
+     
+     ! max and min vertical particle speed
+     xkr_wsbio_min = xkr_sfact * xkr_mass_min**xkr_eta
+     xkr_wsbio_max = xkr_sfact * xkr_mass_max**xkr_eta
+     WRITE(numout,*) ' max and min vertical particle speed ', xkr_wsbio_min, xkr_wsbio_max
+     
+     !
+     !    effect of the sizes of the different living pools on particle numbers
+     !    nano = 2um-20um -> mean size=6.32 um -> ws=2.596 -> xnum=xnnano=2.337
+     !    diat and microzoo = 10um-200um -> 44.7 -> 8.732 -> xnum=xndiat=3.718
+     !    mesozoo = 200um-2mm -> 632.45 -> 45.14 -> xnum=xnmeso=7.147
+     !    aggregates = 200um-10mm -> 1414 -> 74.34 -> xnum=xnaggr=9.877
+     !    doc aggregates = 1um
+     ! ----------------------------------------------------------
+
+     xkr_nnano = 1. / ( xkr_massp * xkr_dnano )
+     xkr_ndiat = 1. / ( xkr_massp * xkr_ddiat )
+     xkr_nmeso = 1. / ( xkr_massp * xkr_dmeso )
+     xkr_naggr = 1. / ( xkr_massp * xkr_daggr )
+    
+#endif
+      !
+   END SUBROUTINE trc_lsm_pisces
+
+#else
+   !!----------------------------------------------------------------------
+   !!  Dummy module :                                   No PISCES bio-model
+   !!----------------------------------------------------------------------
+CONTAINS
+   SUBROUTINE trc_lsm_pisces                      ! Empty routine
+   END  SUBROUTINE  trc_lsm_pisces
+#endif  
+
+   !!======================================================================
+END MODULE trclsm_pisces
Index: anches/dev_001_GM/NEMO/TOP_SRC/TRP/trcstp.F90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/TRP/trcstp.F90	(revision 767)
+++ 	(revision )
@@ -1,98 +1,0 @@
-MODULE trcstp
-   !!======================================================================
-   !!                       ***  MODULE trcstp  ***
-   !! Time-stepping    : time loop of opa for passive tracer
-   !!======================================================================
-#if defined key_passivetrc
-   !!----------------------------------------------------------------------
-   !!   trc_stp      : passive tracer system time-stepping
-   !!----------------------------------------------------------------------
-   !! * Modules used
-   USE oce_trc          ! ocean dynamics and active tracers variables
-   USE trc              ! ocean passive tracers variables 
-   USE trctrp           ! passive tracers transport
-   USE trcsms           ! passive tracers sources and sinks
-   USE prtctl_trc       ! Print control for debbuging
-   USE trcdia
-   USE trcdit
-   USE trcrst
-
-   IMPLICIT NONE
-   PRIVATE
-
-   !! * Routine accessibility
-   PUBLIC trc_stp           ! called by step
-   !!----------------------------------------------------------------------
-   !!   TOP 1.0 , LOCEAN-IPSL (2005) 
-   !! $Header$ 
-   !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 
-   !!----------------------------------------------------------------------
-
-CONTAINS
-
-   SUBROUTINE trc_stp( kt, kindic )
-      !!-------------------------------------------------------------------
-      !!                     ***  ROUTINE trc_stp  ***
-      !!                      
-      !! ** Purpose : Time loop of opa for passive tracer
-      !! 
-      !! ** Method  : 
-      !!              Compute the passive tracers trends 
-      !!              Update the passive tracers
-      !!
-      !! History :
-      !!   9.0  !  04-03  (C. Ethe)  Original
-      !!-------------------------------------------------------------------
-      !! * Arguments
-      INTEGER, INTENT( in ) ::  kt  ! ocean time-step index
-      INTEGER, INTENT( in ) ::  kindic
-      CHARACTER (len=25) :: charout
-
-      ! this ROUTINE is called only every ndttrc time step
-      IF( MOD( kt , ndttrc ) /= 0 ) RETURN
-
-      CALL trc_rst_opn( kt )      ! Open tracer restart file 
-
-       ! tracers: sink and source 
-      IF(ln_ctl) THEN
-         WRITE(charout,FMT="('kt =', I4,'  d/m/y =',I2,I2,I4)") kt, nday, nmonth, nyear
-         CALL prt_ctl_trc_info(charout)
-      ENDIF
-
-      CALL trc_sms( kt )
-
-      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
-         WRITE(charout, FMT="('SMS')")
-         CALL prt_ctl_trc_info(charout)
-         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm)
-      ENDIF
-
-      ! transport of passive tracers
-      CALL trc_trp( kt )
-
-      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
-         WRITE(charout, FMT="('TRP')")
-         CALL prt_ctl_trc_info(charout)
-         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm)
-      ENDIF
-
-      IF( lrst_trc ) CALL trc_rst_wri( kt )  ! write tracer restart file
-
-      CALL trc_dia( kt, kindic )     ! diagnostics
-
-
-   END SUBROUTINE trc_stp
-
-#else
-   !!----------------------------------------------------------------------
-   !!   Default key                                     NO passive tracers
-   !!----------------------------------------------------------------------
-CONTAINS
-   SUBROUTINE trc_stp( kt )        ! Empty routine
-      INTEGER, INTENT(in) :: kt
-      WRITE(*,*) 'trc_stp: You should not have seen this print! error?', kt
-   END SUBROUTINE trc_stp
-#endif
-
-   !!======================================================================
-END MODULE trcstp
Index: /branches/dev_001_GM/NEMO/TOP_SRC/par_trc.F90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/par_trc.F90	(revision 767)
+++ /branches/dev_001_GM/NEMO/TOP_SRC/par_trc.F90	(revision 768)
@@ -11,7 +11,9 @@
    !!----------------------------------------------------------------------
    !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007) 
-   !! $Id:$ 
+   !! $Id$ 
    !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
    !!----------------------------------------------------------------------
+   USE par_kind          ! kind parameters
+   !
    USE par_LOBSTER   ! LOBSTER model
    USE par_PISCES    ! PISCES  model
Index: /branches/dev_001_GM/NEMO/TOP_SRC/trc.F90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/trc.F90	(revision 767)
+++ /branches/dev_001_GM/NEMO/TOP_SRC/trc.F90	(revision 768)
@@ -10,5 +10,5 @@
    !!----------------------------------------------------------------------
    !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005) 
-   !! $Id:$ 
+   !! $Id$ 
    !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
    !!----------------------------------------------------------------------
@@ -139,12 +139,4 @@
 # endif
 
-  !!  1D configuration
-  !! --------------------------------------------------
-# if defined key_cfg_1d
-      LOGICAL, PARAMETER ::   lk_trccfg_1d   = .TRUE.   !: 1D pass. tracer configuration flag
-# else   
-      LOGICAL, PARAMETER ::   lk_trccfg_1d   = .FALSE.  !: 1D pass. tracer configuration flag
-# endif
-
 #else
    !!----------------------------------------------------------------------
Index: /branches/dev_001_GM/NEMO/TOP_SRC/trcdit.F90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/trcdit.F90	(revision 767)
+++ /branches/dev_001_GM/NEMO/TOP_SRC/trcdit.F90	(revision 768)
@@ -701,8 +701,11 @@
    END SUBROUTINE trcdib_wr
 
+# endif 
+
 #else
    !!----------------------------------------------------------------------
    !!  Dummy module :                                     No passive tracer
    !!----------------------------------------------------------------------
+CONTAINS
    SUBROUTINE trcdit_wr( kt, kindic )                      ! Dummy routine
       INTEGER, INTENT ( in ) ::   kt, kindic
Index: /branches/dev_001_GM/NEMO/TOP_SRC/trcini.F90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/trcini.F90	(revision 767)
+++ /branches/dev_001_GM/NEMO/TOP_SRC/trcini.F90	(revision 768)
@@ -7,4 +7,5 @@
    !!             1.0  !  2005-03  (O. Aumont, A. El Moussaoui) F90
    !!              -   !  2005-10  (C. Ethe) Module
+   !!             2.0  !  2007-12  (C. Ethe, G. Madec) re-writing
    !!----------------------------------------------------------------------
    !!   trc_ini :   Initialization for passive tracer
@@ -15,4 +16,5 @@
    USE trcini_pisces   ! PISCES  initialisation
    USE trcini_my_trc   ! MY_TRC  initialisation
+   USE in_out_manager  ! I/O manager
 
    IMPLICIT NONE
@@ -38,5 +40,5 @@
       !!             model (LOBSTER, PISCES, CFC, MY_TRC)
       !!-------------------------------------------------------------------
-
+      !
       IF(lwp) WRITE(numout,*)
       IF(lwp) WRITE(numout,*) 'trc_ini : initial set up of the tracer models'
@@ -47,13 +49,13 @@
       ENDIF
 
-      IF( lk_trc_pisces  ) THEN   ;   CALL trc_init_pisces      ! PISCES  bio-model
+      IF( lk_trc_pisces  ) THEN   ;   CALL trc_ini_pisces       ! PISCES  bio-model
       ELSE                        ;   IF(lwp) WRITE(numout,*) '          PISCES not used'
       ENDIF
 
-      IF( lk_trc_cfc     ) THEN   ;   CALL trc_init_cfc         ! CFC     tracers
+      IF( lk_trc_cfc     ) THEN   ;   CALL trc_ini_cfc          ! CFC     tracers
       ELSE                        ;   IF(lwp) WRITE(numout,*) '          CFC not used'
       ENDIF
 
-      IF( lk_trc_my_trc  ) THEN   ;   CALL trc_init_my_trc      ! MY_TRC  tracers
+      IF( lk_my_trc      ) THEN   ;   CALL trc_ini_my_trc       ! MY_TRC  tracers
       ELSE                        ;   IF(lwp) WRITE(numout,*) '          MY_TRC not used'
       ENDIF
Index: /branches/dev_001_GM/NEMO/TOP_SRC/trclec.F90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/trclec.F90	(revision 767)
+++ /branches/dev_001_GM/NEMO/TOP_SRC/trclec.F90	(revision 768)
@@ -47,5 +47,5 @@
       !!---------------------------------------------------------------------
       INTEGER ::  ji
-      CHARACTER (len=32) :: clname
+      CHARACTER (len=32) ::   clname
       !!
       NAMELIST/nattrc/ nwritetrc, lrsttr, nrsttr, ctrcnm, ctrcnl, ctrcun, lutini     ! general   
Index: /branches/dev_001_GM/NEMO/TOP_SRC/trclsm.F90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/trclsm.F90	(revision 767)
+++ /branches/dev_001_GM/NEMO/TOP_SRC/trclsm.F90	(revision 768)
@@ -5,8 +5,5 @@
    !!======================================================================
    !! History :   1.0  !  2004-03 (C. Ethe) Original code
-   !!----------------------------------------------------------------------
-   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005) 
-   !! $Header:$ 
-   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
+   !!             2.0  !  2007-12  (C. Ethe, G. Madec) re-writing
    !!----------------------------------------------------------------------
 #if defined key_passivetrc
@@ -14,34 +11,57 @@
    !!   'key_passivetrc'                                    Passive tracers
    !!----------------------------------------------------------------------
-   !!   trc_lsm   : eads specific namelist for sms terms
+   !!   trc_lsm   : reads specific namelist for sms terms
    !!----------------------------------------------------------------------
-   USE oce_trc
-   USE trc
-   USE sms
+   USE par_trc         ! TOP parameters
+   USE trclsm_cfc      ! CFC     initialisation
+   USE trclsm_lobster  ! LOBSTER initialisation
+   USE trclsm_pisces   ! PISCES  initialisation
+   USE trclsm_my_trc   ! MY_TRC  initialisation
+   USE in_out_manager  ! I/O manager
 
    IMPLICIT NONE                             
    PRIVATE
 
-   PUBLIC   trc_lsm      ! calles in ???
+   PUBLIC   trc_lsm      ! called in initrc.F90
 
-#if defined key_trc_lobster1
    !!----------------------------------------------------------------------
-   !!   'key_trc_lobster1'                        LOBSTER1 biological model  
+   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007) 
+   !! $Id$ 
+   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
    !!----------------------------------------------------------------------
-#  include "trclsm.lobster1.h90"
 
-#elif defined key_trc_pisces
-   !!----------------------------------------------------------------------
-   !!   'key_trc_pisces'                            PISCES biological model                  
-   !!----------------------------------------------------------------------
-#  include "trclsm.pisces.h90"
+CONTAINS
 
-#elif defined key_cfc
-   !!----------------------------------------------------------------------
-   !!   'key_cfc'                                                 CFC model                  
-   !!----------------------------------------------------------------------
-#  include "trclsm.cfc.h90"
+   SUBROUTINE trc_lsm
+      !!----------------------------------------------------------------------
+      !!                     ***  trc_lsm  ***  
+      !!
+      !! ** Purpose :   read TOP namelists for the different tracers models
+      !!
+      !! ** Method  :   call the namelist read of each defined tracer
+      !!             model (LOBSTER, PISCES, CFC, MY_TRC)
+      !!----------------------------------------------------------------------
+      !
+      IF(lwp) WRITE(numout,*)
+      IF(lwp) WRITE(numout,*) 'trc_lsm : read namelist of the TOP models'
+      IF(lwp) WRITE(numout,*) '~~~~~~~'
+      !
+      IF( lk_trc_lobster ) THEN   ;   CALL trc_lsm_lobster      ! LOBSTER bio-model
+      ELSE                        ;   IF(lwp) WRITE(numout,*) '          LOBSTER not used'
+      ENDIF
 
-# endif
+      IF( lk_trc_pisces  ) THEN   ;   CALL trc_lsm_pisces      ! PISCES  bio-model
+      ELSE                        ;   IF(lwp) WRITE(numout,*) '          PISCES not used'
+      ENDIF
+
+      IF( lk_trc_cfc     ) THEN   ;   CALL trc_lsm_cfc         ! CFC     tracers
+      ELSE                        ;   IF(lwp) WRITE(numout,*) '          CFC not used'
+      ENDIF
+
+      IF( lk_my_trc      ) THEN   ;   CALL trc_lsm_my_trc      ! MY_TRC  tracers
+      ELSE                        ;   IF(lwp) WRITE(numout,*) '          MY_TRC not used'
+      ENDIF
+      !
+   END SUBROUTINE trc_lsm
 
 #else
@@ -51,5 +71,5 @@
 CONTAINS
    SUBROUTINE trc_lsm                      ! Empty routine
-   END  SUBROUTINE  trc_lsm
+   END  SUBROUTINE trc_lsm
 #endif  
 
Index: /branches/dev_001_GM/NEMO/TOP_SRC/trcrst.F90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/trcrst.F90	(revision 767)
+++ /branches/dev_001_GM/NEMO/TOP_SRC/trcrst.F90	(revision 768)
@@ -17,4 +17,5 @@
    USE trc
    USE sms
+   USE trccfc          ! CFC variables
    USE trctrp_lec   
    USE lib_mpp
@@ -35,5 +36,5 @@
    !!----------------------------------------------------------------------
    !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005) 
-   !! $Id:$ 
+   !! $Id$ 
    !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
    !!----------------------------------------------------------------------
@@ -83,16 +84,18 @@
       !! ** purpose  :   read passive tracer fields in restart files
       !!----------------------------------------------------------------------
-      INTEGER  ::   ji, jj, jk, jn  
-      INTEGER  ::   iarak0    
+      INTEGER  ::   jn  
+      INTEGER  ::   iarak0
       REAL(wp) ::   zkt, zarak0
+# if defined key_trc_pisces 
+      REAL(wp) ::   ztrasum
+      INTEGER  ::   ji, jj, jk
       REAL(wp) ::   caralk, bicarb, co3
-      REAL(wp) ::   ztrasum
+# endif
       !!----------------------------------------------------------------------
 
       IF(lwp) WRITE(numout,*)
-      IF(lwp) WRITE(numout,*) 'trc_rst_read : read restart file of the passive tracers'
+      IF(lwp) WRITE(numout,*) 'trc_rst_read : read the TOP restart file'
       IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~'
 
-      ztrasum = 0.e0
       IF( ln_trcadv_cen2 .OR. ln_trcadv_tvd ) THEN   ;   iarak0 = 1
       ELSE                                           ;   iarak0 = 0
@@ -100,7 +103,7 @@
 
       IF(lwp) WRITE(numout,*)
-      IF(lwp) WRITE(numout,*) ' the present run starts at the time step nit000 = ', nit000
+      IF(lwp) WRITE(numout,*) '   the present run starts at the time step nit000 = ', nit000
       IF(lwp .AND. iarak0 == 1 )   WRITE(numout,*) '   and needs previous fields for Arakawa sheme ??? '
-      ENDIF
+
 
       ! Time domain : restart
@@ -110,15 +113,15 @@
       SELECT CASE ( nrsttr )
       CASE ( 0 )
-         IF(lwp) WRITE(numout,*) ' nrsttr = 0 no control of nit000'
+         IF(lwp) WRITE(numout,*) '    nrsttr = 0 no control of nit000'
       CASE ( 1 )
-         IF(lwp) WRITE(numout,*) ' nrsttr = 1 we control the date of nit000'
+         IF(lwp) WRITE(numout,*) '    nrsttr = 1 we control the date of nit000'
       CASE ( 2 )
-         IF(lwp) WRITE(numout,*) ' nrsttr = 2 the date adatrj is read in restart file'
+         IF(lwp) WRITE(numout,*) '    nrsttr = 2 the date adatrj is read in restart file'
       CASE DEFAULT
          IF(lwp) WRITE(numout,*) '  ===>>>> nrsttr not equal 0, 1 or 2 : no control of the date'
-         IF(lwp) WRITE(numout,*) ' =======                   ========='
+         IF(lwp) WRITE(numout,*) '  =======                  ========='
       END SELECT
 
-      CALL iom_open ( 'restart.trc', numrtr, kiolib = jprstlib )
+      CALL iom_open( 'restart.trc', numrtr, kiolib = jprstlib )
 
       CALL iom_get( numrtr, 'kt'   , zkt    )
@@ -127,6 +130,6 @@
       IF(lwp) WRITE(numout,*)
       IF(lwp) WRITE(numout,*) ' Info on the restart file read : '
-      IF(lwp) WRITE(numout,*) '   time-step           : ', NINT( zkt    )
-      IF(lwp) WRITE(numout,*) '   arakawa option      : ', NINT( zarak0 )
+      IF(lwp) WRITE(numout,*) '    time-step           : ', NINT( zkt    )
+      IF(lwp) WRITE(numout,*) '    arakawa option      : ', NINT( zarak0 )
 
 
@@ -277,7 +280,7 @@
       !! ** purpose  :   write passive tracer fields in restart files
       !!----------------------------------------------------------------------
-      INTEGER, INTENT( in ) ::    kt
+      INTEGER, INTENT( in ) ::   kt    ! ocean time-step index
       !!
-      INTEGER  :: ji,jj,jk,jn
+      INTEGER  :: ji, jj, jk, jn
       REAL(wp) :: zdiag_var, zdiag_varmin, zdiag_varmax, zdiag_tot
       REAL(wp) :: zder
@@ -289,7 +292,6 @@
          ! ------------------
          IF(lwp) WRITE(numout,*)
-         IF(lwp) WRITE(numout,*) 'trc_wri : write the passive tracer restart file (NetCDF) ',   &
-            &                              'at it= ',kt,' date= ',ndastp
-         IF(lwp) WRITE(numout,*) '~~~~~~~~~'
+         IF(lwp) WRITE(numout,*) 'trc_wri : write the TOP restart file (NetCDF) at it= ', kt, ' date= ', ndastp
+         IF(lwp) WRITE(numout,*) '~~~~~~~'
 
 
@@ -319,5 +321,5 @@
          DO jn = 1, jptra
             CALL iom_rstput( kt, nitrst, numrtw, 'qint'//ctrcnm(jn), qint(:,:,jn) )
-            CALL iom_rstput( kt, nitrst, numrtw, 'qtr'//ctrcnm(jn) , qtr( :,:,jn) )
+            CALL iom_rstput( kt, nitrst, numrtw, 'qtr'//ctrcnm(jn) , qtr (:,:,jn) )
          END DO
 #endif
@@ -354,12 +356,11 @@
             zdiag_var = zdiag_var / areatot
 
-            IF(lwp) WRITE(numout,*) 'MEAN NO ', jn, ctrcnm(jn), ' =', zdiag_var,   &
-               &                    'MIN= ', zdiag_varmin, 'MAX= ', zdiag_varmax
-         END DO
-
-         zdiag_tot=zdiag_tot
-         zder=((zdiag_tot-trai)/trai)*100._wp
-         IF (lwp) WRITE(numout,*) 'Integral of all tracers over the full domain  =',zdiag_tot
-         IF (lwp) WRITE(numout,*) 'Drift of the sum of all tracers =',zder, '%'
+            IF(lwp) WRITE(numout,*) '   MEAN NO ', jn, ctrcnm(jn), ' = ', zdiag_var,   &
+               &                    ' MIN = ', zdiag_varmin, ' MAX = ', zdiag_varmax
+         END DO
+
+         zder = ( ( zdiag_tot - trai ) / trai ) * 100._wp
+         IF(lwp) WRITE(numout,*) '   Integral of all tracers over the full domain  = ', zdiag_tot
+         IF(lwp) WRITE(numout,*) '   Drift of the sum of all tracers =', zder, ' %'
 
          CALL iom_close(numrtw)
Index: /branches/dev_001_GM/NEMO/TOP_SRC/trcstp.F90
===================================================================
--- /branches/dev_001_GM/NEMO/TOP_SRC/trcstp.F90	(revision 768)
+++ /branches/dev_001_GM/NEMO/TOP_SRC/trcstp.F90	(revision 768)
@@ -0,0 +1,98 @@
+MODULE trcstp
+   !!======================================================================
+   !!                       ***  MODULE trcstp  ***
+   !! Time-stepping    : time loop of opa for passive tracer
+   !!======================================================================
+#if defined key_passivetrc
+   !!----------------------------------------------------------------------
+   !!   trc_stp      : passive tracer system time-stepping
+   !!----------------------------------------------------------------------
+   !! * Modules used
+   USE oce_trc          ! ocean dynamics and active tracers variables
+   USE trc              ! ocean passive tracers variables 
+   USE trctrp           ! passive tracers transport
+   USE trcsms           ! passive tracers sources and sinks
+   USE prtctl_trc       ! Print control for debbuging
+   USE trcdia
+   USE trcdit
+   USE trcrst
+
+   IMPLICIT NONE
+   PRIVATE
+
+   !! * Routine accessibility
+   PUBLIC trc_stp           ! called by step
+   !!----------------------------------------------------------------------
+   !!   TOP 1.0 , LOCEAN-IPSL (2005) 
+   !! $Header$ 
+   !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 
+   !!----------------------------------------------------------------------
+
+CONTAINS
+
+   SUBROUTINE trc_stp( kt, kindic )
+      !!-------------------------------------------------------------------
+      !!                     ***  ROUTINE trc_stp  ***
+      !!                      
+      !! ** Purpose : Time loop of opa for passive tracer
+      !! 
+      !! ** Method  : 
+      !!              Compute the passive tracers trends 
+      !!              Update the passive tracers
+      !!
+      !! History :
+      !!   9.0  !  04-03  (C. Ethe)  Original
+      !!-------------------------------------------------------------------
+      !! * Arguments
+      INTEGER, INTENT( in ) ::  kt  ! ocean time-step index
+      INTEGER, INTENT( in ) ::  kindic
+      CHARACTER (len=25) :: charout
+
+      ! this ROUTINE is called only every ndttrc time step
+      IF( MOD( kt , ndttrc ) /= 0 ) RETURN
+
+      CALL trc_rst_opn( kt )      ! Open tracer restart file 
+
+       ! tracers: sink and source 
+      IF(ln_ctl) THEN
+         WRITE(charout,FMT="('kt =', I4,'  d/m/y =',I2,I2,I4)") kt, nday, nmonth, nyear
+         CALL prt_ctl_trc_info(charout)
+      ENDIF
+
+      CALL trc_sms( kt )
+
+      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+         WRITE(charout, FMT="('SMS')")
+         CALL prt_ctl_trc_info(charout)
+         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm)
+      ENDIF
+
+      ! transport of passive tracers
+      CALL trc_trp( kt )
+
+      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
+         WRITE(charout, FMT="('TRP')")
+         CALL prt_ctl_trc_info(charout)
+         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm)
+      ENDIF
+
+      IF( lrst_trc ) CALL trc_rst_wri( kt )  ! write tracer restart file
+
+      CALL trc_dia( kt, kindic )     ! diagnostics
+
+
+   END SUBROUTINE trc_stp
+
+#else
+   !!----------------------------------------------------------------------
+   !!   Default key                                     NO passive tracers
+   !!----------------------------------------------------------------------
+CONTAINS
+   SUBROUTINE trc_stp( kt )        ! Empty routine
+      INTEGER, INTENT(in) :: kt
+      WRITE(*,*) 'trc_stp: You should not have seen this print! error?', kt
+   END SUBROUTINE trc_stp
+#endif
+
+   !!======================================================================
+END MODULE trcstp
