Index: branches/dev_001_GM/NEMO/TOP_SRC/CFC/par_CFC.F90
===================================================================
--- branches/dev_001_GM/NEMO/TOP_SRC/CFC/par_CFC.F90	(revision 765)
+++ branches/dev_001_GM/NEMO/TOP_SRC/CFC/par_CFC.F90	(revision 765)
@@ -0,0 +1,48 @@
+MODULE par_CFC
+   !!======================================================================
+   !!                        ***  par_CFC  ***
+   !! TOP :   set the CFC parameters
+   !!======================================================================
+   !! History :   2.0  !  2007-12  (C. Ethe, G. Madec)  revised architecture
+   !!----------------------------------------------------------------------
+   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007) 
+   !! $Id:$ 
+   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
+   !!----------------------------------------------------------------------
+   USE par_LOBSTER, ONLY : jp_lobster   !: number of tracers in LOBSTER
+   USE par_PISCES , ONLY : jp_pisces    !: number of tracers in PISCES
+
+   IMPLICIT NONE
+   PUBLIC
+
+#if defined key_cfc
+   !!---------------------------------------------------------------------
+   !!   'key_cfc'   :                                          CFC tracers
+   !!---------------------------------------------------------------------
+   LOGICAL, PUBLIC, PARAMETER ::   lk_trc_cfc = .TRUE.       !: CFC flag 
+   INTEGER, PUBLIC, PARAMETER ::   jp_cfc     =  2           !: number of passive tracers
+   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_2d  =  1           !: additional 2d output arrays ('key_trc_diaadd')
+   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_3d  =  1           !: additional 3d output arrays ('key_trc_diaadd')
+   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_trd =  0           !: number of sms trends for CFC
+   
+   ! assign an index in trc arrays for each CFC prognostic variables
+   INTEGER, PUBLIC, PARAMETER ::   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   
+#else
+   !!---------------------------------------------------------------------
+   !!   Default     :                                       No CFC tracers
+   !!---------------------------------------------------------------------
+   LOGICAL, PUBLIC, PARAMETER ::   lk_trc_cfc = .FALSE.      !: CFC flag 
+   INTEGER, PUBLIC, PARAMETER ::   jp_cfc     =  0           !: No CFC tracers
+   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_2d  =  0           !: No CFC additional 2d output arrays 
+   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_3d  =  0           !: No CFC additional 3d output arrays 
+   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_trd =  0           !: number of sms trends for CFC
+#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
+
+   !!======================================================================
+END MODULE par_CFC
Index: branches/dev_001_GM/NEMO/TOP_SRC/CFC/par_sms_cfc.h90
===================================================================
--- branches/dev_001_GM/NEMO/TOP_SRC/CFC/par_sms_cfc.h90	(revision 764)
+++ 	(revision )
@@ -1,16 +1,0 @@
-   !!---------------------------------------------------------------------
-   !!                     ***  par_sms_cfc.h90  ***  
-   !!                    CFC Source Minus Sink model
-   !!---------------------------------------------------------------------
-
-   !!----------------------------------------------------------------------
-   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005) 
-   !! $Id$ 
-   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
-   !!----------------------------------------------------------------------
-
-   INTEGER, PARAMETER ::   jpyear = 100   ! temporal parameter 
-   INTEGER, PARAMETER ::   jphem  = 2     ! hemispheric parameter
-
-   INTEGER, PARAMETER ::   jp11   = 1     ! CFC-11
-   INTEGER, PARAMETER ::   jp12   = 2     ! CFC-12
Index: branches/dev_001_GM/NEMO/TOP_SRC/CFC/sms_cfc.h90
===================================================================
--- branches/dev_001_GM/NEMO/TOP_SRC/CFC/sms_cfc.h90	(revision 764)
+++ 	(revision )
@@ -1,21 +1,0 @@
-   !!----------------------------------------------------------------------
-   !!                     ***  sms_cfc.h90  ***  
-   !! TOP :   CFC Source Minus Sink valiables
-   !!----------------------------------------------------------------------
-
-   !!----------------------------------------------------------------------
-   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005) 
-   !! $Header$ 
-   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
-   !!----------------------------------------------------------------------
-
-   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(jpi,jpj)             ::   xphem    ! spatial interpolation factor for patm
-   REAL(wp), PUBLIC, DIMENSION(jpyear,jphem, jptra) ::   p_cfc    ! partial hemispheric pressure for CFC          
-   REAL(wp), PUBLIC, DIMENSION(jpi,jpj      ,jptra) ::   pp_cfc   ! temporal interpolation of atmospheric concentrations 
-   REAL(wp), PUBLIC, DIMENSION(jpi,jpj      ,jptra) ::   qtr      ! input function
-   REAL(wp), PUBLIC, DIMENSION(jpi,jpj      ,jptra) ::   qint     ! flux function
-
Index: branches/dev_001_GM/NEMO/TOP_SRC/CFC/trccfc.F90
===================================================================
--- branches/dev_001_GM/NEMO/TOP_SRC/CFC/trccfc.F90	(revision 765)
+++ branches/dev_001_GM/NEMO/TOP_SRC/CFC/trccfc.F90	(revision 765)
@@ -0,0 +1,240 @@
+MODULE trccfc
+   !!======================================================================
+   !!                      ***  MODULE trccfc  ***
+   !! TOP : CFC main model
+   !!======================================================================
+   !! History :    -   !  1999-10  (JC. Dutay)  original code
+   !!             1.0  !  2004-03 (C. Ethe) free form + modularity
+   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  reorganisation
+   !!----------------------------------------------------------------------
+#if defined key_cfc
+   !!----------------------------------------------------------------------
+   !!   'key_cfc'                                               CFC tracers
+   !!----------------------------------------------------------------------
+   !!   trc_cfc     :  compute and add CFC suface forcing to CFC trends
+   !!   trc_cfc_cst :  sets constants for CFC surface forcing computation
+   !!----------------------------------------------------------------------
+   USE daymod       ! calendar
+   USE oce_trc      ! Ocean variables
+   USE par_trc      ! TOP parameters
+   USE trc          ! TOP variables
+
+   IMPLICIT NONE
+   PRIVATE
+
+   PUBLIC   trc_cfc       ! called in ???    
+
+   INTEGER , PARAMETER ::   jpyear = 100   ! temporal parameter 
+   INTEGER , 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(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), DIMENSION(jptra) ::   soa1, soa2, soa3, soa4   ! coefficient for solubility of CFC [mol/l/atm]
+   REAL(wp), DIMENSION(jptra) ::   sob1, sob2, sob3         !    "               "
+   REAL(wp), DIMENSION(jptra) ::   sca1, sca2, sca3, sca4   ! coefficients for schmidt number in degre Celcius
+      
+   !                          ! coefficients for conversion
+   REAL(wp) ::   xconv1 = 1.0          ! conversion from to 
+   REAL(wp) ::   xconv2 = 0.01/3600.   ! conversion from cm/h to m/s: 
+   REAL(wp) ::   xconv3 = 1.0e+3       ! conversion from mol/l/atm to mol/m3/atm
+   REAL(wp) ::   xconv4 = 1.0e-12      ! conversion from mol/m3/atm to mol/m3/pptv 
+
+   !! * Substitutions
+#  include "passivetrc_substitute.h90"
+   !!----------------------------------------------------------------------
+   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007) 
+   !! $Id:$ 
+   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
+   !!----------------------------------------------------------------------
+
+CONTAINS
+
+   SUBROUTINE trc_cfc( kt )
+      !!----------------------------------------------------------------------
+      !!                     ***  ROUTINE trc_cfc  ***
+      !!
+      !! ** Purpose :   Compute the surface boundary contition on CFC 11 
+      !!             passive tracer associated with air-mer fluxes and add it 
+      !!             to the general trend of tracers equations.
+      !!
+      !! ** Method  : - get the atmospheric partial pressure - given in pico -
+      !!              - computation of solubility ( in 1.e-12 mol/l then in 1.e-9 mol/m3)
+      !!              - computation of transfert speed ( given in cm/hour ----> cm/s )
+      !!              - the input function is given by : 
+      !!                speed * ( concentration at equilibrium - concentration at surface )
+      !!              - the input function is in pico-mol/m3/s and the
+      !!                CFC concentration in pico-mol/m3
+      !!----------------------------------------------------------------------
+      INTEGER, INTENT( in ) ::   kt    ! ocean time-step index
+      !!
+      INTEGER ::   ji, jj, jn, jm
+      INTEGER ::   iyear_beg, iyear_end
+      INTEGER ::   im1, im2
+
+      REAL(wp) ::   ztap, zdtap        
+      REAL(wp) ::   zt1, zt2, zt3, zv2
+      REAL(wp) ::   zsol      ! solubility
+      REAL(wp) ::   zsch      ! schmidt number 
+      REAL(wp) ::   zpp_cfc   ! atmospheric partial pressure of CFC
+      REAL(wp) ::   zca_cfc   ! concentration at equilibrium
+      REAL(wp) ::   zak_cfc   ! transfert coefficients
+      
+      REAL(wp), DIMENSION(jphem,jptra)   ::   zpatm       ! atmospheric function
+      !!----------------------------------------------------------------------
+
+      IF( kt == nittrc000 )   CALL trc_cfc_cst
+
+      ! Temporal interpolation
+      ! ----------------------
+      iyear_beg = nyear + ( nyear_res - 1900 - nyear_beg  )
+      IF ( nmonth <= 6 ) THEN
+         iyear_beg = iyear_beg - 2 + nyear_beg
+         im1       =  6 - nmonth + 1
+         im2       =  6 + nmonth - 1
+      ELSE
+         iyear_beg = iyear_beg - 1 + nyear_beg
+         im1       = 12 - nmonth + 7
+         im2       =      nmonth - 7
+      ENDIF
+      iyear_end = iyear_beg + 1
+
+
+      !                                                         !------------!
+      DO jn = jpf_cfc, jpl_cfc                                  !  CFC loop  !
+         !                                                      !------------!
+         ! time interpolation at time kt
+         DO jm = 1, jphem
+            zpatm(jm,jn) = (  p_cfc(iyear_beg, jm, jn) * FLOAT (im1)  &
+               &           +  p_cfc(iyear_end, jm, jn) * FLOAT (im2) ) / 12.
+         END DO
+         
+         !                                                         !------------!
+         DO jj = 1, jpj                                            !  i-j loop  !
+            DO ji = 1, jpi                                         !------------!
+ 
+               ! space interpolation
+               zpp_cfc  =       xphem(ji,jj)   * zpatm(1,jn)   &
+                  &     + ( 1.- xphem(ji,jj) ) * zpatm(2,jn)
+
+               ! Computation of concentration at equilibrium : in picomol/l
+               ! coefficient for solubility for CFC-11/12 in  mol/l/atm
+               IF( tmask(ji,jj,1) .GE. 0.5 ) THEN
+                  ztap  = ( tn(ji,jj,1) + 273.16 ) * 0.01
+                  zdtap = ( sob3(jn) * ztap + sob2(jn) ) * ztap + sob1(jn) 
+                  zsol  =  EXP( soa1(jn) + soa2(jn) / ztap + soa3(jn) * LOG( ztap )   &
+                     &                   + soa4(jn) * ztap * ztap + sn(ji,jj,1) * zdtap ) 
+               ELSE
+                  zsol  = 0.e0
+               ENDIF
+               ! conversion from mol/l/atm to mol/m3/atm and from mol/m3/atm to mol/m3/pptv    
+               zsol = xconv4 * xconv3 * zsol * tmask(ji,jj,1)  
+               ! concentration at equilibrium
+               zca_cfc = xconv1 * zpp_cfc * zsol * tmask(ji,jj,1)             
+  
+               ! Computation of speed transfert
+               !    Schmidt number
+               zt1  = tn(ji,jj,1)
+               zt2  = zt1 * zt1 
+               zt3  = zt1 * zt2
+               zsch = sca1(jn) + sca2(jn) * zt1 + sca3(jn) * zt2 + sca4(jn) * zt3
+               !    speed transfert : formulae of wanninkhof 1992
+               zv2     = vatm(ji,jj) * vatm(ji,jj)
+               zsch    = zsch / 660.
+               zak_cfc = ( 0.39 * xconv2 * zv2 / SQRT(zsch) ) * tmask(ji,jj,1)
+
+               ! Input function  : speed *( conc. at equil - concen at surface )
+               ! trn in pico-mol/l idem qtr; ak in en m/s
+               qtr(ji,jj,jn) = -zak_cfc * ( trb(ji,jj,1,jn) - zca_cfc )   &
+#if defined key_off_degrad
+                  &                     * facvol(ji,jj,1)                           &
+#endif
+                  &                     * tmask(ji,jj,1) * ( 1. - freeze(ji,jj) )
+
+               ! Add the surface flux to the trend
+               tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + qtr(ji,jj,jn) / fse3t(ji,jj,1) 
+
+               ! cumulation of surface flux at each time step
+               qint(ji,jj,jn) = qint (ji,jj,jn) + qtr(ji,jj,jn) * rdt
+               !                                               !----------------!
+            END DO                                             !  end i-j loop  !
+         END DO                                                !----------------!
+         !                                                  !----------------!
+      END DO                                                !  end CFC loop  !
+      !                                                     !----------------!
+   END SUBROUTINE trc_cfc
+
+
+   SUBROUTINE trc_cfc_cst
+      !!---------------------------------------------------------------------
+      !!                     ***  trc_cfc_cst  ***  
+      !!
+      !! ** Purpose : sets constants for CFC model
+      !!---------------------------------------------------------------------
+      INTEGER ::   jn
+      !!---------------------------------------------------------------------
+
+      DO jn = 1, jptra
+         IF ( jn == jp11 ) THEN
+            ! coefficient for solubility of CFC11 in  mol/l/atm
+            soa1(jn) = -229.9261 
+            soa2(jn) =  319.6552
+            soa3(jn) =  119.4471
+            soa4(jn) =   -1.39165
+            sob1(jn) =   -0.142382
+            sob2(jn) =    0.091459
+            sob3(jn) =   -0.0157274
+            
+            ! coefficients for schmidt number in degre Celcius
+            sca1(jn) = 3501.8
+            sca2(jn) = -210.31
+            sca3(jn) =    6.1851
+            sca4(jn) =   -0.07513
+
+         ELSE IF( jn == jp12 ) THEN
+
+            ! coefficient for solubility of CFC12 in  mol/l/atm
+            soa1(jn) = -218.0971
+            soa2(jn) =  298.9702
+            soa3(jn) =  113.8049
+            soa4(jn) =   -1.39165
+            sob1(jn) =   -0.143566
+            sob2(jn) =    0.091015
+            sob3(jn) =   -0.0153924
+                        
+            ! coefficients for schmidt number in degre Celcius
+            sca1(jn) =  3845.4 
+            sca2(jn) =  -228.95
+            sca3(jn) =     6.1908 
+            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), &
+            &           sob1(jn), sob2(jn),sob3(jn)
+         WRITE(numout,*) 
+         WRITE(numout,*) 'coefficient for schmidt of tracer',ctrcnm(jn)
+         WRITE(numout,*) sca1(jn), sca2(jn),sca3(jn), sca4(jn)
+      END DO
+      !
+   END SUBROUTINE trc_cfc_cst
+   
+#else
+   !!----------------------------------------------------------------------
+   !!   Dummy module                                         No CFC tracers
+   !!----------------------------------------------------------------------
+CONTAINS
+   SUBROUTINE trc_cfc( kt )       ! Empty routine
+      WRITE(*,*) 'trc_cfc: You should not have seen this print! error?', kt
+   END SUBROUTINE trc_cfc
+#endif
+
+   !!======================================================================
+END MODULE trccfc
Index: branches/dev_001_GM/NEMO/TOP_SRC/CFC/trcctl.cfc.h90
===================================================================
--- branches/dev_001_GM/NEMO/TOP_SRC/CFC/trcctl.cfc.h90	(revision 764)
+++ branches/dev_001_GM/NEMO/TOP_SRC/CFC/trcctl.cfc.h90	(revision 765)
@@ -25,5 +25,5 @@
               WRITE (numout,*) ' =======   ============= '
               WRITE (numout,*)                             &
-              &   ' STOP, change jptra to 1 or 2 in par_sms_cfc.h90 '  
+              &   ' STOP, change jptra to 1 or 2 in par_CFC module '  
           END IF 
           STOP 'TRC_CTL'
Index: branches/dev_001_GM/NEMO/TOP_SRC/CFC/trcfreons.F90
===================================================================
--- branches/dev_001_GM/NEMO/TOP_SRC/CFC/trcfreons.F90	(revision 764)
+++ 	(revision )
@@ -1,271 +1,0 @@
-MODULE trcfreons
-   !!======================================================================
-   !!                      ***  MODULE trcfreons  ***
-   !! TOP : CFC main model
-   !!======================================================================
-   !! History :    -   !  1999-10  (JC. Dutay)  original code
-   !!             1.0  !  2004-03 (C. Ethe) free form + modularity
-   !!----------------------------------------------------------------------
-#if defined key_cfc
-   !!----------------------------------------------------------------------
-   !!   'key_cfc'                                        CFC chemical model
-   !!----------------------------------------------------------------------
-   !!   trc_freons     :  compute and add CFC suface forcing to CFC trends
-   !!   trc_freons_cst :  sets constants for CFC surface forcing computation
-   !!----------------------------------------------------------------------
-   USE daymod
-   USE sms
-   USE oce_trc
-   USE trc
-
-   IMPLICIT NONE
-   PRIVATE
-
-   PUBLIC   trc_freons       ! called in ???    
-
-   REAL(wp), DIMENSION(jptra) ::   soa1, soa2, soa3, soa4   ! coefficient for solubility of CFC [mol/l/atm]
-   REAL(wp), DIMENSION(jptra) ::   sob1, sob2, sob3         !    "               "
-   REAL(wp), DIMENSION(jptra) ::   sca1, sca2, sca3, sca4   ! coefficients for schmidt number in degre Celcius
-      
-   !                          ! coefficients for conversion
-   REAL(wp) ::   xconv1 = 1.0          ! conversion from to 
-   REAL(wp) ::   xconv2 = 0.01/3600.   ! conversion from cm/h to m/s: 
-   REAL(wp) ::   xconv3 = 1.0e+3       ! conversion from mol/l/atm to mol/m3/atm
-   REAL(wp) ::   xconv4 = 1.0e-12      ! conversion from mol/m3/atm to mol/m3/pptv 
-
-   !! * Substitutions
-#  include "passivetrc_substitute.h90"
-   !!----------------------------------------------------------------------
-   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005) 
-   !! $Id$ 
-   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
-   !!----------------------------------------------------------------------
-
-CONTAINS
-
-   SUBROUTINE trc_freons( kt )
-      !!----------------------------------------------------------------------
-      !!                  ***  ROUTINE trc_freons  ***
-      !!
-      !! ** Purpose :   Compute the surface boundary contition on freon 11 
-      !!      passive tracer associated with air-mer fluxes and add it to 
-      !!      the general trend of tracers equations.
-      !!
-      !! ** Method :
-      !!          - get the atmospheric partial pressure - given in pico -
-      !!          - computation of solubility ( in 1.e-12 mol/l then in 1.e-9 mol/m3)
-      !!          - computation of transfert speed ( given in cm/hour ----> cm/s )
-      !!          - the input function is given by : 
-      !!            speed * ( concentration at equilibrium - concemtration at surface )
-      !!          - the input function is in pico-mol/m3/s and the
-      !!            freons concentration in pico-mol/m3
-      !!----------------------------------------------------------------------
-      INTEGER, INTENT( in ) ::   kt    ! ocean time-step index
-      !!
-      INTEGER ::   ji, jj, jn, jm
-      INTEGER ::   iyear_beg, iyear_end
-      INTEGER ::   imonth, im1, im2
-
-      REAL(wp) ::   ztap, zdtap        
-      REAL(wp) ::   zt1, zt2, zt3, zv2
-      REAL(wp) ::   zsol   ! solubility
-      REAL(wp) ::   zsch   ! schmidt number 
-      
-      REAL(wp), DIMENSION(jphem,jptra) ::   zpatm       ! atmospheric function
-      REAL(wp), DIMENSION(jpi,jpj,jptra) ::   zca_cfc   ! concentration
-      REAL(wp), DIMENSION(jpi,jpj,jptra) ::   zak_cfc   ! transfert coefficients
-      !!----------------------------------------------------------------------
-
-      IF( kt == nittrc000 )   CALL trc_freons_cst
-
-      ! Temporal interpolation
-      ! ----------------------
-      iyear_beg = nyear + ( nyear_res - 1900 - nyear_beg  )
-      imonth    = nmonth
-
-      IF ( imonth .LE. 6 ) THEN
-         iyear_beg = iyear_beg - 2 + nyear_beg
-         im1       = 6 - imonth + 1
-         im2       = 6 + imonth - 1
-      ELSE
-         iyear_beg = iyear_beg - 1 + nyear_beg
-         im1       = 12 - imonth + 7
-         im2       =      imonth - 7
-      ENDIF
-
-      iyear_end = iyear_beg + 1
-
-
-      !  Temporal and spatial interpolation at time k
-      ! --------------------------------------------------
-      DO jn = 1, jptra
-         DO  jm = 1, jphem
-            zpatm(jm,jn) = (  p_cfc(iyear_beg, jm, jn) * FLOAT (im1)  &
-               &           +  p_cfc(iyear_end, jm, jn) * FLOAT (im2) ) / 12.
-         END DO
-      END DO
-
-      DO jn = 1, jptra
-         pp_cfc(:,:,jn) =       xphem(:,:)   * zpatm(1,jn)   &
-            &           + ( 1.- xphem(:,:) ) * zpatm(2,jn)
-      END DO
-
-
-      !------------------------------------------------------------
-      ! Computation of concentration at equilibrium : in picomol/l
-      ! -----------------------------------------------------------
-
-      DO jn = 1, jptra
-         DO jj = 1 , jpj
-            DO ji = 1 , jpi
-               ! coefficient for solubility for CFC-11/12 in  mol/l/atm
-               IF( tmask(ji,jj,1) .GE. 0.5 ) THEN
-                  ztap  = ( tn(ji,jj,1) + 273.16 )* 0.01
-                  zdtap = ( sob3(jn) * ztap + sob2(jn))* ztap + sob1(jn) 
-                  zsol  =  EXP ( soa1(jn) + soa2(jn) / ztap + soa3(jn) * LOG ( ztap )   &
-                     &                   + soa4(jn) * ztap * ztap + sn(ji,jj,1) * zdtap ) 
-               ELSE
-                  zsol  = 0.
-               ENDIF
-               ! conversion from mol/l/atm to mol/m3/atm and from mol/m3/atm to mol/m3/pptv    
-               zsol = xconv4 * xconv3 * zsol * tmask(ji,jj,1)  
-               ! concentration at equilibrium
-               zca_cfc(ji,jj,jn) = xconv1 * pp_cfc(ji,jj,jn) * zsol * tmask(ji,jj,1)             
-            END DO
-         END DO
-      END DO
-
-  
-      !-------------------------------
-      ! Computation of speed transfert
-      ! ------------------------------
-
-      DO jn = 1, jptra
-         DO jj = 1, jpj
-            DO ji = 1, jpi
-               ! Schmidt number
-               zt1  = tn(ji,jj,1)
-               zt2  = zt1 * zt1 
-               zt3  = zt1 * zt2
-               zsch = sca1(jn) + sca2(jn) * zt1 + sca3(jn) * zt2 + sca4(jn) * zt3
-               ! speed transfert : formulae of wanninkhof 1992
-               zv2 = vatm(ji,jj) * vatm(ji,jj)
-               zsch = zsch / 660.
-               zak_cfc(ji,jj,jn) = ( 0.39 * xconv2 * zv2 / SQRT(zsch) ) * tmask(ji,jj,1)
-            END DO
-         END DO
-      END DO
-
-
-      !----------------------------------------------------------------
-      ! Input function  : speed *( conc. at equil - concen at surface )
-      ! trn in pico-mol/l idem qtr; ak in en m/s
-      !-----------------------------------------------------------------
-
-      DO jn = 1, jptra
-         DO jj = 1, jpj
-            DO ji = 1, jpi
-               qtr(ji,jj,jn) = -zak_cfc(ji,jj,jn) * ( trb(ji,jj,1,jn) - zca_cfc(ji,jj,jn) )   &
-#if defined key_off_degrad
-                  &                               * facvol(ji,jj,1)                           &
-#endif
-                  &                               * tmask(ji,jj,1) * ( 1. - freeze(ji,jj) )
-            END DO
-         END DO
-      END DO
-
-
-      ! ---------------------
-      ! Add the trend
-      ! ---------------------
-
-      DO jn = 1, jptra
-         DO  jj = 1, jpj
-            DO  ji = 1, jpi
-               tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + qtr(ji,jj,jn) / fse3t(ji,jj,1) 
-            END DO
-         END DO
-      END DO
-
-      ! --------------------------------------------
-      ! cumulation of tracer flux at each time step
-      ! --------------------------------------------
-      DO jn = 1, jptra
-         DO jj = 1, jpj
-            DO ji = 1, jpi
-               qint(ji,jj,jn) = qint (ji,jj,jn) + qtr(ji,jj,jn) * rdt
-            END DO
-         END DO
-      END DO
-      !
-   END SUBROUTINE trc_freons
-
-
-   SUBROUTINE trc_freons_cst
-      !!---------------------------------------------------------------------
-      !!                     ***  trc_freons_cst  ***  
-      !!
-      !! ** Purpose : sets constants for CFC model
-      !!---------------------------------------------------------------------
-      INTEGER ::   jn
-      !!---------------------------------------------------------------------
-
-      DO jn = 1, jptra
-         IF ( jn == jp11 ) THEN
-            ! coefficient for solubility of CFC11 in  mol/l/atm
-            soa1(jn) = -229.9261 
-            soa2(jn) =  319.6552
-            soa3(jn) =  119.4471
-            soa4(jn) =  -1.39165
-            sob1(jn) =  -0.142382
-            sob2(jn) =   0.091459
-            sob3(jn) =  -0.0157274
-            
-            ! coefficients for schmidt number in degre Celcius
-            sca1(jn) = 3501.8
-            sca2(jn) = -210.31
-            sca3(jn) = 6.1851
-            sca4(jn) = -0.07513
-
-         ELSE IF( jn == jp12 ) THEN
-
-            ! coefficient for solubility of CFC12 in  mol/l/atm
-            soa1(jn) = -218.0971
-            soa2(jn) =  298.9702
-            soa3(jn) =  113.8049
-            soa4(jn) =  -1.39165
-            sob1(jn) =  -0.143566
-            sob2(jn) =   0.091015
-            sob3(jn) =  -0.0153924
-                        
-            ! coefficients for schmidt number in degre Celcius
-            sca1(jn) =  3845.4 
-            sca2(jn) = -228.95
-            sca3(jn) = 6.1908 
-            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), &
-            &           sob1(jn), sob2(jn),sob3(jn)
-         WRITE(numout,*) 
-         WRITE(numout,*) 'coefficient for schmidt of tracer',ctrcnm(jn)
-         WRITE(numout,*) sca1(jn), sca2(jn),sca3(jn), sca4(jn)
-      END DO
-      !
-   END SUBROUTINE trc_freons_cst
-   
-#else
-   !!----------------------------------------------------------------------
-   !!   Dummy module                                           No CFC model
-   !!----------------------------------------------------------------------
-CONTAINS
-   SUBROUTINE trc_freons( kt )       ! Empty routine
-      WRITE(*,*) 'trc_freons: You should not have seen this print! error?', kt
-   END SUBROUTINE trc_freons
-#endif
-
-   !!======================================================================
-END MODULE trcfreons
