Index: /branches/2015/nemo_v3_6_STABLE/NEMOGCM/CONFIG/SHARED/field_def.xml
===================================================================
--- /branches/2015/nemo_v3_6_STABLE/NEMOGCM/CONFIG/SHARED/field_def.xml	(revision 8352)
+++ /branches/2015/nemo_v3_6_STABLE/NEMOGCM/CONFIG/SHARED/field_def.xml	(revision 8353)
@@ -1001,4 +1001,8 @@
        <field id="CFC11"       long_name="CFC-11 Concentration"                     unit="umol/m3" />
        <field id="CFC11_E3T"   long_name="CFC11 * E3T"                              unit="umol/m2"  > CFC11 * e3t </field >
+       <field id="CFC12"       long_name="CFC-12 Concentration"                     unit="umol/m3" />
+       <field id="CFC12_E3T"   long_name="CFC12 * E3T"                              unit="umol/m2"  > CFC12 * e3t </field >
+       <field id="SF6"         long_name="SF6 Concentration"                        unit="umol/m3" />
+       <field id="SF6_E3T"     long_name="SF6 * E3T"                                unit="umol/m2"  > SF6 * e3t </field >
 
        <!-- Bomb C14 : variables available with key_c14b -->
@@ -1125,10 +1129,14 @@
 
        <!-- CFC11 : variables available with key_cfc -->
-       <field id="qtrCFC11"    long_name="Air-sea flux of CFC-11"                  unit="mol/m2/s"   />
-       <field id="qintCFC11"   long_name="Cumulative air-sea flux of CFC-11"       unit="mol/m2"     />
+       <field id="qtr_CFC11"   long_name="Air-sea flux of CFC-11"                  unit="mol/m2/s"   />
+       <field id="qint_CFC11"  long_name="Cumulative air-sea flux of CFC-11"       unit="mol/m2"     />
+       <field id="qtr_CFC12"   long_name="Air-sea flux of CFC-12"                  unit="mol/m2/s"   />
+       <field id="qint_CFC12"  long_name="Cumulative air-sea flux of CFC-12"       unit="mol/m2"     />
+       <field id="qtr_SF6"     long_name="Air-sea flux of SF6"                     unit="mol/m2/s"   />
+       <field id="qint_SF6"    long_name="Cumulative air-sea flux of SF6"          unit="mol/m2"     />
 
        <!-- Bomb C14 : variables available with key_c14b -->
-       <field id="qtrC14b"     long_name="Air-sea flux of Bomb C14"                unit="mol/m2/s"   />
-       <field id="qintC14b"    long_name="Cumulative air-sea flux of Bomb C14"     unit="mol/m2"     />
+       <field id="qtr_C14b"    long_name="Air-sea flux of Bomb C14"                unit="mol/m2/s"   />
+       <field id="qint_C14b"   long_name="Cumulative air-sea flux of Bomb C14"     unit="mol/m2"     />
        <field id="fdecay"      long_name="Radiactive decay of Bomb C14"            unit="mol/m3"  grid_ref="grid_T_3D"  />
      </field_group>
Index: /branches/2015/nemo_v3_6_STABLE/NEMOGCM/CONFIG/SHARED/namelist_cfc_ref
===================================================================
--- /branches/2015/nemo_v3_6_STABLE/NEMOGCM/CONFIG/SHARED/namelist_cfc_ref	(revision 8352)
+++ /branches/2015/nemo_v3_6_STABLE/NEMOGCM/CONFIG/SHARED/namelist_cfc_ref	(revision 8353)
@@ -8,4 +8,6 @@
    ndate_beg  = 300101    !  datedeb1
    nyear_res  = 1932      !  iannee1
+   ! Formatted file of annual hemisperic CFCs concentration in the atmosphere (ppt)
+   clnamecfc   = 'CFCs_CMIP6.dat'
 /
 !'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Index: /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/AGE/par_age.F90
===================================================================
--- /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/AGE/par_age.F90	(revision 8352)
+++ /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/AGE/par_age.F90	(revision 8353)
@@ -25,10 +25,15 @@
    USE par_c14b   , ONLY : jp_c14b_trd     !: number of tracers in C14
 
+   USE par_my_trc , ONLY : jp_my_trc       !: number of tracers in MY_TRC
+   USE par_my_trc , ONLY : jp_my_trc_2d    !: number of 2D diag in MY_TRC
+   USE par_my_trc , ONLY : jp_my_trc_3d    !: number of 3D diag in MY_TRC
+   USE par_my_trc , ONLY : jp_my_trc_trd   !: number of biological diag in MY_TRC
+
    IMPLICIT NONE
 
-   INTEGER, PARAMETER ::   jp_lm      =  jp_pisces     + jp_cfc     + jp_c14b     !: 
-   INTEGER, PARAMETER ::   jp_lm_2d   =  jp_pisces_2d  + jp_cfc_2d  + jp_c14b_2d  !:
-   INTEGER, PARAMETER ::   jp_lm_3d   =  jp_pisces_3d  + jp_cfc_3d  + jp_c14b_3d  !:
-   INTEGER, PARAMETER ::   jp_lm_trd  =  jp_pisces_trd + jp_cfc_trd + jp_c14b_trd !:
+   INTEGER, PARAMETER ::   jp_lm      =  jp_pisces     + jp_my_trc     + jp_cfc     + jp_c14b     !: 
+   INTEGER, PARAMETER ::   jp_lm_2d   =  jp_pisces_2d  + jp_my_trc_2d  + jp_cfc_2d  + jp_c14b_2d  !:
+   INTEGER, PARAMETER ::   jp_lm_3d   =  jp_pisces_3d  + jp_my_trc_3d  + jp_cfc_3d  + jp_c14b_3d  !:
+   INTEGER, PARAMETER ::   jp_lm_trd  =  jp_pisces_trd + jp_my_trc_trd + jp_cfc_trd + jp_c14b_trd !:
 
 #if defined key_age
Index: /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/AGE/trcnam_age.F90
===================================================================
--- /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/AGE/trcnam_age.F90	(revision 8352)
+++ /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/AGE/trcnam_age.F90	(revision 8353)
@@ -14,4 +14,5 @@
    USE oce_trc         ! Ocean variables
    USE trcsms_age      ! AGE specific variable
+   USE trc
 
    IMPLICIT NONE
@@ -44,4 +45,9 @@
       NAMELIST/namage/ rn_age_depth, rn_age_kill_rate 
       !!----------------------------------------------------------------------
+      ! Variable setting
+      ctrcnm    (jp_age0) = 'Age'
+      ctrcln    (jp_age0) = 'Sea water age since surface contact'
+      ctrcun    (jp_age0) = 'year'
+      ln_trc_ini(jp_age0) = .false.
       !                             ! Open namelist files
       CALL ctl_opn( numnatg_ref, 'namelist_age_ref'   ,     'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
Index: /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/C14b/par_c14b.F90
===================================================================
--- /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/C14b/par_c14b.F90	(revision 8352)
+++ /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/C14b/par_c14b.F90	(revision 8353)
@@ -11,4 +11,9 @@
    USE par_pisces , ONLY : jp_pisces_trd   !: number of biological diag in PISCES
 
+   USE par_my_trc , ONLY : jp_my_trc       !: number of tracers in MY_TRC
+   USE par_my_trc , ONLY : jp_my_trc_2d    !: number of 2D diag in MY_TRC
+   USE par_my_trc , ONLY : jp_my_trc_3d    !: number of 3D diag in MY_TRC
+   USE par_my_trc , ONLY : jp_my_trc_trd   !: number of biological diag in MY_TRC
+
    USE par_cfc    , ONLY : jp_cfc          !: number of tracers in CFC
    USE par_cfc    , ONLY : jp_cfc_2d       !: number of 2D diag in CFC
@@ -19,8 +24,8 @@
    IMPLICIT NONE
 
-   INTEGER, PARAMETER ::   jp_lb      =  jp_pisces     + jp_cfc     !: cum. number of pass. tracers
-   INTEGER, PARAMETER ::   jp_lb_2d   =  jp_pisces_2d  + jp_cfc_2d  !:
-   INTEGER, PARAMETER ::   jp_lb_3d   =  jp_pisces_3d  + jp_cfc_3d  !:
-   INTEGER, PARAMETER ::   jp_lb_trd  =  jp_pisces_trd + jp_cfc_trd !:
+   INTEGER, PARAMETER ::   jp_lb      =  jp_pisces     + jp_my_trc     + jp_cfc     !: cum. number of pass. tracers
+   INTEGER, PARAMETER ::   jp_lb_2d   =  jp_pisces_2d  + jp_my_trc_2d  + jp_cfc_2d  !:
+   INTEGER, PARAMETER ::   jp_lb_3d   =  jp_pisces_3d  + jp_my_trc_3d  + jp_cfc_3d  !:
+   INTEGER, PARAMETER ::   jp_lb_trd  =  jp_pisces_trd + jp_my_trc_trd + jp_cfc_trd !:
    
 #if defined key_c14b
Index: /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/C14b/trcnam_c14b.F90
===================================================================
--- /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/C14b/trcnam_c14b.F90	(revision 8352)
+++ /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/C14b/trcnam_c14b.F90	(revision 8353)
@@ -55,4 +55,9 @@
       NAMELIST/namc14dia/  c14dia2d, c14dia3d     ! additional diagnostics
       !!-------------------------------------------------------------------
+      ctrcnm    (jp_c14b0) = 'C14B'
+      ctrcln    (jp_c14b0) = 'Bomb C14 Concentration'
+      ctrcun    (jp_c14b0) = 'ration'
+      ln_trc_ini(jp_c14b0) = .false.
+      ln_trc_wri(jp_c14b0) = .true.
       !                             ! Open namelist file
       CALL ctl_opn( numnatb_ref, 'namelist_c14b_ref'  ,     'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
Index: /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/C14b/trcsms_c14b.F90
===================================================================
--- /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/C14b/trcsms_c14b.F90	(revision 8352)
+++ /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/C14b/trcsms_c14b.F90	(revision 8353)
@@ -291,6 +291,6 @@
       !    
       IF( lk_iomput ) THEN
-        CALL iom_put( "qtrC14b"  , qtr_c14  )
-        CALL iom_put( "qintC14b" , qint_c14 )
+        CALL iom_put( "qtr_C14b"  , qtr_c14  )
+        CALL iom_put( "qint_C14b" , qint_c14 )
         CALL iom_put( "fdecay"   , zdecay   )
       ELSE
Index: /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/CFC/par_cfc.F90
===================================================================
--- /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/CFC/par_cfc.F90	(revision 8352)
+++ /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/CFC/par_cfc.F90	(revision 8353)
@@ -14,11 +14,16 @@
    USE par_pisces , ONLY : jp_pisces_3d    !: number of 3D diag in PISCES
    USE par_pisces , ONLY : jp_pisces_trd   !: number of biological diag in PISCES
+   
+   USE par_my_trc , ONLY : jp_my_trc       !: number of tracers in MY_TRC
+   USE par_my_trc , ONLY : jp_my_trc_2d    !: number of 2D diag in MY_TRC
+   USE par_my_trc , ONLY : jp_my_trc_3d    !: number of 3D diag in MY_TRC
+   USE par_my_trc , ONLY : jp_my_trc_trd   !: number of biological diag in MY_TRC
 
    IMPLICIT NONE
 
-   INTEGER, PARAMETER ::   jp_lc      =  jp_pisces     !: cumulative number of passive tracers
-   INTEGER, PARAMETER ::   jp_lc_2d   =  jp_pisces_2d  !:
-   INTEGER, PARAMETER ::   jp_lc_3d   =  jp_pisces_3d  !:
-   INTEGER, PARAMETER ::   jp_lc_trd  =  jp_pisces_trd !:
+   INTEGER, PARAMETER ::   jp_lc      =  jp_pisces     + jp_my_trc     !: cumulative number of passive tracers
+   INTEGER, PARAMETER ::   jp_lc_2d   =  jp_pisces_2d  + jp_my_trc_2d  !:
+   INTEGER, PARAMETER ::   jp_lc_3d   =  jp_pisces_3d  + jp_my_trc_3d  !:
+   INTEGER, PARAMETER ::   jp_lc_trd  =  jp_pisces_trd + jp_my_trc_trd !:
    
 #if defined key_cfc
@@ -27,12 +32,12 @@
    !!---------------------------------------------------------------------
    LOGICAL, PUBLIC, PARAMETER ::   lk_cfc     = .TRUE.      !: CFC flag 
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc     =  1          !: number of passive tracers
-   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_2d  =  2          !: additional 2d output arrays ('key_trc_diaadd')
+   INTEGER, PUBLIC, PARAMETER ::   jp_cfc     =  2          !: number of passive tracers
+   INTEGER, PUBLIC, PARAMETER ::   jp_cfc_2d  =  2 * jp_cfc !: additional 2d output arrays ('key_trc_diaadd')
    INTEGER, PUBLIC, PARAMETER ::   jp_cfc_3d  =  0          !: 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 ::   jpc11       = jp_lc + 1   !: CFC-11 
-   INTEGER, PUBLIC, PARAMETER ::   jpc12       = jp_lc + 2   !: CFC-12   
+   ! Enable trace gases according to total number jp_cfc
+   LOGICAL, PUBLIC, PARAMETER ::   lp_cfc11   = .false.     !: use CFC11
+   LOGICAL, PUBLIC, PARAMETER ::   lp_cfc12   = .true.      !: use CFC12
+   LOGICAL, PUBLIC, PARAMETER ::   lp_sf6     = .true.      !: use SF6
 #else
    !!---------------------------------------------------------------------
@@ -44,4 +49,7 @@
    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
+   LOGICAL, PUBLIC, PARAMETER ::   lp_cfc11   = .false.     !: use CFC11
+   LOGICAL, PUBLIC, PARAMETER ::   lp_cfc12   = .false.     !: use CFC12
+   LOGICAL, PUBLIC, PARAMETER ::   lp_sf6     = .false.     !: use SF6
 #endif
 
Index: /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/CFC/trcini_cfc.F90
===================================================================
--- /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/CFC/trcini_cfc.F90	(revision 8352)
+++ /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/CFC/trcini_cfc.F90	(revision 8353)
@@ -22,6 +22,4 @@
    PUBLIC   trc_ini_cfc   ! called by trcini.F90 module
 
-   CHARACTER (len=34) ::   clname = 'cfc1112.atm'   ! ???
-
    INTEGER  ::   inum                   ! unit number
    REAL(wp) ::   ylats = -10.           ! 10 degrees south
@@ -46,4 +44,5 @@
       INTEGER  ::  iskip = 6   ! number of 1st descriptor lines
       REAL(wp) ::  zyy, zyd
+      CHARACTER(len = 20)  ::  cltra
       !!----------------------------------------------------------------------
 
@@ -51,9 +50,8 @@
       IF(lwp) WRITE(numout,*) ' trc_ini_cfc: initialisation of CFC chemical model'
       IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~'
-
-
-      IF(lwp) WRITE(numout,*) 'read of formatted file cfc1112atm'
+      !
+      IF(lwp) WRITE(numout,*) 'Read annual atmospheric concentrations from formatted file : ' // TRIM(clnamecfc)
       
-      CALL ctl_opn( inum, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
+      CALL ctl_opn( inum, clnamecfc, 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
       REWIND(inum)
       
@@ -66,8 +64,8 @@
       END DO
  100  jpyear = jn - 1 - iskip
-      IF ( lwp) WRITE(numout,*) '    ', jpyear ,' years read'
+      IF ( lwp) WRITE(numout,*) '   --->  ', jpyear ,' years read'
       !                                ! Allocate CFC arrays
 
-      ALLOCATE( p_cfc(jpyear,jphem,2), STAT=ierr )
+      ALLOCATE( p_cfc(jpyear,jphem,3), STAT=ierr )
       IF( ierr > 0 ) THEN
          CALL ctl_stop( 'trc_ini_cfc: unable to allocate p_cfc array' )   ;   RETURN
@@ -87,5 +85,5 @@
          IF(lwp) THEN
             WRITE(numout,*)
-            WRITE(numout,*) 'Initialization de qint ; No restart : qint equal zero '
+            WRITE(numout,*) 'Initialisation of qint ; No restart : qint equal zero '
          ENDIF
          qint_cfc(:,:,:) = 0._wp
@@ -105,23 +103,14 @@
       jn = 31
       DO 
-        READ(inum,*, IOSTAT=io) zyy, p_cfc(jn,1,1), p_cfc(jn,1,2), p_cfc(jn,2,1), p_cfc(jn,2,2)
+        READ(inum,*, IOSTAT=io) zyy, p_cfc(jn,1:2,1), p_cfc(jn,1:2,2), p_cfc(jn,1:2,3)
         IF( io < 0 ) exit
         jn = jn + 1
       END DO
 
-      p_cfc(32,1:2,1) = 5.e-4      ! modify the values of the first years
-      p_cfc(33,1:2,1) = 8.e-4
-      p_cfc(34,1:2,1) = 1.e-6
-      p_cfc(35,1:2,1) = 2.e-3
-      p_cfc(36,1:2,1) = 4.e-3
-      p_cfc(37,1:2,1) = 6.e-3
-      p_cfc(38,1:2,1) = 8.e-3
-      p_cfc(39,1:2,1) = 1.e-2
-      
       IF(lwp) THEN        ! Control print
          WRITE(numout,*)
-         WRITE(numout,*) ' Year   p11HN    p11HS    p12HN    p12HS '
+         WRITE(numout,*) ' Year   c11NH     c11SH     c12NH     c12SH     SF6NH     SF6SH'
          DO jn = 30, jpyear
-            WRITE(numout, '( 1I4, 4F9.2)') jn, p_cfc(jn,1,1), p_cfc(jn,2,1), p_cfc(jn,1,2), p_cfc(jn,2,2)
+            WRITE(numout, '( 1I4, 6F10.4)') jn, p_cfc(jn,1:2,1), p_cfc(jn,1:2,2), p_cfc(jn,1:2,3)
          END DO
       ENDIF
Index: /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/CFC/trcnam_cfc.F90
===================================================================
--- /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/CFC/trcnam_cfc.F90	(revision 8352)
+++ /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/CFC/trcnam_cfc.F90	(revision 8353)
@@ -46,8 +46,8 @@
       INTEGER ::  numonc      = -1   ! Logical unit for output namelist
       INTEGER :: ios                 ! Local integer output status for namelist read
-      INTEGER :: jl, jn
+      INTEGER :: jl, jn, cnt
       TYPE(DIAG), DIMENSION(jp_cfc_2d) :: cfcdia2d
       !!
-      NAMELIST/namcfcdate/ ndate_beg, nyear_res
+      NAMELIST/namcfcdate/ ndate_beg, nyear_res, clnamecfc
       NAMELIST/namcfcdia/  cfcdia2d     ! additional diagnostics
       !!----------------------------------------------------------------------
@@ -66,13 +66,52 @@
       IF(lwm) WRITE ( numonc, namcfcdate )
 
+      jn = jp_cfc0 - 1
+      ! Variables setting
+      IF( lp_cfc11 ) THEN
+         jn = jn + 1
+         ctrcnm    (jn) = 'CFC11'
+         ctrcln    (jn) = 'Chlorofluoro carbon 11 Concentration'
+         ctrcun    (jn) = 'umolC/L'
+         ln_trc_ini(jn) = .false.
+         ln_trc_wri(jn) = .true.
+      ENDIF
+      !
+      IF( lp_cfc12 ) THEN
+         jn = jn + 1
+         ctrcnm    (jn) = 'CFC12'
+         ctrcln    (jn) = 'Chlorofluoro carbon 12 Concentration'
+         ctrcun    (jn) = 'umolC/L'
+         ln_trc_ini(jn) = .false.
+         ln_trc_wri(jn) = .true.
+      ENDIF
+      !
+      IF( lp_sf6 ) THEN
+         jn = jn + 1
+         ctrcnm    (jn) = 'SF6'
+         ctrcln    (jn) = 'Sulfur hexafluoride Concentration'
+         ctrcun    (jn) = 'umol/L'
+         ln_trc_ini(jn) = .false.
+         ln_trc_wri(jn) = .true.
+      ENDIF
+
       IF(lwp) THEN                  ! control print
-         WRITE(numout,*)
+         WRITE(numout,*) ' '
+         WRITE(numout,*) ' CFCs'
+         WRITE(numout,*) ' '
          WRITE(numout,*) ' trc_nam: 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
+         WRITE(numout,*) '    Atmospheric CFC concentrations file     clnamecfc = ', TRIM(clnamecfc)
+         WRITE(numout,*) '    Compute dynamics for CFC-11             lp_cfc11  = ', lp_cfc11
+         WRITE(numout,*) '    Compute dynamics for CFC-12             lp_cfc12  = ', lp_cfc12
+         WRITE(numout,*) '    Compute dynamics for SF6                lp_sf6    = ', lp_sf6
       ENDIF
       nyear_beg = ndate_beg / 10000
       IF(lwp) WRITE(numout,*) '    initial year (aa)                       nyear_beg = ', nyear_beg
+      !
+      ! check consistency between CFC namelist and par_cfc setting
+      if ( jn - jp_cfc0 + 1 .ne. jp_cfc )  &
+      CALL ctl_stop( 'trc_nam_cfc: Number of selected CFCs is different from total CFC number (jp_cfc) specified in par_cfc.F90' )
       !
 
Index: /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/CFC/trcsms_cfc.F90
===================================================================
--- /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/CFC/trcsms_cfc.F90	(revision 8352)
+++ /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/CFC/trcsms_cfc.F90	(revision 8353)
@@ -29,8 +29,9 @@
 
    INTEGER , PUBLIC, PARAMETER ::   jphem  =   2   ! parameter for the 2 hemispheres
-   INTEGER , PUBLIC            ::   jpyear         ! Number of years read in CFC1112 file
+   INTEGER , PUBLIC            ::   jpyear         ! Number of years read in input data file (in trcini_cfc)
    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) 
+   CHARACTER(len=200), PUBLIC  ::   clnamecfc      ! Input filename of CFCs atm. concentrations
    
    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   p_cfc    ! partial hemispheric pressure for CFC
@@ -38,10 +39,10 @@
    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   qtr_cfc  ! flux at surface
    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   qint_cfc ! cumulative flux 
+   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   atm_cfc  ! partial hemispheric pressure for used CFC
    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   patm     ! atmospheric function
 
-   REAL(wp), DIMENSION(4,2) ::   soa   ! coefficient for solubility of CFC [mol/l/atm]
-   REAL(wp), DIMENSION(3,2) ::   sob   !    "               "
-   REAL(wp), DIMENSION(4,2) ::   sca   ! coefficients for schmidt number in degre Celcius
-      
+   REAL(wp),         ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   soa      ! coefficient for solubility of CFC [mol/l/atm]
+   REAL(wp),         ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   sob      !    "               "
+   REAL(wp),         ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   sca      ! coefficients for schmidt number in degrees Celsius
    !                          ! coefficients for conversion
    REAL(wp) ::   xconv1 = 1.0          ! conversion from to 
@@ -82,5 +83,5 @@
       INTEGER  ::   im1, im2, ierr
       REAL(wp) ::   ztap, zdtap        
-      REAL(wp) ::   zt1, zt2, zt3, zv2
+      REAL(wp) ::   zt1, zt2, zt3, zt4, zv2
       REAL(wp) ::   zsol      ! solubility
       REAL(wp) ::   zsch      ! schmidt number 
@@ -120,6 +121,6 @@
          ! time interpolation at time kt
          DO jm = 1, jphem
-            zpatm(jm,jl) = (  p_cfc(iyear_beg, jm, jl) * FLOAT (im1)  &
-               &           +  p_cfc(iyear_end, jm, jl) * FLOAT (im2) ) / 12.
+            zpatm(jm,jl) = (  atm_cfc(iyear_beg, jm, jl) * REAL(im1, wp)  &
+               &           +  atm_cfc(iyear_end, jm, jl) * REAL(im2, wp) ) / 12.
          END DO
          
@@ -148,14 +149,15 @@
   
                ! Computation of speed transfert
-               !    Schmidt number
+               !    Schmidt number revised in Wanninkhof (2014)
                zt1  = tsn(ji,jj,1,jp_tem)
                zt2  = zt1 * zt1 
                zt3  = zt1 * zt2
-               zsch = sca(1,jl) + sca(2,jl) * zt1 + sca(3,jl) * zt2 + sca(4,jl) * zt3
-
-               !    speed transfert : formulae of wanninkhof 1992
+               zt4  = zt2 * zt2
+               zsch = sca(1,jl) + sca(2,jl) * zt1 + sca(3,jl) * zt2 + sca(4,jl) * zt3 + sca(5,jl) * zt4
+
+               !    speed transfert : formulae revised in Wanninkhof (2014)
                zv2     = wndm(ji,jj) * wndm(ji,jj)
                zsch    = zsch / 660.
-               zak_cfc = ( 0.39 * xconv2 * zv2 / SQRT(zsch) ) * tmask(ji,jj,1)
+               zak_cfc = ( 0.31 * xconv2 * zv2 / SQRT(zsch) ) * tmask(ji,jj,1)
 
                ! Input function  : speed *( conc. at equil - concen at surface )
@@ -188,10 +190,16 @@
       !
       IF( lk_iomput ) THEN
-         CALL iom_put( "qtrCFC11"  , qtr_cfc (:,:,1) )
-         CALL iom_put( "qintCFC11" , qint_cfc(:,:,1) )
+         DO jn = jp_cfc0, jp_cfc1
+            CALL iom_put( 'qtr_'//TRIM(ctrcnm(jn)) , qtr_cfc (:,:,jn) )
+            CALL iom_put( 'qint_'//TRIM(ctrcnm(jn)), qint_cfc(:,:,jn) )
+         ENDDO
       ELSE
          IF( ln_diatrc ) THEN
-            trc2d(:,:,jp_cfc0_2d    ) = qtr_cfc (:,:,1)
-            trc2d(:,:,jp_cfc0_2d + 1) = qint_cfc(:,:,1)
+            jl = 0
+            DO jn = jp_cfc0_2d, jp_cfc1_2d, 2
+               jl = jl + 1
+               trc2d(:,:,jn    ) = qtr_cfc (:,:,jl)
+               trc2d(:,:,jn + 1) = qint_cfc(:,:,jl)
+            ENDDO
          END IF
       END IF
@@ -215,42 +223,81 @@
       !!---------------------------------------------------------------------
       INTEGER :: jn
-
+      !!----------------------------------------------------------------------
+      !
+      jn = 0 
       ! coefficient for CFC11 
       !----------------------
-
-      ! Solubility
-      soa(1,1) = -229.9261 
-      soa(2,1) =  319.6552
-      soa(3,1) =  119.4471
-      soa(4,1) =  -1.39165
-
-      sob(1,1) =  -0.142382
-      sob(2,1) =   0.091459
-      sob(3,1) =  -0.0157274
-
-      ! Schmidt number 
-      sca(1,1) = 3501.8
-      sca(2,1) = -210.31
-      sca(3,1) =  6.1851
-      sca(4,1) = -0.07513
+      if ( lp_cfc11 ) then
+         jn = jn + 1
+         ! Solubility
+         soa(1,jn) = -229.9261 
+         soa(2,jn) =  319.6552
+         soa(3,jn) =  119.4471
+         soa(4,jn) =  -1.39165
+
+         sob(1,jn) =  -0.142382
+         sob(2,jn) =   0.091459
+         sob(3,jn) =  -0.0157274
+
+         ! Schmidt number 
+         sca(1,jn) = 3579.2
+         sca(2,jn) = -222.63
+         sca(3,jn) = 7.5749
+         sca(4,jn) = -0.14595
+         sca(5,jn) = 0.0011874
+
+         ! atm. concentration
+         atm_cfc(:,:,jn) = p_cfc(:,:,1)
+      endif
 
       ! coefficient for CFC12 
       !----------------------
-
-      ! Solubility
-      soa(1,2) = -218.0971
-      soa(2,2) =  298.9702
-      soa(3,2) =  113.8049
-      soa(4,2) =  -1.39165
-
-      sob(1,2) =  -0.143566
-      sob(2,2) =   0.091015
-      sob(3,2) =  -0.0153924
-
-      ! schmidt number 
-      sca(1,2) =  3845.4 
-      sca(2,2) =  -228.95
-      sca(3,2) =  6.1908 
-      sca(4,2) =  -0.067430
+      if ( lp_cfc12 ) then
+         jn = jn + 1
+         ! Solubility
+         soa(1,jn) = -218.0971
+         soa(2,jn) =  298.9702
+         soa(3,jn) =  113.8049
+         soa(4,jn) =  -1.39165
+
+         sob(1,jn) =  -0.143566
+         sob(2,jn) =   0.091015
+         sob(3,jn) =  -0.0153924
+
+         ! schmidt number 
+         sca(1,jn) = 3828.1
+         sca(2,jn) = -249.86
+         sca(3,jn) = 8.7603
+         sca(4,jn) = -0.1716
+         sca(5,jn) = 0.001408
+
+         ! atm. concentration
+         atm_cfc(:,:,jn) = p_cfc(:,:,2)
+      endif
+
+      ! coefficient for SF6
+      !----------------------
+      if ( lp_sf6 ) then
+         jn = jn + 1
+         ! Solubility
+         soa(1,jn) = -80.0343
+         soa(2,jn) = 117.232
+         soa(3,jn) =  29.5817
+         soa(4,jn) =   0.0
+
+         sob(1,jn) =  0.0335183 
+         sob(2,jn) = -0.0373942 
+         sob(3,jn) =  0.00774862
+
+         ! schmidt number
+         sca(1,jn) = 3177.5
+         sca(2,jn) = -200.57
+         sca(3,jn) = 6.8865
+         sca(4,jn) = -0.13335
+         sca(5,jn) = 0.0010877
+  
+         ! atm. concentration
+         atm_cfc(:,:,jn) = p_cfc(:,:,3)
+       endif
 
       IF( ln_rsttr ) THEN
@@ -272,7 +319,8 @@
       !!                     ***  ROUTINE trc_sms_cfc_alloc  ***
       !!----------------------------------------------------------------------
-      ALLOCATE( xphem   (jpi,jpj)        ,     &
-         &      qtr_cfc (jpi,jpj,jp_cfc) ,     &
-         &      qint_cfc(jpi,jpj,jp_cfc) , STAT=trc_sms_cfc_alloc )
+      ALLOCATE( xphem   (jpi,jpj)        , atm_cfc(jpyear,jphem,jp_cfc)  ,    &
+         &      qtr_cfc (jpi,jpj,jp_cfc) , qint_cfc(jpi,jpj,jp_cfc)      ,    &
+         &      soa(4,jp_cfc)    ,  sob(3,jp_cfc)   ,  sca(5,jp_cfc)     ,    &
+         &      STAT=trc_sms_cfc_alloc )
          !
       IF( trc_sms_cfc_alloc /= 0 ) CALL ctl_warn('trc_sms_cfc_alloc : failed to allocate arrays.')
Index: /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/MY_TRC/par_my_trc.F90
===================================================================
--- /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/MY_TRC/par_my_trc.F90	(revision 8352)
+++ /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/MY_TRC/par_my_trc.F90	(revision 8353)
@@ -15,25 +15,10 @@
    USE par_pisces , ONLY : jp_pisces_trd   !: number of biological diag in PISCES
 
-   USE par_cfc    , ONLY : jp_cfc          !: number of tracers in CFC
-   USE par_cfc    , ONLY : jp_cfc_2d       !: number of tracers in CFC
-   USE par_cfc    , ONLY : jp_cfc_3d       !: number of tracers in CFC
-   USE par_cfc    , ONLY : jp_cfc_trd      !: number of tracers in CFC
-
-   USE par_c14b   , ONLY : jp_c14b         !: number of tracers in C14
-   USE par_c14b   , ONLY : jp_c14b_2d      !: number of tracers in C14
-   USE par_c14b   , ONLY : jp_c14b_3d      !: number of tracers in C14
-   USE par_c14b   , ONLY : jp_c14b_trd     !: number of tracers in C14
-
-   USE par_age   , ONLY : jp_age         !: number of tracers in AGE
-   USE par_age   , ONLY : jp_age_2d      !: number of tracers in AGE
-   USE par_age   , ONLY : jp_age_3d      !: number of tracers in AGE
-   USE par_age   , ONLY : jp_age_trd     !: number of tracers in AGE
-
    IMPLICIT NONE
 
-   INTEGER, PARAMETER ::   jp_lm      =  jp_pisces     + jp_cfc     + jp_c14b     + jp_age      !: 
-   INTEGER, PARAMETER ::   jp_lm_2d   =  jp_pisces_2d  + jp_cfc_2d  + jp_c14b_2d  + jp_age_2d   !:
-   INTEGER, PARAMETER ::   jp_lm_3d   =  jp_pisces_3d  + jp_cfc_3d  + jp_c14b_3d  + jp_age_3d   !:
-   INTEGER, PARAMETER ::   jp_lm_trd  =  jp_pisces_trd + jp_cfc_trd + jp_c14b_trd + jp_age_trd  !:
+   INTEGER, PARAMETER ::   jp_lm      =  jp_pisces     !: 
+   INTEGER, PARAMETER ::   jp_lm_2d   =  jp_pisces_2d  !:
+   INTEGER, PARAMETER ::   jp_lm_3d   =  jp_pisces_3d  !:
+   INTEGER, PARAMETER ::   jp_lm_trd  =  jp_pisces_trd !:
 
 #if defined key_my_trc
Index: /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/MY_TRC/trcnam_my_trc.F90
===================================================================
--- /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/MY_TRC/trcnam_my_trc.F90	(revision 8352)
+++ /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/MY_TRC/trcnam_my_trc.F90	(revision 8353)
@@ -36,10 +36,19 @@
       !!
       !!----------------------------------------------------------------------
+      INTEGER :: jn
       !
       IF(lwp) WRITE(numout,*)
       IF(lwp) WRITE(numout,*) ' trc_nam_my_trc : read MY_TRC namelists'
       IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~~'
+      ! 
+      do jn = jp_myt0 , jp_myt1
+         ctrcnm    (jn) = 'NONAME'
+         ctrcln    (jn) = 'NO Long Name'
+         ctrcun    (jn) = 'NOUNIT'
+         ln_trc_ini(jn) = .false.
+         ln_trc_wri(jn) = .true.
+      enddo
       !
-   END SUBROUTINE trc_nam_my_trc
+      END SUBROUTINE trc_nam_my_trc
    
 #else
Index: /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcice.F90
===================================================================
--- /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcice.F90	(revision 8352)
+++ /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcice.F90	(revision 8353)
@@ -52,7 +52,7 @@
       IF ( nn_ice_tr == 1 ) THEN
          IF( lk_pisces  )    CALL trc_ice_ini_pisces       ! PISCES  bio-model
+         IF( lk_my_trc  )    CALL trc_ice_ini_my_trc       ! MY_TRC  tracers
          IF( lk_cfc     )    CALL trc_ice_ini_cfc          ! CFC     tracers
          IF( lk_c14b    )    CALL trc_ice_ini_c14b         ! C14 bomb  tracer
-         IF( lk_my_trc  )    CALL trc_ice_ini_my_trc       ! MY_TRC  tracers
       ENDIF
 
Index: /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcini.F90
===================================================================
--- /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcini.F90	(revision 8352)
+++ /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcini.F90	(revision 8353)
@@ -97,8 +97,8 @@
 
       IF( lk_pisces  )       CALL trc_ini_pisces       ! PISCES  bio-model
+      IF( lk_my_trc  )       CALL trc_ini_my_trc       ! MY_TRC    tracers
       IF( lk_cfc     )       CALL trc_ini_cfc          ! CFC       tracers
       IF( lk_c14b    )       CALL trc_ini_c14b         ! C14 bomb  tracer
       IF( lk_age     )       CALL trc_ini_age          ! AGE       tracer
-      IF( lk_my_trc  )       CALL trc_ini_my_trc       ! MY_TRC    tracers
 
       CALL trc_ice_ini                                 ! Tracers in sea ice
Index: /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcnam.F90
===================================================================
--- /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcnam.F90	(revision 8352)
+++ /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcnam.F90	(revision 8353)
@@ -79,4 +79,30 @@
       ENDIF
 
+      ! Call the ice module for tracers
+      ! -------------------------------
+      CALL trc_nam_ice
+
+      ! namelist of SMS
+      ! ---------------
+      IF( lk_pisces  ) THEN   ;   CALL trc_nam_pisces      ! PISCES  bio-model
+      ELSE                    ;   IF(lwp) WRITE(numout,*) '          PISCES not used'
+      ENDIF
+
+      IF( lk_my_trc  ) THEN  ;   CALL trc_nam_my_trc       ! MY_TRC  tracers
+      ELSE                   ;   IF(lwp) WRITE(numout,*)  '          MY_TRC not used'
+      ENDIF
+
+      IF( lk_cfc     ) THEN   ;   CALL trc_nam_cfc         ! CFC     tracers
+      ELSE                    ;   IF(lwp) WRITE(numout,*) '          CFC not used'
+      ENDIF
+
+      IF( lk_c14b    ) THEN  ;   CALL trc_nam_c14b         ! C14 bomb     tracers
+      ELSE                   ;   IF(lwp) WRITE(numout,*)  '          C14 not used'
+      ENDIF
+
+      IF( lk_age     ) THEN  ;   CALL trc_nam_age         ! AGE     tracer
+      ELSE                   ;   IF(lwp) WRITE(numout,*)  '          AGE not used'
+      ENDIF
+
      IF(lwp) THEN                   ! control print
          WRITE(numout,*)
@@ -119,30 +145,4 @@
       ENDIF
 
-
-      ! Call the ice module for tracers
-      ! -------------------------------
-      CALL trc_nam_ice
-
-      ! namelist of SMS
-      ! ---------------      
-      IF( lk_pisces  ) THEN   ;   CALL trc_nam_pisces      ! PISCES  bio-model
-      ELSE                    ;   IF(lwp) WRITE(numout,*) '          PISCES not used'
-      ENDIF
-
-      IF( lk_cfc     ) THEN   ;   CALL trc_nam_cfc         ! CFC     tracers
-      ELSE                    ;   IF(lwp) WRITE(numout,*) '          CFC not used'
-      ENDIF
-
-      IF( lk_c14b    ) THEN  ;   CALL trc_nam_c14b         ! C14 bomb     tracers
-      ELSE                   ;   IF(lwp) WRITE(numout,*) '          C14 not used'
-      ENDIF
-
-      IF( lk_age     ) THEN  ;   CALL trc_nam_age         ! AGE     tracer
-      ELSE                   ;   IF(lwp) WRITE(numout,*) '          AGE not used'
-      ENDIF
-
-      IF( lk_my_trc  ) THEN  ;   CALL trc_nam_my_trc      ! MY_TRC  tracers
-      ELSE                   ;   IF(lwp) WRITE(numout,*) '          MY_TRC not used'
-      ENDIF
       !
    END SUBROUTINE trc_nam
Index: /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcsms.F90
===================================================================
--- /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcsms.F90	(revision 8352)
+++ /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcsms.F90	(revision 8353)
@@ -50,8 +50,8 @@
       !
       IF( lk_pisces  )   CALL trc_sms_pisces ( kt )    ! main program of PISCES 
+      IF( lk_my_trc  )   CALL trc_sms_my_trc ( kt )    ! MY_TRC  tracers
       IF( lk_cfc     )   CALL trc_sms_cfc    ( kt )    ! surface fluxes of CFC
       IF( lk_c14b    )   CALL trc_sms_c14b   ( kt )    ! surface fluxes of C14
       IF( lk_age     )   CALL trc_sms_age    ( kt )    ! AGE tracer
-      IF( lk_my_trc  )   CALL trc_sms_my_trc ( kt )    ! MY_TRC  tracers
 
       IF(ln_ctl) THEN      ! print mean trends (used for debugging)
Index: /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcwri.F90
===================================================================
--- /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcwri.F90	(revision 8352)
+++ /branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcwri.F90	(revision 8353)
@@ -58,8 +58,8 @@
       ! ---------------------------------------
       IF( lk_pisces  )   CALL trc_wri_pisces     ! PISCES 
+      IF( lk_my_trc  )   CALL trc_wri_my_trc     ! MY_TRC  tracers
       IF( lk_cfc     )   CALL trc_wri_cfc        ! surface fluxes of CFC
       IF( lk_c14b    )   CALL trc_wri_c14b       ! surface fluxes of C14
       IF( lk_age     )   CALL trc_wri_age        ! AGE tracer
-      IF( lk_my_trc  )   CALL trc_wri_my_trc     ! MY_TRC  tracers
       !
       IF( nn_timing == 1 )  CALL timing_stop('trc_wri')
