Index: LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/etat0_netcdf.F
===================================================================
--- LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/etat0_netcdf.F	(revision 1116)
+++ LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/etat0_netcdf.F	(revision 1117)
@@ -40,5 +40,6 @@
       REAL :: vvent(iip1, jjm, llm)
       REAL :: t3d(iip1, jjp1, llm), tpot(iip1, jjp1, llm)
-      REAL :: q3d(iip1, jjp1, llm,nqtot), qsat(iip1, jjp1, llm)
+      REAL :: qsat(iip1, jjp1, llm)
+      REAL,ALLOCATABLE :: q3d(:, :, :,:)
       REAL :: tsol(klon), qsol(klon), sn(klon)
       REAL :: tsolsrf(klon,nbsrf), qsolsrf(klon,nbsrf),snsrf(klon,nbsrf) 
@@ -170,4 +171,7 @@
       !
       CALL inifilr()
+C init pour traceurs
+      call infotrac_init
+      ALLOCATE(q3d(iip1, jjp1, llm,nqtot))
 !      CALL phys_state_var_init()
       !
@@ -625,6 +629,4 @@
       phis(iip1,:) = phis(1,:)
 
-C init pour traceurs
-      call infotrac_init
 C Ecriture
       CALL inidissip( lstardis, nitergdiv, nitergrot, niterh   ,
Index: LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/infotrac.F90
===================================================================
--- LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/infotrac.F90	(revision 1116)
+++ LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/infotrac.F90	(revision 1117)
@@ -3,29 +3,29 @@
 ! nqtot : total number of tracers and higher order of moment, water vapor and liquid included
   INTEGER, SAVE :: nqtot
-!$OMP THREADPRIVATE(nqtot)   
+!!$OMP THREADPRIVATE(nqtot)   
 
 ! nbtr : number of tracers not including higher order of moment or water vapor or liquid
 !        number of tracers used in the physics
   INTEGER, SAVE :: nbtr
-!$OMP THREADPRIVATE(nbtr)   
+!!$OMP THREADPRIVATE(nbtr)   
 
 ! Name variables
   CHARACTER(len=20), ALLOCATABLE, DIMENSION(:), SAVE :: tname ! tracer short name for restart and diagnostics
   CHARACTER(len=23), ALLOCATABLE, DIMENSION(:), SAVE :: ttext ! tracer long name for diagnostics
-!$OMP THREADPRIVATE(tname,ttext)   
+!!$OMP THREADPRIVATE(tname,ttext)   
 
 ! iadv  : index of trasport schema for each tracer
   INTEGER, ALLOCATABLE, DIMENSION(:), SAVE    :: iadv
-!$OMP THREADPRIVATE(iadv)   
+!!$OMP THREADPRIVATE(iadv)   
 
 ! niadv : vector keeping the coorspondance between all tracers(nqtot) treated in the 
 !         dynamic part of the code and the tracers (nbtr+2) used in the physics part of the code. 
   INTEGER, ALLOCATABLE, DIMENSION(:), SAVE    :: niadv ! equivalent dyn / physique
-!$OMP THREADPRIVATE(niadv)   
+!!$OMP THREADPRIVATE(niadv)   
 
 ! Variables for INCA
   INTEGER, ALLOCATABLE, DIMENSION(:), SAVE  :: conv_flg
   INTEGER, ALLOCATABLE, DIMENSION(:), SAVE  :: pbl_flg
-!$OMP THREADPRIVATE(conv_flg, pbl_flg)   
+!!$OMP THREADPRIVATE(conv_flg, pbl_flg)   
 
 CONTAINS
Index: LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/vlspltgen_p.F
===================================================================
--- LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/vlspltgen_p.F	(revision 1116)
+++ LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/vlspltgen_p.F	(revision 1117)
@@ -69,5 +69,5 @@
       INTEGER ijb,ije,iq
       LOGICAL, SAVE :: firstcall=.TRUE.
-
+!$OMP THREADPRIVATE(firstcall)
       type(request) :: MyRequest1
       type(request) :: MyRequest2
@@ -88,10 +88,13 @@
 
 c Allocate variables depending on dynamic variable nqtot
+
          IF (firstcall) THEN
             firstcall=.FALSE.
+!$OMP MASTER
             ALLOCATE(zm(ip1jmp1,llm,nqtot))
             ALLOCATE(zq(ip1jmp1,llm,nqtot))
+!$OMP END MASTER
+!$OMP BARRIER
          END IF
-
 c-- Calcul de Qsat en chaque point
 c-- approximation: au milieu des couches play(l)=(p(l)+p(l+1))/2
