c
c $Header$
c
      IF (type_run.EQ."AMIP") THEN
c
      ndex2d = 0
      itau_w = itau_phy + itap
c
c Champs 2D:
c
      pi = ACOS(-1.)
      pir = 4.0*ATAN(1.0) / 180.0
c
      DO i=1, klon
       zx_tmp_fi2d(i)=(topsw(i)-toplw(i))
      ENDDO
c
      ok_msk=.FALSE.
      msk(1:klon)=pctsrf(1:klon,is_ter)
      CALL moyglo_pondaire(klon, zx_tmp_fi2d, airephy, 
     .     ok_msk, msk, moyglo)
      zx_tmp_fi2d(1:klon)=moyglo
c
      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
      CALL histwrite(nid_day_seri,"bilTOA",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      ok_msk=.FALSE.
      CALL moyglo_pondaire(klon, bils, airephy, 
     .     ok_msk, msk, moyglo)
      zx_tmp_fi2d(1:klon)=moyglo
c
      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
      CALL histwrite(nid_day_seri,"bils",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      DO k=1, klev
      DO i=1, klon
cIM 080904    zx_tmp_fi3d(i,k)=u(i,k)**2+v(i,k)**2
       zx_tmp_fi3d(i,k)=(u(i,k)**2+v(i,k)**2)/2.
      ENDDO
      ENDDO
c
      CALL moyglo_pondaima(klon, klev, zx_tmp_fi3d, 
     .     airephy, paprs, moyglo)
      zx_tmp_fi2d(1:klon)=moyglo
c
      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
      CALL histwrite(nid_day_seri,"ecin",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d) 
c
cIM 151004 BEG
      IF(1.EQ.0) THEN
c
      DO k=1, klev
      DO i=1, klon
       zx_tmp_fi3d(i,k)=u_seri(i,k)*RA*cos(pir* rlat(i))
      ENDDO
      ENDDO
c
      CALL moyglo_pondaima(klon, klev, zx_tmp_fi3d, 
     .     airephy, paprs, moyglo)
      zx_tmp_fi2d(1:klon)=moyglo
c
      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
      CALL histwrite(nid_day_seri,"momang",itau_w,zx_tmp_2d,
     .               iim*jjmp1,ndex2d)
c
c friction torque
c
      DO i=1, klon
       zx_tmp_fi2d(i)=zxfluxu(i,1)*RA* cos(pir* rlat(i))
      ENDDO
c
      ok_msk=.FALSE.
      CALL moyglo_pondaire(klon, zx_tmp_fi2d, airephy, 
     .     ok_msk, msk, moyglo)
      zx_tmp_fi2d(1:klon)=moyglo
c
      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
      CALL histwrite(nid_day_seri,"frictor",itau_w,zx_tmp_2d,
     .               iim*jjmp1,ndex2d)
c
c mountain torque
c
cIM 190504 BEG
      CALL gr_fi_dyn(1,klon,iim+1,jjm+1,airephy,airedyn)
      CALL gr_fi_dyn(klev+1,klon,iim+1,jjm+1,paprs,padyn)
      CALL gr_fi_dyn(1,klon,iim+1,jjm+1,rlat,rlatdyn)
      mountor=0.
      airetot=0.
      DO j = 1, jjmp1
       DO i = 1, iim+1
        ij=i+(iim+1)*(j-1)
        zx_tmp(ij)=0.
        DO k = 1, klev
         zx_tmp(ij)=zx_tmp(ij)+dudyn(i,j,k)*airedyn(i,j)*
     $              (padyn(i,j,k+1)-padyn(i,j,k))/RG
         airetot=airetot+airedyn(i,j)
        ENDDO
cIM 190504 mountor=mountor+zx_tmp(ij)*airedyn(i,j)*RA*
        mountor=mountor+zx_tmp(ij)*RA*
     $           cos(pir* rlatdyn(i,j))
       ENDDO
      ENDDO
cIM 151004 BEG
      IF(itap.EQ.1) PRINT*,'airetot=',airetot,airetot/klev
cIM 151004 END
cIM 190504      mountor=mountor/(airetot*airetot)
      mountor=mountor/airetot
c
cIM 190504 END
      zx_tmp_2d(1:iim,1:jjmp1)=mountor
      CALL histwrite(nid_day_seri,"mountor",itau_w,zx_tmp_2d,
     .               iim*jjmp1,ndex2d)
c
      ENDIF !(1.EQ.0) THEN
c
c
      CALL gr_fi_dyn(1,klon,iim+1,jjm+1,airephy,airedyn)
      CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d)
      airetot=0.
c     DO j = 1, jjmp1
c      DO i = 1, iim+1
c       ij=i+(iim+1)*(j-1)
c       DO k = 1, klev
c        airetot=airetot+airedyn(i,j)
c        airetot=airetot+airedyn(i,j)
c       ENDDO !k
c      ENDDO !i
c     ENDDO !j
c
      DO i=1, klon
       airetot=airetot+airephy(i)
      ENDDO
c     IF(itap.EQ.1) PRINT*,'airetotphy=',airetot
c
      airetot=0.
      DO j=1, jjmp1
       DO i=1, iim
        airetot=airetot+zx_tmp_2d(i,j)
       ENDDO
      ENDDO
c
c     IF(itap.EQ.1) PRINT*,'airetotij=',airetot,
c    $ '4piR2',4.*pi*RA*RA
c
      zx_tmp_fi2d(1:klon)=aam/airetot
      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
      CALL histwrite(nid_day_seri,"momang",itau_w,zx_tmp_2d,
     .               iim*jjmp1,ndex2d)
c
      zx_tmp_fi2d(1:klon)=torsfc/airetot
      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
      CALL histwrite(nid_day_seri,"torsfc",itau_w,zx_tmp_2d,
     .               iim*jjmp1,ndex2d)
c
cIM 151004 END
c
      CALL moyglo_pondmass(klon, klev, t_seri,
     .     airephy, paprs, moyglo)
      zx_tmp_fi2d(1:klon)=moyglo
c
      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
      CALL histwrite(nid_day_seri,"tamv",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      ok_msk=.FALSE.
      CALL moyglo_pondaire(klon, paprs(:,1), airephy, 
     .     ok_msk, msk, moyglo)
      zx_tmp_fi2d(1:klon)=moyglo
c
      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
      CALL histwrite(nid_day_seri,"psol",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      ok_msk=.FALSE.
      CALL moyglo_pondaire(klon, evap, airephy, 
     .     ok_msk, msk, moyglo)
      zx_tmp_fi2d(1:klon)=moyglo
c
      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
      CALL histwrite(nid_day_seri,"evap",itau_w,
     .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
c     DO i=1, klon
c      zx_tmp_fi2d(i)=SnowFrac(i,is_ter)
c     ENDDO
c
c     ok_msk=.TRUE.
c     msk(1:klon)=pctsrf_new(1:klon,is_ter)
c     CALL moyglo_pondaire(klon, zx_tmp_fi2d, airephy, 
c    .                     ok_msk, msk, moyglo)
c     zx_tmp_fi2d(1:klon)=moyglo
c
c     CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
c     CALL histwrite(nid_day_seri,"SnowFrac",
c    .               itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 
c
c     DO i=1, klon
cIM 080904    zx_tmp_fi2d(i)=zsnow_mass(i)/330.*rowl
c      zx_tmp_fi2d(i)=zsnow_mass(i)
c     ENDDO
c
cIM 140904   ok_msk=.FALSE.
c     ok_msk=.TRUE.
c     msk(1:klon)=pctsrf(1:klon,is_ter)
c     CALL moyglo_pondaire(klon, zx_tmp_fi2d, airephy, 
c    .     ok_msk, msk, moyglo)
c     zx_tmp_fi2d(1:klon)=moyglo
c
c     CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
c     CALL histwrite(nid_day_seri,"snow_depth",itau_w,
c    .               zx_tmp_2d,iim*jjmp1,ndex2d)
c
      DO i=1, klon
       zx_tmp_fi2d(i)=ftsol(i,is_oce)
      ENDDO
c
      ok_msk=.TRUE.
      msk(1:klon)=pctsrf(1:klon,is_oce)
      CALL moyglo_pondaire(klon, zx_tmp_fi2d, airephy, 
     .     ok_msk, msk, moyglo)
      zx_tmp_fi2d(1:klon)=moyglo
c
      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
      CALL histwrite(nid_day_seri,"tsol_"//clnsurf(is_oce),
     $               itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 
c
c=================================================================
c=================================================================
c=================================================================
c
      if (ok_sync) then
        call histsync(nid_day_seri)
      endif
c
      ENDIF !fin test sur type_run.EQ."AMIP"
