Index: trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/iniphysiq_mod.F90
===================================================================
--- trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/iniphysiq_mod.F90	(revision 2325)
+++ trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/iniphysiq_mod.F90	(revision 2332)
@@ -12,5 +12,5 @@
 use infotrac, only : nqtot, & ! number of advected tracers
                      tname, & ! tracer names
-                     nqdesc,iqfils,nqperes,nqfils! MVals: variables isotopes
+                     nqperes,nqfils! MVals: variables isotopes
 use comgeomfi_h, only: ini_fillgeom
 use temps_mod, only: day_ini, hour_ini
@@ -73,5 +73,5 @@
                          day_ini,hour_ini,punjours,ptimestep, &
                          prad,pg,pr,pcpp, &
-                         nqdesc,iqfils,nqperes,nqfils) ! MVals: variables isotopes
+                         nqperes,nqfils) ! MVals: variables isotopes
 call ini_fillgeom(klon_omp,latitude,longitude,cell_area)
 ! work is needed to put what is in comgeomfi_h in geometry_mod?
Index: trunk/LMDZ.MARS/libf/phymars/callsedim_mod.F
===================================================================
--- trunk/LMDZ.MARS/libf/phymars/callsedim_mod.F	(revision 2325)
+++ trunk/LMDZ.MARS/libf/phymars/callsedim_mod.F	(revision 2332)
@@ -23,5 +23,5 @@
      &                      igcm_stormdust_number,igcm_topdust_mass, 
      &                      igcm_topdust_number,
-     &                      iqfils,nqfils,qperemin,masseqmin ! MVals: variables isotopes
+     &                      nqfils,qperemin,masseqmin ! MVals: variables isotopes
       USE newsedim_mod, ONLY: newsedim
       USE comcstfi_h, ONLY: g
@@ -536,5 +536,9 @@
               !MVals: Loop over the sons ("fils")
               if (nqfils(iq).gt.0) then
-                iq2=iqfils(nqfils(iq),iq) ! for now always nqfils(iq)=1 (special case of HDO only son of H2O)
+                if (iq.eq.igcm_h2o_ice) then
+                 iq2=igcm_hdo_ice
+                else
+                 call abort_physic("callsedim_mod","invalid isotope",1)
+                endif 
                 !MVals: input paramters in vlz_fi for hdo
                 do l=1,nlay
@@ -595,5 +599,9 @@
               !MVals: Special case of isotopes: for now only HDO
               if (nqfils(iq).gt.0) then
-               iq2=iqfils(nqfils(iq),iq)
+                if (iq.eq.igcm_h2o_ice) then
+                 iq2=igcm_hdo_ice
+                else
+                 call abort_physic("callsedim_mod","invalid isotope",1)
+                endif
                pdqsed(ig,l,iq2)=(zqi(ig,l,iq2)-
      $            (pq(ig,l,iq2) + pdqfi(ig,l,iq2)*ptimestep))/ptimestep
Index: trunk/LMDZ.MARS/libf/phymars/co2condens_mod.F
===================================================================
--- trunk/LMDZ.MARS/libf/phymars/co2condens_mod.F	(revision 2325)
+++ trunk/LMDZ.MARS/libf/phymars/co2condens_mod.F	(revision 2332)
@@ -16,8 +16,9 @@
      $                  zdtcloudco2,pdqsc)
                                                    
-       use tracer_mod, only: noms, igcm_h2o_ice,
+       use tracer_mod, only: noms, igcm_h2o_ice, igcm_h2o_vap,
      &                      igcm_dust_mass, igcm_dust_number,
      &                      igcm_ccn_mass, igcm_ccn_number,
-     &                      iqfils,nqperes,nqfils, ! MVals: variables isotopes
+     &                      igcm_hdo_ice, igcm_hdo_vap,
+     &                      nqperes,nqfils, ! MVals: variables isotopes
      &                      qperemin,masseqmin
        use surfdat_h, only: emissiv, phisfi
@@ -557,5 +558,11 @@
              ! MVals: loop over the sons ("fils")
              if (nqfils(iq).gt.0) then
-              iq2=iqfils(nqfils(iq),iq) ! for now it is always nqfils(iq)=1 (special case of HDO only son of H2O)
+              if (iq.eq.igcm_h2o_ice) then
+                 iq2=igcm_hdo_ice
+              else if (iq.eq.igcm_h2o_vap) then
+                 iq2=igcm_hdo_vap
+              else
+                 call abort_physic("co2condens_mod","invalid isotope",1)
+              endif
               do l=1,nlayer
                if (zqc(l,iq).gt.qperemin) then
Index: trunk/LMDZ.MARS/libf/phymars/dyn1d/testphys1d.F
===================================================================
--- trunk/LMDZ.MARS/libf/phymars/dyn1d/testphys1d.F	(revision 2325)
+++ trunk/LMDZ.MARS/libf/phymars/dyn1d/testphys1d.F	(revision 2332)
@@ -5,6 +5,5 @@
       use dimphy, only : init_dimphy
       use mod_grid_phy_lmdz, only : regular_lonlat
-      use infotrac, only: nqtot, tname, nqperes,nqdesc,iqfils,nqfils,
-     &                    iqpere, nqdesc_tot
+      use infotrac, only: nqtot, tname, nqperes,nqfils
       use comsoil_h, only: volcapa, layer, mlayer, inertiedat, nsoilmx
       use comgeomfi_h, only: sinlat, ini_fillgeom
@@ -268,13 +267,7 @@
 
        ! Isotopes: as in the 3D case we have to determine father/son relations for isotopes and carrying fluid
-       ALLOCATE(nqfils(nqtot),nqdesc(nqtot))    
-       ALLOCATE(iqfils(nqtot,nqtot))   
-       ALLOCATE(iqpere(nqtot))
+       ALLOCATE(nqfils(nqtot))
        nqperes=0
-       nqfils(:)=0
-       nqdesc(:)=0
-       iqfils(:,:)=0
-       iqpere(:)=0
-       nqdesc_tot=0    
+       nqfils(:)=0  
        DO iq=1,nqtot
        if (tnom_transp(iq) == 'air') then
@@ -283,5 +276,4 @@
      &          trim(tname(iq)),', est un pere'
          nqperes=nqperes+1
-         iqpere(iq)=0
        else !if (tnom_transp(iq) == 'air') then
          ! ceci est un fils. Qui est son père?
@@ -296,7 +288,5 @@
      &   trim(tname(iq)),' est le fils de ',
      &   ipere,'appele ',trim(tname(ipere))
-             nqfils(ipere)=nqfils(ipere)+1  
-             iqfils(nqfils(ipere),ipere)=iq
-             iqpere(iq)=ipere         
+             nqfils(ipere)=nqfils(ipere)+1         
              continu=.false.
            else !if (tnom_transp(iq) == tnom_0(ipere)) then
@@ -314,29 +304,4 @@
        WRITE(*,*) 'nqperes=',nqperes    
        WRITE(*,*) 'nqfils=',nqfils
-       WRITE(*,*) 'iqpere=',iqpere
-       WRITE(*,*) 'iqfils=',iqfils
-       ! Calculer le nombre de descendants à partir de iqfils et de nbfils
-       DO iq=1,nqtot    
-       generation=0
-       continu=.true.
-       ifils=iq
-       do while (continu)
-          ipere=iqpere(ifils)
-         if (ipere.gt.0) then
-          nqdesc(ipere)=nqdesc(ipere)+1   
-          nqdesc_tot=nqdesc_tot+1      
-          iqfils(nqdesc(ipere),ipere)=iq
-          ifils=ipere
-          generation=generation+1
-         else !if (ipere.gt.0) then
-          continu=.false.
-         endif !if (ipere.gt.0) then
-       enddo !do while (continu)    
-       WRITE(*,*) 'Le traceur ',iq,', appele ',trim(tname(iq)),
-     &               ' est un traceur de generation: ',generation
-       ENDDO !DO iq=1,nqtot
-       WRITE(*,*) 'infotrac: nqdesc=',nqdesc
-       WRITE(*,*) 'iqfils=',iqfils
-       WRITE(*,*) 'nqdesc_tot=',nqdesc_tot
 
         ! initialize tracers here:
@@ -673,5 +638,5 @@
       call phys_state_var_init(1,llm,nq,tname,
      .          day0,time,daysec,dtphys,rad,g,r,cpp,
-     .          nqdesc,iqfils,nqperes,nqfils)! MVals: variables isotopes
+     .          nqperes,nqfils)! MVals: variables isotopes
       call ini_fillgeom(1,latitude,longitude,(/1.0/))
       call conf_phys(1,llm,nq)
Index: trunk/LMDZ.MARS/libf/phymars/phys_state_var_init_mod.F90
===================================================================
--- trunk/LMDZ.MARS/libf/phymars/phys_state_var_init_mod.F90	(revision 2325)
+++ trunk/LMDZ.MARS/libf/phymars/phys_state_var_init_mod.F90	(revision 2332)
@@ -6,5 +6,5 @@
                                      day_ini,hour_ini,pdaysec,ptimestep, &
                                      prad,pg,pr,pcpp, &
-                                     dyn_nqdesc,dyn_iqfils,dyn_nqperes,dyn_nqfils)! MVals: variables isotopes
+                                     dyn_nqperes,dyn_nqfils)! MVals: variables isotopes
 
 !=======================================================================
@@ -71,10 +71,8 @@
       INTEGER,INTENT(in) :: dyn_nqperes
       INTEGER,INTENT(in) :: dyn_nqfils(nq)
-      INTEGER,INTENT(in) :: dyn_nqdesc(nq)
-      INTEGER,INTENT(in) :: dyn_iqfils(nq,nq)
 
       ! set dimension and allocate arrays in tracer_mod
       call end_tracer_mod
-      call ini_tracer_mod(nq,tname,dyn_nqdesc,dyn_iqfils,dyn_nqperes,dyn_nqfils)! MVals: variables isotopes
+      call ini_tracer_mod(nq,tname,dyn_nqperes,dyn_nqfils)! MVals: variables isotopes
 
 
Index: trunk/LMDZ.MARS/libf/phymars/tracer_mod.F90
===================================================================
--- trunk/LMDZ.MARS/libf/phymars/tracer_mod.F90	(revision 2325)
+++ trunk/LMDZ.MARS/libf/phymars/tracer_mod.F90	(revision 2332)
@@ -98,8 +98,6 @@
       integer, save                 :: nqperes ! numbers of tracers defined as "peres"
       integer, allocatable, save    :: nqfils(:) ! numbers of sons ("fils") of the considered tracer
-      integer, allocatable, save    :: iqfils(:,:) ! indice of a son, ex: iqfils(nqfils(ipere),ipere)
       real, parameter               :: qperemin=1.e-16 ! threschold for the "pere" mixing ratio qpere to calculate Ratio=qfils/qpere
-      real, parameter               :: masseqmin=1.e-16 ! threschold for the "pere" transporting masse
-      !integer, allocatable, save    :: nqdesc(:) ! number of sons + all gran-sons over all generations: not useful for now in the martian case as there are no gran-sons
+      real, parameter               :: masseqmin=1.e-16 ! threschold for the "pere" transporting masse martian case as there are no gran-sons
 
 !-----------------------------------------------------------------------
@@ -107,5 +105,5 @@
   contains
   
-    subroutine ini_tracer_mod(nq,tname,dyn_nqdesc,dyn_iqfils,dyn_nqperes,dyn_nqfils)! MVals: variables isotopes
+    subroutine ini_tracer_mod(nq,tname,dyn_nqperes,dyn_nqfils)! MVals: variables isotopes
       implicit none
       
@@ -115,6 +113,4 @@
       integer,intent(in) :: dyn_nqperes
       integer,intent(in) :: dyn_nqfils(nq)
-      integer,intent(in) :: dyn_nqdesc(nq)
-      integer,intent(in) :: dyn_iqfils(nq,nq)
       
       integer :: iq, count
@@ -130,16 +126,7 @@
 
       !MVals: isotopes variables initialisation
-      do iq=1,nq
-        if (dyn_nqfils(iq).ne.dyn_nqdesc(iq)) then
-          write(*,*) ' for now all descendants must be sons: check the', &
-                     '  relations between tracers in traceur.def !'
-          call abort_physic("ini_tracer_mod","relatives pattern between tracers not accepted",1)
-        endif
-      enddo
-      allocate(nqfils(nq))!,nqdesc(nq))    
-      allocate(iqfils(nq,nq))
+      allocate(nqfils(nq))
       nqperes=dyn_nqperes   
       nqfils(:)=dyn_nqfils(:)
-      iqfils(:,:)=dyn_iqfils(:,:)
      
 #ifndef MESOSCALE 
