Index: LMDZ4/trunk/libf/dyn3d/bilan_dyn.F
===================================================================
--- LMDZ4/trunk/libf/dyn3d/bilan_dyn.F	(revision 533)
+++ LMDZ4/trunk/libf/dyn3d/bilan_dyn.F	(revision 541)
@@ -2,7 +2,4 @@
 ! $Header$
 !
-c
-c $Header$
-c
       SUBROUTINE bilan_dyn (ntrac,dt_app,dt_cum,
      s  ps,masse,pk,flux_u,flux_v,teta,phi,ucov,vcov,trac)
Index: LMDZ4/trunk/libf/dyn3d/conf_gcm.F
===================================================================
--- LMDZ4/trunk/libf/dyn3d/conf_gcm.F	(revision 533)
+++ LMDZ4/trunk/libf/dyn3d/conf_gcm.F	(revision 541)
@@ -574,4 +574,12 @@
       ENDIF
 c
+!Config  Key  = offline
+!Config  Desc = Nouvelle eau liquide
+!Config  Def  = n
+!Config  Help = Permet de mettre en route la
+!Config         nouvelle parametrisation de l'eau liquide !
+       offline = .FALSE.
+       CALL getin('offline',offline)
+
 
       write(lunout,*)' #########################################'
@@ -615,4 +623,5 @@
       write(lunout,*)' tauxx = ', tauxx
       write(lunout,*)' tauyy = ', tauyy
+      write(lunout,*)' offline = ', offline
 
       RETURN
@@ -720,4 +729,13 @@
        CALL getin('ysinus',ysinus)
 c
+!Config  Key  = offline
+!Config  Desc = Nouvelle eau liquide
+!Config  Def  = n
+!Config  Help = Permet de mettre en route la
+!Config         nouvelle parametrisation de l'eau liquide !
+       offline = .FALSE.
+       CALL getin('offline',offline)
+      write(lunout,*)' offline = ', offline
+
 
       write(lunout,*)' #########################################'
@@ -761,4 +779,5 @@
       write(lunout,*)' taux = ', taux
       write(lunout,*)' tauy = ', tauy
+      write(lunout,*)' offline = ', offline
 c
       RETURN
Index: LMDZ4/trunk/libf/dyn3d/control.h
===================================================================
--- LMDZ4/trunk/libf/dyn3d/control.h	(revision 533)
+++ LMDZ4/trunk/libf/dyn3d/control.h	(revision 541)
@@ -6,11 +6,12 @@
 
       COMMON/control/nday,day_step,
-     $              iperiod,iapp_tracvl,iconser,iecri,idissip,iphysiq ,
-     $              periodav,ecritphy,iecrimoy,dayref,anneeref,
-     $              raz_date
+     .              iperiod,iapp_tracvl,iconser,iecri,idissip,iphysiq ,
+     .              periodav,ecritphy,iecrimoy,dayref,anneeref,
+     .              raz_date,offline
 
       INTEGER   nday,day_step,iperiod,iapp_tracvl,iconser,iecri,
-     $          idissip,iphysiq,iecrimoy,dayref,anneeref, raz_date
+     .          idissip,iphysiq,iecrimoy,dayref,anneeref, raz_date
       REAL periodav, ecritphy
+      logical offline
 
 c-----------------------------------------------------------------------
Index: LMDZ4/trunk/libf/dyn3d/dynetat0.F
===================================================================
--- LMDZ4/trunk/libf/dyn3d/dynetat0.F	(revision 533)
+++ LMDZ4/trunk/libf/dyn3d/dynetat0.F	(revision 541)
@@ -106,8 +106,8 @@
       IF ( tab_cntrl(24).EQ.1. )  THEN
         fxyhypb  = . TRUE .
-        dzoomx   = tab_cntrl(25)
-        dzoomy   = tab_cntrl(26)
-        taux     = tab_cntrl(28)
-        tauy     = tab_cntrl(29)
+c        dzoomx   = tab_cntrl(25)
+c        dzoomy   = tab_cntrl(26)
+c        taux     = tab_cntrl(28)
+c        tauy     = tab_cntrl(29)
       ELSE
         fxyhypb = . FALSE .
Index: LMDZ4/trunk/libf/dyn3d/dynredem.F
===================================================================
--- LMDZ4/trunk/libf/dyn3d/dynredem.F	(revision 533)
+++ LMDZ4/trunk/libf/dyn3d/dynredem.F	(revision 541)
@@ -394,4 +394,5 @@
 #include "comgeom.h"
 #include "advtrac.h"
+#include "temps.h"
 
       INTEGER nq, l
@@ -406,4 +407,7 @@
       INTEGER ierr
       INTEGER iq
+      INTEGER length
+      PARAMETER (length = 100)
+      REAL tab_cntrl(length) ! tableau des parametres du run
       character*20 modname
       character*80 abort_message
@@ -435,4 +439,25 @@
 #endif
       PRINT*, "Enregistrement pour ", nb, time
+
+c
+c  Re-ecriture du tableau de controle, itaufin n'est plus defini quand
+c  on passe dans dynredem0
+      ierr = NF_INQ_VARID (nid, "controle", nvarid)
+      IF (ierr .NE. NF_NOERR) THEN
+         abort_message="dynredem1: Le champ <controle> est absent"
+         ierr = 1
+         CALL abort_gcm(modname,abort_message,ierr)
+      ENDIF
+#ifdef NC_DOUBLE
+      ierr = NF_GET_VAR_DOUBLE(nid, nvarid, tab_cntrl)
+#else
+      ierr = NF_GET_VAR_REAL(nid, nvarid, tab_cntrl)
+#endif
+       tab_cntrl(31) = FLOAT(itau_dyn + itaufin)
+#ifdef NC_DOUBLE
+      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tab_cntrl)
+#else
+      ierr = NF_PUT_VAR_REAL (nid,nvarid,tab_cntrl)
+#endif
 
 c  Ecriture des champs
Index: LMDZ4/trunk/libf/dyn3d/fluxstokenc.F
===================================================================
--- LMDZ4/trunk/libf/dyn3d/fluxstokenc.F	(revision 541)
+++ LMDZ4/trunk/libf/dyn3d/fluxstokenc.F	(revision 541)
@@ -0,0 +1,155 @@
+      SUBROUTINE fluxstokenc(pbaru,pbarv,masse,teta,phi,phis,
+     . time_step,itau )
+
+       USE IOIPSL
+c
+c     Auteur :  F. Hourdin
+c
+c
+ccc   ..   Modif. P. Le Van  ( 20/12/97 )  ...
+c
+      IMPLICIT NONE
+c
+#include "dimensions.h"
+#include "paramet.h"
+#include "comconst.h"
+#include "comvert.h"
+#include "comgeom.h"
+#include "tracstoke.h"
+#include "temps.h"
+
+      REAL time_step,t_wrt, t_ops
+      REAL pbaru(ip1jmp1,llm),pbarv(ip1jm,llm)
+      REAL masse(ip1jmp1,llm),teta(ip1jmp1,llm),phi(ip1jmp1,llm)
+      REAL phis(ip1jmp1)
+
+      REAL pbaruc(ip1jmp1,llm),pbarvc(ip1jm,llm)
+      REAL massem(ip1jmp1,llm),tetac(ip1jmp1,llm),phic(ip1jmp1,llm)
+
+      REAL pbarug(ip1jmp1,llm),pbarvg(iip1,jjm,llm),wg(ip1jmp1,llm)
+
+      REAL pbarvst(iip1,jjp1,llm),zistdyn
+	real dtcum
+
+      INTEGER iadvtr,ndex(1) 
+      integer nscal
+      real tst(1),ist(1),istp(1)
+      INTEGER ij,l,irec,i,j,itau
+      INTEGER fluxid, fluxvid,fluxdid
+ 
+      SAVE iadvtr, massem,pbaruc,pbarvc,irec
+      SAVE phic,tetac
+      logical first
+      save first
+      data first/.true./
+      DATA iadvtr/0/
+
+      if(first) then
+
+	CALL initfluxsto( 'fluxstoke',
+     .  time_step,istdyn* time_step,istdyn* time_step,
+     . nqmx, fluxid,fluxvid,fluxdid) 
+	
+	ndex(1) = 0
+        call histwrite(fluxid, 'phis', 1, phis, iip1*jjp1, ndex)
+        call histwrite(fluxid, 'aire', 1, aire, iip1*jjp1, ndex)
+	
+	ndex(1) = 0
+        nscal = 1
+        tst(1) = time_step
+        call histwrite(fluxdid, 'dtvr', 1, tst, nscal, ndex)
+        ist(1)=istdyn
+        call histwrite(fluxdid, 'istdyn', 1, ist, nscal, ndex)
+        istp(1)= istphy
+        call histwrite(fluxdid, 'istphy', 1, istp, nscal, ndex)
+	
+	first = .false.
+
+      endif
+
+
+      IF(iadvtr.EQ.0) THEN
+         CALL initial0(ijp1llm,phic)
+         CALL initial0(ijp1llm,tetac)
+         CALL initial0(ijp1llm,pbaruc)
+         CALL initial0(ijmllm,pbarvc)
+      ENDIF
+
+c   accumulation des flux de masse horizontaux
+      DO l=1,llm
+         DO ij = 1,ip1jmp1
+            pbaruc(ij,l) = pbaruc(ij,l) + pbaru(ij,l)
+            tetac(ij,l) = tetac(ij,l) + teta(ij,l)
+            phic(ij,l) = phic(ij,l) + phi(ij,l)
+         ENDDO
+         DO ij = 1,ip1jm
+            pbarvc(ij,l) = pbarvc(ij,l) + pbarv(ij,l)
+         ENDDO
+      ENDDO
+
+c   selection de la masse instantannee des mailles avant le transport.
+      IF(iadvtr.EQ.0) THEN
+         CALL SCOPY(ip1jmp1*llm,masse,1,massem,1)
+      ENDIF
+
+      iadvtr   = iadvtr+1
+
+
+c   Test pour savoir si on advecte a ce pas de temps
+      IF ( iadvtr.EQ.istdyn ) THEN
+c    normalisation
+      DO l=1,llm
+         DO ij = 1,ip1jmp1
+            pbaruc(ij,l) = pbaruc(ij,l)/float(istdyn)
+            tetac(ij,l) = tetac(ij,l)/float(istdyn)
+            phic(ij,l) = phic(ij,l)/float(istdyn)
+         ENDDO
+         DO ij = 1,ip1jm
+            pbarvc(ij,l) = pbarvc(ij,l)/float(istdyn)
+         ENDDO
+      ENDDO
+
+c   traitement des flux de masse avant advection.
+c     1. calcul de w
+c     2. groupement des mailles pres du pole.
+
+        CALL groupe( massem, pbaruc,pbarvc, pbarug,pbarvg,wg )
+
+        do l=1,llm
+           do j=1,jjm
+              do i=1,iip1
+                 pbarvst(i,j,l)=pbarvg(i,j,l)
+              enddo
+           enddo
+           do i=1,iip1
+              pbarvst(i,jjp1,l)=0.
+           enddo
+        enddo
+
+         iadvtr=0
+	Print*,'ITAU auqel on stoke les fluxmasses',itau
+	
+	call histwrite(fluxid, 'masse', itau, massem,
+     .               iip1*jjp1*llm, ndex)
+	
+	call histwrite(fluxid, 'pbaru', itau, pbarug,
+     .               iip1*jjp1*llm, ndex)
+	
+	call histwrite(fluxvid, 'pbarv', itau, pbarvg,
+     .               iip1*jjm*llm, ndex)
+	
+        call histwrite(fluxid, 'w' ,itau, wg, 
+     .             iip1*jjp1*llm, ndex) 
+	
+	call histwrite(fluxid, 'teta' ,itau, tetac, 
+     .             iip1*jjp1*llm, ndex) 
+	
+	call histwrite(fluxid, 'phi' ,itau, phic, 
+     .             iip1*jjp1*llm, ndex) 
+	
+C
+
+      ENDIF ! if iadvtr.EQ.istdyn
+
+      RETURN
+      END
Index: LMDZ4/trunk/libf/dyn3d/gcm.F
===================================================================
--- LMDZ4/trunk/libf/dyn3d/gcm.F	(revision 533)
+++ LMDZ4/trunk/libf/dyn3d/gcm.F	(revision 541)
@@ -56,6 +56,5 @@
 #include "com_io_dyn.h"
 #include "iniprint.h"
-
-c#include "tracstoke.h"
+#include "tracstoke.h"
 
 
@@ -118,7 +117,4 @@
 c-jld 
 
-
-      LOGICAL offline  ! Controle du stockage ds "fluxmass"
-      PARAMETER (offline=.false.)
 
       character*80 dynhist_file, dynhistave_file
@@ -368,4 +364,11 @@
 #endif
 
+c  Choix des frequences de stokage pour le offline
+c      istdyn=day_step/4     ! stockage toutes les 6h=1jour/4
+c      istdyn=day_step/12     ! stockage toutes les 2h=1jour/12
+      istdyn=day_step/4     ! stockage toutes les 6h=1jour/12
+      istphy=istdyn/iphysiq     
+
+
 c
 c-----------------------------------------------------------------------
Index: LMDZ4/trunk/libf/dyn3d/leapfrog.F
===================================================================
--- LMDZ4/trunk/libf/dyn3d/leapfrog.F	(revision 533)
+++ LMDZ4/trunk/libf/dyn3d/leapfrog.F	(revision 541)
@@ -149,7 +149,4 @@
 c-jld 
 
-      LOGICAL offline  ! Controle du stockage ds "fluxmass"
-      PARAMETER (offline=.false.)
-
       character*80 dynhist_file, dynhistave_file
       character*20 modname
@@ -199,6 +196,8 @@
 
 #ifdef CPP_IOIPSL
-      if (ok_guide) then
+      if (ok_guide.and.(itaufin-itau-1)*dtvr.gt.21600) then
         call guide(itau,ucov,vcov,teta,q,masse,ps)
+      else
+        print*,'attention on ne guide pas les 6 dernieres heures'
       endif
 #endif
@@ -289,6 +288,6 @@
 
 #ifdef CPP_IOIPSL
-c           CALL fluxstokenc(pbaru,pbarv,masse,teta,phi,phis,
-c    .   time_step, itau)
+           CALL fluxstokenc(pbaru,pbarv,masse,teta,phi,phis,
+     .   dtvr, itau)
 #endif
 
@@ -486,11 +485,11 @@
 
             IF( itau. EQ. itaufinp1 ) then  
-c      write(79,*) 'ucov',ucov
-c      write(80,*) 'vcov',vcov
-c      write(81,*) 'teta',teta
-c      write(82,*) 'ps',ps
-c      write(83,*) 'q',q
-c      WRITE(85,*) 'q1 = ',q(:,:,1)
-c      WRITE(86,*) 'q3 = ',q(:,:,3)
+       write(79,*) 'ucov',ucov
+       write(80,*) 'vcov',vcov
+       write(81,*) 'teta',teta
+       write(82,*) 'ps',ps
+       write(83,*) 'q',q
+       WRITE(85,*) 'q1 = ',q(:,:,1)
+       WRITE(86,*) 'q3 = ',q(:,:,3)
 
               abort_message = 'Simulation finished'
Index: LMDZ4/trunk/libf/dyn3d/wrgrads.F
===================================================================
--- LMDZ4/trunk/libf/dyn3d/wrgrads.F	(revision 533)
+++ LMDZ4/trunk/libf/dyn3d/wrgrads.F	(revision 541)
@@ -29,5 +29,5 @@
       writectl=.false.
 
-c     print*,if,iid(if),jid(if),ifd(if),jfd(if)
+      print*,if,iid(if),jid(if),ifd(if),jfd(if)
       iii=iid(if)
       iji=jid(if)
@@ -38,6 +38,6 @@
       lm=lmd(if)
 
-c      print*,'im,jm,lm,name,firsttime(if)'
-c      print*,im,jm,lm,name,firsttime(if)
+      print*,'im,jm,lm,name,firsttime(if)'
+      print*,im,jm,lm,name,firsttime(if)
 
       if(firsttime(if)) then
@@ -81,6 +81,6 @@
       endif
 
-c     print*,'ivar(if),nvar(if),var(ivar(if),if),writectl'
-c     print*,ivar(if),nvar(if),var(ivar(if),if),writectl
+      print*,'ivar(if),nvar(if),var(ivar(if),if),writectl'
+      print*,ivar(if),nvar(if),var(ivar(if),if),writectl
       do l=1,nl
          irec(if)=irec(if)+1
