Index: LMDZ5/trunk/libf/dyn3dmem/advtrac_loc.F
===================================================================
--- LMDZ5/trunk/libf/dyn3dmem/advtrac_loc.F	(revision 1847)
+++ LMDZ5/trunk/libf/dyn3dmem/advtrac_loc.F	(revision 1848)
@@ -79,5 +79,6 @@
       DATA dum/.true./
       integer ijb,ije,ijbu,ijbv,ijeu,ijev,j
-      type(Request) :: testRequest
+      type(Request),SAVE :: testRequest
+!$OMP THREADPRIVATE(testRequest)
 
 c  test sur l'eventuelle creation de valeurs negatives de la masse
Index: LMDZ5/trunk/libf/dyn3dmem/bilan_dyn_loc.F
===================================================================
--- LMDZ5/trunk/libf/dyn3dmem/bilan_dyn_loc.F	(revision 1847)
+++ LMDZ5/trunk/libf/dyn3dmem/bilan_dyn_loc.F	(revision 1848)
@@ -157,5 +157,6 @@
       real,SAVE,ALLOCATABLE :: rlong(:),rlatg(:)
       integer :: jjb,jje,jjn,ijb,ije
-      type(Request) :: Req
+      type(Request),SAVE :: Req
+!$OMP THREADPRIVATE(Req)
 
 ! definition du domaine d'ecriture pour le rebuild
Index: LMDZ5/trunk/libf/dyn3dmem/caladvtrac_loc.F
===================================================================
--- LMDZ5/trunk/libf/dyn3dmem/caladvtrac_loc.F	(revision 1847)
+++ LMDZ5/trunk/libf/dyn3dmem/caladvtrac_loc.F	(revision 1848)
@@ -53,6 +53,6 @@
       INTEGER ::  ijb,ije,ijbu,ijbv,ijeu,ijev,j
       INTEGER :: ij,l
-      TYPE(Request) :: Request_vanleer
-
+      TYPE(Request),SAVE :: Request_vanleer
+!$OMP THREADPRIVATE(Request_vanleer)
 
            
Index: LMDZ5/trunk/libf/dyn3dmem/call_calfis_mod.F90
===================================================================
--- LMDZ5/trunk/libf/dyn3dmem/call_calfis_mod.F90	(revision 1847)
+++ LMDZ5/trunk/libf/dyn3dmem/call_calfis_mod.F90	(revision 1848)
@@ -111,5 +111,6 @@
     REAL :: jD_cur, jH_cur
     CHARACTER(LEN=15) :: ztit
-    TYPE(Request) :: Request_physic 
+    TYPE(Request),SAVE :: Request_physic
+!$OMP THREADPRIVATE(Request_physic )
     INTEGER :: ijb,ije,l,j
     
Index: LMDZ5/trunk/libf/dyn3dmem/call_dissip_mod.F90
===================================================================
--- LMDZ5/trunk/libf/dyn3dmem/call_dissip_mod.F90	(revision 1847)
+++ LMDZ5/trunk/libf/dyn3dmem/call_dissip_mod.F90	(revision 1848)
@@ -98,6 +98,6 @@
     REAL  SSUM
     LOGICAL,PARAMETER :: dissip_conservative=.TRUE.
-    TYPE(Request) :: Request_dissip 
-    
+    TYPE(Request),SAVE :: Request_dissip 
+!$OMP THREADPRIVATE(Request_dissip )    
     INTEGER :: ij,l,ijb,ije 
   
Index: LMDZ5/trunk/libf/dyn3dmem/divgrad2_loc.F
===================================================================
--- LMDZ5/trunk/libf/dyn3dmem/divgrad2_loc.F	(revision 1847)
+++ LMDZ5/trunk/libf/dyn3dmem/divgrad2_loc.F	(revision 1848)
@@ -31,5 +31,6 @@
       INTEGER  l,ij,iter,lh
 c    ...................................................................
-      Type(Request) :: request_dissip
+      Type(Request),SAVE :: request_dissip
+!$OMP THREADPRIVATE(request_dissip)
       INTEGER ijb,ije
 
Index: LMDZ5/trunk/libf/dyn3dmem/gradiv2_loc.F
===================================================================
--- LMDZ5/trunk/libf/dyn3dmem/gradiv2_loc.F	(revision 1847)
+++ LMDZ5/trunk/libf/dyn3dmem/gradiv2_loc.F	(revision 1848)
@@ -38,6 +38,6 @@
       INTEGER l,ij,iter,ld
       INTEGER :: ijb,ije,jjb,jje
-      Type(Request)  :: request_dissip
-      
+      Type(Request),SAVE  :: request_dissip
+!$OMP THREADPRIVATE(request_dissip)      
 c    ........................................................
 c
Index: LMDZ5/trunk/libf/dyn3dmem/guide_loc_mod.F90
===================================================================
--- LMDZ5/trunk/libf/dyn3dmem/guide_loc_mod.F90	(revision 1847)
+++ LMDZ5/trunk/libf/dyn3dmem/guide_loc_mod.F90	(revision 1848)
@@ -894,6 +894,6 @@
   
   INTEGER                            :: i,j,l,ij
-  TYPE(Request) :: Req  
-
+  TYPE(Request),SAVE :: Req  
+!$OMP THREADPRIVATE(Req)
     print *,'Guide: conversion variables guidage'
 ! -----------------------------------------------------------------
Index: LMDZ5/trunk/libf/dyn3dmem/leapfrog_loc.F
===================================================================
--- LMDZ5/trunk/libf/dyn3dmem/leapfrog_loc.F	(revision 1847)
+++ LMDZ5/trunk/libf/dyn3dmem/leapfrog_loc.F	(revision 1848)
@@ -449,6 +449,5 @@
       IF (ok_start_timer) THEN
         CALL InitTime
-!        ok_start_timer=.FALSE.
-        ok_start_timer=.TRUE.
+        ok_start_timer=.FALSE.
       ENDIF      
 c$OMP END MASTER      
@@ -624,8 +623,4 @@
       True_itau=True_itau+1
 
-c$OMP MASTER      
-      PRINT *,"---> itau=",itau,"  True_itau=",True_itau
-c$OMP END MASTER
-
 c$OMP MASTER
       IF (prt_level>9) THEN
@@ -1086,4 +1081,12 @@
 
       IF(iflag_phys.EQ.2) THEN ! "Newtonian" case
+c$OMP MASTER
+         if (FirstPhysic) then
+           ok_start_timer=.TRUE.
+           FirstPhysic=.false.
+         endif
+c$OMP END MASTER
+
+
 c   Calcul academique de la physique = Rappel Newtonien + fritcion 
 c   --------------------------------------------------------------
@@ -1388,5 +1391,5 @@
 c$OMP MASTER
             call allgather_timer_average
-
+      call barrier
       if (mpi_rank==0) then
         
@@ -1424,5 +1427,5 @@
         
       endif  
-      
+      CALL barrier
       print *,'Taille du Buffer MPI (REAL*8)',MaxBufferSize
       print *,'Taille du Buffer MPI utilise (REAL*8)',MaxBufferSize_Used
Index: LMDZ5/trunk/libf/dyn3dmem/nxgraro2_loc.F
===================================================================
--- LMDZ5/trunk/libf/dyn3dmem/nxgraro2_loc.F	(revision 1847)
+++ LMDZ5/trunk/libf/dyn3dmem/nxgraro2_loc.F	(revision 1848)
@@ -34,5 +34,6 @@
       REAL  signe, nugradrs
       INTEGER l,ij,iter,lr
-      Type(Request) :: Request_dissip
+      Type(Request),SAVE :: Request_dissip
+!$OMP THREADPRIVATE(Request_dissip)
 c    ........................................................
 c
Index: LMDZ5/trunk/libf/dyn3dmem/vlspltgen_loc.F
===================================================================
--- LMDZ5/trunk/libf/dyn3dmem/vlspltgen_loc.F	(revision 1847)
+++ LMDZ5/trunk/libf/dyn3dmem/vlspltgen_loc.F	(revision 1848)
@@ -67,7 +67,8 @@
       LOGICAL, SAVE :: firstcall=.TRUE.
 !$OMP THREADPRIVATE(firstcall)
-      type(request) :: MyRequest1
-      type(request) :: MyRequest2
-
+      type(request),SAVE :: MyRequest1
+!$OMP THREADPRIVATE(MyRequest1)
+      type(request),SAVE :: MyRequest2
+!$OMP THREADPRIVATE(MyRequest2)
 c    fonction psat(T)
 
Index: LMDZ5/trunk/libf/dyn3dmem/write_field_loc.F90
===================================================================
--- LMDZ5/trunk/libf/dyn3dmem/write_field_loc.F90	(revision 1847)
+++ LMDZ5/trunk/libf/dyn3dmem/write_field_loc.F90	(revision 1848)
@@ -45,5 +45,6 @@
     real, allocatable,SAVE :: New_Field(:,:,:)
     integer,dimension(0:mpi_size-1) :: jj_nb_master
-    type(Request) :: Request_write
+    type(Request),SAVE :: Request_write
+!$OMP THREADPRIVATE(Request_write)
     integer :: ll,i
     
@@ -61,5 +62,5 @@
       New_Field(:,jj_begin:jj_end,i)=reshape(Field(ij_begin:ij_end,i),(/iip1,jj_nb/))
     ENDDO
-    
+!$OMP BARRIER    
     call Register_SwapField(new_field,new_field,ip1jmp1,ll,jj_Nb_master,Request_write)
     call SendRequest(Request_write)
@@ -109,5 +110,6 @@
     real, allocatable,SAVE :: New_Field(:,:,:)
     integer,dimension(0:mpi_size-1) :: jj_nb_master
-    type(Request) :: Request_write
+    type(Request),SAVE :: Request_write
+!$OMP THREADPRIVATE(Request_write)    
     integer :: ll,i,jje,ije,jjn
     
@@ -136,5 +138,5 @@
       New_Field(:,jj_begin:jje,i)=reshape(Field(ij_begin:ije,i),(/iip1,jjn/))
     ENDDO
-    
+!$OMP BARRIER    
     call Register_SwapField(new_field,new_field,ip1jm,ll,jj_Nb_master,Request_write)
     call SendRequest(Request_write)
