Index: LMDZ4/trunk/libf/phylmd/phytrac.F
===================================================================
--- LMDZ4/trunk/libf/phylmd/phytrac.F	(revision 1067)
+++ LMDZ4/trunk/libf/phylmd/phytrac.F	(revision 1146)
@@ -8,5 +8,4 @@
      I                    debutphy,
      I                    lafin,
-     I                    nqmax,
      I                    nlon,
      I                    nlev,
@@ -67,4 +66,5 @@
       USE ioipsl
       USE dimphy
+      USE infotrac
       USE mod_grid_phy_lmdz
       USE mod_phys_lmdz_para
@@ -80,6 +80,4 @@
 cAA Remarques en vrac:
 cAA--------------------
-cAA 1/ le call phytrac se fait avec nqmax-2 donc nous avons bien 
-cAA les vrais traceurs (nbtr) dans phytrac (pas la vapeur ni eau liquide)
 cAA 2/ Le choix du radon et du pb se fait juste avec un data 
 cAA    (peu propre). Peut-etre pourrait-on prevoir dans l'avenir 
@@ -93,5 +91,4 @@
 #include "paramet.h"
 #include "control.h"
-#include "advtrac.h"
 #include "thermcell.h"
 c======================================================================
@@ -107,5 +104,4 @@
       integer nlon  ! nombre de points horizontaux
       integer nlev  ! nombre de couches verticales
-      integer nqmax ! nombre de traceurs auxquels on applique la physique
       integer nstep  ! appel physique
       integer julien !jour julien
@@ -140,5 +136,5 @@
 
       REAL flxmass_w(klon,klev)
-      CHARACTER(len=8) :: solsym(nqmax)
+      CHARACTER(len=8) :: solsym(nbtr)
       integer la
       REAL              ::    tau_inca(klon,klev,9,2)
@@ -209,5 +205,5 @@
 cAA Pour l'instant seuls les cas du rn et du pb ont ete envisages.
 
-      REAL source(klon,nqmax)       ! a voir lorsque le flux est prescrit 
+      REAL source(klon,nbtr)       ! a voir lorsque le flux est prescrit 
 cAA 
 cAA Pour la source de radon et son reservoir de sol
@@ -216,5 +212,4 @@
       REAL,save,allocatable :: trs(:,:)    ! Conc. radon ds le sol
 c$OMP THREADPRIVATE(trs)
-cym      SAVE trs
       REAL :: trs_tmp(klon_glo)
       
@@ -223,20 +218,14 @@
 c                           (1 = reservoir) ou (possible => 1 )
 c$OMP THREADPRIVATE(masktr)
-cym      SAVE masktr
       REAL,save,allocatable :: fshtr(:,:)  ! Flux surfacique dans le reservoir de sol
 c$OMP THREADPRIVATE(fshtr)
-cym      SAVE fshtr
       REAL,save,allocatable :: hsoltr(:)      ! Epaisseur equivalente du reservoir de sol
 c$OMP THREADPRIVATE(hsoltr)
-cym      SAVE hsoltr
       REAL,save,allocatable :: tautr(:)       ! Constante de decroissance radioactive
 c$OMP THREADPRIVATE(tautr)
-cym      SAVE tautr
       REAL,save,allocatable :: vdeptr(:)      ! Vitesse de depot sec dans la couche Brownienne
 c$OMP THREADPRIVATE(vdeptr)
-cym      SAVE vdeptr
       REAL,save,allocatable :: scavtr(:)      ! Coefficient de lessivage
 c$OMP THREADPRIVATE(scavtr)
-cym      SAVE scavtr
 cAA
       CHARACTER*2 itn
@@ -270,5 +259,4 @@
       logical,save,allocatable :: radio(:)    ! radio(it)=true => decroisssance radioactive
 c$OMP THREADPRIVATE(aerosol,clsol,radio)  
-cym      save aerosol,clsol,radio
 C
 c======================================================================
@@ -360,11 +348,4 @@
           print*,'dans phytrac ',pdtphys,ecrit_tra
 
-         if(nbtr.lt.nqmax) then
-c           print*,'NQMAX=',nqmax
-c           print*,'NBTR=',nbtr
-           abort_message='See above'
-           call abort_gcm(modname,abort_message,1)
-         endif
-
          inirnpb=rnpb
          PRINT*, 'La frequence de sortie traceurs est  ', ecrit_tra
@@ -406,5 +387,5 @@
 c Initialisation de la nature des traceurs
 c
-         DO it = 1, nqmax
+         DO it = 1, nbtr
             aerosol(it) = .FALSE.  ! Tous les traceurs sont des gaz par defaut
             radio(it) = .FALSE.    ! Par defaut pas de passage par radiornpb
@@ -533,5 +514,5 @@
 c======================================================================
 c     print*,'Avant convection'
-       do it=1,nqmax
+       do it=1,nbtr
           WRITE(itn,'(i2)') it
 c        call diagtracphy(tr_seri(:,:,it),paprs,'Avant conv'//itn)
@@ -541,7 +522,9 @@
 
 c      print*,'Pas de temps dans phytrac : ',pdtphys
-      DO it=1, nqmax
-
-      IF ( config_inca/='none' .AND. conv_flg(it) == 0 ) CYCLE
+      DO it=1, nbtr
+
+      IF ( config_inca/='none') THEN 
+         IF ( conv_flg(it) == 0 ) CYCLE
+      END IF
 
       if (iflag_con.lt.2) then
@@ -574,5 +557,5 @@
       endif ! convection
 c        print*,'Apres convection'
-c      do it=1,nqmax
+c      do it=1,nbtr
 c         WRITE(itn,'(i1)') it
 c        call diagtracphy(tr_seri(:,:,it),paprs,'Avant conv'//itn)
@@ -591,5 +574,5 @@
 
 c      print*,'masse dans ph ',zmasse
-      do it=1,nqmax
+      do it=1,nbtr
          do k=1,klev
             do i=1,klon
@@ -604,5 +587,5 @@
 c        print*,'calcul de leffet des thermiques'
         nsplit=10
-        DO it=1, nqmax
+        DO it=1, nbtr
 c        WRITE(itn,'(i1)') it
 c        CALL minmaxqfi(tr_seri(1,1,it),1.e10,-1.e33,'conv it='//itn)
@@ -642,5 +625,5 @@
 c======================================================================
 c	print *,'Avant couchelimite'
-c      do it=1,nqmax
+c      do it=1,nbtr
 c         WRITE(itn,'(i1)') it
 c        call diagtracphy(tr_seri(:,:,it),paprs,'Avant CL  '//itn)
@@ -656,7 +639,9 @@
 
 C maf modif pour tenir compte du cas rnpb + traceur
-      DO it=1, nqmax
-
-      IF ( config_inca/='none' .AND. pbl_flg(it) == 0 ) CYCLE
+      DO it=1, nbtr
+
+         IF ( config_inca/='none' ) THEN
+            IF( pbl_flg(it) == 0 ) CYCLE
+         END IF
 
 c     print *,'it',it,clsol(it)
@@ -686,12 +671,12 @@
 C         CALL minmaxqfi(tr_seri(1,1,it),0.,1.e33,'cltracrn it='//itn)
       else ! couche limite avec flux prescrit
-#ifndef INCA
-
+
+         IF (config_inca == 'none') THEN
 Cmaf provisoire source / traceur a creer
-        DO i=1, klon
-          source(i,it) = 0.0 ! pas de source, pour l'instant
-        ENDDO
-C
-#endif
+            DO i=1, klon
+               source(i,it) = 0.0 ! pas de source, pour l'instant
+            ENDDO
+         END IF
+
           CALL cltrac(pdtphys, coefh,t_seri,
      s               tr_seri(1,1,it), source(:,it),
@@ -711,5 +696,5 @@
 
 c      print*,'Apres couchelimite'
-c      do it=1,nqmax
+c      do it=1,nbtr
 c         WRITE(itn,'(i1)') it
 c        call diagtracphy(tr_seri(:,:,it),paprs,'Avant CL  '//itn)
@@ -726,5 +711,5 @@
         call radiornpb (tr_seri,pdtphys,tautr,d_tr_dec)
 C
-        DO it=1,nqmax
+        DO it=1,nbtr
             if(radio(it)) then
             DO k = 1, nlev
@@ -755,5 +740,5 @@
 c tendance des aerosols nuclees et impactes 
 c
-       DO it = 1, nqmax
+       DO it = 1, nbtr
          IF (aerosol(it)) THEN
            DO k = 1, nlev
@@ -774,5 +759,5 @@
 c      call dump2d(iim,jjm-1,frac_nucl(2:klon-1,10),'FRACNUCL')
 c      call dump2d(iim,jjm-1,tr_seri(2:klon-1,10,3),'TRACEUR3')
-       DO it = 1, nqmax
+       DO it = 1, nbtr
 c         print*,'IT=',it,aerosol(it)
          IF (aerosol(it)) THEN
@@ -790,5 +775,5 @@
 c Flux lessivage total 
 c
-      DO it = 1, nqmax
+      DO it = 1, nbtr
            DO k = 1, nlev
             DO i = 1, klon
