Index: branches/dev_001_GM/NEMO/TOP_SRC/CFC/par_CFC.F90
===================================================================
--- branches/dev_001_GM/NEMO/TOP_SRC/CFC/par_CFC.F90	(revision 766)
+++ 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 766)
+++ 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 766)
+++ 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: branches/dev_001_GM/NEMO/TOP_SRC/CFC/trclsm.cfc.h90
===================================================================
--- branches/dev_001_GM/NEMO/TOP_SRC/CFC/trclsm.cfc.h90	(revision 766)
+++ 	(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
