Index: LMDZ5/trunk/libf/dyn3d_common/infotrac.F90
===================================================================
--- LMDZ5/trunk/libf/dyn3d_common/infotrac.F90	(revision 2391)
+++ LMDZ5/trunk/libf/dyn3d_common/infotrac.F90	(revision 2566)
@@ -86,4 +86,9 @@
     INTEGER, ALLOCATABLE, DIMENSION(:) :: hadv  ! index of horizontal trasport schema
     INTEGER, ALLOCATABLE, DIMENSION(:) :: vadv  ! index of vertical trasport schema
+
+#ifdef INCA
+    INTEGER, ALLOCATABLE, DIMENSION(:) :: hadv_inca  ! index of horizontal trasport schema
+    INTEGER, ALLOCATABLE, DIMENSION(:) :: vadv_inca  ! index of vertical trasport schema
+#endif
 
     CHARACTER(len=15), ALLOCATABLE, DIMENSION(:) :: tnom_0  ! tracer short name
@@ -226,4 +231,8 @@
 !
     ALLOCATE(tnom_0(nqtrue), hadv(nqtrue), vadv(nqtrue),tnom_transp(nqtrue))
+
+#ifdef INCA
+    ALLOCATE(hadv_inca(nbtr), vadv_inca(nbtr)) 
+#endif
 !
 !jyg<
@@ -375,33 +384,78 @@
 !>jyg
 ! le module de chimie fournit les noms des traceurs
-! et les schemas d'advection associes.
-     
+! et les schemas d'advection associes. excepte pour ceux lus 
+! dans traceur.def 
+       IF (ierr .eq. 0) then 
+          DO iq=1,nqo
+
+             write(*,*) 'infotrac 237: iq=',iq
+             ! CRisi: ajout du nom du fluide transporteur
+             ! mais rester retro compatible
+             READ(90,'(I2,X,I2,X,A)',IOSTAT=IOstatus) hadv(iq),vadv(iq),tchaine
+             write(lunout,*) 'iq,hadv(iq),vadv(iq)=',iq,hadv(iq),vadv(iq)
+             write(lunout,*) 'tchaine=',trim(tchaine)
+             write(*,*) 'infotrac 238: IOstatus=',IOstatus
+             if (IOstatus.ne.0) then
+                CALL abort_gcm('infotrac_init','Pb dans la lecture de traceur.def',1)
+             endif
+             ! Y-a-t-il 1 ou 2 noms de traceurs? -> On regarde s'il y a un
+             ! espace ou pas au milieu de la chaine.
+             continu=.true.
+             nouveau_traceurdef=.false.
+             iiq=1
+             do while (continu)
+                if (tchaine(iiq:iiq).eq.' ') then
+                  nouveau_traceurdef=.true.
+                  continu=.false.
+                else if (iiq.lt.LEN_TRIM(tchaine)) then
+                  iiq=iiq+1
+                else
+                  continu=.false.
+                endif
+             enddo
+             write(*,*) 'iiq,nouveau_traceurdef=',iiq,nouveau_traceurdef
+             if (nouveau_traceurdef) then
+                write(lunout,*) 'C''est la nouvelle version de traceur.def'
+                tnom_0(iq)=tchaine(1:iiq-1)
+                tnom_transp(iq)=tchaine(iiq+1:15)
+             else
+                write(lunout,*) 'C''est l''ancienne version de traceur.def'
+                write(lunout,*) 'On suppose que les traceurs sont tous d''air'
+                tnom_0(iq)=tchaine
+                tnom_transp(iq) = 'air'
+             endif
+             write(lunout,*) 'tnom_0(iq)=<',trim(tnom_0(iq)),'>'
+             write(lunout,*) 'tnom_transp(iq)=<',trim(tnom_transp(iq)),'>'
+
+          END DO !DO iq=1,nqtrue
+          CLOSE(90)  
+       ELSE  !! if traceur.def doesn't exist 
+          tnom_0(1)='H2Ov'
+          tnom_transp(1) = 'air'
+          tnom_0(2)='H2Ol'
+          tnom_transp(2) = 'air'
+          hadv(1) = 10
+          hadv(2) = 10 
+          vadv(1) = 10 
+          vadv(2) = 10 
+       ENDIF
+ 
 #ifdef INCA
        CALL init_transport( &
-            hadv, &
-            vadv, &
+            hadv_inca, &
+            vadv_inca, &
             conv_flg, &
             pbl_flg,  &
             solsym)
 #endif
-       tnom_0(1)='H2Ov'
-       tnom_transp(1) = 'air'
-       tnom_0(2)='H2Ol'
-       tnom_transp(2) = 'air'
-       IF (nqo == 3) then 
-          tnom_0(3)='H2Oi'     !! jyg
-          tnom_transp(3) = 'air'
-       endif
+
 
 !jyg<
        DO iq = nqo+1, nqtrue
+          hadv(iq) = hadv_inca(iq-nqo) 
+          vadv(iq) = vadv_inca(iq-nqo) 
           tnom_0(iq)=solsym(iq-nqo)
           tnom_transp(iq) = 'air'
        END DO
-!!       DO iq =3,nqtrue
-!!          tnom_0(iq)=solsym(iq-2)
-!!       END DO
-!!       nqo = 2
-!>jyg
 
     END IF ! (type_trac == 'inca')
