Index: /LMDZ6/trunk/libf/dyn3d_common/infotrac.F90
===================================================================
--- /LMDZ6/trunk/libf/dyn3d_common/infotrac.F90	(revision 4070)
+++ /LMDZ6/trunk/libf/dyn3d_common/infotrac.F90	(revision 4071)
@@ -78,6 +78,6 @@
 !  | iadv        | Advection scheme number                              | iadv        | 1-20,30 exc. 3-9,15,19 |
 !  | iGeneration | Generation (>=1)                                     | /           |                        |
-!  | isAdvected  | advected tracers flag (.TRUE. if iadv > 0)           | /           | nqtrue  .TRUE. values  |
-!  | isH2Ofamily | H2O tracer/isotope/tagging tracer                    | /           | nqtottr .TRUE. values  |
+!  | isAdvected  | advected tracers flag (.TRUE. if iadv >= 0)          | /           | nqtrue  .TRUE. values  |
+!  | isInPhysics | tracers not extracted from the main table in physics | /           | nqtottr .TRUE. values  |
 !  | iqParent    | Index of the parent tracer                           | iqpere      | 1:nqtot                |
 !  | iqDescen    | Indexes of the childs       (all generations)        | iqfils      | 1:nqtot                |
@@ -338,6 +338,6 @@
       CALL msg('237: iq='//TRIM(int2str(iq)), modname)
       READ(90,'(I2,X,I2,X,A)',IOSTAT=ierr) hadv(iq),vadv(iq),tchaine
-      WRITE(msg1,'("iq, hadv(iq), vadv(iq) = ",i0,2(", ",i0))')iq, hadv(iq), vadv(iq)
-      CALL msg(msg1, modname)
+      WRITE(msg1,'("hadv(",i0,"), vadv(",i0,") = ",i0,", ",i0)')iq, iq, hadv(iq), vadv(iq)
+      CALL msg(TRIM(msg1), modname)
       CALL msg('tchaine = "'//TRIM(tchaine)//'"', modname)
       CALL msg('infotrac 238: IOstatus='//TRIM(int2str(ierr)), modname)
@@ -513,9 +513,9 @@
       IF(iad == -1) CALL abort_gcm(modname, msg1, 1)
 
-      !--- SET FIELDS %longName, %iadv, %isAdvected, %isH2Ofamily
+      !--- SET FIELDS %longName, %iadv, %isAdvected, %isInPhysics
       t1%longName   = t1%name; IF(iad > 0) t1%longName=TRIM(t1%name)//descrq(iad)
       t1%iadv       = iad
-      t1%isAdvected = iad > 0
-      t1%isH2Ofamily= delPhase(t1%gen0Name) == 'H2O'
+      t1%isAdvected = iad >= 0
+      t1%isInPhysics= delPhase(t1%gen0Name) /= 'H2O'  !=== TO BE COMPLETED WITH OTHER EXCEPTIONS: CO2i, SURSATURATED CLOUDS...
       ttr(iq)       = t1
 
@@ -621,8 +621,8 @@
    CALL msg('Information stored in infotrac :')
    IF(dispTable('isssssssssiiiiiiiii', &
-      ['iq      ', 'name    ', 'longN.  ', 'gen0N.  ', 'parent  ', 'type    ', 'phase   ', 'compon. ', 'isAdv.  ', 'isH2O.  '&
+      ['iq      ', 'name    ', 'longN.  ', 'gen0N.  ', 'parent  ', 'type    ', 'phase   ', 'compon. ', 'isAdv.  ', 'isPhy.  '&
       ,'iadv    ', 'iGen.   ', 'iqPar.  ', 'nqDes.  ', 'nqChil. ', 'iso_iG. ', 'iso_iN. ', 'iso_iZ. ', 'iso_iP. '],          &
       cat(t%name,  t%longName,  t%gen0Name,  t%parent,  t%type,  t%phase, &
-          t%component, bool2str(t%isAdvected), bool2str(t%isH2Ofamily)),  &
+          t%component, bool2str(t%isAdvected), bool2str(t%isInPhysics)),  &
       cat([(iq, iq=1, nqtot)],  t%iadv,  t%iGeneration, t%iqParent, t%nqDescen, &
          t%nqChilds, t%iso_iGroup, t%iso_iName, t%iso_iZone, t%iso_iPhase))) &
Index: /LMDZ6/trunk/libf/misc/readTracFiles_mod.f90
===================================================================
--- /LMDZ6/trunk/libf/misc/readTracFiles_mod.f90	(revision 4070)
+++ /LMDZ6/trunk/libf/misc/readTracFiles_mod.f90	(revision 4071)
@@ -182,5 +182,5 @@
       IF(test(cumulTracers(dBase, tracs), lerr)) RETURN
     END IF
-    WHERE(tracs%gen0Name(1:3) == 'H2O') tracs%isH2Ofamily=.TRUE.     !--- Set %isH2Ofamily: belongs to H2O family
+    WHERE(tracs%gen0Name(1:3) /= 'H2O') tracs%isInPhysics=.TRUE.     !--- Set %isInPhysics: passed to physics
     CALL setDirectKeys(tracs)                                        !--- Set %iqParent, %iqDescen, %nqDescen, %nqChilds
   END IF
Index: /LMDZ6/trunk/libf/misc/trac_types_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/misc/trac_types_mod.F90	(revision 4070)
+++ /LMDZ6/trunk/libf/misc/trac_types_mod.F90	(revision 4071)
@@ -23,6 +23,6 @@
     INTEGER               :: iadv        = 10              !--- Advection scheme used
     INTEGER               :: iGeneration = -1              !--- Generation number (>=0)
-    LOGICAL               :: isAdvected  = .FALSE.         !--- "true" tracers: iadv > 0 . COUNT(     isAdvected) =nqtrue
-    LOGICAL               :: isH2Ofamily = .FALSE.         !--- H2O tracers/isotopes/tags. COUNT(.NOT.isH2Ofamily)=nqtottr
+    LOGICAL               :: isAdvected  = .FALSE.         !--- "true" tracers: iadv > 0.   COUNT(isAdvected )=nqtrue
+    LOGICAL               :: isInPhysics = .TRUE.          !--- "true" tracers: in tr_seri. COUNT(isInPhysics)=nqtottr
     INTEGER               :: iqParent    = 0               !--- Parent index
     INTEGER,  ALLOCATABLE :: iqDescen(:)                   !--- Descendants index (in growing generation order)
Index: /LMDZ6/trunk/libf/phylmd/Dust/phys_output_write_spl_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/Dust/phys_output_write_spl_mod.F90	(revision 4070)
+++ /LMDZ6/trunk/libf/phylmd/Dust/phys_output_write_spl_mod.F90	(revision 4071)
@@ -1612,5 +1612,5 @@
            itr = 0
            DO iq = 1, nqtot
-             IF(tracers(iq)%isH2Ofamily) CYCLE
+             IF(.NOT.tracers(iq)%isInPhysics) CYCLE
              itr = itr+1
              CALL histwrite_phy(o_trac(itr), tr_seri(:,:,itr))
Index: /LMDZ6/trunk/libf/phylmd/Dust/phytracr_spl_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/Dust/phytracr_spl_mod.F90	(revision 4070)
+++ /LMDZ6/trunk/libf/phylmd/Dust/phytracr_spl_mod.F90	(revision 4071)
@@ -1262,5 +1262,5 @@
       itr = 0
       DO iq = 1, nqtot
-         IF(tracers(iq)%isH2Ofamily) CYCLE
+         IF(.NOT.tracers(iq)%isInPhysics) CYCLE
          itr = itr+1
          write(str2,'(i2.2)') itr
@@ -1419,5 +1419,5 @@
         itr = 0
         do iq=1,nqtot
-          IF(tracers(iq)%isH2Ofamily) CYCLE
+          IF(.NOT.tracers(iq)%isInPhysics) CYCLE
           itr = itr+1
           print *, itr, TRIM(tracers(iq)%name)
Index: /LMDZ6/trunk/libf/phylmd/Dust/splaeropt_5wv_rrtm.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/Dust/splaeropt_5wv_rrtm.F90	(revision 4070)
+++ /LMDZ6/trunk/libf/phylmd/Dust/splaeropt_5wv_rrtm.F90	(revision 4071)
@@ -114,5 +114,5 @@
   itr = 0
   DO iq = 1, nqtot
-    IF(tracers(iq)%isH2Ofamily) CYCLE
+    IF(.NOT.tracers(iq)%isInPhysics) CYCLE
     itr = itr+1
     SELECT CASE(tracers(iq)%name)
Index: /LMDZ6/trunk/libf/phylmd/Dust/splaeropt_6bands_rrtm.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/Dust/splaeropt_6bands_rrtm.F90	(revision 4070)
+++ /LMDZ6/trunk/libf/phylmd/Dust/splaeropt_6bands_rrtm.F90	(revision 4071)
@@ -167,5 +167,5 @@
   itr = 0
   DO iq = 1, nqtot
-    IF(tracers(iq)%isH2Ofamily) CYCLE
+    IF(.NOT.tracers(iq)%isInPhysics) CYCLE
     itr = itr+1
     SELECT CASE(tracers(iq)%name)
Index: /LMDZ6/trunk/libf/phylmd/Dust/splaeropt_lw_rrtm.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/Dust/splaeropt_lw_rrtm.F90	(revision 4070)
+++ /LMDZ6/trunk/libf/phylmd/Dust/splaeropt_lw_rrtm.F90	(revision 4071)
@@ -57,5 +57,5 @@
     itr = 0
     DO iq = 1, nqtot
-      IF(tracers(iq)%isH2Ofamily) CYCLE
+      IF(.NOT.tracers(iq)%isInPhysics) CYCLE
       itr = itr+1
       SELECT CASE(tracers(iq)%name)
Index: /LMDZ6/trunk/libf/phylmd/Dust/splaerosol_optic_rrtm.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/Dust/splaerosol_optic_rrtm.F90	(revision 4070)
+++ /LMDZ6/trunk/libf/phylmd/Dust/splaerosol_optic_rrtm.F90	(revision 4071)
@@ -52,5 +52,5 @@
   itr = 0
   DO iq = 1, nqtot
-    IF(tracers(iq)%isH2Ofamily) CYCLE
+    IF(.NOT.tracers(iq)%isInPhysics) CYCLE
     itr = itr+1
     IF(tracers(iq)%name/='FINE') THEN
Index: /LMDZ6/trunk/libf/phylmd/infotrac_phy.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/infotrac_phy.F90	(revision 4070)
+++ /LMDZ6/trunk/libf/phylmd/infotrac_phy.F90	(revision 4071)
@@ -130,5 +130,5 @@
       nbtr_bin    = COUNT([(tracers(iq)%name(1:3)=='BIN', iq=1, nqtot)])
       nbtr_sulgas = COUNT([(tracers(iq)%name(1:3)=='GAS', iq=1, nqtot)])
-      tnames = PACK(tracers(:)%name, MASK=.NOT.tracers(:)%isH2Ofamily)
+      tnames = PACK(tracers(:)%name, MASK=tracers(:)%isInPhysics)
       id_BIN01_strat = strIdx(tnames, 'BIN01'   )
       id_OCS_strat   = strIdx(tnames, 'GASOSC'  )
Index: /LMDZ6/trunk/libf/phylmd/phyetat0.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/phyetat0.F90	(revision 4070)
+++ /LMDZ6/trunk/libf/phylmd/phyetat0.F90	(revision 4071)
@@ -452,5 +452,5 @@
      it = 0
      DO iq = 1, nqtot
-        IF(.NOT.tracers(iq)%isAdvected .OR. tracers(iq)%isH2Ofamily) CYCLE
+        IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
         it = it+1
         found=phyetat0_get(1,trs(:,it),"trs_"//TRIM(tracers(iq)%name), &
Index: /LMDZ6/trunk/libf/phylmd/phyredem.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/phyredem.F90	(revision 4070)
+++ /LMDZ6/trunk/libf/phylmd/phyredem.F90	(revision 4071)
@@ -330,5 +330,5 @@
        it = 0
        DO iq = 1, nqtot
-          IF(.NOT.tracers(iq)%isAdvected .OR. tracers(iq)%isH2Ofamily) CYCLE
+          IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
           it = it+1
           CALL put_field(pass,"trs_"//tracers(iq)%name, "", trs(:, it))
Index: /LMDZ6/trunk/libf/phylmd/phys_output_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/phys_output_mod.F90	(revision 4070)
+++ /LMDZ6/trunk/libf/phylmd/phys_output_mod.F90	(revision 4071)
@@ -470,5 +470,5 @@
           itr = 0
           DO iq = 1, nqtot 
-            IF(.NOT.tracers(iq)%isAdvected .OR. tracers(iq)%isH2Ofamily) CYCLE
+            IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
             itr = itr + 1
             dn = 'd'//TRIM(tracers(iq)%name)//'_'
@@ -526,5 +526,5 @@
 
 !  DO iq=1,nqtot
-!    IF(.NOT.tracers(iq)%isAdvected .OR. tracers(iq)%isH2Ofamily) CYCLE
+!    IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
 !    WRITE(*,'(a,i1,a,10i3)')'trac(',iq,')%flag = ',o_trac(iq)%flag
 !    WRITE(*,'(a,i1,a)')'trac(',iq,')%name = '//TRIM(o_trac(iq)%name)
Index: /LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90	(revision 4070)
+++ /LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90	(revision 4071)
@@ -541,5 +541,5 @@
           ! On boucle sur les traceurs pour les ajouter au groupe puis fixer les attributs
           DO iq = 1, nqtot
-            IF(.NOT.tracers(iq)%isAdvected .OR. tracers(iq)%isH2Ofamily) CYCLE
+            IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
             dn = 'd'//TRIM(tracers(iq)%name)//'_'
             WRITE (lunout,*) 'XIOS var=', nqo, iq, nqtot, tracers(iq)%name
@@ -595,5 +595,5 @@
           ! On boucle sur les traceurs pour les ajouter au groupe puis fixer les attributs
           DO iq = 1, nqtot
-            IF(.NOT.tracers(iq)%isAdvected .OR. tracers(iq)%isH2Ofamily) CYCLE
+            IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
 
             unt = "kg m-2"
@@ -2470,5 +2470,5 @@
            itr = 0
            DO iq = 1, nqtot
-             IF(tracers(iq)%isH2Ofamily) CYCLE
+             IF(.NOT.tracers(iq)%isInPhysics) CYCLE
              itr = itr + 1
 !            write(*,*) 'phys_output_write_mod 2337: itr=',itr
@@ -2503,5 +2503,5 @@
            itr = 0
            DO iq = 1, nqtot
-             IF(tracers(iq)%isH2Ofamily) CYCLE
+             IF(.NOT.tracers(iq)%isInPhysics) CYCLE
              itr = itr + 1
 !            write(*,*) 'phys_output_write_mod 2370: itr=',itr
@@ -2531,6 +2531,7 @@
 
          IF (type_trac == 'inco') THEN
+           itr = 0
            DO iq = 1, nqtot
-             IF(tracers(iq)%isH2Ofamily .OR. .NOT.tracers(iq)%isAdvected) CYCLE
+             IF(.NOT.tracers(iq)%isInPhysics) CYCLE
              itr = itr+1
              IF(tracers(iq)%component /= 'co2i') CYCLE
Index: /LMDZ6/trunk/libf/phylmd/physiq_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/physiq_mod.F90	(revision 4070)
+++ /LMDZ6/trunk/libf/phylmd/physiq_mod.F90	(revision 4071)
@@ -2270,5 +2270,5 @@
        itr = 0
        DO iq = 1, nqtot
-         IF(tracers(iq)%isH2Ofamily) CYCLE
+         IF(.NOT.tracers(iq)%isInPhysics) CYCLE
          itr = itr+1
           DO  k = 1, klev
@@ -2290,5 +2290,5 @@
        itr = 0
        do iq = 1, nqtot
-         IF(tracers(iq)%isH2Ofamily) CYCLE
+         IF(.NOT.tracers(iq)%isInPhysics) CYCLE
          itr = itr+1
          tr_ancien(:,:,itr)=tr_seri(:,:,itr)       
@@ -5117,5 +5117,5 @@
        itr = 0
        DO iq = 1, nqtot
-          IF(tracers(iq)%isH2Ofamily) CYCLE
+          IF(.NOT.tracers(iq)%isInPhysics) CYCLE
           itr = itr+1
           DO  k = 1, klev
Index: /LMDZ6/trunk/libf/phylmd/traclmdz_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/traclmdz_mod.F90	(revision 4070)
+++ /LMDZ6/trunk/libf/phylmd/traclmdz_mod.F90	(revision 4071)
@@ -175,5 +175,5 @@
     it = 0
     DO iq = 1, nqtot
-       IF(.NOT.tracers(iq)%isAdvected .OR. tracers(iq)%isH2Ofamily) CYCLE
+       IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
        it = it+1
        SELECT CASE(strLower(tracers(iq)%name))
@@ -262,5 +262,5 @@
     it = 0
     DO iq = 1, nqtot
-       IF(.NOT.tracers(iq)%isAdvected .OR. tracers(iq)%isH2Ofamily) CYCLE
+       IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
        it = it+1
        ! Test if tracer is zero everywhere. 
Index: /LMDZ6/trunk/libf/phylmdiso/phyetat0.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmdiso/phyetat0.F90	(revision 4070)
+++ /LMDZ6/trunk/libf/phylmdiso/phyetat0.F90	(revision 4071)
@@ -471,5 +471,5 @@
      it = 0
      DO iq = 1, nqtot
-        IF(.NOT.tracers(iq)%isAdvected .OR. tracers(iq)%isH2Ofamily) CYCLE
+        IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
         it = it+1
         found=phyetat0_get(1,trs(:,it),"trs_"//TRIM(tracers(iq)%name), &
Index: /LMDZ6/trunk/libf/phylmdiso/phyredem.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmdiso/phyredem.F90	(revision 4070)
+++ /LMDZ6/trunk/libf/phylmdiso/phyredem.F90	(revision 4071)
@@ -350,5 +350,5 @@
        it = 0
        DO iq = 1, nqtot
-          IF(.NOT.tracers(iq)%isAdvected .OR. tracers(iq)%isH2Ofamily) CYCLE
+          IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
           it = it+1
           CALL put_field(pass,"trs_"//tracers(iq)%name, "", trs(:, it))
Index: /LMDZ6/trunk/libf/phylmdiso/phys_output_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmdiso/phys_output_mod.F90	(revision 4070)
+++ /LMDZ6/trunk/libf/phylmdiso/phys_output_mod.F90	(revision 4071)
@@ -504,5 +504,5 @@
           itr = 0
           DO iq = 1, nqtot 
-            IF(.NOT.tracers(iq)%isAdvected .OR. tracers(iq)%isH2Ofamily) CYCLE
+            IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
             itr = itr + 1
             dn = 'd'//TRIM(tracers(iq)%name)//'_'
Index: /LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90	(revision 4070)
+++ /LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90	(revision 4071)
@@ -2474,5 +2474,5 @@
        itr = 0
        DO iq = 1, nqtot
-         IF(tracers(iq)%isH2Ofamily) CYCLE
+         IF(.NOT.tracers(iq)%isInPhysics) CYCLE
          itr = itr+1
 !#ifdef ISOVERIF
@@ -2498,5 +2498,5 @@
        itr = 0
        do iq = 1, nqtot
-         IF(tracers(iq)%isH2Ofamily) CYCLE
+         IF(.NOT.tracers(iq)%isInPhysics) CYCLE
          itr = itr+1
          tr_ancien(:,:,itr)=tr_seri(:,:,itr)       
@@ -6531,5 +6531,5 @@
     itr = 0
     DO iq = 1, nqtot
-       IF(tracers(iq)%isH2Ofamily) CYCLE
+       IF(.NOT.tracers(iq)%isInPhysics) CYCLE
        itr = itr+1
        DO  k = 1, klev
