*=*=*=*= ini_fi.html =*=*=*=*
SUBROUTINE ini_fi

SUBROUTINE ini_fi


      SUBROUTINE ini_fi(ngrid,nlayer, unit,ldrs,
     $           pday,phour,pdaysec,pdayref,ptimestep,
     $           plat,plon,parea,phis,rnatur,
     $           alb,ith,
     $           prad,pg,pr,pcpp,pmugaz,pomega,tsurf,tsoil,co2ice,
     $           pyear_day,pperiheli,paphelie,pperi_day,
     $           pobliquit,pz0,pemin_turb,plmixmin,
     $           pemissiv,pemisice,palbedice,
     $           ptauvis,tauir,scatalb,asfact,
     $           emis ,piceradius,pdtemisice,q2,
c!-*-
     $           pzmea,pzstd,pzsig,pzgam,pzthe)
c!-*-


      IMPLICIT NONE
c
c=======================================================================
c
c     Initial state for the physiqcs
c
c=======================================================================
c
c-----------------------------------------------------------------------
c   declarations:
c   -------------

#include "dimensions.h"
#include "dimphys.h"
#include "planete.h"
#include "comcstfi.h"
#include "comsaison.h"
#include "surfdat.h"
#include "comgeomfi.h"
#include "lmdstd.h"
#include "drsdef.h"
#include "dimradmars.h"
#include "yomaer.h"

      REAL prad,pg,pr,pcpp,pmugaz,pomega,pdaysec,tsurf(ngridmx)
      REAL pyear_day,pperiheli,paphelie,pperi_day
      REAL pobliquit,pz0,pemin_turb,plmixmin
      REAL pemissiv,pemisice(2),palbedice(2)
      REAL ptauvis, tauir,scatalb,asfact
      REAL piceradius(2),pdtemisice(2)

c!-*-
      real pzmea(ngridmx),pzstd(ngridmx)
      real pzsig(ngridmx),pzgam(ngridmx),pzthe(ngridmx)
c!-*-


      INTEGER pday
      REAL phour

      INTEGER ngrid,nlayer
      REAL plat(ngrid),plon(ngrid),pdayref,parea(ngridmx)
      REAL phis(ngridmx),rnatur(ngridmx)
      real alb(ngridmx),ith(ngridmx)
      REAL tsoil(ngridmx,nsoilmx),co2ice(ngridmx)
      REAL emis(ngridmx)
      REAL q2(ngridmx,nlayermx+1)

      REAL ptimestep
      INTEGER ig

      integer unit
      EXTERNAL mucorr,iniorbit,orbite
      logical ldrs


c *******************************************************************
c TEST sur ngrid, ngridmx
c -----------------------

      IF (nlayer.NE.nlayermx) THEN
         PRINT*,'STOP in inifis'
         PRINT*,'Probleme de dimensions :'
         PRINT*,'nlayer     = ',nlayer
         PRINT*,'nlayermx   = ',nlayermx
         STOP
      ENDIF

      IF (ngrid.NE.ngridmx) THEN
         PRINT*,'STOP in inifis'
         PRINT*,'Probleme de dimensions :'
         PRINT*,'ngrid     = ',ngrid
         PRINT*,'ngridmx   = ',ngridmx
         STOP
      ENDIF

c Initialisation variables
c ------------------------

      CALL SCOPY(ngrid,plon,1,long,1)
      CALL SCOPY(ngrid,plat,1,lati,1)
      CALL SCOPY(ngrid,parea,1,area,1)
      CALL SCOPY(ngrid,phis,1,phisfi,1)

      DO ig=1,ngridmx
         albedodat(ig)=alb(ig)
         inertiedat(ig)=ith(ig)
c!-*-
         zmea(ig)=pzmea(ig)
         zstd(ig)=pzstd(ig)
         zsig(ig)=pzsig(ig)
         zgam(ig)=pzgam(ig)
         zthe(ig)=pzthe(ig)
c!-*-
      ENDDO


c     DO l=1,nsoilmx
c        DO ig=1,ngridmx
c           tsoil(ig,l)=tsurf(ig)
c        ENDDO
c     ENDDO

      pi=2.*asin(1.)
      rad=prad
      g=pg
      r=pr
      cpp=pcpp
      rcp=r/cpp
      mugaz=pmugaz
      omeg=pomega
      dtphys=ptimestep
      daysec=pdaysec
      year_day = pyear_day
      periheli = pperiheli
      aphelie = paphelie
      peri_day = pperi_day
      obliquit = pobliquit
      z0 = pz0
      emin_turb = pemin_turb
      lmixmin = plmixmin
      albedice(1)=palbedice(1)
      albedice(2)=palbedice(2)
      emisice(1)=pemisice(1)
      emisice(2)=pemisice(2)
      emissiv=pemissiv
      iceradius(1) = piceradius(1)
      iceradius(2) = piceradius(2)
      dtemisice(1) = pdtemisice(1)
      dtemisice(2) = pdtemisice(2)

      tauvis = ptauvis
      piza(1,1) = scatalb
      cga(1,1) = asfact
      caer(1,1) = tauir


c Ecriture de startfi
c -------------------
      CALL iniwritefi(unit,ldrs,pday+INT(phour))
      CALL writefi(ngrid,nsoilmx,
     s  unit,ldrs,phour-INT(phour),1,co2ice,tsurf,tsoil,emis,q2)

c ***************************************************************
c  SORTIE DIAGFI  (Variable Diagnostique sous format DRS)
c     call WRITEDRSINI(ngridmx,44,'Ls','Lon.solaire','deg',0,zls*57.296)
c     call WRITEDRSINI(ngridmx,44,'Tsurf','Surf T','K',2,tsurf)
c     call WRITEDRSINI(ngridmx,44,'co2ice','couche de glace co2',
c    &  'kg/m2',2,co2ice)
c **************************************************************


      RETURN

      END