Index: LMDZ6/trunk/libf/dyn3d_common/infotrac.F90
===================================================================
--- LMDZ6/trunk/libf/dyn3d_common/infotrac.F90	(revision 3923)
+++ LMDZ6/trunk/libf/dyn3d_common/infotrac.F90	(revision 3924)
@@ -17,5 +17,5 @@
   INTEGER, ALLOCATABLE, DIMENSION(:), SAVE :: itr_indice
 
-! CRisi: nb traceurs p?res= directement advect?s par l'air
+! CRisi: nb traceurs peres= directement advectes par l'air
   INTEGER, SAVE :: nqperes
 
@@ -39,5 +39,5 @@
 ! CRisi: tableaux de fils
   INTEGER, ALLOCATABLE, DIMENSION(:), SAVE    :: nqfils
-  INTEGER, ALLOCATABLE, DIMENSION(:), SAVE    :: nqdesc ! nombres de fils + nombre de tous les petits fils sur toutes les g?n?rations
+  INTEGER, ALLOCATABLE, DIMENSION(:), SAVE    :: nqdesc ! nombres de fils + nombre de tous les petits fils sur toutes les generations
   INTEGER, SAVE :: nqdesc_tot
   INTEGER, ALLOCATABLE, DIMENSION(:,:), SAVE    :: iqfils
@@ -61,10 +61,10 @@
   LOGICAL, DIMENSION(niso_possibles),SAVE ::  use_iso
   INTEGER, ALLOCATABLE, DIMENSION(:,:), SAVE ::  iqiso ! donne indice iq en fn de (ixt,phase) 
-  INTEGER, ALLOCATABLE, DIMENSION(:), SAVE ::  iso_num ! donne num?ro iso entre 1 et niso_possibles en fn de nqtot
-  INTEGER, ALLOCATABLE, DIMENSION(:), SAVE ::  iso_indnum ! donne num?ro iso entre 1 et niso effectif en fn de nqtot
-  INTEGER, ALLOCATABLE, DIMENSION(:), SAVE ::  zone_num ! donne num?ro de la zone de tracage en fn de nqtot
-  INTEGER, ALLOCATABLE, DIMENSION(:), SAVE ::  phase_num ! donne num?ro de la zone de tracage en fn de nqtot
-  INTEGER, DIMENSION(niso_possibles), SAVE :: indnum_fn_num ! donne indice entre entre 1 et niso en fonction du num?ro d isotope entre 1 et niso_possibles
-  INTEGER, ALLOCATABLE, DIMENSION(:,:), SAVE ::  index_trac ! num?ro ixt en fn izone, indnum entre 1 et niso
+  INTEGER, ALLOCATABLE, DIMENSION(:), SAVE ::  iso_num ! donne numero iso entre 1 et niso_possibles en fn de nqtot
+  INTEGER, ALLOCATABLE, DIMENSION(:), SAVE ::  iso_indnum ! donne numero iso entre 1 et niso effectif en fn de nqtot
+  INTEGER, ALLOCATABLE, DIMENSION(:), SAVE ::  zone_num ! donne numero de la zone de tracage en fn de nqtot
+  INTEGER, ALLOCATABLE, DIMENSION(:), SAVE ::  phase_num ! donne numero de la zone de tracage en fn de nqtot
+  INTEGER, DIMENSION(niso_possibles), SAVE :: indnum_fn_num ! donne indice entre entre 1 et niso en fonction du numero d isotope entre 1 et niso_possibles
+  INTEGER, ALLOCATABLE, DIMENSION(:,:), SAVE ::  index_trac ! numero ixt en fn izone, indnum entre 1 et niso
   INTEGER,SAVE :: niso,ntraceurs_zone,ntraciso
 
@@ -257,5 +257,5 @@
           IF (nqo == 4 .AND. type_trac=='inco') THEN ! ThL
              WRITE(lunout,*) trim(modname),': you are coupling with INCA, and also using CO2i.'
-             nqo = 3    ! A am?liorier... je force 3 traceurs eau...  ThL
+             nqo = 3    ! A ameliorier... je force 3 traceurs eau...  ThL
              WRITE(lunout,*) trim(modname),': nqo = ',nqo
           ELSE
@@ -319,6 +319,6 @@
 !     iadv = 13   schema  Frederic Hourdin II
 !     iadv = 16   schema  PPM Monotone(Collela & Woodward 1984)
-!     iadv = 17   schema  PPM Semi Monotone (overshoots autoris?s)
-!     iadv = 18   schema  PPM Positif Defini (overshoots undershoots autoris?s)
+!     iadv = 17   schema  PPM Semi Monotone (overshoots autorises)
+!     iadv = 18   schema  PPM Positif Defini (overshoots undershoots autorises)
 !     iadv = 20   schema  Slopes
 !     iadv = 30   schema  Prather
@@ -595,7 +595,7 @@
 
 
-! CRisi: quels sont les traceurs fils et les traceurs p?res.
-! initialiser tous les tableaux d'indices li?s aux traceurs familiaux
-! + v?rifier que tous les p?res sont ?crits en premi?res positions
+! CRisi: quels sont les traceurs fils et les traceurs peres.
+! initialiser tous les tableaux d'indices lies aux traceurs familiaux
+! + verifier que tous les peres sont ecrits en premieres positions
     ALLOCATE(nqfils(nqtot),nqdesc(nqtot))    
     ALLOCATE(iqfils(nqtot,nqtot))   
@@ -609,10 +609,10 @@
     DO iq=1,nqtot
       if (tnom_transp(iq) == 'air') then
-        ! ceci est un traceur p?re
+        ! ceci est un traceur pere
         WRITE(lunout,*) 'Le traceur',iq,', appele ',trim(tnom_0(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?
+        ! ceci est un fils. Qui est son pere?
         WRITE(lunout,*) 'Le traceur',iq,', appele ',trim(tnom_0(iq)),', est un fils'
         continu=.true.
@@ -620,5 +620,5 @@
         do while (continu)           
           if (tnom_transp(iq) == tnom_0(ipere)) then
-            ! Son p?re est ipere
+            ! Son pere est ipere
             WRITE(lunout,*) 'Le traceur',iq,'appele ', &
       &          trim(tnom_0(iq)),' est le fils de ',ipere,'appele ',trim(tnom_0(ipere))
@@ -646,5 +646,5 @@
     WRITE(lunout,*) 'iqfils=',iqfils
 
-! Calculer le nombre de descendants ? partir de iqfils et de nbfils
+! Calculer le nombre de descendants a partir de iqfils et de nbfils
     DO iq=1,nqtot    
       generation=0
@@ -669,15 +669,15 @@
     WRITE(lunout,*) 'nqdesc_tot=',nqdesc_tot
 
-! Interdire autres sch?mas que 10 pour les traceurs fils, et autres sch?mas
-! que 10 et 14 si des p?res ont des fils
+! Interdire autres schemas que 10 pour les traceurs fils, et autres schemas
+! que 10 et 14 si des peres ont des fils
     do iq=1,nqtot
       if (iqpere(iq).gt.0) then
-        ! ce traceur a un p?re qui n'est pas l'air
-        ! Seul le sch?ma 10 est autoris?
+        ! ce traceur a un pere qui n'est pas l'air
+        ! Seul le schema 10 est autorise
         if (iadv(iq)/=10) then
            WRITE(lunout,*)trim(modname),' STOP : The option iadv=',iadv(iq),' is not implemented for sons'
           CALL abort_gcm('infotrac_init','Sons should be advected by scheme 10',1)
         endif
-        ! Le traceur p?re ne peut ?tre advect? que par sch?ma 10 ou 14:
+        ! Le traceur pere ne peut etre advecte que par schema 10 ou 14:
         IF (iadv(iqpere(iq))/=10 .AND. iadv(iqpere(iq))/=14) THEN
           WRITE(lunout,*)trim(modname),' STOP : The option iadv=',iadv(iq),' is not implemented for fathers'
@@ -693,6 +693,6 @@
 
 !    if (ntraciso.gt.0) then
-! le 18 sep 2020: on enl?ve la condition ntraciso.gt.0 car nqtottr doit ?tre
-! connu m?me si il n'y a pas d'isotopes!
+! le 18 sep 2020: on enleve la condition ntraciso.gt.0 car nqtottr doit etre
+! connu meme si il n'y a pas d'isotopes!
         write(lunout,*) 'infotrac 702: nbtr,ntraciso=',nbtr,ntraciso
 ! retrancher les traceurs isotopiques de la liste des traceurs qui passent dans
@@ -703,5 +703,5 @@
         nqtottr=nqtot-nqo*(1+ntraciso)
         write(lunout,*) 'infotrac 704: nqtottr,nqtot,nqo=',nqtottr,nqtot,nqo
-        ! Rq: nqtottr n'est pas forc?ment ?gal ? nbtr dans le cas o? new_iq /= nqtrue
+        ! Rq: nqtottr n'est pas forcement egal a nbtr dans le cas ou new_iq /= nqtrue
         ALLOCATE (itr_indice(nqtottr))  
         itr_indice(:)=0  
@@ -929,5 +929,5 @@
 
         if (nb_iso(ixt,1).eq.1) then
-          ! on v?rifie que toutes les phases ont le m?me nombre de
+          ! on verifie que toutes les phases ont le meme nombre de
           ! traceurs
           do phase=2,nqo
@@ -942,5 +942,5 @@
           ntraceurs_zone=nb_traciso(ixt,1)
 
-          ! on v?rifie que toutes les phases ont le m?me nombre de
+          ! on verifie que toutes les phases ont le meme nombre de
           ! traceurs
           do phase=2,nqo
@@ -951,5 +951,5 @@
             endif  
           enddo  !do phase=2,nqo
-          ! on v?rifie que tous les isotopes ont le m?me nombre de
+          ! on verifie que tous les isotopes ont le meme nombre de
           ! traceurs
           if (ntraceurs_zone_prec.gt.0) then               
Index: LMDZ6/trunk/libf/dynphy_lonlat/phylmd/iniphysiq_mod.F90
===================================================================
--- LMDZ6/trunk/libf/dynphy_lonlat/phylmd/iniphysiq_mod.F90	(revision 3923)
+++ LMDZ6/trunk/libf/dynphy_lonlat/phylmd/iniphysiq_mod.F90	(revision 3924)
@@ -24,5 +24,5 @@
                       iso_indnum,zone_num,phase_num,&
                       indnum_fn_num,index_trac,&
-                      niso,ntraceurs_zone,ntraciso
+                      niso,ntraceurs_zone,ntraciso,nqtottr,itr_indice
 #ifdef CPP_StratAer
   USE infotrac, ONLY: nbtr_bin, nbtr_sulgas, id_OCS_strat, &
@@ -146,5 +146,5 @@
 
   ! Initialize tracer names, numbers, etc. for physics
-  CALL init_infotrac_phy(nqtot,nqo,nbtr,nqCO2,tname,ttext,type_trac,&
+  CALL init_infotrac_phy(nqtot,nqo,nbtr,nqtottr,nqCO2,tname,ttext,type_trac,&
                          niadv,conv_flg,pbl_flg,solsym,&
                          nqfils,nqdesc,nqdesc_tot,iqfils,iqpere,&
@@ -154,5 +154,5 @@
                          iso_indnum,zone_num,phase_num,&
                          indnum_fn_num,index_trac,&
-                         niso,ntraceurs_zone,ntraciso&
+                         niso,ntraceurs_zone,ntraciso,itr_indice &
 #ifdef CPP_StratAer
                          ,nbtr_bin,nbtr_sulgas&
Index: LMDZ6/trunk/libf/phylmd/infotrac_phy.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/infotrac_phy.F90	(revision 3923)
+++ LMDZ6/trunk/libf/phylmd/infotrac_phy.F90	(revision 3924)
@@ -20,4 +20,7 @@
   INTEGER, SAVE :: nbtr
 !$OMP THREADPRIVATE(nbtr)
+
+  INTEGER, SAVE :: nqtottr
+!$OMP THREADPRIVATE(nqtottr)
 
 ! ThL : number of CO2 tracers			ModThL
@@ -97,8 +100,11 @@
     INTEGER,SAVE :: niso,ntraceurs_zone,ntraciso
 !$OMP THREADPRIVATE(niso,ntraceurs_zone,ntraciso)
+
+    INTEGER, ALLOCATABLE, DIMENSION(:), SAVE ::  itr_indice ! numéro iq entre 1 et nqtot qui correspond au traceur itr entre 1 et nqtottr
+!$OMP THREADPRIVATE(itr_indice)
  
 CONTAINS
 
-  SUBROUTINE init_infotrac_phy(nqtot_,nqo_,nbtr_,nqCO2_,tname_,ttext_,type_trac_,&
+  SUBROUTINE init_infotrac_phy(nqtot_,nqo_,nbtr_,nqtottr_,nqCO2_,tname_,ttext_,type_trac_,&
                                niadv_,conv_flg_,pbl_flg_,solsym_,&
                                nqfils_,nqdesc_,nqdesc_tot_,iqfils_,iqpere_,&
@@ -108,5 +114,5 @@
                                iso_indnum_,zone_num_,phase_num_,&
                                indnum_fn_num_,index_trac_,&
-                               niso_,ntraceurs_zone_,ntraciso_&
+                               niso_,ntraceurs_zone_,ntraciso_,itr_indice_&
 #ifdef CPP_StratAer
                                ,nbtr_bin_,nbtr_sulgas_&
@@ -122,4 +128,5 @@
     INTEGER,INTENT(IN) :: nqo_
     INTEGER,INTENT(IN) :: nbtr_
+    INTEGER,INTENT(IN) :: nqtottr_
     INTEGER,INTENT(IN) :: nqCO2_
 #ifdef CPP_StratAer
@@ -162,4 +169,5 @@
     INTEGER,INTENT(IN) :: ntraceurs_zone_
     INTEGER,INTENT(IN) :: ntraciso_
+    INTEGER,INTENT(IN) :: itr_indice_(nqtottr_)
 
     CHARACTER(LEN=30) :: modname="init_infotrac_phy"
@@ -169,4 +177,5 @@
     nbtr=nbtr_
     nqCO2=nqCO2_
+    nqtottr=nqtottr_
 #ifdef CPP_StratAer
     nbtr_bin=nbtr_bin_
@@ -242,4 +251,7 @@
       ALLOCATE(index_trac(ntraceurs_zone,niso))
       index_trac(:,:)=index_trac_(:,:)
+
+      ALLOCATE(itr_indice(nqtottr))
+      itr_indice(:)=itr_indice_(:)
     ENDIF ! of IF(ok_isotopes)
   
