Index: /LMDZ6/trunk/libf/dyn3d/dynredem.F90
===================================================================
--- /LMDZ6/trunk/libf/dyn3d/dynredem.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/dyn3d/dynredem.F90	(revision 4389)
@@ -167,5 +167,5 @@
 !-------------------------------------------------------------------------------
   USE strings_mod, ONLY: maxlen
-  USE infotrac, ONLY: nqtot, tracers, types_trac
+  USE infotrac, ONLY: nqtot, tracers, type_trac
   USE control_mod
   USE netcdf,   ONLY: NF90_OPEN,  NF90_NOWRITE, NF90_GET_VAR, NF90_INQ_VARID,  &
@@ -228,5 +228,5 @@
 !--- Tracers in file "start_trac.nc" (added by Anne)
   lread_inca=.FALSE.; fil="start_trac.nc"
-  IF(ANY(types_trac=='inca') .OR. ANY(types_trac=='inco')) INQUIRE(FILE=fil,EXIST=lread_inca)
+  IF(ANY(type_trac == ['inca','inco'])) INQUIRE(FILE=fil,EXIST=lread_inca)
   IF(lread_inca) CALL err(NF90_OPEN(fil,NF90_NOWRITE,nid_trac),"open")
 
Index: /LMDZ6/trunk/libf/dyn3d_common/infotrac.F90
===================================================================
--- /LMDZ6/trunk/libf/dyn3d_common/infotrac.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/dyn3d_common/infotrac.F90	(revision 4389)
@@ -4,7 +4,7 @@
 
    USE       strings_mod, ONLY: msg, fmsg, maxlen, cat, dispTable, int2str, bool2str, strStack, strParse
-   USE readTracFiles_mod, ONLY: trac_type, readTracersFiles, tracers, setGeneration, itZonIso, nbIso, tran0, delPhase, &
-                        getKey, isot_type, readIsotopesFile, isotope, maxTableWidth, iqIsoPha, ntiso, ixIso, addPhase, &
-                   indexUpdate, isoSelect, isoPhas, isoZone, isoName, isoKeys, iH2O, isoCheck, nphas, nzone, niso
+   USE readTracFiles_mod, ONLY: trac_type, readTracersFiles, tracers, setGeneration, itZonIso, nzone, tran0, isoZone, &
+        delPhase, niso, getKey, isot_type, readIsotopesFile, isotope, maxTableWidth, iqIsoPha, nphas, ixIso, isoPhas, &
+        addPhase, iH2O, nbIso,  isoSelect, testTracersFiles, isoKeys, indexUpdate,   isoCheck, nzone, ntiso, isoName
    IMPLICIT NONE
 
@@ -13,5 +13,5 @@
    !=== FOR TRACERS:
    PUBLIC :: init_infotrac                                 !--- Initialization of the tracers
-   PUBLIC :: tracers, type_trac, types_trac                !--- Full tracers database, tracers type keyword
+   PUBLIC :: tracers, type_trac                            !--- Full tracers database, tracers type keyword
    PUBLIC :: nqtot,   nbtr,   nqo,   nqCO2,   nqtottr      !--- Main dimensions
    PUBLIC :: conv_flg, pbl_flg                             !--- Convection & boundary layer activation keys
@@ -104,6 +104,5 @@
                                   nqtottr, &                    !--- Number of tracers passed to phytrac (TO BE DELETED ?)
                                   nqCO2                         !--- Number of tracers of CO2  (ThL)
-   CHARACTER(LEN=maxlen), SAVE :: type_trac                     !--- Keyword for tracers type(s)
-   CHARACTER(LEN=maxlen), SAVE, ALLOCATABLE :: types_trac(:)    !--- Keyword for tracers type(s), parsed version
+   CHARACTER(LEN=maxlen), SAVE :: type_trac                     !--- Keyword for tracers type
 
    !=== VARIABLES FOR INCA
@@ -152,5 +151,5 @@
    CHARACTER(LEN=2)      ::   suff(9)                                !--- Suffixes for schemes of order 3 or 4 (Prather)
    CHARACTER(LEN=3)      :: descrq(30)                               !--- Advection scheme description tags
-   CHARACTER(LEN=maxlen) :: msg1                                     !--- String for messages
+   CHARACTER(LEN=maxlen) :: msg1, texp, ttp                          !--- Strings for messages and expanded tracers type
    INTEGER :: fType                                                  !--- Tracers description file type ; 0: none
                                                                      !--- 1/2/3: "traceur.def"/"tracer.def"/"tracer_*.def"
@@ -158,5 +157,5 @@
    INTEGER :: iad                                                    !--- Advection scheme number
    INTEGER :: ic, iq, jq, it, nt, im, nm, iz, k                      !--- Indexes and temporary variables
-   LOGICAL :: lerr, ll, lRepr
+   LOGICAL :: lerr, ll
    CHARACTER(LEN=1) :: p
    TYPE(trac_type), ALLOCATABLE, TARGET :: ttr(:)
@@ -174,52 +173,51 @@
     
    CALL msg('type_trac = "'//TRIM(type_trac)//'"', modname)
-   IF(strParse(type_trac, '|', types_trac, n=nt)) CALL abort_gcm(modname,'can''t parse "type_trac = '//TRIM(type_trac)//'"',1)
-
-   !---------------------------------------------------------------------------------------------------------------------------
-   DO it = 1, nt                                                          !--- nt>1=> "type_trac": coma-separated keywords list
-   !---------------------------------------------------------------------------------------------------------------------------
-      !--- MESSAGE ABOUT THE CHOSEN CONFIGURATION
-      msg1 = 'For type_trac = "'//TRIM(types_trac(it))//'":'
-      SELECT CASE(types_trac(it))
-         CASE('inca'); CALL msg(TRIM(msg1)//' coupling with INCA chemistry model',        modname)
-         CASE('inco'); CALL msg(TRIM(msg1)//' coupling jointly with INCA and CO2 cycle',  modname)
-         CASE('repr'); CALL msg(TRIM(msg1)//' coupling with REPROBUS chemistry model',    modname)
-         CASE('co2i'); CALL msg(TRIM(msg1)//' you have chosen to run with CO2 cycle',     modname)
-         CASE('coag'); CALL msg(TRIM(msg1)//' tracers are treated for COAGULATION tests', modname)
-         CASE('lmdz'); CALL msg(TRIM(msg1)//' tracers are treated in LMDZ only',          modname)
-         CASE DEFAULT; CALL abort_gcm(modname,'type_trac='//TRIM(types_trac(it))//' not possible yet.',1)
-      END SELECT
-
-      !--- COHERENCE TEST BETWEEN "type_trac" AND PREPROCESSING KEYS
-      SELECT CASE(types_trac(it))
-         CASE('inca', 'inco')
+
+   !--- MESSAGE ABOUT THE CHOSEN CONFIGURATION
+   msg1 = 'For type_trac = "'//TRIM(type_trac)//'":'
+   SELECT CASE(type_trac)
+      CASE('inca'); CALL msg(TRIM(msg1)//' coupling with INCA chemistry model',        modname)
+      CASE('inco'); CALL msg(TRIM(msg1)//' coupling jointly with INCA and CO2 cycle',  modname)
+      CASE('repr'); CALL msg(TRIM(msg1)//' coupling with REPROBUS chemistry model',    modname)
+      CASE('co2i'); CALL msg(TRIM(msg1)//' you have chosen to run with CO2 cycle',     modname)
+      CASE('coag'); CALL msg(TRIM(msg1)//' tracers are treated for COAGULATION tests', modname)
+      CASE('lmdz'); CALL msg(TRIM(msg1)//' tracers are treated in LMDZ only',          modname)
+      CASE DEFAULT; CALL abort_gcm(modname,'type_trac='//TRIM(type_trac)//' not possible yet.',1)
+   END SELECT
+
+   !--- COHERENCE TEST BETWEEN "type_trac" AND PREPROCESSING KEYS
+   SELECT CASE(type_trac)
+      CASE('inca', 'inco')
 #ifndef INCA
-            CALL abort_gcm(modname, 'You must add cpp key INCA and compile with INCA code', 1)
-#endif
-         CASE('repr')
+         CALL abort_gcm(modname, 'You must add cpp key INCA and compile with INCA code', 1)
+#endif
+      CASE('repr')
 #ifndef REPROBUS
-            CALL abort_gcm(modname, 'You must add cpp key REPROBUS and compile with REPROBUS code', 1)
-#endif
-         CASE('coag')
+         CALL abort_gcm(modname, 'You must add cpp key REPROBUS and compile with REPROBUS code', 1)
+#endif
+      CASE('coag')
 #ifndef CPP_StratAer
-            CALL abort_gcm(modname, 'You must add cpp key StratAer and compile with StratAer code', 1)
-#endif
-      END SELECT
-
-   !---------------------------------------------------------------------------------------------------------------------------
-   END DO
-   !---------------------------------------------------------------------------------------------------------------------------
-
-   nqCO2 = COUNT( [ANY(types_trac == 'inco') .OR. (ANY(types_trac == 'co2i') .AND. ANY(types_trac == 'inca'))] )
+         CALL abort_gcm(modname, 'You must add cpp key StratAer and compile with StratAer code', 1)
+#endif
+   END SELECT
+
+   nqCO2 = COUNT( [type_trac == 'inco', type_trac == 'co2i'] )
 
 !==============================================================================================================================
 ! 1) Get the numbers of: true (first order only) tracers "nqtrue", water tracers "nqo" (vapor/liquid/solid)
 !==============================================================================================================================
-   lRepr = ANY(types_trac(:) == 'repr')
-   IF(readTracersFiles(type_trac, fType, lRepr)) CALL abort_gcm(modname, 'problem with tracers file(s)',1)
+   texp = type_trac                                                  !=== EXPANDED VERSION OF "type_trac", WITH "|" SEPARATOR
+   IF(texp == 'inco') texp = 'co2i|inca'
+   IF(texp /= 'lmdz') texp = 'lmdz|'//TRIM(texp)
+
+   !=== DETERMINE THE TYPE OF THE INPUT TRACERS DESCRIPTION FILE
+   IF(testTracersFiles(modname, texp, fType, .TRUE.)) CALL abort_gcm(modname, 'problem with tracers file(s)',1)
+   ttp = type_trac; IF(fType /= 1) ttp = texp
+
+   IF(readTracersFiles(ttp, type_trac == 'repr'))     CALL abort_gcm(modname, 'problem with tracers file(s)',1)
    !---------------------------------------------------------------------------------------------------------------------------
    IF(fType == 0) CALL abort_gcm(modname, 'Missing tracers file: "traceur.def", "tracer.def" or "tracer_<keyword>.def file.',1)
    !---------------------------------------------------------------------------------------------------------------------------
-   IF(fType == 1 .AND. ANY(['inca','inco'] == type_trac)) THEN       !=== FOUND OLD STYLE INCA "traceur.def" (single type_trac)
+   IF(fType == 1 .AND. ANY(['inca','inco']==type_trac)) THEN         !=== FOUND OLD STYLE INCA "traceur.def"
    !---------------------------------------------------------------------------------------------------------------------------
 #ifdef INCA
@@ -233,17 +231,17 @@
       CALL init_transport(solsym_inca, conv_flg_inca, pbl_flg_inca, hadv_inca, vadv_inca)
       ALLOCATE(ttr(nqtrue))
-      ttr(1:nqo+nqCO2)                    = tracers
-      ttr(1    :      nqo   )%component   = 'lmdz'
-      ttr(1+nqo:nqCO2+nqo   )%component   = 'co2i'
-      ttr(1+nqo+nqCO2:nqtrue)%component   = 'inca'
-      ttr(1+nqo      :nqtrue)%name        = [('CO2     ', k=1, nqCO2), solsym_inca]
-      ttr(1+nqo+nqCO2:nqtrue)%parent      = tran0
-      ttr(1+nqo+nqCO2:nqtrue)%phase       = 'g'
+      ttr(1:nqo+nqCO2)                  = tracers
+      ttr(1    :      nqo   )%component = 'lmdz'
+      ttr(1+nqo:nqCO2+nqo   )%component = 'co2i'
+      ttr(1+nqo+nqCO2:nqtrue)%component = 'inca'
+      ttr(1+nqo      :nqtrue)%name      = [('CO2     ', k=1, nqCO2), solsym_inca]
+      ttr(1+nqo+nqCO2:nqtrue)%parent    = tran0
+      ttr(1+nqo+nqCO2:nqtrue)%phase     = 'g'
       lerr = getKey('hadv', had, ky=tracers(:)%keys)
       lerr = getKey('vadv', vad, ky=tracers(:)%keys)
-      hadv(1:nqo) = had(:); hadv(nqo+1:nqtrue) = hadv_inca
-      vadv(1:nqo) = vad(:); vadv(nqo+1:nqtrue) = vadv_inca
+      hadv(1:nqo+nqCO2) = had(:); hadv(1+nqo+nqCO2:nqtrue) = hadv_inca
+      vadv(1:nqo+nqCO2) = vad(:); vadv(1+nqo+nqCO2:nqtrue) = vadv_inca
       CALL MOVE_ALLOC(FROM=ttr, TO=tracers)
-      CALL setGeneration(tracers)                                    !--- SET FIELDS %iGeneration, %gen0Name
+      IF(setGeneration(tracers)) CALL abort_gcm(modname,'See above',1) !- SET FIELDS %iGeneration, %gen0Name
       DEALLOCATE(had, hadv_inca, vad, vadv_inca, conv_flg_inca, pbl_flg_inca, solsym_inca)
 #endif
Index: /LMDZ6/trunk/libf/dyn3dmem/dynredem_loc.F90
===================================================================
--- /LMDZ6/trunk/libf/dyn3dmem/dynredem_loc.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/dyn3dmem/dynredem_loc.F90	(revision 4389)
@@ -176,5 +176,5 @@
   USE mod_hallo
   USE strings_mod, ONLY: maxlen
-  USE infotrac, ONLY: nqtot, tracers, types_trac
+  USE infotrac, ONLY: nqtot, tracers, type_trac
   USE control_mod
   USE netcdf,   ONLY: NF90_OPEN,  NF90_NOWRITE, NF90_GET_VAR, NF90_INQ_VARID,  &
@@ -243,5 +243,5 @@
 !$OMP MASTER
   fil="start_trac.nc"
-  IF(ANY(types_trac=='inca') .OR. ANY(types_trac=='inco')) INQUIRE(FILE=fil,EXIST=lread_inca)
+  IF(ANY(type_trac == ['inca','inco'])) INQUIRE(FILE=fil,EXIST=lread_inca)
   IF(lread_inca) CALL err(NF90_OPEN(fil,NF90_NOWRITE,nid_trac),"open")
 !$OMP END MASTER
Index: /LMDZ6/trunk/libf/dyn3dmem/leapfrog_loc.F
===================================================================
--- /LMDZ6/trunk/libf/dyn3dmem/leapfrog_loc.F	(revision 4388)
+++ /LMDZ6/trunk/libf/dyn3dmem/leapfrog_loc.F	(revision 4389)
@@ -1519,9 +1519,8 @@
 
 #ifdef INCA
-         if (ANY(types_trac == 'inca') .OR. 
-     &       ANY(types_trac == 'inco')) CALL finalize_inca
+         if (ANY(type_trac == ['inca','inco'])) CALL finalize_inca
 #endif
 #ifdef REPROBUS
-         if (ANY(types_trac == 'repr')) CALL finalize_reprobus
+         if (type_trac == 'repr') CALL finalize_reprobus
 #endif
 
@@ -1569,9 +1568,8 @@
 
 #ifdef INCA
-              if (ANY(types_trac == 'inca') .OR. 
-     &            ANY(types_trac == 'inco')) CALL finalize_inca
+              if (ANY(type_trac == ['inca','inco'])) CALL finalize_inca
 #endif
 #ifdef REPROBUS
-              if (ANY(types_trac == 'repr')) CALL finalize_reprobus
+              if (type_trac == 'repr') CALL finalize_reprobus
 #endif
 
@@ -1737,9 +1735,8 @@
 
 #ifdef INCA
-                 if (ANY(types_trac == 'inca') .OR. 
-     &               ANY(types_trac == 'inco')) CALL finalize_inca
+              if (ANY(type_trac == ['inca','inco'])) CALL finalize_inca
 #endif
 #ifdef REPROBUS
-                 if (ANY(types_trac == 'repr')) CALL finalize_reprobus
+                 if (type_trac == 'repr') CALL finalize_reprobus
 #endif
 
@@ -1845,9 +1842,8 @@
 
 #ifdef INCA
-      if (ANY(types_trac == 'inca') .OR. 
-     &    ANY(types_trac == 'inco')) CALL finalize_inca
+      if (ANY(type_trac == ['inca','inco'])) CALL finalize_inca
 #endif
 #ifdef REPROBUS
-      if (ANY(types_trac == 'repr')) CALL finalize_reprobus
+      if (type_trac == 'repr') CALL finalize_reprobus
 #endif
 
Index: /LMDZ6/trunk/libf/dynphy_lonlat/phylmd/ce0l.F90
===================================================================
--- /LMDZ6/trunk/libf/dynphy_lonlat/phylmd/ce0l.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/dynphy_lonlat/phylmd/ce0l.F90	(revision 4389)
@@ -23,5 +23,5 @@
   USE netcdf,         ONLY: NF90_OPEN, NF90_NOWRITE, NF90_CLOSE, NF90_NOERR,    &
          NF90_INQUIRE_DIMENSION, NF90_INQ_DIMID, NF90_INQ_VARID, NF90_GET_VAR
-  USE infotrac,       ONLY: type_trac, init_infotrac
+  USE infotrac,       ONLY: init_infotrac
   USE dimphy,         ONLY: klon
   USE test_disvert_m, ONLY: test_disvert
Index: /LMDZ6/trunk/libf/dynphy_lonlat/phylmd/iniphysiq_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/dynphy_lonlat/phylmd/iniphysiq_mod.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/dynphy_lonlat/phylmd/iniphysiq_mod.F90	(revision 4389)
@@ -16,5 +16,5 @@
   USE mod_phys_lmdz_para, ONLY: klon_omp ! number of columns (on local omp grid)
   USE vertical_layers_mod, ONLY : init_vertical_layers
-  USE infotrac, ONLY: nbtr, type_trac, types_trac
+  USE infotrac, ONLY: nbtr, type_trac
 #ifdef CPP_StratAer
   USE infotrac_phy, ONLY: nbtr_bin, nbtr_sulgas, id_OCS_strat, &
@@ -140,5 +140,5 @@
 
   ! Initializations for Reprobus
-  IF (ANY(types_trac == 'repr')) THEN
+  IF (type_trac == 'repr') THEN
 #ifdef REPROBUS
     call Init_chem_rep_phys(klon_omp,nlayer)
@@ -151,5 +151,5 @@
 
 
-  IF (ANY(types_trac == 'repr')) THEN
+  IF (type_trac == 'repr') THEN
 #ifdef REPROBUS
     call init_reprobus_para( &
@@ -166,5 +166,5 @@
   END IF
 
-  IF (ANY(types_trac == 'inca') .OR. ANY(types_trac == 'inco')) THEN
+  IF (ANY(type_trac == ['inca','inco'])) THEN
 #ifdef INCA
      CALL init_inca_dim_reg(nbp_lon, nbp_lat - 1, &
Index: /LMDZ6/trunk/libf/misc/readTracFiles_mod.f90
===================================================================
--- /LMDZ6/trunk/libf/misc/readTracFiles_mod.f90	(revision 4388)
+++ /LMDZ6/trunk/libf/misc/readTracFiles_mod.f90	(revision 4389)
@@ -179,8 +179,7 @@
 !     * If you need to convert a %key/%val pair into a direct-access key, add the corresponding line in "setDirectKeys".
 !==============================================================================================================================
-LOGICAL FUNCTION readTracersFiles(type_trac, fTyp, lRepr) RESULT(lerr)
+LOGICAL FUNCTION readTracersFiles(type_trac, lRepr) RESULT(lerr)
 !------------------------------------------------------------------------------------------------------------------------------
   CHARACTER(LEN=*),  INTENT(IN)  :: type_trac                        !--- List of components used
-  INTEGER, OPTIONAL, INTENT(OUT) :: fTyp                             !--- Type of input file found
   LOGICAL, OPTIONAL, INTENT(IN)  :: lRepr                            !--- Activate the HNNO3 exceptions for REPROBUS
   CHARACTER(LEN=maxlen),  ALLOCATABLE :: s(:), sections(:), trac_files(:)
@@ -196,6 +195,5 @@
 
   !--- Required sections + corresponding files names (new style single section case) for tests
-  IF(test(testTracersFiles(modname, type_trac, fType, .TRUE., trac_files, sections), lerr)) RETURN
-  IF(PRESENT(fTyp)) fTyp = fType
+  IF(test(testTracersFiles(modname, type_trac, fType, .FALSE., trac_files, sections), lerr)) RETURN
   nsec = SIZE(sections)
 
@@ -290,29 +288,28 @@
   CHARACTER(LEN=*),                             INTENT(IN)  :: modname, type_trac
   INTEGER,                                      INTENT(OUT) :: fType
-  LOGICAL,                                      INTENT(IN)  :: lDisp
+  LOGICAL,                            OPTIONAL, INTENT(IN)  :: lDisp
   CHARACTER(LEN=maxlen), ALLOCATABLE, OPTIONAL, INTENT(OUT) :: tracf(:), sects(:)
   CHARACTER(LEN=maxlen), ALLOCATABLE :: trac_files(:), sections(:)
   LOGICAL, ALLOCATABLE :: ll(:)
+  LOGICAL :: lD
   INTEGER :: is, nsec
-
-  !--- PARSE "type_trac" LIST AND DETERMINE THE TRACERS FILES NAMES (FOR CASE 3: MULTIPLE FILES, SINNGLE SECTION PER FILE)
+  lD = .FALSE.; IF(PRESENT(lDisp)) lD = lDisp
+  lerr = .FALSE.
+
+  !--- PARSE "type_trac" LIST AND DETERMINE THE TRACERS FILES NAMES (FOR CASE 3: MULTIPLE FILES, SINGLE SECTION PER FILE)
+  !--- If type_trac is a scalar (case 1), "sections" and "trac_files" are not usable, but are meaningless for case 1 anyway.
   IF(test(strParse(type_trac, '|', sections,  n=nsec), lerr)) RETURN !--- Parse "type_trac" list
   IF(PRESENT(sects)) sects = sections
   ALLOCATE(trac_files(nsec)); DO is=1, nsec; trac_files(is) = 'tracer_'//TRIM(sections(is))//'.def'; END DO
   IF(PRESENT(tracf)) tracf = trac_files
-
-  nsec = SIZE(trac_files, DIM=1)
   ll = .NOT.testFile(trac_files)
   fType = 0
-  IF(.NOT.testFile('traceur.def') .AND. nsec==1) fType = 1           !--- OLD STYLE FILE
-  IF(.NOT.testFile('tracer.def'))                fType = 2           !--- NEW STYLE ; SINGLE  FILE, SEVERAL SECTIONS
-  IF(ALL(ll))                                    fType = 3           !--- NEW STYLE ; SEVERAL FILES, SINGLE SECTION USED
-  IF(.NOT.test(lDisp, lerr)) RETURN                                  !--- NO CHECKING/DISPLAY NEEDED: JUST GET type_trac,fType
+  IF(.NOT.testFile('traceur.def')) fType = 1                         !--- OLD STYLE FILE
+  IF(.NOT.testFile('tracer.def'))  fType = 2                         !--- NEW STYLE ; SINGLE  FILE, SEVERAL SECTIONS
+  IF(ALL(ll))                      fType = 3                         !--- NEW STYLE ; SEVERAL FILES, SINGLE SECTION USED
+  IF(.NOT.lD) RETURN                                                 !--- NO CHECKING/DISPLAY NEEDED: JUST GET type_trac,fType
   IF(ANY(ll) .AND. fType/=3) THEN                                    !--- MISSING FILES
     IF(test(checkList(trac_files, .NOT.ll, 'Failed reading tracers description', 'files', 'missing'), lerr)) RETURN
   END IF
-
-  !--- CHECK WHETHER type_trac AND FILE TYPE ARE COMPATIBLE
-  IF(test(fmsg('No multiple sections for the old format "traceur.def"', ll = nsec>1 .AND. fType==1), lerr)) RETURN
 
   !--- TELLS WHAT WAS IS ABOUT TO BE USED
Index: /LMDZ6/trunk/libf/phy_common/physics_distribution_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phy_common/physics_distribution_mod.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/phy_common/physics_distribution_mod.F90	(revision 4389)
@@ -13,5 +13,5 @@
   USE mod_grid_phy_lmdz, ONLY: init_grid_phy_lmdz
   USE dimphy, ONLY : Init_dimphy
-  USE infotrac_phy, ONLY : types_trac
+  USE infotrac_phy, ONLY : type_trac
 #ifdef REPROBUS
   USE CHEM_REP, ONLY : Init_chem_rep_phys
@@ -39,5 +39,5 @@
 #ifdef REPROBUS
 ! Initialization of Reprobus
-    IF (ANY(types_trac == 'repr')) CALL Init_chem_rep_phys(klon_omp,nbp_lev)
+    IF (type_trac == 'repr') CALL Init_chem_rep_phys(klon_omp,nbp_lev)
 #endif
 
@@ -50,5 +50,5 @@
 !  USE mod_grid_phy_lmdz, ONLY: Init_grid_phy_lmdz!, nbp_lev
 !  USE dimphy, ONLY : Init_dimphy
-!  USE infotrac_phy, ONLY : types_trac
+!  USE infotrac_phy, ONLY : type_trac
 !#ifdef REPROBUS
 !  USE CHEM_REP, ONLY : Init_chem_rep_phys
@@ -71,5 +71,5 @@
 !#ifdef REPROBUS
 !! Initialization of Reprobus
-!    IF (ANY(types_trac == 'repr')) CALL Init_chem_rep_phys(klon_omp,nbp_lev)
+!    IF (type_trac == 'repr') CALL Init_chem_rep_phys(klon_omp,nbp_lev)
 !    END IF
 !#endif
Index: /LMDZ6/trunk/libf/phydev/infotrac_phy.F90
===================================================================
--- /LMDZ6/trunk/libf/phydev/infotrac_phy.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/phydev/infotrac_phy.F90	(revision 4389)
@@ -7,11 +7,9 @@
    INTEGER,                 SAVE :: nqtot                       !--- Tracers nb in dynamics (incl. higher moments + H2O)
    CHARACTER(LEN=maxlen),   SAVE :: type_trac                   !--- Keyword for tracers type
-   CHARACTER(LEN=maxlen),   SAVE, ALLOCATABLE :: types_trac(:)  !--- Parsed version (one or several components name(s))
-!$OMP THREADPRIVATE(nqtot, type_trac, types_trac)
+!$OMP THREADPRIVATE(nqtot, type_trac)
 
 CONTAINS
 
 SUBROUTINE init_infotrac_phy(nqtot_, type_trac_)
-   USE strings_mod, ONLY: strParse
    IMPLICIT NONE
    INTEGER,          INTENT(IN) :: nqtot_
@@ -20,5 +18,4 @@
 
    nqtot = nqtot_
-   IF(strParse(type_trac, '|', types_trac)) CALL abort_physic(modname,'can''t parse "type_trac = '//TRIM(type_trac)//'"',1)
    type_trac = type_trac_
 
Index: /LMDZ6/trunk/libf/phylmd/Dust/phys_output_write_spl_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/Dust/phys_output_write_spl_mod.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/phylmd/Dust/phys_output_write_spl_mod.F90	(revision 4389)
@@ -381,5 +381,5 @@
     USE pbl_surface_mod, ONLY: snow
     USE indice_sol_mod, ONLY: nbsrf
-    USE infotrac, ONLY: nqtot, nbtr, tracers, type_trac
+    USE infotrac, ONLY: nqtot, nbtr, tracers
     USE geometry_mod, ONLY: cell_area
     USE surface_data, ONLY: type_ocean, version_ocean, ok_veget, landice_opt
Index: /LMDZ6/trunk/libf/phylmd/infotrac_phy.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/infotrac_phy.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/phylmd/infotrac_phy.F90	(revision 4389)
@@ -13,5 +13,5 @@
    !=== FOR TRACERS:
    PUBLIC :: init_infotrac_phy                             !--- Initialization of the tracers
-   PUBLIC :: tracers, type_trac, types_trac                !--- Full tracers database, tracers type keyword
+   PUBLIC :: tracers, type_trac                            !--- Full tracers database, tracers type keyword
    PUBLIC :: nqtot,   nbtr,   nqo,   nqCO2,   nqtottr      !--- Main dimensions
    PUBLIC :: conv_flg, pbl_flg                             !--- Convection & boundary layer activation keys
@@ -104,6 +104,5 @@
                                   nqCO2                         !--- Number of tracers of CO2  (ThL)
    CHARACTER(LEN=maxlen), SAVE :: type_trac                     !--- Keyword for tracers type(s)
-   CHARACTER(LEN=maxlen), SAVE, ALLOCATABLE :: types_trac(:)    !--- Keyword for tracers type(s), parsed version
-!$OMP THREADPRIVATE(nqtot, nbtr, nqo, nqtottr, nqCO2, type_trac, types_trac)
+!$OMP THREADPRIVATE(nqtot, nbtr, nqo, nqtottr, nqCO2, type_trac)
 
    !=== VARIABLES FOR INCA
@@ -164,5 +163,5 @@
    CHARACTER(LEN=2)      ::   suff(9)                                !--- Suffixes for schemes of order 3 or 4 (Prather)
    CHARACTER(LEN=3)      :: descrq(30)                               !--- Advection scheme description tags
-   CHARACTER(LEN=maxlen) :: msg1                                     !--- String for messages
+   CHARACTER(LEN=maxlen) :: msg1, texp, ttp                          !--- String for messages and expanded tracers type
    INTEGER :: fType                                                  !--- Tracers description file type ; 0: none
                                                                      !--- 1/2/3: "traceur.def"/"tracer.def"/"tracer_*.def"
@@ -170,5 +169,5 @@
    INTEGER :: iad                                                    !--- Advection scheme number
    INTEGER :: ic, iq, jq, it, nt, im, nm, iz, k                      !--- Indexes and temporary variables
-   LOGICAL :: lerr, ll, lRepr, lInit
+   LOGICAL :: lerr, ll, lInit
    CHARACTER(LEN=1) :: p
    TYPE(trac_type), ALLOCATABLE, TARGET :: ttr(:)
@@ -181,4 +180,5 @@
 !------------------------------------------------------------------------------------------------------------------------------
    suff          = ['x ','y ','z ','xx','xy','xz','yy','yz','zz']
+   descrq( 1:30) =  '   '
    descrq( 1: 2) = ['LMV','BAK']
    descrq(10:20) = ['VL1','VLP','FH1','FH2','VLH','   ','PPM','PPS','PPP','   ','SLP']
@@ -187,5 +187,4 @@
    CALL getin_p('type_trac',type_trac)
    CALL msg('type_trac = "'//TRIM(type_trac)//'"', modname)
-   IF(strParse(type_trac, '|', types_trac, n=nt)) CALL abort_gcm(modname,'can''t parse "type_trac = '//TRIM(type_trac)//'"',1)
    lInit = .NOT.ALLOCATED(tracers)
 
@@ -193,55 +192,53 @@
    IF(lInit) THEN                                                    !=== SKIPED IF ALREADY DONE IN dyn3d_common/infotrac  ####
 !##############################################################################################################################
-   !---------------------------------------------------------------------------------------------------------------------------
-   DO it = 1, nt                                                     !--- nt>1=> "type_trac": coma-separated keywords list
-   !---------------------------------------------------------------------------------------------------------------------------
-      !--- MESSAGE ABOUT THE CHOSEN CONFIGURATION
-      msg1 = 'For type_trac = "'//TRIM(types_trac(it))//'":'
-      SELECT CASE(types_trac(it))
-         CASE('inca'); CALL msg(TRIM(msg1)//' coupling with INCA chemistry model',        modname)
-         CASE('inco'); CALL msg(TRIM(msg1)//' coupling jointly with INCA and CO2 cycle',  modname)
-         CASE('repr'); CALL msg(TRIM(msg1)//' coupling with REPROBUS chemistry model',    modname)
-         CASE('co2i'); CALL msg(TRIM(msg1)//' you have chosen to run with CO2 cycle',     modname)
-         CASE('coag'); CALL msg(TRIM(msg1)//' tracers are treated for COAGULATION tests', modname)
-         CASE('lmdz'); CALL msg(TRIM(msg1)//' tracers are treated in LMDZ only',          modname)
-         CASE DEFAULT; CALL abort_gcm(modname,'type_trac='//TRIM(types_trac(it))//' not possible yet.',1)
-      END SELECT
-
-      !--- COHERENCE TEST BETWEEN "type_trac" AND PREPROCESSING KEYS
-      SELECT CASE(types_trac(it))
-         CASE('inca', 'inco')
+   !--- MESSAGE ABOUT THE CHOSEN CONFIGURATION
+   msg1 = 'For type_trac = "'//TRIM(type_trac)//'":'
+   SELECT CASE(type_trac)
+      CASE('inca'); CALL msg(TRIM(msg1)//' coupling with INCA chemistry model',        modname)
+      CASE('inco'); CALL msg(TRIM(msg1)//' coupling jointly with INCA and CO2 cycle',  modname)
+      CASE('repr'); CALL msg(TRIM(msg1)//' coupling with REPROBUS chemistry model',    modname)
+      CASE('co2i'); CALL msg(TRIM(msg1)//' you have chosen to run with CO2 cycle',     modname)
+      CASE('coag'); CALL msg(TRIM(msg1)//' tracers are treated for COAGULATION tests', modname)
+      CASE('lmdz'); CALL msg(TRIM(msg1)//' tracers are treated in LMDZ only',          modname)
+      CASE DEFAULT; CALL abort_gcm(modname,'type_trac='//TRIM(type_trac)//' not possible yet.',1)
+   END SELECT
+
+   !--- COHERENCE TEST BETWEEN "type_trac" AND PREPROCESSING KEYS
+   SELECT CASE(type_trac)
+      CASE('inca', 'inco')
 #ifndef INCA
-            CALL abort_gcm(modname, 'You must add cpp key INCA and compile with INCA code', 1)
-#endif
-         CASE('repr')
+         CALL abort_gcm(modname, 'You must add cpp key INCA and compile with INCA code', 1)
+#endif
+      CASE('repr')
 #ifndef REPROBUS
-            CALL abort_gcm(modname, 'You must add cpp key REPROBUS and compile with REPROBUS code', 1)
-#endif
-         CASE('coag')
+         CALL abort_gcm(modname, 'You must add cpp key REPROBUS and compile with REPROBUS code', 1)
+#endif
+      CASE('coag')
 #ifndef CPP_StratAer
-            CALL abort_gcm(modname, 'You must add cpp key StratAer and compile with StratAer code', 1)
-#endif
-      END SELECT
-
-   !---------------------------------------------------------------------------------------------------------------------------
-   END DO
-   !---------------------------------------------------------------------------------------------------------------------------
-
-!##############################################################################################################################
-   END IF
-!##############################################################################################################################
-
-   nqCO2 = COUNT( [ANY(types_trac == 'inco') .OR. (ANY(types_trac == 'co2i') .AND. ANY(types_trac == 'inca'))] )
+         CALL abort_gcm(modname, 'You must add cpp key StratAer and compile with StratAer code', 1)
+#endif
+   END SELECT
+!##############################################################################################################################
+   END IF
+!##############################################################################################################################
+
+   nqCO2 = COUNT( [type_trac == 'inco', type_trac == 'co2i'] )
 
 !==============================================================================================================================
 ! 1) Get the numbers of: true (first order only) tracers "nqtrue", water tracers "nqo" (vapor/liquid/solid)
 !==============================================================================================================================
-   lRepr = ANY(types_trac(:) == 'repr')
+   texp = type_trac                                                  !=== EXPANDED VERSION OF "type_trac", WITH "|" SEPARATOR
+   IF(texp == 'inco') texp = 'co2i|inca'
+   IF(texp /= 'lmdz') texp = 'lmdz|'//TRIM(texp)
+
+   !=== DETERMINE THE TYPE OF THE INPUT TRACERS DESCRIPTION FILE
+   IF(testTracersFiles(modname, texp, fType, lInit)) CALL abort_gcm(modname, 'problem with tracers file(s)',1)
+   ttp = type_trac; IF(fType /= 1) ttp = texp
+
 !##############################################################################################################################
    IF(lInit) THEN
-     IF(readTracersFiles(type_trac,  fType,  lRepr)) CALL abort_gcm(modname, 'problem with tracers file(s)',1)
+      IF(readTracersFiles(ttp, type_trac == 'repr')) CALL abort_gcm(modname, 'problem with tracers file(s)',1)
    ELSE
-     CALL msg('No tracers description file(s) reading needed: already done in the dynamics', modname)
-     IF(testTracersFiles(modname, type_trac, fType, .FALSE.)) CALL abort_gcm(modname, 'problem with tracers file(s)',1)
+      CALL msg('No tracers description file(s) reading needed: already done in the dynamics', modname)
    END IF
 !##############################################################################################################################
@@ -262,17 +259,17 @@
       CALL init_transport(solsym_inca, conv_flg_inca, pbl_flg_inca, hadv_inca, vadv_inca)
       ALLOCATE(ttr(nqtrue))
-      ttr(1:nqo+nqCO2)                    = tracers
-      ttr(1    :      nqo   )%component   = 'lmdz'
-      ttr(1+nqo:nqCO2+nqo   )%component   = 'co2i'
-      ttr(1+nqo+nqCO2:nqtrue)%component   = 'inca'
-      ttr(1+nqo      :nqtrue)%name        = [('CO2     ', k=1, nqCO2), solsym_inca]
-      ttr(1+nqo+nqCO2:nqtrue)%parent      = tran0
-      ttr(1+nqo+nqCO2:nqtrue)%phase       = 'g'
+      ttr(1:nqo+nqCO2)                  = tracers
+      ttr(1    :      nqo   )%component = 'lmdz'
+      ttr(1+nqo:nqCO2+nqo   )%component = 'co2i'
+      ttr(1+nqo+nqCO2:nqtrue)%component = 'inca'
+      ttr(1+nqo      :nqtrue)%name      = [('CO2     ', k=1, nqCO2), solsym_inca]
+      ttr(1+nqo+nqCO2:nqtrue)%parent    = tran0
+      ttr(1+nqo+nqCO2:nqtrue)%phase     = 'g'
       lerr = getKey('hadv', had, ky=tracers(:)%keys)
       lerr = getKey('vadv', vad, ky=tracers(:)%keys)
-      hadv(1:nqo) = had(:); hadv(nqo+1:nqtrue) = hadv_inca
-      vadv(1:nqo) = vad(:); vadv(nqo+1:nqtrue) = vadv_inca
+      hadv(1:nqo+nqCO2) = had(:); hadv(1+nqo+nqCO2:nqtrue) = hadv_inca
+      vadv(1:nqo+nqCO2) = vad(:); vadv(1+nqo+nqCO2:nqtrue) = vadv_inca
       CALL MOVE_ALLOC(FROM=ttr, TO=tracers)
-      CALL setGeneration(tracers)                                    !--- SET FIELDS %iGeneration, %gen0Name
+      IF(setGeneration(tracers)) CALL abort_gcm(modname,'See below',1) !- SET FIELDS %iGeneration, %gen0Name
       DEALLOCATE(had, hadv_inca, vad, vadv_inca, conv_flg_inca, pbl_flg_inca, solsym_inca)
 #endif
@@ -424,5 +421,5 @@
 #endif
 #ifdef CPP_StratAer
-   IF (ANY(types_trac == 'coag')) THEN
+   IF (type_trac == 'coag') THEN
       nbtr_bin    = COUNT([(tracers(iq)%name(1:3)=='BIN', iq=1, nqtot)])
       nbtr_sulgas = COUNT([(tracers(iq)%name(1:3)=='GAS', iq=1, nqtot)])
Index: /LMDZ6/trunk/libf/phylmd/phyetat0_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/phyetat0_mod.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/phylmd/phyetat0_mod.F90	(revision 4389)
@@ -32,5 +32,5 @@
   USE geometry_mod,     ONLY: longitude_deg, latitude_deg
   USE iostart,          ONLY: close_startphy, get_field, get_var, open_startphy
-  USE infotrac_phy,     ONLY: nqtot, nbtr, type_trac, types_trac, tracers
+  USE infotrac_phy,     ONLY: nqtot, nbtr, type_trac, tracers
   USE readTracFiles_mod,ONLY: maxlen, new2oldH2O
   USE traclmdz_mod,     ONLY: traclmdz_from_restart
@@ -471,5 +471,5 @@
 
 !--OB now this is for co2i - ThL: and therefore also for inco
-  IF (ANY(types_trac == 'co2i') .OR. ANY(types_trac == 'inco')) THEN
+  IF (ANY(type_trac == ['co2i','inco'])) THEN
      IF (carbon_cycle_cpl) THEN
         ALLOCATE(co2_send(klon), stat=ierr)
Index: /LMDZ6/trunk/libf/phylmd/phyredem.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/phyredem.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/phylmd/phyredem.F90	(revision 4389)
@@ -35,5 +35,5 @@
   USE iostart, ONLY: open_restartphy, close_restartphy, enddef_restartphy, put_field, put_var
   USE traclmdz_mod, ONLY : traclmdz_to_restart
-  USE infotrac_phy, ONLY: type_trac, types_trac, nqtot, tracers, nbtr
+  USE infotrac_phy, ONLY: type_trac, nqtot, tracers, nbtr
   USE carbon_cycle_mod, ONLY : carbon_cycle_cpl, co2_send, carbon_cycle_rad, RCO2_glo
   USE indice_sol_mod, ONLY: nbsrf, is_oce, is_sic, is_ter, is_lic, epsfra
@@ -329,5 +329,5 @@
 
 
-    IF (ANY(types_trac == 'co2i') .OR. ANY(types_trac == 'inco')) THEN
+    IF (ANY(type_trac == ['co2i','inco'])) THEN
        IF (carbon_cycle_cpl) THEN
           IF (.NOT. ALLOCATED(co2_send)) THEN
Index: /LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90	(revision 4389)
@@ -25,5 +25,5 @@
 
     USE dimphy, ONLY: klon, klev, klevp1
-    USE infotrac_phy, ONLY: nbtr, nqtot, nqo, type_trac, types_trac, tracers, niso, ntiso
+    USE infotrac_phy, ONLY: nbtr, nqtot, nqo, type_trac, tracers, niso, ntiso
     USE strings_mod,  ONLY: maxlen
     USE mod_phys_lmdz_para, ONLY: is_north_pole_phy,is_south_pole_phy
@@ -943,5 +943,5 @@
        CALL histwrite_phy(o_SWupTOAclr, zx_tmp_fi2d)
 
-       IF (ALL(types_trac/='inca') .OR. config_inca=='aeNP') THEN 
+       IF (type_trac/='inca' .OR. config_inca=='aeNP') THEN 
           IF (vars_defined) THEN
              zx_tmp_fi2d(:) = swupc0(:,klevp1)*swradcorr(:)
@@ -1015,5 +1015,5 @@
        CALL histwrite_phy(o_SWupSFCclr, zx_tmp_fi2d)
 
-       IF (ALL(types_trac/='inca') .OR. config_inca=='aeNP') THEN 
+       IF (type_trac/='inca' .OR. config_inca=='aeNP') THEN 
           IF (vars_defined) THEN
              zx_tmp_fi2d(:) = swupc0(:,1)*swradcorr(:)
@@ -1032,5 +1032,5 @@
        CALL histwrite_phy(o_SWdnSFCclr, zx_tmp_fi2d)
 
-       IF (ALL(types_trac/='inca') .OR. config_inca=='aeNP') THEN 
+       IF (type_trac/='inca' .OR. config_inca=='aeNP') THEN 
           IF (vars_defined) THEN
              zx_tmp_fi2d(:) = swdnc0(:,1)*swradcorr(:)
@@ -1054,5 +1054,5 @@
        CALL histwrite_phy(o_LWdnSFCclr, sollwdownclr)
 
-       IF (ALL(types_trac/='inca') .OR. config_inca=='aeNP') THEN 
+       IF (type_trac/='inca' .OR. config_inca=='aeNP') THEN 
           IF (vars_defined) THEN
              zx_tmp_fi2d(:) = lwupc0(:,klevp1)
@@ -1061,5 +1061,5 @@
        ENDIF
 
-       IF (ALL(types_trac/='inca') .OR. config_inca=='aeNP') THEN 
+       IF (type_trac/='inca' .OR. config_inca=='aeNP') THEN 
           IF (vars_defined) THEN
              zx_tmp_fi2d(:) = -1.*lwdnc0(:,1)
@@ -1570,5 +1570,5 @@
 !This is warranted by treating INCA aerosols as offline aerosols
        IF (flag_aerosol.GT.0) THEN
-          IF (ALL(types_trac/='inca') .OR. config_inca=='aeNP') THEN 
+          IF (type_trac/='inca' .OR. config_inca=='aeNP') THEN 
 
              CALL histwrite_phy(o_od443aer, od443aer)
@@ -1634,5 +1634,5 @@
 
 #ifdef CPP_StratAer
-       IF (ANY(types_trac=='coag')) THEN
+       IF (type_trac=='coag') THEN
           CALL histwrite_phy(o_R2SO4, R2SO4)
           CALL histwrite_phy(o_OCS_lifetime, OCS_lifetime)
@@ -1693,5 +1693,5 @@
           CALL histwrite_phy(o_solswad0, zx_tmp_fi2d)
           
-          IF (ALL(types_trac/='inca') .OR. config_inca=='aeNP') THEN 
+          IF (type_trac/='inca' .OR. config_inca=='aeNP') THEN 
 
              CALL histwrite_phy(o_toplwad, toplwad_aero)
@@ -1770,5 +1770,5 @@
        ! Champs 3D:
        IF (ok_ade .OR. ok_aie) then
-          IF (ALL(types_trac/='inca') .OR. config_inca=='aeNP') THEN 
+          IF (type_trac/='inca' .OR. config_inca=='aeNP') THEN 
              CALL histwrite_phy(o_ec550aer, ec550aer)
           ENDIF
@@ -2229,5 +2229,5 @@
        CALL histwrite_phy(o_rsucs, zx_tmp_fi3d1)
 
-       IF (ALL(types_trac/='inca') .OR. config_inca=='aeNP') THEN 
+       IF (type_trac/='inca' .OR. config_inca=='aeNP') THEN 
           IF (vars_defined) THEN
              DO k=1, klevp1
@@ -2245,5 +2245,5 @@
        CALL histwrite_phy(o_rsdcs, zx_tmp_fi3d1)
 
-       IF (ALL(types_trac/='inca') .OR. config_inca=='aeNP') THEN 
+       IF (type_trac/='inca' .OR. config_inca=='aeNP') THEN 
           IF (vars_defined) THEN
              DO k=1, klevp1
@@ -2491,5 +2491,5 @@
        IF (iflag_phytrac == 1 ) then
 !
-         IF (ANY(types_trac == 'co2i')) THEN
+         IF (type_trac == 'co2i') THEN
            itr = 0
            DO iq = 1, nqtot
@@ -2520,5 +2520,5 @@
            CALL histwrite_phy(o_flx_co2_bb,    fco2_bb)
 
-         ELSE IF (ANY(types_trac == 'inco')) THEN
+         ELSE IF (type_trac == 'inco') THEN
            itr = 0
            DO iq = 1, nqtot
@@ -2549,5 +2549,5 @@
            CALL histwrite_phy(o_flx_co2_bb,    fco2_bb)
 
-         ELSE IF (ANY(type_trac==['lmdz|coag','lmdz     ','coag     '])) THEN
+         ELSE IF (ANY(type_trac==['lmdz','coag'])) THEN
            itr = 0
            DO iq = 1, nqtot
Index: /LMDZ6/trunk/libf/phylmd/physiq_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/physiq_mod.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/phylmd/physiq_mod.F90	(revision 4389)
@@ -39,5 +39,5 @@
     USE ioipsl_getin_p_mod, ONLY : getin_p
     USE indice_sol_mod
-    USE infotrac_phy, ONLY: nqtot, nbtr, nqo, tracers, types_trac
+    USE infotrac_phy, ONLY: nqtot, nbtr, nqo, tracers, type_trac
     USE readTracFiles_mod, ONLY: addPhase
     USE strings_mod,  ONLY: strIdx
@@ -1466,5 +1466,5 @@
        tau_overturning_th(:)=0.
 
-       IF (ANY(types_trac == 'inca') .OR. ANY(types_trac == 'inco')) THEN
+       IF (ANY(type_trac == ['inca','inco'])) THEN
           ! jg : initialisation jusqu'au ces variables sont dans restart
           ccm(:,:,:) = 0.
@@ -2035,5 +2035,5 @@
        !c         ENDDO
        !
-       IF (ANY(types_trac == 'inca') .OR. ANY(types_trac == 'inco')) THEN ! ModThL
+       IF (ANY(type_trac == ['inca','inco'])) THEN ! ModThL
 #ifdef INCA
           CALL VTe(VTphysiq)
@@ -2117,5 +2117,5 @@
        ENDIF
        !
-       IF (ANY(types_trac == 'repr')) THEN
+       IF (type_trac == 'repr') THEN
 #ifdef REPROBUS
           CALL chemini_rep(  &
@@ -2230,5 +2230,5 @@
 
     ! Update time and other variables in Reprobus
-    IF (ANY(types_trac == 'repr')) THEN
+    IF (type_trac == 'repr') THEN
 #ifdef REPROBUS
        CALL Init_chem_rep_xjour(jD_cur-jD_ref+day_ref)
@@ -3021,5 +3021,5 @@
           !
           !>jyg
-          IF (ANY(types_trac == 'repr')) THEN
+          IF (type_trac == 'repr') THEN
              nbtr_tmp=ntra
           ELSE
@@ -3927,5 +3927,5 @@
     ENDDO
 
-    IF (ANY(types_trac == 'inca') .OR. ANY(types_trac == 'inco')) THEN ! ModThL
+    IF (ANY(type_trac == ['inca','inco'])) THEN ! ModThL
 #ifdef INCA
        CALL VTe(VTphysiq)
@@ -3983,5 +3983,5 @@
 #endif
     ENDIF !type_trac = inca or inco
-    IF (ANY(types_trac == 'repr')) THEN
+    IF (type_trac == 'repr') THEN
 #ifdef REPROBUS
     !CALL chemtime_rep(itap+itau_phy-1, date0, dtime, itap)
@@ -4953,5 +4953,5 @@
     !
 
-    IF (ANY(types_trac=='repr')) THEN
+    IF (type_trac == 'repr') THEN
 !MM pas d'impact, car on recupere q_seri,tr_seri,t_seri via phys_local_var_mod
 !MM                               dans Reprobus
@@ -5106,5 +5106,5 @@
     ENDDO
     !
-    IF (ANY(types_trac == 'inca') .OR. ANY(types_trac == 'inco')) THEN
+    IF (ANY(type_trac == ['inca','inco'])) THEN
 #ifdef INCA
        CALL VTe(VTphysiq)
@@ -5130,5 +5130,5 @@
     ENDIF
 
-    IF (ANY(types_trac == 'repr')) THEN
+    IF (type_trac == 'repr') THEN
 #ifdef REPROBUS
         CALL coord_hyb_rep(paprs, pplay, aps, bps, ap, bp, cell_area)
@@ -5391,5 +5391,5 @@
 
 #ifdef INCA
-       if (ANY(types_trac == 'inca' )) then 
+       if (type_trac == 'inca') then 
           IF (is_omp_master .and. grid_type==unstructured) THEN 
              CALL finalize_inca
Index: /LMDZ6/trunk/libf/phylmd/phytrac_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/phytrac_mod.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/phylmd/phytrac_mod.F90	(revision 4389)
@@ -56,5 +56,5 @@
   SUBROUTINE phytrac_init()
     USE dimphy
-    USE infotrac_phy, ONLY: nbtr, types_trac
+    USE infotrac_phy, ONLY: nbtr, type_trac
     USE tracco2i_mod, ONLY: tracco2i_init
     IMPLICIT NONE
@@ -79,7 +79,7 @@
     !===============================================================================
     !   -- CO2 interactif --
-    IF(ANY(types_trac == 'co2i') .OR. ANY(types_trac == 'inco')) CALL tracco2i_init()
-
-       !   -- types_trac == 'co2i' ! PC 
+    IF(ANY(type_trac == ['co2i','inco'])) CALL tracco2i_init()
+
+       !   -- type_trac == 'co2i' ! PC 
        !   -- CO2 interactif --
        !   -- source is updated with FF and BB emissions 
@@ -124,5 +124,5 @@
     USE phys_cal_mod, only : hour
     USE dimphy
-    USE infotrac_phy, ONLY: nbtr, nqCO2, types_trac, type_trac, conv_flg, pbl_flg
+    USE infotrac_phy, ONLY: nbtr, nqCO2, type_trac, conv_flg, pbl_flg
     USE strings_mod,  ONLY: int2str
     USE mod_grid_phy_lmdz
@@ -491,10 +491,10 @@
 
        ! Initialize module for specific tracers
-       IF(ANY(types_trac == 'inca')) THEN
+       IF(type_trac == 'inca') THEN
           source(:,:)=init_source(:,:)
           CALL tracinca_init(aerosol,lessivage)
-       ELSE IF(ANY(types_trac == 'repr')) THEN
+       ELSE IF(type_trac == 'repr') THEN
           source(:,:)=0.
-       ELSE IF(ANY(types_trac == 'co2i')) THEN
+       ELSE IF(type_trac == 'co2i') THEN
           source(:,:)=0.
           lessivage  = .FALSE.
@@ -504,5 +504,5 @@
           iflag_vdf_trac= 1
           iflag_con_trac= 1
-       ELSE IF(ANY(types_trac == 'inco')) THEN
+       ELSE IF(type_trac == 'inco') THEN
           source(:,1:nqCO2) = 0.                          ! from CO2i ModThL
           source(:,nqCO2+1:nbtr)=init_source(:,:)         ! from INCA ModThL
@@ -514,5 +514,5 @@
           iflag_con_trac = 1                              ! From CO2i
 #ifdef CPP_StratAer
-       ELSE IF(ANY(types_trac == 'coag')) THEN
+       ELSE IF(type_trac == 'coag') THEN
           source(:,:)=0.
           DO it= 1, nbtr_sulgas
@@ -524,5 +524,5 @@
           ENDDO
 #endif
-       ELSE IF(ANY(types_trac == 'lmdz')) THEN
+       ELSE IF(type_trac == 'lmdz') THEN
           CALL traclmdz_init(pctsrf,xlat,xlon,ftsol,tr_seri,t_seri,pplay,sh,pdtphys,aerosol,lessivage)
        END IF
@@ -539,7 +539,7 @@
           !
           DO it=1, nbtr
-             IF(ANY(types_trac == 'repr')) THEN
+             IF(type_trac == 'repr') THEN
                  flag_cvltr(it)=.FALSE.
-             ELSE IF(ANY(types_trac == 'inca')) THEN
+             ELSE IF(type_trac == 'inca') THEN
 !                IF ((it.EQ.id_Rn222) .OR. ((it.GE.id_SO2) .AND. (it.LE.id_NH3)) ) THEN 
 !                   !--gas-phase species
@@ -565,11 +565,11 @@
                 !--for now we do not scavenge in cvltr
                 flag_cvltr(it)=.FALSE.
-             ELSE IF(ANY(types_trac == 'co2i')) THEN
+             ELSE IF(type_trac == 'co2i') THEN
                 !--co2 tracers are not scavenged
                 flag_cvltr(it)=.FALSE.
-             ELSE IF(ANY(types_trac == 'inco')) THEN     ! Add ThL
+             ELSE IF(type_trac == 'inco') THEN     ! Add ThL
                 flag_cvltr(it)=.FALSE.
 #ifdef CPP_StratAer
-             ELSE IF(ANY(types_trac == 'coag')) THEN
+             ELSE IF(type_trac == 'coag') THEN
                 IF (convscav.and.aerosol(it)) THEN
                    flag_cvltr(it)=.TRUE.
@@ -581,5 +581,5 @@
                 ENDIF
 #endif
-             ELSE IF(ANY(types_trac == 'lmdz')) THEN
+             ELSE IF(type_trac == 'lmdz') THEN
                 IF (convscav.and.aerosol(it)) THEN
                    flag_cvltr(it)=.TRUE.
@@ -614,8 +614,6 @@
        write(lunout,*)  'flag_cvltr    = ', flag_cvltr
 
-       IF (lessivage .AND. (ANY(types_trac == 'inca') .OR. ANY(types_trac=='inco'))) THEN     ! Mod ThL
+       IF (lessivage .AND. ANY(type_trac == ['inca','inco'])) &
           CALL abort_physic('phytrac', 'lessivage=T config_inca=inca impossible',1)
-!          STOP
-       ENDIF
        !
     ENDIF ! of IF (debutphy)
@@ -640,10 +638,10 @@
     !      
     !===============================================================================
-    IF(ANY(types_trac == 'inca')) THEN
+    IF(type_trac == 'inca') THEN
        !    -- CHIMIE INCA  config_inca = aero or chem --
        ! Appel fait en fin de phytrac pour avoir les emissions modifiees par 
        ! la couche limite et la convection avant le calcul de la chimie 
 
-    ELSE IF(ANY(types_trac == 'repr')) THEN
+    ELSE IF(type_trac == 'repr') THEN
        !   -- CHIMIE REPROBUS --
        CALL tracreprobus(pdtphys, gmtime, debutphy, julien, &
@@ -652,5 +650,5 @@
             tr_seri)
 
-    ELSE IF(ANY(types_trac == 'co2i')) THEN
+    ELSE IF(type_trac == 'co2i') THEN
        !   -- CO2 interactif --
        !   -- source is updated with FF and BB emissions 
@@ -661,5 +659,5 @@
             xlat, xlon, pphis, pphi, &
             t_seri, pplay, paprs, tr_seri, source)
-    ELSE IF(ANY(types_trac == 'inco')) THEN      ! Add ThL
+    ELSE IF(type_trac == 'inco') THEN      ! Add ThL
        CALL tracco2i(pdtphys, debutphy, &
             xlat, xlon, pphis, pphi, &
@@ -667,5 +665,5 @@
 
 #ifdef CPP_StratAer
-    ELSE IF(ANY(types_trac == 'coag')) THEN
+    ELSE IF(type_trac == 'coag') THEN
        !   --STRATOSPHERIC AER IN THE STRAT --
        CALL traccoag(pdtphys, gmtime, debutphy, julien, &
@@ -674,5 +672,5 @@
             tr_seri)
 #endif
-    ELSE IF(ANY(types_trac == 'lmdz')) THEN
+    ELSE IF(type_trac == 'lmdz') THEN
        !    -- Traitement des traceurs avec traclmdz
        CALL traclmdz(nstep, julien, gmtime, pdtphys, t_seri, paprs, pplay, &
@@ -748,5 +746,5 @@
 
 #ifdef CPP_StratAer
-       IF (ANY(types_trac=='coag')) THEN
+       IF (type_trac=='coag') THEN
          ! initialize wet deposition flux of sulfur
          budg_dep_wet_ocs(:)=0.0
@@ -829,5 +827,5 @@
        !
 #ifdef CPP_StratAer
-       IF (ANY(types_trac=='coag')) THEN
+       IF (type_trac=='coag') THEN
 
          ! initialize dry deposition flux of sulfur
@@ -866,5 +864,5 @@
              !
 #ifdef CPP_StratAer
-             IF (ANY(types_trac=='coag')) THEN
+             IF (type_trac=='coag') THEN
                ! compute dry deposition flux of sulfur (sum over gases and particles)
                IF (it==id_OCS_strat) THEN
@@ -951,5 +949,5 @@
 
 #ifdef CPP_StratAer
-         IF (ANY(types_trac=='coag')) THEN
+         IF (type_trac=='coag') THEN
            ! compute wet deposition flux of sulfur (sum over gases and
            ! particles) and convert to kg(S)/m2/s
@@ -1091,5 +1089,5 @@
 
     !    -- CHIMIE INCA  config_inca = aero or chem --
-    IF (ANY(types_trac == 'inca') .OR. ANY(types_trac == 'inco')) THEN  ! ModThL
+    IF (ANY(type_trac == ['inca','inco'])) THEN  ! ModThL
 
        CALL tracinca(&
Index: /LMDZ6/trunk/libf/phylmd/radiation_AR4.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/radiation_AR4.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/phylmd/radiation_AR4.F90	(revision 4389)
@@ -479,5 +479,5 @@
   USE dimphy
   USE radiation_ar4_param, ONLY: rsun, rray
-  USE infotrac_phy, ONLY: types_trac
+  USE infotrac_phy, ONLY: type_trac
 #ifdef REPROBUS
   USE chem_rep, ONLY: rsuntime, ok_suntime
@@ -571,5 +571,5 @@
   ! If running with Reporbus, overwrite default values of RSUN.
   ! Otherwise keep default values from radiation_AR4_param module.
-  IF (ANY(types_trac=='repr')) THEN
+  IF (type_trac=='repr') THEN
 #ifdef REPROBUS
     IF (ok_suntime) THEN
@@ -701,5 +701,5 @@
   USE dimphy
   USE radiation_ar4_param, ONLY: rsun, rray
-  USE infotrac_phy, ONLY: types_trac
+  USE infotrac_phy, ONLY: type_trac
 #ifdef REPROBUS
   USE chem_rep, ONLY: rsuntime, ok_suntime
@@ -825,5 +825,5 @@
   ! If running with Reporbus, overwrite default values of RSUN.
   ! Otherwise keep default values from radiation_AR4_param module.
-  IF (ANY(types_trac=='repr')) THEN
+  IF (type_trac=='repr') THEN
 #ifdef REPROBUS
     IF (ok_suntime) THEN
@@ -2313,5 +2313,5 @@
   USE dimphy
   USE radiation_ar4_param, ONLY: tref, rt1, raer, at, bt, oct
-  USE infotrac_phy, ONLY: types_trac
+  USE infotrac_phy, ONLY: type_trac
 #ifdef REPROBUS
   USE chem_rep, ONLY: rch42d, rn2o2d, rcfc112d, rcfc122d, ok_rtime2d
@@ -2621,5 +2621,5 @@
 
 
-        IF (ANY(types_trac=='repr')) THEN
+        IF (type_trac=='repr') THEN
 #ifdef REPROBUS
           IF (ok_rtime2d) THEN
Index: /LMDZ6/trunk/libf/phylmd/radlwsw_m.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/radlwsw_m.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/phylmd/radlwsw_m.F90	(revision 4389)
@@ -48,5 +48,5 @@
   USE DIMPHY
   USE assert_m, ONLY : assert
-  USE infotrac_phy, ONLY : types_trac
+  USE infotrac_phy, ONLY : type_trac
   USE write_field_phy
 
@@ -550,5 +550,5 @@
   PSCT = solaire/zdist/zdist
 
-  IF (ANY(types_trac == 'repr')) THEN
+  IF (type_trac == 'repr') THEN
 #ifdef REPROBUS
     IF (iflag_rrtm==0) THEN
@@ -634,5 +634,5 @@
     ENDDO
 
-    IF (ANY(types_trac == 'repr')) THEN
+    IF (type_trac == 'repr') THEN
 #ifdef REPROBUS
        ndimozon = size(wo, 3)
Index: /LMDZ6/trunk/libf/phylmd/rrtm/lwu.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/rrtm/lwu.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/phylmd/rrtm/lwu.F90	(revision 4389)
@@ -76,5 +76,5 @@
 #ifdef REPROBUS
 USE chem_rep, ONLY: rch42d, rn2o2d, rcfc112d, rcfc122d, ok_rtime2d
-USE infotrac_phy, ONLY : types_trac
+USE infotrac_phy, ONLY : type_trac
 #endif
 
@@ -321,5 +321,5 @@
       PABCU(JL,18,IC)=PABCU(JL,18,ICP1)+ ZUAER(JL,5)    *ZDUC(JL,IC)*ZDIFF
 #ifdef REPROBUS
-        IF (ANY(types_trac=='repr').and. ok_rtime2d) THEN
+        IF (type_trac=='repr'.and. ok_rtime2d) THEN
 !- CH4
       PABCU(JL,19,IC)=PABCU(JL,19,ICP1)&
Index: /LMDZ6/trunk/libf/phylmd/tracinca_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/tracinca_mod.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/phylmd/tracinca_mod.F90	(revision 4389)
@@ -18,5 +18,5 @@
     ! This subroutine initialize some control varaibles. 
 
-    USE infotrac_phy, ONLY: nbtr, types_trac
+    USE infotrac_phy, ONLY: nbtr, type_trac
     IMPLICIT NONE
     
@@ -30,12 +30,10 @@
 
     !--- COHERENCE TEST BETWEEN "type_trac" AND "config_inca"
-    IF((ANY(types_trac == 'inca') .OR. ANY(types_trac == 'inco')) .AND. ALL(config_inca /= ['aero', 'aeNP', 'chem']))&
-       CALL abort_gcm('tracinca_init', 'INCA enabled, but unknown config_inca = "'//TRIM(config_inca)//'".'          &
-                             //'Please modify "run.def"', 1)
+    IF(ANY(type_trac == ['inca','inco']) .AND. ALL(config_inca /= ['aero','aeNP','chem'])) CALL abort_gcm('tracinca_init', &
+       'INCA enabled, but unknown config_inca = "'//TRIM(config_inca)//'". Please modify "run.def"', 1)
 
     !--- PROBLEM IF "config_inca" DIFFERS FROM "none" AND INCA HAS NOT BEEN ACTIVATED
-    IF(ALL(types_trac /= 'inca') .AND. ALL(types_trac /= 'inco')  .AND.     config_inca /= 'none') &
-       CALL abort_gcm('tracinca_init', 'INCA disabled, but config_inca = "'//TRIM(config_inca)//'" should be "none".'&
-                             //'Please modify "run.def"', 1)
+    IF(ALL(type_trac /= ['inca','inco'])  .AND.    config_inca /= 'none')                  CALL abort_gcm('tracinca_init', &
+       'INCA disabled, but config_inca = "'//TRIM(config_inca)//'" should be "none". Please modify "run.def"', 1)
 
   END SUBROUTINE tracinca_init
Index: /LMDZ6/trunk/libf/phylmd/traclmdz_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/traclmdz_mod.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/phylmd/traclmdz_mod.F90	(revision 4389)
@@ -203,5 +203,5 @@
              tr_seri(:,:,id_pb) = plomb(:,:)
            ELSE
-             WRITE(lunout,*)'Prof. Pb210 does not exist: use restart values'
+             WRITE(lunout,*)'prof.pb210 does not exist: use restart values'
            END IF
          CASE("aga")
Index: /LMDZ6/trunk/libf/phylmdiso/phyetat0_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmdiso/phyetat0_mod.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/phylmdiso/phyetat0_mod.F90	(revision 4389)
@@ -40,5 +40,5 @@
   USE geometry_mod,     ONLY: longitude_deg, latitude_deg
   USE iostart,          ONLY: close_startphy, get_field, get_var, open_startphy
-  USE infotrac_phy,     ONLY: nqtot, nbtr, type_trac, types_trac, tracers
+  USE infotrac_phy,     ONLY: nqtot, nbtr, type_trac, tracers
   USE readTracFiles_mod,ONLY: maxlen, new2oldH2O
   USE traclmdz_mod,     ONLY: traclmdz_from_restart
@@ -492,5 +492,5 @@
 
 !--OB now this is for co2i - ThL: and therefore also for inco
-  IF (ANY(types_trac == 'co2i') .OR. ANY(types_trac == 'inco')) THEN
+  IF (ANY(type_trac == ['co2i','inco'])) THEN
      IF (carbon_cycle_cpl) THEN
         ALLOCATE(co2_send(klon), stat=ierr)
Index: /LMDZ6/trunk/libf/phylmdiso/phyredem.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmdiso/phyredem.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/phylmdiso/phyredem.F90	(revision 4389)
@@ -39,5 +39,5 @@
   USE iostart, ONLY: open_restartphy, close_restartphy, enddef_restartphy, put_field, put_var
   USE traclmdz_mod, ONLY : traclmdz_to_restart
-  USE infotrac_phy, ONLY: types_trac, nqtot, tracers, nbtr, niso
+  USE infotrac_phy, ONLY: type_trac, nqtot, tracers, nbtr, niso
 #ifdef ISO
 #ifdef ISOVERIF
@@ -176,13 +176,7 @@
     CALL put_field(pass,"FSIC", "fraction glace mer", pctsrf(:, is_sic))
 
-    IF(nbsrf>99) THEN
-      PRINT*, "Trop de sous-mailles";  CALL abort_physic("phyredem", "", 1)
-    END IF
-    IF(nsoilmx>99) THEN
-      PRINT*, "Trop de sous-surfaces"; CALL abort_physic("phyredem", "", 1)
-    END IF
-    IF(nsw>99) THEN
-      PRINT*, "Trop de bandes"; CALL abort_physic("phyredem", "", 1)
-    END IF
+    IF(nbsrf  >99) CALL abort_physic("phyredem", "Trop de sous-mailles", 1)
+    IF(nsoilmx>99) CALL abort_physic("phyredem", "Trop de sous-mailles", 1)
+    IF(nsw    >99) CALL abort_physic("phyredem", "Trop de bandes", 1)
 
 !    Surface variables 
@@ -350,5 +344,5 @@
 
 
-    IF (ANY(types_trac == 'co2i') .OR. ANY(types_trac == 'inco')) THEN
+    IF (ANY(type_trac == ['co2i','inco'])) THEN
        IF (carbon_cycle_cpl) THEN
           IF (.NOT. ALLOCATED(co2_send)) THEN
@@ -361,5 +355,5 @@
 
     ! trs from traclmdz_mod
-    ELSE IF (ANY(types_trac == 'lmdz')) THEN
+    ELSE IF (type_trac == 'lmdz') THEN
        CALL traclmdz_to_restart(trs)
        it = 0
Index: /LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90	(revision 4388)
+++ /LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90	(revision 4389)
@@ -39,5 +39,5 @@
     USE ioipsl_getin_p_mod, ONLY : getin_p
     USE indice_sol_mod
-    USE infotrac_phy, ONLY: nqtot, nbtr, nqo, tracers, types_trac
+    USE infotrac_phy, ONLY: nqtot, nbtr, nqo, tracers, type_trac
     USE readTracFiles_mod, ONLY: addPhase
     USE strings_mod,  ONLY: strIdx
@@ -1570,5 +1570,5 @@
        tau_overturning_th(:)=0.
 
-       IF (ANY(types_trac == 'inca') .OR. ANY(types_trac == 'inco')) THEN
+       IF (ANY(type_trac == ['inca','inco'])) THEN
           ! jg : initialisation jusqu'au ces variables sont dans restart
           ccm(:,:,:) = 0.
@@ -2187,5 +2187,5 @@
        !c         ENDDO
        !
-       IF (ANY(types_trac == 'inca') .OR. ANY(types_trac == 'inco')) THEN ! ModThL
+       IF (ANY(type_trac == ['inca','inco'])) THEN ! ModThL
 #ifdef INCA
           CALL VTe(VTphysiq)
@@ -2269,5 +2269,5 @@
        ENDIF
        !
-       IF (ANY(types_trac == 'repr')) THEN
+       IF (type_trac == 'repr') THEN
 #ifdef REPROBUS
           CALL chemini_rep(  &
@@ -2386,5 +2386,5 @@
 
     ! Update time and other variables in Reprobus
-    IF (ANY(types_trac == 'repr')) THEN
+    IF (type_trac == 'repr') THEN
 #ifdef REPROBUS
        CALL Init_chem_rep_xjour(jD_cur-jD_ref+day_ref)
@@ -3654,5 +3654,5 @@
           !
           !>jyg
-          IF (ANY(types_trac == 'repr')) THEN
+          IF (type_trac == 'repr') THEN
              nbtr_tmp=ntra
           ELSE
@@ -5191,5 +5191,5 @@
     ENDDO
 
-    IF (ANY(types_trac == 'inca') .OR. ANY(types_trac == 'inco')) THEN ! ModThL
+    IF (ANY(type_trac == ['inca','inco'])) THEN ! ModThL
 #ifdef INCA
        CALL VTe(VTphysiq)
@@ -5247,5 +5247,5 @@
 #endif
     ENDIF !type_trac = inca or inco
-    IF (ANY(types_trac == 'repr')) THEN
+    IF (type_trac == 'repr') THEN
 #ifdef REPROBUS
     !CALL chemtime_rep(itap+itau_phy-1, date0, dtime, itap)
@@ -6336,5 +6336,5 @@
     !
 
-    IF (ANY(types_trac=='repr')) THEN
+    IF (type_trac=='repr') THEN
 !MM pas d'impact, car on recupere q_seri,tr_seri,t_seri via phys_local_var_mod
 !MM                               dans Reprobus
@@ -6501,5 +6501,5 @@
 #endif
     !
-    IF (ANY(types_trac == 'inca') .OR. ANY(types_trac == 'inco')) THEN
+    IF (ANY(type_trac == ['inca','inco'])) THEN
 #ifdef INCA
        CALL VTe(VTphysiq)
@@ -6525,5 +6525,5 @@
     ENDIF
 
-    IF (ANY(types_trac == 'repr')) THEN
+    IF (type_trac == 'repr') THEN
 #ifdef REPROBUS
         CALL coord_hyb_rep(paprs, pplay, aps, bps, ap, bp, cell_area)
@@ -6901,5 +6901,5 @@
 
 #ifdef INCA
-       if (ANY(types_trac == 'inca' )) then 
+       if (type_trac == 'inca') then 
           IF (is_omp_master .and. grid_type==unstructured) THEN 
              CALL finalize_inca
