Index: /LMDZ4/branches/LMDZ4-dev/arch/arch-PW6_VARGAS.path
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/arch/arch-PW6_VARGAS.path	(revision 1175)
+++ /LMDZ4/branches/LMDZ4-dev/arch/arch-PW6_VARGAS.path	(revision 1176)
@@ -5,6 +5,6 @@
 set ORCH_INCDIR=$LMDGCM/../../lib
 set ORCH_LIBDIR=$LMDGCM/../../lib
-set OASIS_INCDIR=$LMDGCM/../../prism/SX/build/lib/psmile.$couple
-set OASIS_LIBDIR=$LMDGCM/../../prism/SX/lib
+set OASIS_INCDIR=$LMDGCM/../../prism/AIX6/build/lib/psmile.$couple
+set OASIS_LIBDIR=$LMDGCM/../../prism/AIX6/lib
 set INCA_LIBDIR=$LMDGCM/../INCA3/config/lib
 set INCA_INCDIR=$LMDGCM/../INCA3/config/lib
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/advtrac.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/advtrac.F	(revision 1175)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/advtrac.F	(revision 1176)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -30,4 +30,5 @@
 #include "ener.h"
 #include "description.h"
+#include "iniprint.h"
 
 c-------------------------------------------------------------------
@@ -74,4 +75,9 @@
       DATA dum/.true./
 
+      integer,save :: countcfl=0
+      real cflx(ip1jmp1,llm)
+      real cfly(ip1jm,llm)
+      real cflz(ip1jmp1,llm)
+      real, save :: cflxmax(llm),cflymax(llm),cflzmax(llm)
 
       IF(iadvtr.EQ.0) THEN
@@ -139,4 +145,73 @@
          ENDDO
 
+
+c-------------------------------------------------------------------
+! Calcul des criteres CFL en X, Y et Z
+c-------------------------------------------------------------------
+
+      if (countcfl == 0. ) then
+          cflxmax(:)=0.
+          cflymax(:)=0.
+          cflzmax(:)=0.
+      endif
+
+      countcfl=countcfl+iapp_tracvl
+      cflx(:,:)=0.
+      cfly(:,:)=0.
+      cflz(:,:)=0.
+      do l=1,llm
+         do ij=iip2,ip1jm-1
+            if (pbarug(ij,l)>=0.) then
+                cflx(ij,l)=pbarug(ij,l)*dtvr/masse(ij,l)
+            else
+                cflx(ij,l)=-pbarug(ij,l)*dtvr/masse(ij+1,l)
+            endif 
+         enddo
+      enddo
+      do l=1,llm
+         do ij=iip2,ip1jm-1,iip1
+            cflx(ij+iip1,l)=cflx(ij,l)
+         enddo
+      enddo
+
+      do l=1,llm
+         do ij=1,ip1jm
+            if (pbarvg(ij,l)>=0.) then
+                cfly(ij,l)=pbarvg(ij,l)*dtvr/masse(ij,l)
+            else
+                cfly(ij,l)=-pbarvg(ij,l)*dtvr/masse(ij+iip1,l)
+            endif 
+         enddo
+      enddo
+
+      do l=2,llm
+         do ij=1,ip1jm
+            if (wg(ij,l)>=0.) then
+                cflz(ij,l)=wg(ij,l)*dtvr/masse(ij,l)
+            else
+                cflz(ij,l)=-wg(ij,l)*dtvr/masse(ij,l-1)
+            endif 
+         enddo
+      enddo
+
+      do l=1,llm
+         cflxmax(l)=max(cflxmax(l),maxval(cflx(:,l)))
+         cflymax(l)=max(cflymax(l),maxval(cfly(:,l)))
+         cflzmax(l)=max(cflzmax(l),maxval(cflz(:,l)))
+      enddo
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Par defaut, on sort le diagnostic des CFL tous les jours.
+! Si on veut le sortir a chaque pas d'advection en cas de plantage 
+!     if (countcfl==iapp_tracvl) then
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+      if (countcfl==day_step) then
+         do l=1,llm
+         write(lunout,*) 'L, CFLmax '
+     s   ,l,maxval(cflx(:,l)),maxval(cfly(:,l)),maxval(cflz(:,l))
+         enddo
+         countcfl=0
+      endif
+    
 c-------------------------------------------------------------------
 c   Advection proprement dite (Modification Le Croller (07/2001)
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/comconst.h
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/comconst.h	(revision 1175)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/comconst.h	(revision 1176)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 !-----------------------------------------------------------------------
@@ -7,5 +7,7 @@
       COMMON/comconst/im,jm,lllm,imp1,jmp1,lllmm1,lllmp1,lcl,           &
      & dtvr,daysec,                                                     &
-     & pi,dtphys,dtdiss,rad,r,cpp,kappa,cotot,unsim,g,omeg
+     & pi,dtphys,dtdiss,rad,r,cpp,kappa,cotot,unsim,g,omeg              &
+     &                   ,dissip_factz,dissip_deltaz,dissip_zref
+
 
       INTEGER im,jm,lllm,imp1,jmp1,lllmm1,lllmp1,lcl
@@ -13,4 +15,5 @@
       REAL pi,dtphys,dtdiss,rad,r,cpp,kappa
       REAL cotot,unsim,g,omeg
+      REAL dissip_factz,dissip_deltaz,dissip_zref
 
 !-----------------------------------------------------------------------
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/conf_gcm.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/conf_gcm.F	(revision 1175)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/conf_gcm.F	(revision 1176)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -38,4 +38,5 @@
 #include "serre.h"
 #include "comdissnew.h"
+#include "comconst.h"
 
 ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
@@ -267,4 +268,16 @@
        tetatemp  = 7200.
        CALL getin('tetatemp',tetatemp )
+
+! Parametres controlant la variation sur la verticale des constantes de
+! dissipation.
+! Pour le moment actifs uniquement dans la version a 39 niveaux
+! avec ok_strato=y
+
+       dissip_factz=4.
+       dissip_deltaz=10.
+       dissip_zref=30.
+       CALL getin('dissip_factz',dissip_factz )
+       CALL getin('dissip_deltaz',dissip_deltaz )
+       CALL getin('dissip_zref',dissip_zref )
 
 !Config  Key  = coefdis
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/inidissip.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/inidissip.F	(revision 1175)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3d/inidissip.F	(revision 1176)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE inidissip ( lstardis,nitergdiv,nitergrot,niterh  ,
@@ -18,4 +18,5 @@
 #include "comvert.h"
 #include "control.h"
+#include "logic.h"
 
       LOGICAL lstardis
@@ -29,4 +30,5 @@
       INTEGER l,ij,idum,ii
       REAL tetamin
+      REAL pseudoz
 
       REAL ran1
@@ -174,14 +176,21 @@
 c   --------------------------------------------------
 
-      DO l=1,llm
-         zvert(l)=1.
-      ENDDO
-
-      fact=2.
-c
-      DO l = 1, llm
-         zz      = 1. - preff/presnivs(l)
-         zvert(l)= fact -( fact-1.)/( 1.+zz*zz )
-      ENDDO
+      if (ok_strato .and. llm==39) then
+         do l=1,llm
+            pseudoz=8.*log(preff/presnivs(l))
+            zvert(l)=1+
+     s      (tanh((pseudoz-dissip_zref)/dissip_deltaz)+1.)/2.
+     s      *(dissip_factz-1.)
+         enddo 
+      else
+         DO l=1,llm
+            zvert(l)=1.
+         ENDDO
+         fact=2.
+         DO l = 1, llm
+            zz      = 1. - preff/presnivs(l)
+            zvert(l)= fact -( fact-1.)/( 1.+zz*zz )
+         ENDDO
+      endif
 
 
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/comconst.h
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/comconst.h	(revision 1175)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/comconst.h	(revision 1176)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 !-----------------------------------------------------------------------
@@ -7,5 +7,7 @@
       COMMON/comconst/im,jm,lllm,imp1,jmp1,lllmm1,lllmp1,lcl,           &
      & dtvr,daysec,                                                     &
-     & pi,dtphys,dtdiss,rad,r,cpp,kappa,cotot,unsim,g,omeg
+     & pi,dtphys,dtdiss,rad,r,cpp,kappa,cotot,unsim,g,omeg              &
+     &                   ,dissip_factz,dissip_deltaz,dissip_zref
+
 
       INTEGER im,jm,lllm,imp1,jmp1,lllmm1,lllmp1,lcl
@@ -13,4 +15,5 @@
       REAL pi,dtphys,dtdiss,rad,r,cpp,kappa
       REAL cotot,unsim,g,omeg
+      REAL dissip_factz,dissip_deltaz,dissip_zref
 
 !-----------------------------------------------------------------------
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/conf_gcm.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/conf_gcm.F	(revision 1175)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/conf_gcm.F	(revision 1176)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -44,4 +44,5 @@
 !#include "clesphys.h"
 #include "iniprint.h"
+#include "comconst.h"
 
 ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
@@ -277,4 +278,16 @@
        tetatemp  = 7200.
        CALL getin('tetatemp',tetatemp )
+
+! Parametres controlant la variation sur la verticale des constantes de
+! dissipation.
+! Pour le moment actifs uniquement dans la version a 39 niveaux
+! avec ok_strato=y
+
+       dissip_factz=4.
+       dissip_deltaz=10.
+       dissip_zref=30.
+       CALL getin('dissip_factz',dissip_factz )
+       CALL getin('dissip_deltaz',dissip_deltaz )
+       CALL getin('dissip_zref',dissip_zref )
 
 !Config  Key  = coefdis
@@ -590,4 +603,5 @@
       write(lunout,*)' read_start = ', read_start
       write(lunout,*)' iflag_phys = ', iflag_phys
+      write(lunout,*)' iphysiq = ', iphysiq
       write(lunout,*)' clonn = ', clonn 
       write(lunout,*)' clatt = ', clatt
@@ -776,5 +790,5 @@
 !Config  Desc = activation de la version strato
 !Config  Def  = .FALSE.
-!Config  Help = active la version stratosphï¿½rique de LMDZ de F. Lott
+!Config  Help = active la version stratosphérique de LMDZ de F. Lott
 
       ok_strato=.FALSE.
@@ -813,5 +827,6 @@
       write(lunout,*)' read_start = ', read_start
       write(lunout,*)' iflag_phys = ', iflag_phys
-      write(lunout,*)' clon = ', clon 
+      write(lunout,*)' iphysiq = ', iphysiq
+      write(lunout,*)' clon = ', clon
       write(lunout,*)' clat = ', clat
       write(lunout,*)' grossismx = ', grossismx
Index: /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/inidissip.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/inidissip.F	(revision 1175)
+++ /LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/inidissip.F	(revision 1176)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
       SUBROUTINE inidissip ( lstardis,nitergdiv,nitergrot,niterh  ,
@@ -18,4 +18,5 @@
 #include "comvert.h"
 #include "control.h"
+#include "logic.h"
 
       LOGICAL lstardis
@@ -29,4 +30,5 @@
       INTEGER l,ij,idum,ii
       REAL tetamin
+      REAL pseudoz
 
       REAL ran1
@@ -174,14 +176,21 @@
 c   --------------------------------------------------
 
-      DO l=1,llm
-         zvert(l)=1.
-      ENDDO
-
-      fact=2.
-c
-      DO l = 1, llm
-         zz      = 1. - preff/presnivs(l)
-         zvert(l)= fact -( fact-1.)/( 1.+zz*zz )
-      ENDDO
+      if (ok_strato .and. llm==39) then
+         do l=1,llm
+            pseudoz=8.*log(preff/presnivs(l))
+            zvert(l)=1+
+     s      (tanh((pseudoz-dissip_zref)/dissip_deltaz)+1.)/2.
+     s      *(dissip_factz-1.)
+         enddo 
+      else
+         DO l=1,llm
+            zvert(l)=1.
+         ENDDO
+         fact=2.
+         DO l = 1, llm
+            zz      = 1. - preff/presnivs(l)
+            zvert(l)= fact -( fact-1.)/( 1.+zz*zz )
+         ENDDO
+      endif
 
 
Index: /LMDZ4/branches/LMDZ4-dev/libf/phylmd/clesphys.h
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/phylmd/clesphys.h	(revision 1175)
+++ /LMDZ4/branches/LMDZ4-dev/libf/phylmd/clesphys.h	(revision 1176)
@@ -1,4 +1,4 @@
 !
-!
+! $Id$
 !
 !  ATTENTION!!!!: ce fichier include est compatible format fixe/format libre
Index: /LMDZ4/branches/LMDZ4-dev/libf/phylmd/conf_phys.F90
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/phylmd/conf_phys.F90	(revision 1175)
+++ /LMDZ4/branches/LMDZ4-dev/libf/phylmd/conf_phys.F90	(revision 1176)
@@ -1,5 +1,5 @@
 
 !
-! $Header$
+! $Id$
 !
 !
@@ -133,4 +133,5 @@
   REAL,SAVE :: lonmin_ins_omp, lonmax_ins_omp, latmin_ins_omp, latmax_ins_omp
   REAL,SAVE :: ecrit_hf_omp, ecrit_day_omp, ecrit_mth_omp, ecrit_reg_omp
+  REAL,SAVE :: ecrit_ins_omp
   REAL,SAVE :: ecrit_LES_omp
   REAL,SAVE :: ecrit_tra_omp
@@ -1070,4 +1071,12 @@
   ecrit_hf_omp = 1./8.
   call getin('ecrit_hf',ecrit_hf_omp)
+!
+!Config Key  = ecrit_ins
+!Config Desc =
+!Config Def  = 1./48. ! toutes les 1/2 h
+!Config Help =
+!
+  ecrit_ins_omp = 1./48.
+  call getin('ecrit_ins',ecrit_ins_omp)
 !
 !Config Key  = ecrit_day
@@ -1369,4 +1378,5 @@
     latmax_ins = latmax_ins_omp
     ecrit_hf   = ecrit_hf_omp
+    ecrit_ins   = ecrit_ins_omp
     ecrit_day = ecrit_day_omp
     ecrit_mth = ecrit_mth_omp
@@ -1518,6 +1528,6 @@
   write(numout,*)' lonmin lonmax latmin latmax bilKP_ins =',&
    lonmin_ins, lonmax_ins, latmin_ins, latmax_ins
-  write(numout,*)' ecrit_ hf, day, mth, reg, tra, ISCCP, LES',&
-   ecrit_hf, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra, ecrit_ISCCP, ecrit_LES
+  write(numout,*)' ecrit_ hf, ins, day, mth, reg, tra, ISCCP, LES',&
+   ecrit_hf, ecrit_ins, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra, ecrit_ISCCP, ecrit_LES
 
   write(numout,*) 'ok_strato = ', ok_strato
Index: /LMDZ4/branches/LMDZ4-dev/libf/phylmd/phys_output_mod.F90
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/phylmd/phys_output_mod.F90	(revision 1175)
+++ /LMDZ4/branches/LMDZ4-dev/libf/phylmd/phys_output_mod.F90	(revision 1176)
@@ -1,2 +1,5 @@
+!
+! $Id$
+!
 ! Abderrahmane 12 2007
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -19,8 +22,11 @@
    integer, dimension(nfiles), save             :: lev_files
    integer, dimension(nfiles), save             :: nid_files
-
+!$OMP THREADPRIVATE(clef_files, lev_files,nid_files)
+ 
    integer, dimension(nfiles), private, save :: nhorim, nvertm
-   real, dimension(nfiles), private, save                :: zstophym, zoutm
+   real, dimension(nfiles), private, save                :: zoutm
+   real,                    private, save                :: zdtime
    CHARACTER(len=20), dimension(nfiles), private, save   :: type_ecri
+!$OMP THREADPRIVATE(nhorim, nvertm, zoutm,zdtime,type_ecri)
 
 !   integer, save                     :: nid_hf3d 
@@ -473,4 +479,5 @@
   integer                               :: imin_ins, imax_ins
   integer                               :: jmin_ins, jmax_ins
+  CHARACTER(len=20), dimension(nfiles)  :: type_ecri_files
 
 !!!!!!!!!! stockage dans une region limitee pour chaque fichier !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -491,9 +498,9 @@
    name_files(5) = 'histLES'
 
-   type_ecri(1) = 'ave(X)'
-   type_ecri(2) = 'ave(X)'
-   type_ecri(3) = 'ave(X)'
-   type_ecri(4) = 'inst(X)'
-   type_ecri(5) = 'ave(X)'
+   type_ecri_files(1) = 'ave(X)'
+   type_ecri_files(2) = 'ave(X)'
+   type_ecri_files(3) = 'inst(X)'
+   type_ecri_files(4) = 'inst(X)'
+   type_ecri_files(5) = 'ave(X)'
 
    clef_files(1) = ok_mensuel
@@ -524,8 +531,10 @@
    call getin('phys_out_levmax',levmax)
    call getin('phys_out_filenames',name_files)
-   call getin('phys_out_filetypes',type_ecri)
+   call getin('phys_out_filetypes',type_ecri_files)
    call getin('phys_out_filekeys',clef_files)
    call getin('phys_out_filelevels',lev_files)
    call getin('phys_out_filetimesteps',ecrit_files)
+
+   type_ecri(:) = type_ecri_files(:)
 
 !!!!!!!!!!!!!!!!!!!!!!! Boucle sur les fichiers !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -534,9 +543,10 @@
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
+ zdtime = dtime         ! Frequence ou l on moyenne
+
  DO iff=1,nfiles
 
     IF (clef_files(iff)) THEN
       
-      zstophym(iff) = dtime         ! Frequence ou l on moyenne
       zoutm(iff) = ecrit_files(iff) ! Frequence ou l on ecrit
 
@@ -606,9 +616,5 @@
  CALL histdef2d(iff,o_aire%flag,o_aire%name,"Grid area", "-")
  CALL histdef2d(iff,o_contfracATM%flag,o_contfracATM%name,"% sfce ter+lic", "-")
-   type_ecri(1) = 'ave(X)'
-   type_ecri(2) = 'ave(X)'
-   type_ecri(3) = 'ave(X)'
-   type_ecri(4) = 'inst(X)'
-   type_ecri(5) = 'ave(X)'
+   type_ecri(:) = type_ecri_files(:)
 
 !!! Champs 2D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -631,9 +637,5 @@
    type_ecri(5) = 't_max(X)' 
  CALL histdef2d(iff,o_t2m_max%flag,o_t2m_max%name, "Temp 2m max", "K" )
-   type_ecri(1) = 'ave(X)'
-   type_ecri(2) = 'ave(X)'
-   type_ecri(3) = 'ave(X)'
-   type_ecri(4) = 'inst(X)'
-   type_ecri(5) = 'ave(X)'
+   type_ecri(:) = type_ecri_files(:)
  CALL histdef2d(iff,o_wind10m%flag,o_wind10m%name, "10-m wind speed", "m/s")
  CALL histdef2d(iff,o_wind10max%flag,o_wind10max%name, "10m wind speed max", "m/s")
@@ -714,9 +716,5 @@
    type_ecri(5) = 't_max(X)'
  CALL histdef2d(iff,o_tke_max_srf(nsrf)%flag,o_tke_max_srf(nsrf)%name,"Max Turb. Kinetic Energy "//clnsurf(nsrf),"-")
-   type_ecri(1) = 'ave(X)'
-   type_ecri(2) = 'ave(X)'
-   type_ecri(3) = 'ave(X)'
-   type_ecri(4) = 'inst(X)'
-   type_ecri(5) = 'ave(X)'
+   type_ecri(:) = type_ecri_files(:)
   endif
  CALL histdef2d(iff,o_albe_srf(nsrf)%flag,o_albe_srf(nsrf)%name,"Albedo surf. "//clnsurf(nsrf),"-")
@@ -764,9 +762,5 @@
    type_ecri(5) = 't_max(X)'
  CALL histdef2d(iff,o_cape_max%flag,o_cape_max%name, "CAPE max.", "J/kg")
-   type_ecri(1) = 'ave(X)'
-   type_ecri(2) = 'ave(X)'
-   type_ecri(3) = 'ave(X)'
-   type_ecri(4) = 'inst(X)'
-   type_ecri(5) = 'ave(X)'
+   type_ecri(:) = type_ecri_files(:)
  CALL histdef3d(iff,o_upwd%flag,o_upwd%name, "saturated updraft", "kg/m2/s")
  CALL histdef3d(iff,o_Ma%flag,o_Ma%name, "undilute adiab updraft", "kg/m2/s")
@@ -793,5 +787,4 @@
 !      on ecrit u v t q a 850 700 500 200 au niv 3
 
-   zstophym(iff) = ecrit_files(iff)
    type_ecri(1) = 'inst(X)'
    type_ecri(2) = 'inst(X)'
@@ -817,10 +810,5 @@
      ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR."500".OR.bb2.EQ."200")
        ENDDO
-   zstophym(iff) = dtime
-   type_ecri(1) = 'ave(X)'
-   type_ecri(2) = 'ave(X)'
-   type_ecri(3) = 'ave(X)'
-   type_ecri(4) = 'inst(X)'
-   type_ecri(5) = 'ave(X)'
+   type_ecri(:) = type_ecri_files(:)
 
  CALL histdef2d(iff,o_t_oce_sic%flag,o_t_oce_sic%name, "Temp mixte oce-sic", "K")
@@ -890,9 +878,5 @@
    type_ecri(5) = 't_max(X)'
  CALL histdef3d(iff,o_tke_max%flag,o_tke_max%name, "TKE max", "m2/s2")
-   type_ecri(1) = 'ave(X)'
-   type_ecri(2) = 'ave(X)'
-   type_ecri(3) = 'ave(X)'
-   type_ecri(4) = 'inst(X)'
-   type_ecri(5) = 'ave(X)'
+   type_ecri(:) = type_ecri_files(:)
      endif
 
@@ -904,9 +888,5 @@
    type_ecri(5) = 't_max(X)'
  CALL histdef3d(iff,o_kz_max%flag,o_kz_max%name, "Kz melange max", "m2/s" )
-   type_ecri(1) = 'ave(X)'
-   type_ecri(2) = 'ave(X)'
-   type_ecri(3) = 'ave(X)'
-   type_ecri(4) = 'inst(X)'
-   type_ecri(5) = 'ave(X)'
+   type_ecri(:) = type_ecri_files(:)
  CALL histdef3d(iff,o_clwcon%flag,o_clwcon%name, "Convective Cloud Liquid water content", "kg/kg") 
  CALL histdef3d(iff,o_dtdyn%flag,o_dtdyn%name, "Dynamics dT", "K/s")
@@ -1021,4 +1001,12 @@
        character(len=*)                 :: unitvar
 
+       real zstophym
+
+       if (type_ecri(iff)=='inst(X)') then
+         zstophym=zoutm(iff)
+       else
+         zstophym=zdtime
+       endif
+
 ! Appel a la lecture des noms et niveau d'ecriture des variables dans output.def
        call conf_physoutputs(nomvar,flag_var)
@@ -1027,5 +1015,5 @@
  call histdef (nid_files(iff),nomvar,titrevar,unitvar, &
                iim,jj_nb,nhorim(iff), 1,1,1, -99, 32, &
-               type_ecri(iff), zstophym(iff),zoutm(iff))                
+               type_ecri(iff), zstophym,zoutm(iff))                
        endif                      
       end subroutine histdef2d
@@ -1050,6 +1038,14 @@
        character(len=*)                 :: unitvar
 
+       real zstophym
+
 ! Appel a la lecture des noms et niveau d'ecriture des variables dans output.def
        call conf_physoutputs(nomvar,flag_var)
+
+       if (type_ecri(iff)=='inst(X)') then
+         zstophym=zoutm(iff)
+       else
+         zstophym=zdtime
+       endif
 
        if ( flag_var(iff)<=lev_files(iff) ) then
@@ -1057,5 +1053,5 @@
                iim, jj_nb, nhorim(iff), klev, levmin(iff), &
                levmax(iff)-levmin(iff)+1, nvertm(iff), 32, type_ecri(iff), &
-               zstophym(iff), zoutm(iff))
+               zstophym, zoutm(iff))
        endif
       end subroutine histdef3d
Index: /LMDZ4/branches/LMDZ4-dev/libf/phylmd/physiq.F
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/libf/phylmd/physiq.F	(revision 1175)
+++ /LMDZ4/branches/LMDZ4-dev/libf/phylmd/physiq.F	(revision 1176)
@@ -1,2 +1,5 @@
+!
+! $Id$
+!
 c#define IO_DEBUG
 
@@ -1420,51 +1423,7 @@
      .                   lmt_pas
 c
-cIM200505        ecrit_mth = NINT(86400./dtime *ecritphy)  ! tous les ecritphy jours
-c        IF (ok_mensuel) THEN
-c        WRITE(lunout,*)'La frequence de sortie mensuelle est de ', 
-c    .                   ecrit_mth
-c        ENDIF
-c        ecrit_day = NINT(86400./dtime *1.0)  ! tous les jours
-c        IF (ok_journe) THEN
-c        WRITE(lunout,*)'La frequence de sortie journaliere est de ',
-c    .                   ecrit_day
-c        ENDIF
-cIM 130904 BEG
-cIM 080205      ecrit_hf = 86400./dtime *0.25  ! toutes les 6h
-cIM 170305      
-c        ecrit_hf = 86400./dtime/12.  ! toutes les 2h
-cIM 230305      
-cIM200505        ecrit_hf = 86400./dtime *0.25  ! toutes les 6h
-c
-cIM200505        ecrit_hf2mth = ecrit_day/ecrit_hf*30
-c
-cIM200505        IF (ok_journe) THEN
-cIM200505        WRITE(lunout,*)'La frequence de sortie hf est de ',
-cIM200505    .                   ecrit_hf
-cIM200505        ENDIF
-cIM 130904 END
-ccc         ecrit_ins = NINT(86400./dtime *0.5)  ! 2 fois par jour
-ccc         ecrit_ins = NINT(86400./dtime *0.25)  ! 4 fois par jour
-c        ecrit_ins = NINT(86400./dtime/48.)  ! a chaque pas de temps ==> PB. dans time_counter pour 1mois
-c        ecrit_ins = NINT(86400./dtime/12.)  ! toutes les deux heures
-cIM200505        ecrit_ins = NINT(86400./dtime/8.)  ! toutes les trois heures
-cIM200505        IF (ok_instan) THEN
-cIM200505        WRITE(lunout,*)'La frequence de sortie instant. est de ', 
-cIM200505    .                   ecrit_ins
-cIM200505        ENDIF
-cIM200505        ecrit_reg = NINT(86400./dtime *0.25)  ! 4 fois par jour
-cIM200505        IF (ok_region) THEN
-cIM200505        WRITE(lunout,*)'La frequence de sortie region est de ', 
-cIM200505    .                   ecrit_reg
-cIM200505        ENDIF
-cIM 030306 BEG
-cIM ecrit_hf2mth = nombre de pas de temps de calcul de hf par mois apres lequel on ecrit
-cIM : ne pas modifier ecrit_hf2mth
-c
 cIM 250308bad guide        ecrit_hf2mth = 30*1/ecrit_hf 
          ecrit_hf2mth = ecrit_mth/ecrit_hf 
-c ecrit_ins en secondes, chaque pas de temps de la physique
-         ecrit_ins = dtime
-cIM on passe les frequences de jours en secondes : ecrit_ins, ecrit_hf, ecrit_day, ecrit_mth, ecrit_tra, ecrit_reg
+
          ecrit_hf = ecrit_hf * un_jour
 !IM
@@ -1474,4 +1433,5 @@
 !IM
          ecrit_mth = ecrit_mth * un_jour
+         ecrit_ins = ecrit_ins * un_jour
          ecrit_reg = ecrit_reg * un_jour
          ecrit_tra = ecrit_tra * un_jour
Index: /LMDZ4/branches/LMDZ4-dev/makegcm
===================================================================
--- /LMDZ4/branches/LMDZ4-dev/makegcm	(revision 1175)
+++ /LMDZ4/branches/LMDZ4-dev/makegcm	(revision 1176)
@@ -1,5 +1,5 @@
 #!/bin/csh
 #
-# $Id$
+# $Header$
 #
 #set verbose echo
@@ -24,13 +24,9 @@
 set OPTIMI=' -ftrace '
 set OPT_LINUX='-O3'
+set OPT_LINUX="-i4 -r8 -O3"
 set io=ioipsl
 
 set FC_LINUX=g95
-if ( FC_LINUX == g95 ) then
-   set OPT_LINUX="-i4 -r8 -O3"
-else
-   set OPT_LINUX="-O2 -Munroll -Mnoframe -Mautoinline -Mcache_align"
-endif
-
+#set FC_LINUX=pgf90
 
 ########################################################################
@@ -52,8 +48,8 @@
 #setenv NCDFINC /distrib/local/netcdf/pgi_32bits/include
 #setenv NCDFLIB /distrib/local/netcdf/pgi_32bits/lib/
-#setenv IOIPSLDIR /d4/fairhead/Install_LMDZ4_FH/LMDZ4preV4/modipsl/lib/
-#setenv MODIPSLDIR /d4/fairhead/Install_LMDZ4_FH/LMDZ4preV4/modipsl/lib/
-#setenv NCDFINC /d4/fairhead/Install_LMDZ4_FH/LMDZ4preV4/netcdf-3.6.1/include
-#setenv NCDFLIB /d4/fairhead/Install_LMDZ4_FH/LMDZ4preV4/netcdf-3.6.1/lib
+#setenv IOIPSLDIR /data/lfairlmd/Install/LMDZ20090409.trunk/modipsl/lib
+#setenv MODIPSLDIR /data/lfairlmd/Install/LMDZ20090409.trunk/modipsl/lib
+#setenv NCDFINC /data/lfairlmd/Install/LMDZ20090409.trunk/netcdf-3.6.1/include
+#setenv NCDFLIB /data/lfairlmd/Install/LMDZ20090409.trunk/netcdf-3.6.1/lib
 
 
@@ -259,5 +255,12 @@
 else if $LINUX then
 #################
-   if ( $FC_LINUX == pgf90 || $FC_LINUX == g95 ) then
+   if ( $FC_LINUX == "pgf90" ) then
+     set optim="-fast "
+     set optim90=" -fast "
+     set optimtru90=" -fast -c -Mfree "
+#     set optim=" "
+#     set optim90="  "
+#     set optimtru90=" -c -Mfree "
+   else if ( $FC_LINUX == 'g95' ) then 
      set optim=" $OPT_LINUX "
      set optim90=" $OPT_LINUX "
