Index: LMDZ.3.3/trunk/libf/phylmd/physiq.F
===================================================================
--- LMDZ.3.3/trunk/libf/phylmd/physiq.F	(revision 52)
+++ LMDZ.3.3/trunk/libf/phylmd/physiq.F	(revision 53)
@@ -56,4 +56,5 @@
 #include "clesphys.h"
 #include "control.h"
+#include "temps.h"
 c======================================================================
       LOGICAL check ! Verifier la conservation du modele en eau
@@ -282,5 +283,6 @@
       REAL yv1(klon)            ! vents dans la premiere couche V
       LOGICAL offline           ! Controle du stockage ds "physique"
-      PARAMETER (offline=.FALSE.)
+      PARAMETER (offline=.true.)
+      INTEGER physid
       REAL pfrac_impa(klon,klev)! Produits des coefs lessivage impaction
       save pfrac_impa
@@ -671,7 +673,6 @@
       IF (ok_journe) THEN
 c
-C         CALL ymds2ju(1900, 1, 1, 0.0, zjulian)
-         CALL ymds2ju(anneeref, 1, 1, 0.0, zjulian)
-         zjulian = zjulian + dayref
+         CALL ymds2ju(anne_ini, 1, 1, 0.0, zjulian)
+         zjulian = zjulian + day_ini
 c
          CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlon,zx_lon)
@@ -824,19 +825,10 @@
          ndex3d = 0
 c
-Cess         i = NINT(zout/zsto)
-Cess         CALL gr_fi_ecrit(1,klon,iim,jjm+1,pphis,zx_tmp_2d)
-Cess        CALL histwrite(nid_day,"phis",i,zx_tmp_2d,iim*(jjm+1),ndex2d)
-c
-Cess         i = NINT(zout/zsto)
-Cess         CALL gr_fi_ecrit(1,klon,iim,jjm+1,paire,zx_tmp_2d)
-Cess        CALL histwrite(nid_day,"aire",i,zx_tmp_2d,iim*(jjm+1),ndex2d)
-c
       ENDIF ! fin de test sur ok_journe
 c
       IF (ok_mensuel) THEN
 c
-c         CALL ymds2ju(1900, 1, 1, 0.0, zjulian)
-         CALL ymds2ju(anneeref, 1, 1, 0.0, zjulian)
-         zjulian = zjulian + dayref
+         CALL ymds2ju(anne_ini, 1, 1, 0.0, zjulian)
+         zjulian = zjulian + day_ini
 c
          CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlon,zx_lon)
@@ -1172,12 +1164,4 @@
          ndex3d = 0
 c
-Cess         i = NINT(zout/zsto)
-Cess         CALL gr_fi_ecrit(1,klon,iim,jjm+1,pphis,zx_tmp_2d)
-Cess        CALL histwrite(nid_mth,"phis",i,zx_tmp_2d,iim*(jjm+1),ndex2d)
-C
-Cess         i = NINT(zout/zsto)
-Cess         CALL gr_fi_ecrit(1,klon,iim,jjm+1,paire,zx_tmp_2d)
-Cess        CALL histwrite(nid_mth,"aire",i,zx_tmp_2d,iim*(jjm+1),ndex2d)
-c
       ENDIF ! fin de test sur ok_mensuel
 c
@@ -1185,7 +1169,6 @@
       IF (ok_instan) THEN
 c
-c         CALL ymds2ju(1900, 1, 1, 0.0, zjulian)
-         CALL ymds2ju(anneeref, 1, 1, 0.0, zjulian)
-         zjulian = zjulian + dayref
+         CALL ymds2ju(anne_ini, 1, 1, 0.0, zjulian)
+         zjulian = zjulian + day_ini
 c
          CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlon,zx_lon)
@@ -1253,12 +1236,4 @@
          ndex2d = 0
          ndex3d = 0
-c
-Cess         i = NINT(zout/zsto)
-Cess         CALL gr_fi_ecrit(1,klon,iim,jjm+1,pphis,zx_tmp_2d)
-Cess        CALL histwrite(nid_ins,"phis",i,zx_tmp_2d,iim*(jjm+1),ndex2d)
-c
-Cess         i = NINT(zout/zsto)
-Cess         CALL gr_fi_ecrit(1,klon,iim,jjm+1,paire,zx_tmp_2d)
-Cess        CALL histwrite(nid_ins,"aire",i,zx_tmp_2d,iim*(jjm+1),ndex2d)
 c
       ENDIF
@@ -1943,5 +1918,4 @@
 C la physique s'applique
 C
-       write(*,*) 'Phytrac= '
       call phytrac (rnpb,
      I                   debut,
@@ -1955,12 +1929,13 @@
      O                   tr_seri)
 
-       write(*,*) 'OFFLINE= ', offline
       IF (offline) THEN
-       write(*,*) 'OFFLINE= ', offline
-      call phystoke (
-     I                   nlon,nlev,pdtphys,
+
+	 call phystokenc (
+     I                   nlon,nlev,pdtphys,rlon,rlat,
      I                   pmfu, pmfd, pen_u, pde_u, pen_d, pde_d,
      I                   ycoefh,yu1,yv1,ftsol,pctsrf,
-     I                   frac_impa, frac_nucl)
+     I                   frac_impa, frac_nucl,
+     I                   pphis,paire,dtime,itap,
+     O                   physid)
 
       ENDIF
Index: LMDZ.3.3/trunk/libf/phylmd/phytrac.F
===================================================================
--- LMDZ.3.3/trunk/libf/phylmd/phytrac.F	(revision 52)
+++ LMDZ.3.3/trunk/libf/phylmd/phytrac.F	(revision 53)
@@ -28,4 +28,5 @@
 #include "indicesol.h"
 #include "control.h"
+#include "temps.h"
 c======================================================================
 
@@ -130,5 +131,5 @@
       INTEGER nid_tra
       SAVE nid_tra
-      INTEGER ndex(1)
+      INTEGER ndex2d(iim*(jjm+1)),ndex3d(iim*(jjm+1)*klev)
       REAL zx_tmp_2d(iim,jjm+1), zx_tmp_3d(iim,jjm+1,klev)
       REAL zx_lon(iim,jjm+1), zx_lat(iim,jjm+1)
@@ -140,4 +141,6 @@
       INTEGER ecrit_tra
       SAVE ecrit_tra   
+      logical ok_sync
+      parameter (ok_sync = .true.)
 C
 C nature du traceur
@@ -201,7 +204,9 @@
          modname='phytrac'
 
-         print*,'DANS PHYTRAC debutphy=',debutphy
+c        print*,'DANS PHYTRAC debutphy=',debutphy
 
          ecrit_tra = NINT(86400./pdtphys *ecritphy)   
+         zsto = pdtphys
+         zout = pdtphys * FLOAT(ecrit_tra)
          if (debutphy) then
 
@@ -217,6 +222,6 @@
          itra=0
 C         
-         CALL ymds2ju(anneeref, 1, 1, 0.0, zjulian)
-         zjulian = zjulian + dayref
+         CALL ymds2ju(anne_ini, 1, 1, 0.0, zjulian)
+         zjulian = zjulian + day_ini
 c
          CALL gr_fi_ecrit(1,klon,iim,jjm+1,xlon,zx_lon)
@@ -237,6 +242,4 @@
 C         CALL histvert(nid_tra, "presnivs", "Vertical levels", "mb",
 C     .                 klev, presnivs, nvert)
-         zsto = pdtphys
-         zout = pdtphys * FLOAT(ecrit_tra)
 c
          CALL histdef(nid_tra, "phis", "Surface geop. height", "-",
@@ -266,14 +269,5 @@
          ENDDO
          CALL histend(nid_tra)
-         ndex(1) = 0
-c
-         i = NINT(zout/zsto)
-         CALL gr_fi_ecrit(1,klon,iim,jjm+1,pphis,zx_tmp_2d)
-         CALL histwrite(nid_tra,"phis",i,zx_tmp_2d,iim*(jjm+1),ndex)
-C
-         i = NINT(zout/zsto)
-         CALL gr_fi_ecrit(1,klon,iim,jjm+1,paire,zx_tmp_2d)
-         CALL histwrite(nid_tra,"aire",i,zx_tmp_2d,iim*(jjm+1),ndex)
-c
+
 c======================================================================
 c   Initialisation de certaines variables pour le Rn et le Pb 
@@ -282,5 +276,5 @@
 c Initialisation du traceur dans le sol (couche limite radonique)
 c
-         print*,'valeur de debut dans phytrac :',debutphy
+c        print*,'valeur de debut dans phytrac :',debutphy
          do it=1,nqmax
             do i=1,klon
@@ -327,5 +321,5 @@
       if (convection) then
 
-      print*,'Pas de temps dans phytrac : ',pdtphys
+c     print*,'Pas de temps dans phytrac : ',pdtphys
       DO it=1, nqmax
       CALL nflxtr(pdtphys, pmfu, pmfd, pen_u, pde_u, pen_d, pde_d,
@@ -339,5 +333,5 @@
       CALL minmaxqfi(tr_seri(1,1,it),0.,1.e33,'convection it='//itn)
       ENDDO
-      print*,'apres nflxtr'
+c     print*,'apres nflxtr'
 
 
@@ -348,5 +342,5 @@
 c======================================================================
 
-      print*,'avant couchelimite'
+c     print*,'avant couchelimite'
       if (couchelimite) then
 
@@ -359,5 +353,5 @@
 C maf modif pour tenir compte du cas rnpb + traceur
       DO it=1, nqmax
-      print *,'it',it,clsol(it)
+c     print *,'it',it,clsol(it)
       if (clsol(it)) then  ! couche limite avec quantite dans le sol calculee
           CALL cltracrn(it, pdtphys, yu1, yv1,
@@ -407,5 +401,5 @@
       endif ! couche limite
 
-      print*,'apres couchelimite'
+c     print*,'apres couchelimite'
 
 c======================================================================
@@ -438,5 +432,5 @@
       IF (lessivage) THEN
 
-      print*,'avant lessivage'
+c     print*,'avant lessivage'
 
        DO it = 1, nqmax
@@ -497,5 +491,5 @@
       ENDDO
 c
-      print*,'apres lessivage'
+c     print*,'apres lessivage'
       ENDIF
 Cc
@@ -511,5 +505,16 @@
       ENDDO
       itra=itra+1
-      ndex(1) = 0
+
+C
+C Sorties IOIPSL
+      ndex2d = 0
+      ndex3d = 0
+c
+c     write(*,*)'sorties ioipsl phytrac',zsto,zout
+      CALL gr_fi_ecrit(1,klon,iim,jjm+1,pphis,zx_tmp_2d)
+      CALL histwrite(nid_tra,"phis",itra,zx_tmp_2d,iim*(jjm+1),ndex2d)
+C
+      CALL gr_fi_ecrit(1,klon,iim,jjm+1,paire,zx_tmp_2d)
+      CALL histwrite(nid_tra,"aire",itra,zx_tmp_2d,iim*(jjm+1),ndex2d)
       DO it=1,nqmax
       IF (it.LE.99) THEN
@@ -518,9 +523,9 @@
        CALL gr_fi_ecrit(klev,klon,iim,jjm+1,tr_seri(1,1,it),zx_tmp_3d)
        CALL histwrite(nid_tra,"tr"//str2,itra,zx_tmp_3d,
-     .                                   iim*(jjm+1)*klev,ndex)
+     .                                   iim*(jjm+1)*klev,ndex3d)
        IF (lessivage) THEN
        CALL gr_fi_ecrit(klev,klon,iim,jjm+1,flestottr(1,1,it),zx_tmp_3d)
        CALL histwrite(nid_tra,"fl"//str2,itra,zx_tmp_3d,
-     .                                   iim*(jjm+1)*klev,ndex)
+     .                                   iim*(jjm+1)*klev,ndex3d)
       ENDIF
       ELSE
@@ -529,4 +534,5 @@
       ENDIF
       ENDDO
+      if (ok_sync) call histsync(nid_tra)
 
       RETURN
