Index: trunk/LMDZ.MARS/libf/phymars/meso_inc/meso_inc_les.F
===================================================================
--- trunk/LMDZ.MARS/libf/phymars/meso_inc/meso_inc_les.F	(revision 340)
+++ trunk/LMDZ.MARS/libf/phymars/meso_inc/meso_inc_les.F	(revision 341)
@@ -4,8 +4,8 @@
 !! sensible heat flux in W/m2
 
-             hfx(ig) = zflubid(ig)-capcal(ig)*zdtsdif(ig)
+             sensheat(ig) = zflubid(ig)-capcal(ig)*zdtsdif(ig)
 
 !! u star in similarity theory in m/s
-             ust(ig) = 0.4
+             ustar(ig) = 0.4
      .               * sqrt( pu(ig,1)*pu(ig,1) + pv(ig,1)*pv(ig,1) )
      .               / log( 1.E+0 + zzlay(ig,1)/z0_default )
@@ -16,13 +16,13 @@
             DO ig=1,ngrid
 
-! New SL parametrization, correct formulation for hfx :
+! New SL parametrization, correct formulation for sensheat :
 
-            hfx(ig) = (pplay(ig,1)/(r*pt(ig,1)))*cpp
+            sensheat(ig) = (pplay(ig,1)/(r*pt(ig,1)))*cpp
      &        *sqrt(pu(ig,1)*pu(ig,1) + pv(ig,1)*pv(ig,1)
      &        + (1.2*wmax_th(ig))**2)
      &        *zcdh(ig)*(tsurf(ig)-zh(ig,1))
 
-! New SL parametrization, ust is more accurately computed in vdif_cd :
-            ust(ig) = sqrt(zcdv(ig)*
+! New SL parametrization, ustar is more accurately computed in vdif_cd :
+            ustar(ig) = sqrt(zcdv(ig)*
      &   (pu(ig,1)*pu(ig,1) + pv(ig,1)*pv(ig,1) + (0.7*wmax_th(ig))**2)
      &                     )
@@ -32,8 +32,8 @@
          endif  !of if callrichsl
 
-!         write (*,*) 'PHYS HFX cp zdts', hfx(100), zflubid(100), 
+!         write (*,*) 'PHYS HFX cp zdts', sensheat(100), zflubid(100), 
 !     .       capcal(100), 
 !     .       zdtsdif(100)
-!         write (*,*) 'PHYS UST', ust(100) 
+!         write (*,*) 'PHYS UST', ustar(100) 
 
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Index: trunk/LMDZ.MARS/libf/phymars/meso_inc/meso_inc_var.F
===================================================================
--- trunk/LMDZ.MARS/libf/phymars/meso_inc/meso_inc_var.F	(revision 340)
+++ trunk/LMDZ.MARS/libf/phymars/meso_inc/meso_inc_var.F	(revision 341)
@@ -10,6 +10,6 @@
       REAL output_tab2d(ngridmx,n2d)
       REAL output_tab3d(ngridmx,nlayer,n3d)
-      REAL hfx(ngridmx)    !! pour LES avec isfflx!=0
-      REAL ust(ngridmx)    !! pour LES avec isfflx!=0
+      REAL sensheat(ngridmx)    !! pour LES avec isfflx!=0
+      REAL ustar(ngridmx)    !! pour LES avec isfflx!=0
       LOGICAL flag_LES     !! pour LES avec isfflx!=0
       REAL qsurfice(ngridmx) !! pour diagnostics
Index: trunk/MESOSCALE/LMD_MM_MARS/SRC/LES/modif_mars/Registry.EM
===================================================================
--- trunk/MESOSCALE/LMD_MM_MARS/SRC/LES/modif_mars/Registry.EM	(revision 340)
+++ trunk/MESOSCALE/LMD_MM_MARS/SRC/LES/modif_mars/Registry.EM	(revision 341)
@@ -995,5 +995,5 @@
 state    real  CDA              ij      misc        1         -      r        "CDA"                   "DRAG COEFF AT LOWEST MODEL LVL"                      ""
 state    real  UST              ij      misc        1         -      r        "UST"                   "U* IN SIMILARITY THEORY"                      "m s-1"    
-state    real  USTM             ij      misc        1         -      rh       "USTM"                  "U* IN SIMILARITY THEORY WITHOUT VCONV"        "m s-1"    #SAVEMARS2 ust
+state    real  USTM             ij      misc        1         -      rh       "USTM"                  "U* IN SIMILARITY THEORY WITHOUT VCONV"        "m s-1"    #SAVEMARS2 ustar
 i1       real  HOL              ij      misc        1         -      -        "HOL"                   "PBL HEIGHT OVER MONIN-OBUKHOV LENGTH"         ""
 state    real  RMOL             ij      misc        1         -      r        "RMOL"                  "1./Monin Ob. Length"                      ""
@@ -1002,5 +1002,5 @@
 state    real  CAPG             ij      misc        1         -      r        "CAPG"                  "HEAT CAPACITY FOR SOIL"                       "J K-1 m-3"      
 state    real  THC              ij      misc        1         -      r        "THC"                   "THERMAL INERTIA"                              "Cal cm-1 K-1 s-0.5"      
-state    real  HFX              ij      misc        1         -      rh       "HFX"                   "UPWARD HEAT FLUX AT THE SURFACE"              "W m-2"     #SAVEMARS2 hfx
+state    real  HFX              ij      misc        1         -      rh       "HFX"                   "UPWARD HEAT FLUX AT THE SURFACE"              "W m-2"     #SAVEMARS2 sensheat
 state    real  QFX              ij      misc        1         -      r       "QFX"                   "UPWARD MOISTURE FLUX AT THE SURFACE"          "kg m-2 s-1"      
 state    real  LH               ij      misc        1         -      r       "LH"                    "LATENT HEAT FLUX AT THE SURFACE"              "W m-2"
Index: trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/Registry/Registry.EM
===================================================================
--- trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/Registry/Registry.EM	(revision 340)
+++ trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/Registry/Registry.EM	(revision 341)
@@ -110,5 +110,5 @@
 state  real  HFMAX_TH  ij   misc  1  -  rd   "HFMAX_TH"  "MAXIMUM TH HEAT FLUX"            "m.K/s"   #SAVEMARS2 hfmax_th
 state  real  WMAX_TH   ij   misc  1  -  rd   "WMAX_TH"   "MAXIMUM TH VERTICAL VELOCITY"    "m/s"     #SAVEMARS2 wmax_th
-state  real  Z0SET     ij   misc  1  -  rhd  "Z0SET"     "SET SURFACE ROUGHNESS"           "m"       #SAVEMARS2 z0
+state  real  Z0SET     ij   misc  1  -  rd   "Z0SET"     "SET SURFACE ROUGHNESS"           "m"       #SAVEMARS2 z0
 
 ####
@@ -946,5 +946,5 @@
 ##### LES mettre h pour les deux variables ci-dessous
 state    real  UST              ij      misc        1         -      r        "UST"                   "U* IN SIMILARITY THEORY"                      "m s-1"      
-state    real  USTM             ij      misc        1         -      rh       "USTM"                  "U* IN SIMILARITY THEORY - LES MODE"           "m s-1"     #SAVEMARS2 ust 
+state    real  USTM             ij      misc        1         -      rh       "USTM"                  "U* IN SIMILARITY THEORY - LES MODE"           "m s-1"     #SAVEMARS2 ustar 
 i1       real  HOL              ij      misc        1         -      -        "HOL"                   "PBL HEIGHT OVER MONIN-OBUKHOV LENGTH"         ""
 state    real  RMOL             ij      misc        1         -      r        "RMOL"                   "1./Monin Ob. Length"                      ""
@@ -953,5 +953,5 @@
 state    real  CAPG             ij      misc        1         -      r        "CAPG"                  "HEAT CAPACITY FOR SOIL"                       "J K-1 m-3"      
 state    real  THC              ij      misc        1         -      r        "THC"                   "THERMAL INERTIA"                              "Cal cm-1 K-1 s-0.5"      
-state    real  HFX              ij      misc        1         -      rh       "HFX"                   "UPWARD HEAT FLUX AT THE SURFACE"              "W m-2"     #SAVEMARS2 hfx
+state    real  HFX              ij      misc        1         -      rh       "HFX"                   "UPWARD HEAT FLUX AT THE SURFACE"              "W m-2"     #SAVEMARS2 sensheat
 state    real  QFX              ij      misc        1         -      r        "QFX"                   "UPWARD MOISTURE FLUX AT THE SURFACE"          "kg m-2 s-1"      
 state    real  LH               ij      misc        1         -      r        "LH"                    "LATENT HEAT FLUX AT THE SURFACE"              "W m-2"
Index: trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/mars_lmd/libf/phymars/physiq.F
===================================================================
--- trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/mars_lmd/libf/phymars/physiq.F	(revision 340)
+++ trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/mars_lmd/libf/phymars/physiq.F	(revision 341)
@@ -178,6 +178,6 @@
       REAL sl_ra, sl_di0
       REAL sky
-      REAL hfx(ngridmx)    !! pour LES avec isfflx!=0
-      REAL ust(ngridmx)    !! pour LES avec isfflx!=0
+      REAL sensheat(ngridmx)    !! pour LES avec isfflx!=0
+      REAL ustar(ngridmx)    !! pour LES avec isfflx!=0
       LOGICAL flag_LES     !! pour LES avec isfflx!=0
       REAL qsurflast(ngridmx) !! pour diagnostics
@@ -925,7 +925,7 @@
          DO ig=1,ngrid
           !! sensible heat flux in W/m2
-          hfx(ig) = zflubid(ig)-capcal(ig)*zdtsdif(ig)
+          sensheat(ig) = zflubid(ig)-capcal(ig)*zdtsdif(ig)
           !! u star in similarity theory in m/s
-          ust(ig) = 0.4
+          ustar(ig) = 0.4
      .               * sqrt( pu(ig,1)*pu(ig,1) + pv(ig,1)*pv(ig,1) )
      .               / log( 1.E+0 + zzlay(ig,1)/z0 )
@@ -944,11 +944,4 @@
          write (*,*) '************************************************'
 
-!         DO ig=1,ngrid
-!          !! sensible heat flux in W/m2
-!          hfx(ig) = zflubid(ig)-capcal(ig)*zdtsdif(ig)
-!          !! u star in similarity theory in m/s
-!          ust(ig) = 0.4
-!     .               * sqrt( pu(ig,1)*pu(ig,1) + pv(ig,1)*pv(ig,1) )
-!     .               / log( 1.E+0 + zzlay(ig,1)/z0 )
 !
           DO l=1,nlayer
@@ -966,6 +959,4 @@
          !write (*,*) 'GRD ',fluxgrd(igout)
          !write (*,*) 'dTs/dt ',capcal(igout)*zdtsurf(igout)
-         !write (*,*) 'HFX ', hfx(igout)
-         !write (*,*) 'UST ', ust(igout)
       ENDIF
 !!! LES LES        
Index: trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/mars_lmd/libf/phymars/readtesassim.F90.modif
===================================================================
--- trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/mars_lmd/libf/phymars/readtesassim.F90.modif	(revision 341)
+++ trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/mars_lmd/libf/phymars/readtesassim.F90.modif	(revision 341)
@@ -0,0 +1,288 @@
+subroutine readtesassim(ngrid,nlayer,zday,pplev,tauref)
+
+! Reading of the dust assimilation file
+
+implicit none
+
+include "dimensions.h"
+include "dimphys.h"
+include "comgeomfi.h"
+include "netcdf.inc"
+include "datafile.h"
+
+integer, intent(in) :: ngrid,nlayer
+real, intent(in) :: zday ! date in martian days
+real, dimension(ngrid,nlayer+1), intent(in) :: pplev
+real, dimension(ngrid), intent(out) :: tauref
+
+! Local variables
+
+real :: realday
+integer nid,nvarid,ierr
+integer ltloop,lsloop,iloop,jloop,varloop,ig
+real, dimension(2) :: taubuf
+real tau1(4),tau
+real alt(4)
+integer latp(4),lonp(4)
+integer yinf,ysup,xinf,xsup,tinf,tsup
+real latinf,latsup,loninf,lonsup
+real latintmp,lonintmp,latdeg,londeg
+real colat,dlat,dlon,colattmp
+logical, save :: firstcall=.true.
+logical :: timeflag
+real radeg,pi
+integer :: timedim,londim,latdim
+!real, dimension(:), allocatable, save :: lat,lon,time
+!real, dimension(:,:,:), allocatable, save :: tautes
+!integer, save :: timelen,lonlen,latlen
+real, dimension(:), allocatable :: lat,lon,time
+real, dimension(:,:,:), allocatable :: tautes
+integer :: timelen,lonlen,latlen
+INTEGER, external:: lnblnk
+
+pi=acos(-1.)
+radeg=180/pi
+realday=mod(zday,669.)
+
+if (firstcall) then
+   !firstcall=.false.
+
+   ! Note: datafile() is defined in "datafile.h"
+   ierr=NF_OPEN (datafile(1:lnblnk(datafile))//"/dust_tes.nc",NF_NOWRITE,nid)
+   IF (ierr.NE.NF_NOERR) THEN
+     write(*,*)'Problem opening dust.nc (in phymars/readtesassim.F90)'
+     write(*,*)'It should be in :',datafile(1:lnblnk(datafile)),'/'
+     write(*,*)'1) You can change this directory address in '
+     write(*,*)'   file phymars/datafile.h'
+     write(*,*)'2) If necessary, dust.nc (and other datafiles)'
+     write(*,*)'   can be obtained online on:'
+     write(*,*)'   http://www.lmd.jussieu.fr/~forget/datagcm/datafile'
+     CALL ABORT
+   ENDIF
+
+   ierr=NF_INQ_DIMID(nid,"Time",timedim)
+   ierr=NF_INQ_DIMLEN(nid,timedim,timelen)
+   ierr=NF_INQ_DIMID(nid,"latitude",latdim)
+   ierr=NF_INQ_DIMLEN(nid,latdim,latlen)
+   ierr=NF_INQ_DIMID(nid,"longitude",londim)
+   ierr=NF_INQ_DIMLEN(nid,londim,lonlen)
+
+
+   allocate(tautes(lonlen,latlen,timelen))
+   allocate(lat(latlen), lon(lonlen), time(timelen))
+
+   ierr = NF_INQ_VARID (nid, "dustop",nvarid)
+#ifdef NC_DOUBLE
+   ierr = NF_GET_VAR_DOUBLE(nid, nvarid, tautes)
+#else
+   ierr = NF_GET_VAR_REAL(nid, nvarid, tautes)
+#endif
+   IF (ierr .NE. NF_NOERR) THEN
+      PRINT*, "Error: Readtesassim <dustop> not found"
+      stop
+   ENDIF
+   ierr = NF_INQ_VARID (nid, "Time",nvarid)
+#ifdef NC_DOUBLE
+   ierr = NF_GET_VAR_DOUBLE(nid, nvarid, time)
+#else
+   ierr = NF_GET_VAR_REAL(nid, nvarid, time)
+#endif
+   IF (ierr .NE. NF_NOERR) THEN
+      PRINT*, "Error: Readtesassim <Time> not found"
+      stop
+   ENDIF
+
+   ierr = NF_INQ_VARID (nid, "latitude",nvarid)
+#ifdef NC_DOUBLE
+   ierr = NF_GET_VAR_DOUBLE(nid, nvarid, lat)
+#else
+   ierr = NF_GET_VAR_REAL(nid, nvarid, lat)
+#endif
+   IF (ierr .NE. NF_NOERR) THEN
+      PRINT*, "Error: Readtesassim <latitude> not found"
+      stop
+   ENDIF
+
+   ierr = NF_INQ_VARID (nid, "longitude",nvarid)
+#ifdef NC_DOUBLE
+   ierr = NF_GET_VAR_DOUBLE(nid, nvarid, lon)
+#else
+   ierr = NF_GET_VAR_REAL(nid, nvarid, lon)
+#endif
+   IF (ierr .NE. NF_NOERR) THEN
+      PRINT*, "Error: Readtesassim <longitude> not found"
+      stop
+   ENDIF
+
+   ierr=NF_CLOSE(nid)
+
+endif ! of if (firstcall)
+
+do ig=1,ngrid
+
+! Find the four nearest points, arranged as follows:
+!                               1 2
+!                               3 4
+
+   latdeg=lati(ig)*radeg  ! latitude, in degrees
+   londeg=long(ig)*radeg  ! longitude, in degrees east
+   colat=90-latdeg        ! colatitude, in degrees
+
+! Ehouarn: rounding effects and/or specific compiler issues
+!          sometime cause londeg to be sligthly below -180 ...
+  if (londeg.lt.-180) then
+    ! check if it is by a large amount
+    if ((londeg+180).lt.-1.e-3) then
+      write(*,*) 'reattesassim: error!!'
+      write(*,*) ' ig=',ig,' londeg=',londeg
+      stop
+    else
+      londeg=-180
+    endif
+  endif
+
+ ! Find encompassing latitudes
+   if (colat<(90-lat(1))) then ! between north pole and lat(1)
+      ysup=1
+      yinf=1
+   else if (colat>=90-(lat(latlen))) then ! between south pole and lat(laten)
+      ysup=latlen
+      yinf=latlen
+   else ! general case
+      do iloop=2,latlen
+         if(colat<(90-lat(iloop))) then
+           ysup=iloop-1
+           yinf=iloop
+           exit
+         endif
+      enddo
+   endif
+
+   latinf=lat(yinf)
+   latsup=lat(ysup)
+
+
+ ! Find encompassing longitudes
+   ! Note: in input file, lon(1)=-180.
+   if (londeg>lon(lonlen)) then
+      xsup=1
+      xinf=lonlen
+      loninf=lon(xsup)
+      lonsup=180.0 ! since lon(1)=-180.0
+   else
+      do iloop=2,lonlen
+         if(londeg<lon(iloop)) then
+              xsup=iloop
+              xinf=iloop-1
+              exit
+         endif
+      enddo
+      loninf=lon(xinf)
+      lonsup=lon(xsup)
+   endif
+
+   if ((xsup.gt.lonlen).OR.(yinf.gt.latlen).OR.(xinf.lt.1)&
+     .OR.(ysup.lt.1)) then
+      write (*,*) "Readtesassim: SYSTEM ERROR on x or y in ts_gcm"
+      write (*,*) "xinf: ",xinf
+      write (*,*) "xsup: ",xsup
+      write (*,*) "yinf: ",yinf
+      write (*,*) "ysup: ",ysup
+      stop
+   endif
+
+!   loninf=lon(xinf)
+!   lonsup=lon(xsup)
+!   latinf=lat(yinf)
+!   latsup=lat(ysup)
+
+! The four neighbouring points are arranged as follows:
+!                               1 2
+!                               3 4
+
+   latp(1)=ysup
+   latp(2)=ysup
+   latp(3)=yinf
+   latp(4)=yinf
+
+   lonp(1)=xinf
+   lonp(2)=xsup
+   lonp(3)=xinf
+   lonp(4)=xsup
+
+! Linear interpolation on time, for all four neighbouring points
+
+   if ((realday<time(1)).or.(realday>time(timelen))) then
+      tinf=timelen
+      tsup=1
+      timeflag=.true.
+   else 
+      timeflag=.false.
+      do iloop=2,timelen
+         if (realday<time(iloop)) then
+            tinf=iloop-1
+            tsup=iloop
+            exit
+         endif
+      enddo
+   endif
+
+! Bilinear interpolation on the four nearest points
+
+   if ((colat<(90-lat(1))).OR.(colat>(90-lat(latlen))).OR.(latsup==latinf)) then
+      dlat=0
+   else
+      dlat=((90-latinf)-colat)/((90-latinf)-(90-latsup))
+   endif
+
+   if (lonsup==loninf) then
+      dlon=0
+   else
+      dlon=(londeg-loninf)/(lonsup-loninf)
+   endif
+
+   do iloop=1,4
+      taubuf(1)=tautes(lonp(iloop),latp(iloop),tinf)
+      taubuf(2)=tautes(lonp(iloop),latp(iloop),tsup)
+      if (timeflag) then
+         if (realday>time(timelen)) then
+            tau1(iloop)=taubuf(1)+(taubuf(2)-taubuf(1))*(realday-time(tinf))/(time(tsup)+(669-time(tinf))) 
+         else
+            tau1(iloop)=taubuf(1)+(taubuf(2)-taubuf(1))*realday/(time(tsup)+(669-time(tinf)))
+         endif
+      else
+         tau1(iloop)=taubuf(1)+(taubuf(2)-taubuf(1))*(realday-time(tinf))/(time(tsup)-time(tinf))
+      endif
+      if (tau1(iloop)<0) then
+          write (*,*) "Readtesassim: SYSTEM ERROR on tau"
+          write (*,*) "utime ",realday
+          write (*,*) "time(tinf) ",time(tinf)
+          write (*,*) "time(tsup) ",time(tsup)
+          write (*,*) "tau1 ",taubuf(1)
+          write (*,*) "tau2 ",taubuf(2)
+          write (*,*) "tau ",tau1(iloop)
+          stop
+      endif
+   enddo
+
+   if ((dlat>1).OR.(dlon>1) .OR. (dlat<0) .OR. (dlon<0)) then
+      write (*,*) "Readtesassim: SYSTEM ERROR on dlat or dlon in ts_gcm"
+      write (*,*) "dlat: ",dlat
+      write (*,*) "lat: ",latdeg
+      write (*,*) "dlon: ",dlon
+      write (*,*) "lon: ",londeg
+      stop
+   endif
+
+   tau= dlat*(dlon*(tau1(2)+tau1(3)-tau1(1)-tau1(4))+tau1(1)-tau1(3)) +dlon*(tau1(4)-tau1(3))+tau1(3)
+
+!   tauref(ig)=tau*700/pplev(ig,1)*0.8
+    tauref(ig)=tau*0.825
+enddo
+
+   deallocate(tautes)
+   deallocate(lat)
+   deallocate(lon)
+   deallocate(time)
+
+end
Index: trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/mars_lmd/makegcm_mpi
===================================================================
--- trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/mars_lmd/makegcm_mpi	(revision 340)
+++ trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/mars_lmd/makegcm_mpi	(revision 341)
@@ -177,9 +177,11 @@
 ##   set opt_link=" -Mfree -L/usr/local/pgi/linux86/lib -lpgf90 -lpgftnrtl -lpghpf -lpghpf2 -L$NCDFLIB -lnetcdf -Wl,-Bstatic"
 #   set opt_link=" -Mlarge_arrays -mcmodel=medium -Mfree -L/usr/local/pgi/linux86/lib -lpgf90 -lpgftnrtl -lpghpf -lpghpf2 -L$NCDFLIB -lnetcdf"
-   set optim90=" -O2 -I. -Munroll -Mcache_align" 
-   set optimtru90=" -O2 -I. -Munroll -Mcache_align" 
+   set optim90="-O2 -I. -Munroll -Mcache_align" # -Mbounds" 
+   set optimtru90="-O2 -I. -Munroll -Mcache_align" # -Mbounds" 
+   #set optim90=""#-Mvect=noaltcode -Msmartalloc -Mprefetch=distance:8 -Mfprelaxed" #-fast -I."
+   #set optimtru90=""#-Mvect=noaltcode -Msmartalloc -Mprefetch=distance:8 -Mfprelaxed"#-fast -I."
    #set optim90="-O3 -I. -tp=nehalem-64 -fastsse -Mscalarsse -Mvect=sse -Mipa=fast"
    #set optimtru90="-O3 -I. -tp=nehalem-64 -fastsse -Mscalarsse -Mvect=sse -Mipa=fast"
-   set opt_link=" -L$NCDFLIB -lnetcdf -Bstatic"
+   set opt_link=" -L$NCDFLIB -lnetcdf" # -Bstatic"
    set mod_loc_dir=""
    set mod_suffix=mod
@@ -362,5 +364,5 @@
            set optim90="$optim90"" -G1 "
         else if $LINUX then
-           set optim90="-g -Mbounds "
+           set optim90="-g -Mbounds -Ktrap=fp"
 #           set optim90="-mcmodel=medium"
         else 
Index: trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F
===================================================================
--- trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F	(revision 340)
+++ trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F	(revision 341)
@@ -412,6 +412,6 @@
 ENDIF 
 
-!!!! for 'subgrid' temporal diagnostics
-test2 = MODULO(elaps,history_interval*100.)
+!!!!! for 'subgrid' temporal diagnostics
+!test2 = MODULO(elaps,history_interval*100.)
 
 !!!******!!
@@ -478,24 +478,24 @@
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-IF (test2.EQ.0) THEN
-  print *, 'compute stats'
-  print *, 'RESET'
-   uave  = uave*0.
-     vave  = vave*0.
-     tave  = tave*0.
-     wave  = wave*0.
-   ustd  = ustd*0.
-     vstd  = vstd*0.
-     tstd  = tstd*0.
-     wstd  = wstd*0.
-ENDIF
-  uave = uave + u  * dt / (float(history_interval)*100.)
-  vave = vave + v  * dt / (float(history_interval)*100.)
-  tave = tave + th * dt / (float(history_interval)*100.)
-  wave = wave + w  * dt / (float(history_interval)*100.)
-  ustd = ustd + u  * u  * dt / (float(history_interval)*100.)
-  vstd = vstd + v  * v  * dt / (float(history_interval)*100.)
-  tstd = tstd + th * th * dt / (float(history_interval)*100.)
-  wstd = wstd + w  * w  * dt / (float(history_interval)*100.)
+!IF (test2.EQ.0) THEN
+!  print *, 'compute stats'
+!  print *, 'RESET'
+!   uave  = uave*0.
+!     vave  = vave*0.
+!     tave  = tave*0.
+!     wave  = wave*0.
+!   ustd  = ustd*0.
+!     vstd  = vstd*0.
+!     tstd  = tstd*0.
+!     wstd  = wstd*0.
+!ENDIF
+!  uave = uave + u  * dt / (float(history_interval)*100.)
+!  vave = vave + v  * dt / (float(history_interval)*100.)
+!  tave = tave + th * dt / (float(history_interval)*100.)
+!  wave = wave + w  * dt / (float(history_interval)*100.)
+!  ustd = ustd + u  * u  * dt / (float(history_interval)*100.)
+!  vstd = vstd + v  * v  * dt / (float(history_interval)*100.)
+!  tstd = tstd + th * th * dt / (float(history_interval)*100.)
+!  wstd = wstd + w  * w  * dt / (float(history_interval)*100.)
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Index: trunk/MESOSCALE/LMD_MM_MARS/makemeso
===================================================================
--- trunk/MESOSCALE/LMD_MM_MARS/makemeso	(revision 340)
+++ trunk/MESOSCALE/LMD_MM_MARS/makemeso	(revision 341)
@@ -264,4 +264,8 @@
         cp ../../SRC/WRFV2/Registry/Registry.EM Registry/
       fi
+      if [[ "${config}" == "les" ]]
+      then
+        cp ../../SRC/LES/WRFV2/Registry/Registry.EM Registry/
+      fi
       ### ensure the model will be recompiled from scratch with correct registry
       cd Registry ; mv Registry Registry.bak ; Registry.bash ; cd ..
@@ -452,6 +456,7 @@
                        sed s+"-L../mars_lmd/libo -llmd"+"-L../mars_lmd/libo -llmd $NETCDF/lib/libnetcdf.a"+g configure.wrf > yeah ; mv -f yeah configure.wrf
                        sed s+"mpif90"+"${WHERE_MPI}/mpif90"+g configure.wrf | sed s+"mpicc"+"${WHERE_MPI}/mpicc"+g | sed s+"mpicc"+"mpicc -DMPI2_SUPPORT"+g > yeah
+                       #sed s+"mpif90"+"${WHERE_MPI}/mpif90"+g configure.wrf | sed s+"mpicc"+"${WHERE_MPI}/mpicc"+g | sed s+"mpicc"+"mpicc -DMPI2_SUPPORT -w -O3"+g > yeah
                                 #| sed s+"fastsse"+"fast"+g > yeah
-                       #mv -f yeah configure.wrf #;;
+                       mv -f yeah configure.wrf ;;
                        #    #sed s+"-fastsse"+"-O2 -Munroll -Mcache_align"+g configure.wrf > yeah 
                        #    ##sed s+"-fastsse"+"-O2 -fpic"+g configure.wrf > yeah ## marche pas, ILM problem
@@ -459,5 +464,8 @@
                        #sed s+"-fastsse"+"-O3 -tp=nehalem-64 -fastsse -Mscalarsse -Mvect=sse -Mipa=fast"+g configure.wrf > yeah
                        #sed s+"-fastsse"+"-O2 -Munroll -Mcache_align"+g configure.wrf > yeah
-                       mv -f yeah configure.wrf ;; 
+                       #sed s+"-fastsse"+""+g configure.wrf > yeah
+                       #sed s+"-fastsse"+"-fast"+g configure.wrf > yeah
+                       #sed s+"-fastsse"+"-Mvect=noaltcode -Msmartalloc -Mprefetch=distance:8 -Mfprelaxed"+g configure.wrf > yeah
+                       #mv -f yeah configure.wrf ;; 
                      # MPICH, 64 bits, OK with periodic BC but no positive definite
      mpi_64_test)      cd arch ; ln -sf ../configure.defaults.fix64nest configure.defaults ; cd ..
@@ -523,5 +531,6 @@
   then
     echo 'DEBUG DEBUG DEBUG DEBUG'
-    sed s+"#-g"+"-g"+g configure.wrf > yeah
+    sed s+"#-g"+"-g -Ktrap=fp -Mbounds"+g configure.wrf > yeah
+    #sed s+"#-g"+"-g"+g configure.wrf > yeah
     mv -f yeah configure.wrf
   fi
Index: trunk/MESOSCALE_DEV/MPI/install_gfortran_old
===================================================================
--- trunk/MESOSCALE_DEV/MPI/install_gfortran_old	(revision 341)
+++ trunk/MESOSCALE_DEV/MPI/install_gfortran_old	(revision 341)
@@ -0,0 +1,6 @@
+#! /bin/bash
+
+make clean
+export F90=gfortran
+./configure --prefix=$PWD  --with-device=ch3:nemesis
+make
Index: trunk/MESOSCALE_DEV/MPI/install_pgfortran
===================================================================
--- trunk/MESOSCALE_DEV/MPI/install_pgfortran	(revision 341)
+++ trunk/MESOSCALE_DEV/MPI/install_pgfortran	(revision 341)
@@ -0,0 +1,28 @@
+#! /bin/bash
+
+name=pgfortran_mpich2-1.3.1_nofast_nemesis
+
+###########################
+
+wget http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/1.3.1/mpich2-1.3.1.tar.gz
+tar xzvf mpich2-1.3.1.tar.gz
+\rm mpich2-1.3.1.tar.gz
+
+export CC=pgcc 
+export FC=pgfortran 
+export F77=pgfortran 
+export CXX=pgcpp 
+export CFLAGS= #-fast 
+export FCFLAGS= #-fast 
+export FFLAGS= #-fast 
+export CXXFLAGS= #-fast 
+
+ici=$PWD/$name
+cd mpich2-1.3.1
+./configure --prefix=$ici --with-device=ch3:nemesis
+make
+make install
+cd ..
+\rm -rf mpich2-1.3.1
+
+
Index: trunk/MESOSCALE_DEV/MPI/notes.mpi
===================================================================
--- trunk/MESOSCALE_DEV/MPI/notes.mpi	(revision 341)
+++ trunk/MESOSCALE_DEV/MPI/notes.mpi	(revision 341)
@@ -0,0 +1,79 @@
+
+pour le debug
+pour le 1
+mpirun -machinefile ./machinefile -np 4 wrf.exe < /dev/null &
+et utiliser le script
+pour le 2
+pgdbg -mpi:/donnees/aslmd/MPI/mpich2-1.3.1_normal/bin/mpirun -np 4 wrf.exe
+
+
+mpich2-1.3.1 avec pgf 2011
+---------------------------
+la source est la
+http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/1.3.1/mpich2-1.3.1.tar.gz
+la methode est expliquee la
+http://www.pgroup.com/resources/mpich/mpich2_131_pgi2011.htm
+
+semble fonctionner
+attention mpd n'existe plus, il faut preciser -hosts sur mpirun [plus pratique finalement ?]
+OK mpirun direct et ca marche sur une machine
+
+il faudrait compiler
+- avec fastsse
+- avec --with-device=ch3:nemesis comme avant
+
+ou alors
+--disable-fast --enable-g=dbg
+
+
+
+mpich2-1.4.1p1 avec pgf 2011
+----------------------------
+http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/1.4.1p1/mpich2-1.4.1p1.tar.gz
+./configure --prefix=$PWD  --with-device=ch3:nemesis
+make 
+
+OK mais pas mpd mpboot etc... !!!
+
+
+mpich2-1.2.1p1
+-------------------------
+
+http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/1.2.1p1/mpich2-1.2.1p1.tar.gz
+
+./configure --prefix=$PWD  --with-device=ch3:nemesis
+--> OK avec pgf90 v7
+
+test avec gfortran
+voir script install_gfortran
+parait avoir compile...
+--------------
+pb rencontre
+--------------
+You have another version of autoconf.  It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically `autoreconf'.
+configure.in:1: error: Autoconf version 2.63 or higher is required
+configure.in:1: the top level
+autom4te: /usr/bin/m4 failed with exit status: 63
+WARNING: `autoconf' is probably too old.  You should only need it if
+         you modified `configure.in'.  You might want to install the
+         `Autoconf' and `GNU m4' packages.  Grab them from any GNU
+         archive site.
+
+
+mpich2-1.0.8
+------------
+
+http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/1.0.8/mpich2-1.0.8.tar.gz
+
+./configure --prefix=$PWD  --with-device=ch3:nemesis
+make
+
+PS: no make install, possible problems with Python version
+better to define a WHERE_MPI environment variable
+
+
+TEST TEST TEST TEST
+--enable-sharedlibs=gcc
+./configure --prefix=$PWD --enable-sharedlibs=gcc --with-device=ch3:nemesis --enable-fast
Index: trunk/MESOSCALE_DEV/NETCDF/pgfortran_64
===================================================================
--- trunk/MESOSCALE_DEV/NETCDF/pgfortran_64	(revision 341)
+++ trunk/MESOSCALE_DEV/NETCDF/pgfortran_64	(revision 341)
@@ -0,0 +1,59 @@
+#! /bin/bash
+
+ze_netcdf=netcdf-4.0.1
+#ze_netcdf=netcdf-3.6.1
+
+wget ftp://ftp.unidata.ucar.edu/pub/netcdf/$ze_netcdf.tar.gz
+tar xzvf $ze_netcdf.tar.gz
+\rm $ze_netcdf.tar.gz
+
+######### SIMPLE
+#export CC=pgcc
+#export CXX=pgcpp
+#export FC=pgfortran
+#export F90=pgfortran
+#export LD=pgfortran
+#export CPPFLAGS="-DpgiFortran"
+
+######## WITH OPTIONS
+#export CPPFLAGS="-DNDEBUG -DpgiFortran"
+#export CC=pgcc
+#export CFLAGS="-O2 -Msignextend -Mipa -Munroll -Mcache_align"
+#export CXX=pgCC
+#export CXXFLAGS="-O2 -Msignextend -Mipa -Munroll -Mcache_align"
+#export FC=pgf90
+#export FFLAGS="-O2 -Mipa -Munroll -Mcache_align"
+
+######## TEST NETCDF 3
+#export CPPFLAGS="-DNDEBUG -DpgiFortran"
+#export CC=pgcc
+#export CXX=pgCC
+#export FC=pgf90
+#export F90=pgf90
+#export CFLAGS="-O2 -Msignextend -fpic -Mlarge_arrays"
+#export CXXFLAGS="-fpic -Mlarge_arrays"
+#export FFLAGS="-O2 -w  -fpic -Mlarge_arrays"
+#export F90FLAGS="-O2 -w -fpic -Mlarge_arrays"
+
+############# AVEC -fast
+export CPPFLAGS="-DNDEBUG -DpgiFortran"
+export CC=pgcc
+export CFLAGS="-fast"
+export CXX=pgCC
+export CXXFLAGS="-fast"
+export FC=pgf90
+export FFLAGS="-fast"
+
+
+cd $ze_netcdf
+PREFIX=$PWD
+if [[ "$ze_netcdf" == "netcdf-3.6.1" ]]
+then
+      cd src
+fi
+
+./configure --prefix=${PREFIX} --disable-cxx
+make
+make test
+make install
+
Index: trunk/MESOSCALE_DEV/NETCDF/pgfortran_64_note.txt
===================================================================
--- trunk/MESOSCALE_DEV/NETCDF/pgfortran_64_note.txt	(revision 341)
+++ trunk/MESOSCALE_DEV/NETCDF/pgfortran_64_note.txt	(revision 341)
@@ -0,0 +1,13 @@
+Linux, Portland Group version 6 compilers
+
+For netCDF version 3.6.1, Jason Elsom reports that he needed to use -mcmodel=medium flags when compiling a netCDF client program with pgf90 for a 64-bit target platform using version 6 PGI compilers, in order to access more than 2 GB of memory. In addition, he compiled the netCDF library with -fpic -Mlarge_arrays "to avoid an inconsistent addressing problem". Here are the specific environment variables he used to build the netCDF libraries:
+
+CC		= pgcc
+CXX		= pgCC
+FC		= pgf90
+F90		= pgf90
+CFLAGS		= -O2 -Msignextend -fpic -Mlarge_arrays
+CXXFLAGS	= -fpic -Mlarge_arrays
+FFLAGS		= -O2 -w  -fpic -Mlarge_arrays
+F90FLAGS	= -O2 -w -fpic -Mlarge_arrays
+
Index: trunk/MESOSCALE_DEV/NOTES.txt
===================================================================
--- trunk/MESOSCALE_DEV/NOTES.txt	(revision 340)
+++ trunk/MESOSCALE_DEV/NOTES.txt	(revision 341)
@@ -10,4 +10,98 @@
   .... avec fastsse partout (mm MPI), crash ds la sortie 2
   .... option de base SVN avec mpich sans fast, marche pas non plus crashe entre 9 et 10
+  .... iradia=1 ne change rien, toujours le probleme
+  .... la simulation tourne lorsqu'on fait callrad = F
+  .... test avec Mbounds ne renvoie aucuune erreur
+  .... test avec juste -Ktrap=fp et rien d'autre renvoie aucune erreur
+  .... semble OK avec iaervar=1, probleme dans meso_dustopacity ??? ou avec la lecture NETCDF ???
+  .... crashe direct avec WHERE_MPI=/donnees/aslmd/MPI/mpich2-1.3.1_normal/bin
+  .... alors que ca passe nickel avec iaervar=1
+  .... crashe direct avec mes librairies netcdf3.6.1 compilees avec le dernier pgf2011
+  .... ne crashe pas direct avec mes librairies netcdf4.0.1 compilees avec le
+         dernier pgf2011 et les options utilisees dans le modele ajoutees aux options
+         dans la librairie compilee dans /distrib/local
+       mais crashe entre la sortie 9 et 10 comme les autres !!!!
+  .... marche bien aussi avec iaervar=3... probleme de lecture netcdf ???
+  .... experience: on a iaervar=4 mais juste apres readtesassim
+       on regle tauref a 0.3 et ca passe. donc ce n est pas un bug structurel.
+       les valeurs lues ne sont probablement les bonnes soit par probleme
+       dans le fichier soit par probleme structurel dans readtesassim
+  .... pourtant en affichant les valeurs on ne voit pas de pb particulier !
+  .... en changeant le nom hfx en sensheat et en enlevant z0 qui pose un pb
+       avec l'ancienne physique, ca ne marche toujours pas.
+  .... crash: semble stocker les variables qui sortent de la physique OK
+       mais le reste, par exemple tsurf, est NaN c'est bizarre
+  .... avec ndomainsz=ngridmx le modele va plus loin et crashe le second jour
+       a la sortie 2
+  .... mm comportement sur ulrich que sur penn
+  .... avec mcmodel crashe tout de suite
+  .... idem en invalidant les options d optimisation dans WRF et LMD phys [non en fait il faut enlever dans MPI]
+  .... test avec netcdf3: marche pas. mais ne faut-il pas enlever toutes les options?
+  .... avec aucune option d'optimisation et netcdf3: Nan avant la sortie 2
+  .... avec aucune option d'optimisation et netcdf4: va plus loin mais NaN entre 9 et 10
+  .... options d'optimisation en -O3 toujours le mm probleme
+  .... toujours le mm probleme mm avec ulimit -s unlimited
+
+  .... test qui donne des sortie 2 des NaN en recompilant avec -fast partout
+       avec mpirun -np 1, aucun souci tout va bien
+       avec mpirun -np 8, souci egalement des la sortie 2
+       ... visiblement un souci avec readtesassim ???
+       .... MAIS NON CAR SOUCI AUSSI AVEC iaervar=1 avec 8 procs
+       .... ALORS QUE PAS DE SOUCI AVEC iaervar=1 avec 4 procs
+export NETCDF=/donnees/aslmd/MODELES/MESOSCALE_DEV/NETCDF/pgfortran_64_netcdf-4.0.1_fast
+export WHERE_MPI=/donnees/aslmd/MPI/pgfortran_mpich2-1.3.1/bin
+  .... corrections readtesassim ne semblent rien changer...
+  .... sorties frequentes permettent de voir que le probleme est localisee
+       mais rempli tres vite le domaine
+       avec dt=40s probleme apparait au bout de 700s
+       avec dt=10s probleme apparait au bout de 300s
+       avec dt=100s problemen apparait au bout de 1200s
+       ... visiblement le probleme apparait aux jointures des domaines ?
+       ... probleme sur le vitesse verticale calculee ???
+       ... visiblement non puisque mm comportement avec non_hydrostatic ou W est normal
+       ... apparemment il s'agit vraiment d'une instabilite numerique
+       ... mettre les tendances R..BLEN a 0 ne change rien...
+       ... changer dimradmars n'arrange pas en fait lorsquon met des sorties frequentes
+       ... bizarre un des 4 processes wrf.exe passe en D quelques fois ????
+... ne marche pas avec les options de compilation de WRF3 !!!
+     (mais domain met moins de temps a compiler)
+... toujours le mm probleme en acces local disque
+
+TEST AVEC DEBUG
+  .... s'arrete au beau milieu d integrations sans sortir de message d'erreur
+TEST AVEC LES POUR VOIR SI PB CORRIGE AVEC WRF3
+  .... rsl_lite ne compile pas avec l'option -fast
+  .... OK avec nofast_nemesis version compilee de mpich2
+TEST avec le vieux mpich2... CRASH aussi entre la sortie 9 et 10
+
+memes erreurs avec RSL_LITE de WRF3
+alors qu il compile sans souci chez LES
+.... un probleme d'options de compilations ????
+.... pendre direct la librairie compilee chez WRF3 ???
+LES: run OK
+juste des NaN a la toute fin...
+
+peut etre faut il regler dans WRFV2 les warnings relies a la compilation de rsl_lite
+------- il y a probablement des choses a corriger
+------- coupler avec gcc [-CC=gcc] comme dans LES ????
+.... mais lorsqu on utilise le vieux mpi compile avec pgf7 pas de warnings !
+
+
+...le debugger voir une floating exception sur lwtt dans la boucle avec kdlon
+...avec les options debug le modele semble aller loin OK --> a verifier??
+...les warnins a la compilation ont ils de l importance ?
+...le fait que netcdf4 ne soit pas supporte ???
+...longue compil sur module_domain....
+
+...des pistes ici
+http://www.mmm.ucar.edu/wrf/users/wrfv3/known-prob-3.0.1.html
+
+fonctionne avec le vieux mpi dans pgf2011 [et netcdf4]
+mais les jobs ne sont pas a 100% sur les procs
+probleme donc... c est tres lent
+
+test basique avec WRFV2.2.1 et le cas em_quarter_ss et mpipgf
+memes resultats avec un proc ou plusieurs
+pas de crash
 
 
