*=*=*=*= ini_fi.html =*=*=*=*
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