Index: /LMDZ4/trunk/libf/dyn3d/create_etat0_limit.F
===================================================================
--- /LMDZ4/trunk/libf/dyn3d/create_etat0_limit.F	(revision 821)
+++ /LMDZ4/trunk/libf/dyn3d/create_etat0_limit.F	(revision 822)
@@ -28,7 +28,23 @@
 #include "paramet.h"
 #include "indicesol.h"
+#include "advtrac.h"
 cym#include "dimphy.h" 
       REAL :: masque(iip1,jjp1)
       REAL :: pctsrf(iim*(jjm-1)+2, nbsrf)
+
+c initialisation traceurs
+      hadv_flg(:) = 0.
+      vadv_flg(:) = 0.
+      conv_flg(:) = 0.
+      pbl_flg(:)  = 0. 
+      tracnam(:)  = '        ' 
+      nprath = 1
+      nbtrac = 0
+      mmt_adj(:,:,:,:) = 1
+
+#ifdef INCA
+      call init_const_lmdz(nbtrac,anneeref,dayref,iphysiq,day_step,nday)
+      print *, 'nbtrac =' , nbtrac 
+#endif
 
       CALL Init_Phys_lmdz(iim,jjp1,llm,nqmx-2,1,(jjm-1)*iim+2)
Index: /LMDZ4/trunk/libf/dyn3d/dynredem.F
===================================================================
--- /LMDZ4/trunk/libf/dyn3d/dynredem.F	(revision 821)
+++ /LMDZ4/trunk/libf/dyn3d/dynredem.F	(revision 822)
@@ -530,6 +530,7 @@
      
       REAL time
-      INTEGER nid, nvarid
-      INTEGER ierr
+      INTEGER nid, nvarid, nid_trac, nvarid_trac
+      REAL trac_tmp(ip1jmp1,llm)      
+      INTEGER ierr, ierr_file 
       INTEGER iq
       INTEGER length
@@ -622,6 +623,73 @@
 #endif
 
+#ifdef INCA
+! Ajout Anne pour lecture valeurs traceurs dans un fichier start_trac.nc
+      ierr_file = NF_OPEN ("start_trac.nc", NF_NOWRITE,nid_trac)
+      IF (ierr_file .NE.NF_NOERR) THEN
+        write(6,*)' Pb d''ouverture du fichier start_trac.nc'
+        write(6,*)' ierr = ', ierr_file 
+      ENDIF
+#endif
+
       IF(nq.GE.1) THEN
-       do iq=1,nq   
+       do iq=1,nq 
+#ifdef INCA
+! lecture de la valeur du traceur dans start_trac.nc
+         if (ierr_file .ne. 2) then 
+            ierr = NF_INQ_VARID (nid_trac, tname(iq), nvarid_trac)
+            IF (ierr .NE. NF_NOERR) THEN
+               PRINT*, tname(iq),"est absent de start_trac.nc"
+               ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
+               IF (ierr .NE. NF_NOERR) THEN
+                  PRINT*, "Variable ", tname(iq)," n est pas definie"
+                  CALL abort
+               ENDIF
+#ifdef NC_DOUBLE
+               ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,q(1,1,iq))
+#else
+               ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq))
+#endif
+
+            ELSE
+               PRINT*, tname(iq), "est present dans start_trac.nc"
+#ifdef NC_DOUBLE
+               ierr = NF_GET_VAR_DOUBLE(nid_trac, nvarid_trac, trac_tmp)
+#else
+               ierr = NF_GET_VAR_REAL(nid_trac, nvarid_trac, trac_tmp)
+#endif
+               IF (ierr .NE. NF_NOERR) THEN
+                  PRINT*, "Lecture echouee pour", tname(iq)
+                  CALL abort
+               ENDIF
+               ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
+               IF (ierr .NE. NF_NOERR) THEN
+                  PRINT*, "Variable ", tname(iq)," n est pas definie"
+                  CALL abort
+               ENDIF
+#ifdef NC_DOUBLE
+               ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,trac_tmp)
+#else
+               ierr = NF_PUT_VAR_REAL (nid,nvarid,trac_tmp)
+#endif
+
+          ENDIF
+! fin lecture du traceur
+          ELSE  ! si il n'y a pas de fichier start_trac.nc
+!             print *, 'il n y a pas de fichier start_trac'
+             ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
+             IF (ierr .NE. NF_NOERR) THEN
+                PRINT*, "Variable  tname(iq) n est pas definie"
+                CALL abort
+             ENDIF
+#ifdef NC_DOUBLE
+             ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,q(1,1,iq))
+#else
+             ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq))
+#endif
+          ENDIF
+! endif ifdef INCA
+#endif
+          
+#ifndef INCA
         ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
         IF (ierr .NE. NF_NOERR) THEN
@@ -634,4 +702,6 @@
           ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq))
 #endif
+! endif ifndef INCA
+#endif
       ENDDO
       ENDIF
