Index: /trunk/LMDZ.MARS/README
===================================================================
--- /trunk/LMDZ.MARS/README	(revision 2615)
+++ /trunk/LMDZ.MARS/README	(revision 2616)
@@ -3595,3 +3595,9 @@
 
 == 18/01/2022 == RV
-Put all the "save" variables as "!$OMP THREADPRIVATE" in aeronomars
+Put all the "save" variables as "!$OMP THREADPRIVATE" in phymars.
+The code can now be tested (comparison between restart(fi), diagfi files)
+Compile with the option : -parallel mpi_omp, add these lines in the bash: 
+export OMP_NUM_THREADS= N
+export OMP_STACKSIZE=200M
+with "N" of the order of #levels/10
+
Index: /trunk/LMDZ.MARS/libf/phymars/calldrag_noro_mod.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/calldrag_noro_mod.F	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/calldrag_noro_mod.F	(revision 2616)
@@ -108,4 +108,7 @@
 
       LOGICAL firstcall
+
+!$OMP THREADPRIVATE(firstcall)
+
       DATA firstcall/.true./
       SAVE firstcall
Index: /trunk/LMDZ.MARS/libf/phymars/callsedim_mod.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/callsedim_mod.F	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/callsedim_mod.F	(revision 2616)
@@ -102,4 +102,7 @@
 !                                    !   CCNs (m)
       real,save :: beta ! correction for the shape of the ice particles (cf. newsedim)
+      
+!$OMP THREADPRIVATE(beta)
+      
 c     for ice radius computation
       REAL Mo,No
@@ -128,4 +131,6 @@
       real,parameter :: rdimin=1.e-8 ! 1.e-7
       real,parameter :: rdimax=1.e-4
+      
+!$OMP THREADPRIVATE(rd,rdi)
 
 c       2) Second size distribution for the log-normal integration
@@ -138,4 +143,6 @@
       real sigma0
 
+!$OMP THREADPRIVATE(rr)
+      
 c       3) Other local variables used in doubleq
 
@@ -164,7 +171,16 @@
       INTEGER,SAVE :: iccnco2_meteor_mass ! index of tracer containing CCN number
       INTEGER,SAVE :: ico2_ice ! index of tracer containing CCN number
+      
+!$OMP THREADPRIVATE(idust_mass,idust_number,iccn_mass,iccn_number)
+!$OMP THREADPRIVATE(istormdust_mass,istormdust_number,itopdust_mass)
+!$OMP THREADPRIVATE(itopdust_number)
+!$OMP THREADPRIVATE(iccnco2_number,iccnco2_mass,iccnco2_h2o_number)
+!$OMP THREADPRIVATE(iccnco2_h2o_mass_ice)
+!$OMP THREADPRIVATE(iccnco2_h2o_mass_ccn,ico2_ice)
 
 
       LOGICAL,SAVE :: firstcall=.true.
+      
+!$OMP THREADPRIVATE(firstcall)
 
 
Index: /trunk/LMDZ.MARS/libf/phymars/co2cloud.F90
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/co2cloud.F90	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/co2cloud.F90	(revision 2616)
@@ -208,4 +208,9 @@
   logical, save :: &
      firstcall = .true. ! Used to compute saved variables
+     
+!$OMP THREADPRIVATE(imicroco2,sigma_iceco2,microtimestep)
+!$OMP THREADPRIVATE(dev2,Qext1bins,Qextv1mic,radv,rb_cldco2)
+!$OMP THREADPRIVATE(firstcall)     
+
 !----------------------------------------------------------------------------------------------------------------------!
 !-----3) Variables:
Index: /trunk/LMDZ.MARS/libf/phymars/co2condens_mod.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/co2condens_mod.F	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/co2condens_mod.F	(revision 2616)
@@ -4,4 +4,5 @@
 
       logical, save :: scavco2cond = .false. ! flag for using scavenging_by_co2
+!$OMP THREADPRIVATE(scavco2cond)
       
       CONTAINS
@@ -131,4 +132,5 @@
 
       real :: emisref(ngrid)
+      !$OMP THREADPRIVATE(emisref)
       
       REAL zdq_scav(ngrid,nlayer,nq) ! tendency due to scavenging by co2
@@ -156,4 +158,7 @@
 
       LOGICAL,SAVE :: firstcall = .true. !,firstcall2=.true.
+      
+!$OMP THREADPRIVATE(ico2,qco2,mmean,acond,bcond,ccond,m_co2,m_noco2)
+!$OMP THREADPRIVATE(A,B,firstcall)
 
 c D.BARDET: for debug 
@@ -166,4 +171,5 @@
       REAL masseq(nlayer),wq(nlayer+1)
       INTEGER ifils,iq2
+
 c----------------------------------------------------------------------
 
Index: /trunk/LMDZ.MARS/libf/phymars/co2snow.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/co2snow.F	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/co2snow.F	(revision 2616)
@@ -90,4 +90,7 @@
       logical, save ::
      &   firstcall = .true.
+     
+!$OMP THREADPRIVATE(Kscat,firstcall)     
+
 c=======================================================================
 c BEGIN
Index: /trunk/LMDZ.MARS/libf/phymars/comm_wrf.F90
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/comm_wrf.F90	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/comm_wrf.F90	(revision 2616)
@@ -17,4 +17,8 @@
   REAL,SAVE,ALLOCATABLE :: comm_TAU_ICE(:)
   REAL,SAVE,ALLOCATABLE :: comm_RICE(:,:)
+
+!$OMP THREADPRIVATE(comm_HR_LW,comm_HR_SW,comm_ICETOT,comm_MTOT,comm_QSURFDUST)
+!$OMP THREADPRIVATE(comm_RDUST,comm_RICE,comm_SWDOWNZ,comm_TAU_DUST,comm_TAU_ICE)
+!$OMP THREADPRIVATE(comm_VMR_ICE)
 
 contains
Index: /trunk/LMDZ.MARS/libf/phymars/compute_dtau_mod.F90
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/compute_dtau_mod.F90	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/compute_dtau_mod.F90	(revision 2616)
@@ -8,4 +8,6 @@
         REAL,SAVE,ALLOCATABLE :: dtau(:) ! Dust opacity difference (at 610Pa)
                                          ! between GCM and dust scenario
+                                         
+!$OMP THREADPRIVATE(ti_injection_sol,tf_injection_sol,dtau)
 
        CONTAINS
@@ -44,4 +46,6 @@
         
         LOGICAL, SAVE :: firstcall=.TRUE. ! signals first call to physics
+        
+!$OMP THREADPRIVATE(nb_daystep,local_time_prev,firstcall)
         
         
Index: /trunk/LMDZ.MARS/libf/phymars/comsoil_h.F90
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/comsoil_h.F90	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/comsoil_h.F90	(revision 2616)
@@ -14,5 +14,5 @@
        !                 soil_settings.F)
 
-!$OMP THREADPRIVATE(layer,mlayer,inertiedat)
+!$OMP THREADPRIVATE(layer,mlayer,inertiedat,volcapa)
 
   ! variables (FC: built in firstcall in soil.F)
Index: /trunk/LMDZ.MARS/libf/phymars/dimphy.F90
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/dimphy.F90	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/dimphy.F90	(revision 2616)
@@ -7,5 +7,5 @@
 !  INTEGER,SAVE :: kflev
 
-!$OMP THREADPRIVATE(klon)
+!$OMP THREADPRIVATE(klon,klev,klevp1,klevm1)
 
 CONTAINS
Index: /trunk/LMDZ.MARS/libf/phymars/dust_rad_adjust_mod.F90
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/dust_rad_adjust_mod.F90	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/dust_rad_adjust_mod.F90	(revision 2616)
@@ -40,4 +40,8 @@
   real :: weight ! interpolation weight
   real,save :: zday_prev_call=-666. ! stored value of zday from previous call
+  
+!$OMP THREADPRIVATE(  local_time,local_time_prevdt,zday_scenario,zday_scenario_next)
+!$OMP THREADPRIVATE(firstcall,tau_pref_scenario_next,zday_prev_call)
+
   
   ! 0. preliminary stuff
Index: /trunk/LMDZ.MARS/libf/phymars/dustlift.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/dustlift.F	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/dustlift.F	(revision 2616)
@@ -48,4 +48,6 @@
       SAVE stress_seuil
       DATA stress_seuil/0.0225/   ! stress seuil soulevement (N.m2)
+      
+!$OMP THREADPRIVATE(stress_seuil)
 
 #ifdef MESOSCALE
Index: /trunk/LMDZ.MARS/libf/phymars/eofdump_mod.F90
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/eofdump_mod.F90	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/eofdump_mod.F90	(revision 2616)
@@ -37,4 +37,6 @@
 
       LOGICAL,SAVE :: firstcall=.true.
+      
+!$OMP THREADPRIVATE(count,firstcall)
 
 !-------------------------------------------------------
@@ -95,4 +97,6 @@
       logical,save :: firstcall=.true.
       integer,save :: npgrid
+      
+!$OMP THREADPRIVATE(firstcall,npgrid)
 
 
Index: /trunk/LMDZ.MARS/libf/phymars/improvedclouds_mod.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/improvedclouds_mod.F	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/improvedclouds_mod.F	(revision 2616)
@@ -71,4 +71,6 @@
       DATA firstcall/.true./
       SAVE firstcall
+      
+!$OMP THREADPRIVATE(firstcall)
 
       REAL*8   derf ! Error function
@@ -123,8 +125,12 @@
       DOUBLE PRECISION dr_cld(nbin_cld)   ! width of each rad_cld bin (m)
       DOUBLE PRECISION vol_cld(nbin_cld)  ! particle volume for each bin (m3)
+      
+!$OMP THREADPRIVATE(rb_cld)
 
 
       REAL sigma_ice ! Variance of the ice and CCN distributions
       SAVE sigma_ice
+      
+!$OMP THREADPRIVATE(sigma_ice)
 
 
@@ -137,4 +143,6 @@
       LOGICAL test_flag    ! flag for test/debuging outputs
       SAVE    test_flag    
+      
+!$OMP THREADPRIVATE(test_flag)
 
 
Index: /trunk/LMDZ.MARS/libf/phymars/improvedco2clouds_mod.F90
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/improvedco2clouds_mod.F90	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/improvedco2clouds_mod.F90	(revision 2616)
@@ -142,4 +142,6 @@
   real, save :: &
      sigma_ice  ! Variance of the h2o ice and CCN distributions
+     
+!$OMP THREADPRIVATE(sigma_ice)
 
   double precision, save :: &
@@ -147,7 +149,12 @@
      meteor(nlev_meteor,nbin_meteor), &! Meteoritic flux read from file uMeteor
      dev3                              ! 1. / ( sqrt(2.) * sigma_ice )
+     
+!$OMP THREADPRIVATE(meteor,dev3)
 
   logical, save :: &
      firstcall = .true. ! Used to compute saved variables
+     
+!$OMP THREADPRIVATE(firstcall)
+     
 !----------------------------------------------------------------------------------------------------------------------!
 !----3) Variables:
@@ -243,4 +250,5 @@
 ! 0.1. Bonus: meteoritic component, extract data
 !----------------------------------------------------------------------------------------------------------------------!
+
     if (meteo_flux) then
       ! Check if file exists
Index: /trunk/LMDZ.MARS/libf/phymars/initracer.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/initracer.F	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/initracer.F	(revision 2616)
@@ -122,5 +122,5 @@
       igcm_ohplus=0
       igcm_elec=0
-
+      
       ! 1. find dust tracers
       count=0
Index: /trunk/LMDZ.MARS/libf/phymars/newsedim_mod.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/newsedim_mod.F	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/newsedim_mod.F	(revision 2616)
@@ -52,4 +52,6 @@
       LOGICAL,SAVE :: firstcall=.true.
 
+!$OMP THREADPRIVATE(firstcall)
+
 c    Traceurs :
 c    ~~~~~~~~ 
@@ -69,4 +71,6 @@
 c     local and saved variable
       real,save :: a,b
+
+!$OMP THREADPRIVATE(a,b)
 
 
Index: /trunk/LMDZ.MARS/libf/phymars/nirco2abs.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/nirco2abs.F	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/nirco2abs.F	(revision 2616)
@@ -81,4 +81,7 @@
       integer,save :: ico2=0 ! index of "co2" tracer
       integer,save :: io=0 ! index of "o" tracer
+      
+!$OMP THREADPRIVATE(firstcall,ico2,io)
+      
 c     p0noonlte is a pressure below which non LTE effects are significant.
 c     REAL p0nonlte
Index: /trunk/LMDZ.MARS/libf/phymars/nlte_calc.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/nlte_calc.F	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/nlte_calc.F	(revision 2616)
@@ -28,5 +28,4 @@
       subroutine MZESC110 (ig,nl_cts_real, nzy_cts_real,ierr,varerr)
 c***********************************************************************
-
       implicit none
 
@@ -354,5 +353,4 @@
 
          else
-
             call intzhunt (iaquiZ, zl(i),c1,p1,mr1,t1, con)
             do kr=1,nbox
Index: /trunk/LMDZ.MARS/libf/phymars/nuclea.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/nuclea.F	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/nuclea.F	(revision 2616)
@@ -49,4 +49,7 @@
       
       LOGICAL firstcall
+      
+!$OMP THREADPRIVATE(firstcall)
+      
       DATA firstcall/.true./
       SAVE firstcall
Index: /trunk/LMDZ.MARS/libf/phymars/orodrag_mod.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/orodrag_mod.F	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/orodrag_mod.F	(revision 2616)
@@ -86,4 +86,6 @@
       parameter(kidia=1)
       integer, save :: kfdia ! =NDLO2
+      
+!$OMP THREADPRIVATE(kfdia)
 
       include "yoegwd.h"
Index: /trunk/LMDZ.MARS/libf/phymars/physiq_mod.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/physiq_mod.F	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/physiq_mod.F	(revision 2616)
@@ -519,4 +519,7 @@
       logical,save :: check_physics_inputs=.false.
       logical,save :: check_physics_outputs=.false.
+      
+!$OMP THREADPRIVATE(check_physics_inputs,check_physics_outputs)      
+
 
 c=======================================================================
@@ -958,4 +961,5 @@
 #ifdef DUSTSTORM
 !! specific case: save the quantity of dust before adding perturbation
+
        if (firstcall) then
         pq_tmp(1:ngrid,1:nlayer,1)=pq(1:ngrid,1:nlayer,igcm_dust_mass)
@@ -985,4 +989,5 @@
      &     rstormdust,rtopdust,totstormfract,clearatm,dsords,dsotop,
      &     alpha_hmons,nohmons,clearsky,totcloudfrac)
+
            ! case of sub-grid water ice clouds: callradite for the clear case
             IF (CLFvarying) THEN
@@ -1058,8 +1063,11 @@
      &            odpref,tau_pref_gcm(igout),
      &            odpref,tau(igout,1)*odpref/zplev(igout,1)
+
+
 c          ---------------------------------------------------------
 c          Call slope parameterization for direct and scattered flux
 c          ---------------------------------------------------------
            IF(callslope) THEN
+
             print *, 'Slope scheme is on and computing...'
             DO ig=1,ngrid  
@@ -1297,5 +1305,4 @@
 
       IF(calllott)THEN
-
         CALL calldrag_noro(ngrid,nlayer,ptimestep,
      &                 zplay,zplev,pt,pu,pv,zdtgw,zdugw,zdvgw)
@@ -1315,5 +1322,4 @@
 
       IF (calldifv) THEN
-
          DO ig=1,ngrid
             zflubid(ig)=fluxrad(ig)+fluxgrd(ig)
@@ -1337,4 +1343,5 @@
      .       .and. callrichsl 
      .       .and. .not.turb_resolved) THEN
+
           DO ig=1, ngrid
              IF (zh(ig,1) .lt. tsurf(ig)) THEN
@@ -1350,4 +1357,5 @@
 
          IF (tke_heat_flux .ne. 0.) THEN
+
              zz1(:)=(pt(:,1)+pdt(:,1)*ptimestep)*(r/g)*
      &                 (-alog(zplay(:,1)/zplev(:,1)))
Index: /trunk/LMDZ.MARS/libf/phymars/rocketduststorm_mod.F90
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/rocketduststorm_mod.F90	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/rocketduststorm_mod.F90	(revision 2616)
@@ -160,4 +160,6 @@
     
       LOGICAL,SAVE :: firstcall=.true.
+      
+!$OMP THREADPRIVATE(firstcall)
 
 !     variables for the radiative transfer
Index: /trunk/LMDZ.MARS/libf/phymars/surfini.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/surfini.F	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/surfini.F	(revision 2616)
@@ -45,4 +45,6 @@
 ! For visualisation : > /u/tnalmd/bin/watercaps gcm_txt_output_file
       INTEGER,SAVE :: icelocationmode = 4
+      
+!$OMP THREADPRIVATE(icelocationmode)
        
        
@@ -64,4 +66,7 @@
       
       REAL,SAVE :: min_icevalue = 500.
+      
+!$OMP THREADPRIVATE(min_icevalue)
+      
       character(len=50) :: string = 'thermal'
       
Index: /trunk/LMDZ.MARS/libf/phymars/swrayleigh.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/swrayleigh.F	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/swrayleigh.F	(revision 2616)
@@ -52,4 +52,7 @@
      S     .248261E+00,-.302031E+00, .129662E+00/
       save cray
+      
+!$OMP THREADPRIVATE(cray)
+      
 c----------------------------------------------------------------------
 
Index: /trunk/LMDZ.MARS/libf/phymars/thermcell_main_mars.F90
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/thermcell_main_mars.F90	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/thermcell_main_mars.F90	(revision 2616)
@@ -185,4 +185,6 @@
       REAL zhc(ngrid,nlayer)
       REAL ratiom(ngrid,nlayer)
+      
+!$OMP THREADPRIVATE(A,B)
 
 ! =========================================
Index: /trunk/LMDZ.MARS/libf/phymars/topmons_mod.F90
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/topmons_mod.F90	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/topmons_mod.F90	(revision 2616)
@@ -111,4 +111,7 @@
 !--------------------------------------------------------
       LOGICAL,SAVE :: firstcall=.true.
+      
+!$OMP THREADPRIVATE(firstcall)
+      
       INTEGER l,ig,tsub,iq,ll
       REAL zq0(ngrid,nlayer,nq)     ! initial tracers
Index: /trunk/LMDZ.MARS/libf/phymars/vdif_cd.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/vdif_cd.F	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/vdif_cd.F	(revision 2616)
@@ -56,8 +56,11 @@
 
       REAL karman,nu    ! Von Karman constant and fluid kinematic viscosity
+      
       LOGICAL firstcal
       DATA karman,nu/.41,0.001/
       DATA firstcal/.true./
       SAVE karman,nu
+
+!$OMP THREADPRIVATE(karman,nu)
 
 c    Local(2):
Index: /trunk/LMDZ.MARS/libf/phymars/vdif_kc.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/vdif_kc.F	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/vdif_kc.F	(revision 2616)
@@ -210,8 +210,17 @@
       INTEGER ico2,iq
       SAVE ico2
+
+!$OMP THREADPRIVATE(ico2)
+
       REAL m_co2, m_noco2, A , B
       SAVE A, B
+
+!$OMP THREADPRIVATE(A,B)
+
       LOGICAL firstcall
       save firstcall
+
+!$OMP THREADPRIVATE(firstcall)
+
       data firstcall/.true./
       REAL zhc(ngrid,nlay)
Index: /trunk/LMDZ.MARS/libf/phymars/vdifc_mod.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/vdifc_mod.F	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/vdifc_mod.F	(revision 2616)
@@ -120,4 +120,5 @@
       LOGICAL,SAVE :: firstcall=.true.
 
+!$OMP THREADPRIVATE(firstcall)
 
 c     variable added for CO2 condensation:
@@ -127,4 +128,6 @@
       REAL,PARAMETER :: tcond1mb=136.27
       REAL,SAVE :: acond,bcond
+
+!$OMP THREADPRIVATE(acond,bcond)
       
 c     Subtimestep & implicit treatment of water vapor
@@ -175,4 +178,6 @@
       REAL,SAVE :: ccond
 
+!$OMP THREADPRIVATE(ccond)
+
 c     Theta_m formulation for mass-variation scheme :
 c     ~~~~~~~
@@ -183,4 +188,6 @@
       REAL vmr_co2(ngrid,nlay)
       REAL qco2,mmean
+
+!$OMP THREADPRIVATE(ico2,m_co2,m_noco2,A,B)
 
       REAL,INTENT(OUT) :: sensibFlux(ngrid)
Index: /trunk/LMDZ.MARS/libf/phymars/watercloud_mod.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/watercloud_mod.F	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/watercloud_mod.F	(revision 2616)
@@ -97,4 +97,6 @@
       REAL,SAVE :: microtimestep_prev=-999
       
+      !$OMP THREADPRIVATE(imicro,microtimestep)
+      !$OMP THREADPRIVATE(microtimestep_prev)
       ! tendency given by clouds (inside the micro loop)
       REAL subpdqcloud(ngrid,nlay,nq) ! cf. pdqcloud
@@ -111,4 +113,6 @@
       INTEGER iq,ig,l
       LOGICAL,SAVE :: firstcall=.true.
+      
+      !$OMP THREADPRIVATE(firstcall)
 
 ! Representation of sub-grid water ice clouds A. Pottier 2013
@@ -128,4 +132,6 @@
       REAL :: mincloud ! min cloud frac
       LOGICAL, save :: flagcloud=.true. 
+      
+      !$OMP THREADPRIVATE(flagcloud)
 
 c    ** un petit test de coherence
Index: /trunk/LMDZ.MARS/libf/phymars/writediagmicrofi.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/writediagmicrofi.F	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/writediagmicrofi.F	(revision 2616)
@@ -75,5 +75,5 @@
       real*4,save :: date
       real*4,save :: subdate=0.
-!$OMP THREADPRIVATE(date)
+!$OMP THREADPRIVATE(date,subdate)
 
       REAL phis((nbp_lon+1),nbp_lat)
Index: /trunk/LMDZ.MARS/libf/phymars/wstats_mod.F90
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/wstats_mod.F90	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/wstats_mod.F90	(revision 2616)
@@ -42,5 +42,5 @@
 character (len=50) :: namebis
 character (len=50), save :: firstvar
-!$OMP THREADPRIVATE(firstvar)
+!$OMP THREADPRIVATE(mean3d,sd3d,dx3,mean2d,sd2d,dx2,firstvar)
 integer :: ierr,varid,nbdim,nid
 integer :: meanid,sdid
@@ -59,4 +59,6 @@
 character(len=120),save :: name_def(n_name_def_max)
 logical :: getout ! to trigger an early exit if variable not in output list
+
+!$OMP THREADPRIVATE(stats_def,n_name_def,name_def)
 
 ! Added to work in parallel mode
Index: /trunk/LMDZ.MARS/libf/phymars/yamada4.F
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/yamada4.F	(revision 2615)
+++ /trunk/LMDZ.MARS/libf/phymars/yamada4.F	(revision 2616)
@@ -76,4 +76,7 @@
       LOGICAL first
       INTEGER ipas,nlev
+
+!$OMP THREADPRIVATE(first,ipas)
+
       SAVE first,ipas
 !FH/IM     DATA first,ipas/.true.,0/
@@ -94,4 +97,7 @@
       REAL ric,rifc,b1,kap
       SAVE ric,rifc,b1,kap
+
+!$OMP THREADPRIVATE(ric,rifc,b1,kap)
+
       DATA ric,rifc,b1,kap/0.195,0.191,16.6,0.4/
       REAL frif,falpha,fsm
@@ -102,4 +108,7 @@
      s  ,w2yam(ngrid,nlay),t2yam(ngrid,nlay)
       LOGICAL,SAVE :: firstcall=.true.
+
+!$OMP THREADPRIVATE(firstcall)
+
       frif(ri)=0.6588*(ri+0.1776-sqrt(ri*ri-0.3221*ri+0.03156))
       falpha(ri)=1.318*(0.2231-ri)/(0.2341-ri)
@@ -112,4 +121,7 @@
 ! MARS
       REAL,SAVE :: q2min,q2max,knmin,kmmin
+
+!$OMP THREADPRIVATE(q2min,q2max,knmin,kmmin)
+
       DATA q2min,q2max,knmin,kmmin/1.E-10,1.E+2,1.E-5,1.E-5/
       INTEGER ico2,iq
@@ -123,4 +135,6 @@
       REAL ztimestep
       INTEGER :: ndt
+
+!$OMP THREADPRIVATE(ico2,A,B)
 
       nlev=nlay+1
