!
! $Header$
!
      IF (ok_instan) THEN
c
      ndex2d = 0
      ndex3d = 0
c
c Champs 2D:
c
      itau_w = itau_phy + itap

cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"phis",itau_w,pphis)
c
cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"aire",itau_w,airephy)

      DO i = 1, klon
         zx_tmp_fi2d(i) = paprs(i,1)
      ENDDO
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"psol",itau_w,zx_tmp_fi2d)
c
      DO i = 1, klon
         zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i)
      ENDDO
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"precip",itau_w,zx_tmp_fi2d)
c
      DO i = 1, klon
         zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i)
      ENDDO
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)    
      CALL histwrite_phy(nid_ins,"plul",itau_w,zx_tmp_fi2d)
c
      DO i = 1, klon
         zx_tmp_fi2d(i) = rain_con(i) + snow_con(i)
      ENDDO
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"pluc",itau_w,zx_tmp_fi2d)

cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"tsol",itau_w,zxtsol)
cccIM
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m, zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"t2m",itau_w,zt2m)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m, zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"q2m",itau_w,zq2m)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m, zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"u10m",itau_w,zu10m)
C
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m, zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"v10m",itau_w,zv10m)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_fall,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"snow",itau_w,snow_fall)

cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"cdrm",itau_w,cdragm)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"cdrh",itau_w,cdragh)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"topl",itau_w,toplw)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"evap",itau_w,evap)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"sols",itau_w,solsw)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"soll",itau_w,sollw)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"solldown",itau_w,sollwdown)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, bils,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"bils",itau_w,bils)
c
      zx_tmp_fi2d(1:klon)=-1*sens(1:klon)
c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, sens,zx_tmp_2d)
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"sens",itau_w,zx_tmp_fi2d)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, fder,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"fder",itau_w,fder)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, d_ts(1,is_oce),zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"dtsvdfo",itau_w,d_ts(:,is_oce))
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, d_ts(1,is_ter),zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"dtsvdft",itau_w,d_ts(:,is_ter))
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, d_ts(1,is_lic),zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"dtsvdfg",itau_w, d_ts(:,is_lic))
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, d_ts(1,is_sic),zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"dtsvdfi",itau_w,d_ts(:,is_sic))

      DO nsrf = 1, nbsrf
CXXX
        zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100.
cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
        CALL histwrite_phy(nid_ins,"pourc_"//clnsurf(nsrf),itau_w,
     $                zx_tmp_fi2d) 
C 
        zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)
cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
        CALL histwrite_phy(nid_ins,"fract_"//clnsurf(nsrf),itau_w,
     $      zx_tmp_fi2d) 
C 
        zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf)
cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
        CALL histwrite_phy(nid_ins,"sens_"//clnsurf(nsrf),itau_w,
     $      zx_tmp_fi2d) 
C
        zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf)
cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
        CALL histwrite_phy(nid_ins,"lat_"//clnsurf(nsrf),itau_w,
     $      zx_tmp_fi2d) 
C
        zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf)
cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
        CALL histwrite_phy(nid_ins,"tsol_"//clnsurf(nsrf),itau_w,
     $      zx_tmp_fi2d) 
C
        zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf)
cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
        CALL histwrite_phy(nid_ins,"taux_"//clnsurf(nsrf),itau_w,
     $      zx_tmp_fi2d) 
C      
        zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf)
cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
        CALL histwrite_phy(nid_ins,"tauy_"//clnsurf(nsrf),itau_w,
     $     zx_tmp_fi2d)
C
        zx_tmp_fi2d(1 : klon) = frugs( 1 : klon, nsrf)
cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
        CALL histwrite_phy(nid_ins,"rugs_"//clnsurf(nsrf),itau_w,
     $      zx_tmp_fi2d) 
C
        zx_tmp_fi2d(1 : klon) = falbe( 1 : klon, nsrf)
cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
        CALL histwrite_phy(nid_ins,"albe_"//clnsurf(nsrf),itau_w,
     $      zx_tmp_fi2d) 
C 
      END DO  
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsol,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"albs",itau_w,albsol)
      
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsollw,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"albslw",itau_w,albsollw)

c
cIM: 140404   CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxsnow,zx_tmp_2d)
c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, zsnow_mass,zx_tmp_2d)
c     CALL histwrite_phy(nid_ins,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1,
c    .               ndex2d)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxrugs,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"rugs",itau_w,zxrugs)
c
cIM cf. AM 081204 BEG
c
cHBTM2
c
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblh,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"s_pblh",itau_w,s_pblh)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblt,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"s_pblt",itau_w,s_pblt)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_lcl,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"s_lcl",itau_w,s_lcl)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_capCL,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"s_capCL",itau_w,s_capCL)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_oliqCL,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"s_oliqCL",itau_w,s_oliqCL)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_cteiCL,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"s_cteiCL",itau_w,s_cteiCL)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_therm,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"s_therm",itau_w,s_therm)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb1,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"s_trmb1",itau_w,s_trmb1)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb2,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"s_trmb2",itau_w,s_trmb2)
c
cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb3,zx_tmp_2d)
      CALL histwrite_phy(nid_ins,"s_trmb3",itau_w,s_trmb3)
c
cIM cf. AM 081204 END
c
c Champs 3D:
c
cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
      CALL histwrite_phy(nid_ins,"temp",itau_w,t_seri)
c
cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d)
      CALL histwrite_phy(nid_ins,"vitu",itau_w,u_seri)
c
cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d)
      CALL histwrite_phy(nid_ins,"vitv",itau_w,v_seri)
c
cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d)
      CALL histwrite_phy(nid_ins,"geop",itau_w,zphi)
c
cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d)
      CALL histwrite_phy(nid_ins,"pres",itau_w,pplay)
c
cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_vdf, zx_tmp_3d)
      CALL histwrite_phy(nid_ins,"dtvdf",itau_w,d_t_vdf)
c
cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_vdf, zx_tmp_3d)
      CALL histwrite_phy(nid_ins,"dqvdf",itau_w,d_q_vdf)

c
      if (ok_sync) then
c$OMP MASTER
        call histsync(nid_ins)
c$OMP END MASTER
      endif
      ENDIF
