c
      IF (is_sequential) THEN
      
      ndex2d = 0
      itau_w = itau_phy + itap
c
c Variables type caractere : plusieurs valeurs possibles
c
      IF(ocean.EQ.'force ') THEN
       zx_tmp_2d(1:iim,1:jjmp1)=1.
      ELSE IF(ocean.EQ.'slab  ') THEN
       zx_tmp_2d(1:iim,1:jjmp1)=2.
      ELSE IF(ocean.EQ.'couple') THEN
       zx_tmp_2d(1:iim,1:jjmp1)=3.
      ENDIF
      CALL histwrite(nid_ctesGCM,"ocean",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      IF(ok_slab_sicOBS) THEN
       zx_tmp_2d(1:iim,1:jjmp1)=1.
      ELSE
       zx_tmp_2d(1:iim,1:jjmp1)=0.
      ENDIF
      CALL histwrite(nid_ctesGCM,"ok_slab_sicOBS",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      IF(type_run.EQ.'CLIM'.OR.type_run.EQ.'ENSP') THEN
       zx_tmp_2d(1:iim,1:jjmp1)=1.
      ELSE IF(type_run.EQ.'AMIP'.OR.type_run.EQ.'CFMI') THEN
       zx_tmp_2d(1:iim,1:jjmp1)=2.
      ENDIF
      CALL histwrite(nid_ctesGCM,"type_run",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
c Variables logiques (1=true, 2=false)
c
      IF(ok_veget) THEN
       zx_tmp_2d(1:iim,1:jjmp1)=1.
      ELSE
       zx_tmp_2d(1:iim,1:jjmp1)=0.
      ENDIF
      CALL histwrite(nid_ctesGCM,"ok_veget",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      IF(ok_journe) THEN
       zx_tmp_2d(1:iim,1:jjmp1)=1.
      ELSE
       zx_tmp_2d(1:iim,1:jjmp1)=0.
      ENDIF
      CALL histwrite(nid_ctesGCM,"ok_journe",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      IF(ok_mensuel) THEN
       zx_tmp_2d(1:iim,1:jjmp1)=1.
      ELSE
       zx_tmp_2d(1:iim,1:jjmp1)=0.
      ENDIF
      CALL histwrite(nid_ctesGCM,"ok_mensuel",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      IF(ok_instan) THEN
       zx_tmp_2d(1:iim,1:jjmp1)=1.
      ELSE
       zx_tmp_2d(1:iim,1:jjmp1)=0.
      ENDIF
      CALL histwrite(nid_ctesGCM,"ok_instan",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      IF(ok_ade) THEN
       zx_tmp_2d(1:iim,1:jjmp1)=1.
      ELSE
       zx_tmp_2d(1:iim,1:jjmp1)=0.
      ENDIF
      CALL histwrite(nid_ctesGCM,"ok_ade",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      IF(ok_aie) THEN
       zx_tmp_2d(1:iim,1:jjmp1)=1.
      ELSE
       zx_tmp_2d(1:iim,1:jjmp1)=0.
      ENDIF
      CALL histwrite(nid_ctesGCM,"ok_aie",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c

c
c Champs 2D:
c
      zx_tmp_2d(1:iim,1:jjmp1)=bl95_b0
      CALL histwrite(nid_ctesGCM,"bl95_b0",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=bl95_b1
      CALL histwrite(nid_ctesGCM,"bl95_b1",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=ip_ebil_phy
      CALL histwrite(nid_ctesGCM,"ip_ebil_phy",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=R_ecc
      CALL histwrite(nid_ctesGCM,"R_ecc",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=R_peri
      CALL histwrite(nid_ctesGCM,"R_peri",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=R_incl
      CALL histwrite(nid_ctesGCM,"R_incl",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=solaire
      CALL histwrite(nid_ctesGCM,"solaire",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=co2_ppm
      CALL histwrite(nid_ctesGCM,"co2_ppm",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=CH4_ppb
      CALL histwrite(nid_ctesGCM,"CH4_ppb",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=N2O_ppb
      CALL histwrite(nid_ctesGCM,"N2O_ppb",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=CFC11_ppt
      CALL histwrite(nid_ctesGCM,"CFC11_ppt",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=CFC12_ppt
      CALL histwrite(nid_ctesGCM,"CFC12_ppt",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=epmax
      CALL histwrite(nid_ctesGCM,"epmax",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
! Mais est-il bien raisonable de stoker ces fichiers comme des
! champs 2D...
! WARNING :
! Il faudrait ici ajoute l'ecriture des champs
!      cycle_diurne = cycle_diurne_omp
!   soil_model = soil_model_omp
!   new_oliq = new_oliq_omp
!   ok_orodr = ok_orodr_omp
!   ok_orolf = ok_orolf_omp
!   ok_limitvrai = ok_limitvrai_omp
!   nbapp_rad = nbapp_rad_omp
!   iflag_con = iflag_con_omp
! qui se trouvaient auparavant dans gcm.def et maintenant dans 
! physiq.def.
! Mais regarder d'abord a quoi ca sert ...
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


c
      IF(ok_adj_ema) THEN
       zx_tmp_2d(1:iim,1:jjmp1)=1.
      ELSE
       zx_tmp_2d(1:iim,1:jjmp1)=0.
      ENDIF
      CALL histwrite(nid_ctesGCM,"ok_adj_ema",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=iflag_clw
      CALL histwrite(nid_ctesGCM,"iflag_clw",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=cld_lc_lsc
      CALL histwrite(nid_ctesGCM,"cld_lc_lsc",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=cld_lc_con
      CALL histwrite(nid_ctesGCM,"cld_lc_con",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=cld_tau_lsc
      CALL histwrite(nid_ctesGCM,"cld_tau_lsc",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=cld_tau_con
      CALL histwrite(nid_ctesGCM,"cld_tau_con",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=ffallv_lsc
      CALL histwrite(nid_ctesGCM,"ffallv_lsc",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=ffallv_con
      CALL histwrite(nid_ctesGCM,"ffallv_con",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=coef_eva
      CALL histwrite(nid_ctesGCM,"coef_eva",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      IF(reevap_ice) THEN
       zx_tmp_2d(1:iim,1:jjmp1)=1.
      ELSE
       zx_tmp_2d(1:iim,1:jjmp1)=0.
      ENDIF
      CALL histwrite(nid_ctesGCM,"reevap_ice",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=iflag_cldcon
      CALL histwrite(nid_ctesGCM,"iflag_cldcon",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=iflag_pdf
      CALL histwrite(nid_ctesGCM,"iflag_pdf",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=fact_cldcon
      CALL histwrite(nid_ctesGCM,"fact_cldcon",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=facttemps
      CALL histwrite(nid_ctesGCM,"facttemps",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      IF(ok_newmicro) THEN
       zx_tmp_2d(1:iim,1:jjmp1)=1.
      ELSE
       zx_tmp_2d(1:iim,1:jjmp1)=0.
      ENDIF
      CALL histwrite(nid_ctesGCM,"ok_newmicro",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=ratqsbas
      CALL histwrite(nid_ctesGCM,"ratqsbas",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=ratqshaut
      CALL histwrite(nid_ctesGCM,"ratqshaut",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=rad_froid
      CALL histwrite(nid_ctesGCM,"rad_froid",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=rad_chau1
      CALL histwrite(nid_ctesGCM,"rad_chau1",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=rad_chau2
      CALL histwrite(nid_ctesGCM,"rad_chau2",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=top_height
      CALL histwrite(nid_ctesGCM,"top_height",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=overlap
      CALL histwrite(nid_ctesGCM,"overlap",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=cdmmax
      CALL histwrite(nid_ctesGCM,"cdmmax",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=cdhmax
      CALL histwrite(nid_ctesGCM,"cdhmax",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=ksta
      CALL histwrite(nid_ctesGCM,"ksta",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=ksta_ter
      CALL histwrite(nid_ctesGCM,"ksta_ter",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      IF(ok_kzmin) THEN
       zx_tmp_2d(1:iim,1:jjmp1)=1.
      ELSE
       zx_tmp_2d(1:iim,1:jjmp1)=0.
      ENDIF
      CALL histwrite(nid_ctesGCM,"ok_kzmin",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=iflag_pbl
      CALL histwrite(nid_ctesGCM,"iflag_pbl",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=lev_histhf
      CALL histwrite(nid_ctesGCM,"lev_histhf",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=lev_histday
      CALL histwrite(nid_ctesGCM,"lev_histday",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=lev_histmth
      CALL histwrite(nid_ctesGCM,"lev_histmth",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      IF(ok_isccp) THEN
       zx_tmp_2d(1:iim,1:jjmp1)=1.
      ELSE
       zx_tmp_2d(1:iim,1:jjmp1)=0.
      ENDIF
      CALL histwrite(nid_ctesGCM,"ok_isccp",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=lonmin_ins
      CALL histwrite(nid_ctesGCM,"lonmin_ins",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=lonmax_ins
      CALL histwrite(nid_ctesGCM,"lonmax_ins",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=latmin_ins
      CALL histwrite(nid_ctesGCM,"latmin_ins",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=latmax_ins
      CALL histwrite(nid_ctesGCM,"latmax_ins",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=ecrit_ins
      CALL histwrite(nid_ctesGCM,"ecrit_ins",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=ecrit_hf
      CALL histwrite(nid_ctesGCM,"ecrit_hf",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=ecrit_day
      CALL histwrite(nid_ctesGCM,"ecrit_day",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=ecrit_mth
      CALL histwrite(nid_ctesGCM,"ecrit_mth",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=ecrit_tra
      CALL histwrite(nid_ctesGCM,"ecrit_tra",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=ecrit_reg
      CALL histwrite(nid_ctesGCM,"ecrit_reg",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=freq_ISCCP
      CALL histwrite(nid_ctesGCM,"freq_ISCCP",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      zx_tmp_2d(1:iim,1:jjmp1)=ecrit_ISCCP
      CALL histwrite(nid_ctesGCM,"ecrit_ISCCP",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
c=================================================================
c=================================================================
c=================================================================
c
      if (ok_sync) then
        call histsync(nid_ctesGCM)
      endif
c
      ENDIF ! mono_cpu
