*=*=*=*= iniwritefi.html =*=*=*=*
SUBROUTINE iniwritefi(unit,ldrs,idayref) IMPLICIT NONE c======================================================================= c c Auteur: P. Le Van c ------- c c Objet: c ------ c c ecriture du fichier histoire c c======================================================================= c----------------------------------------------------------------------- c Declarations: c ------------- #include "dimensions.h" #include "dimphys.h" #include "comcstfi.h" #include "comgeomfi.h" #include "planete.h" #include "surfdat.h" #include "drscoorfi.h" #include "drsdef.h" #include "description.h" #include "dimradmars.h" #include "yomaer.h" c Arguments: c ---------- INTEGER idayref LOGICAL ldrs INTEGER unit c Local: c ------ integer length,ig,l parameter (length = 100) real tab_cntrl(length) ! tableau des parametres du run integer ierr, setvdim, putvdim, putdat, setname,cluvdb integer setdim integer ind1,indlast c----------------------------------------------------------------------- write (*,*) 'dans iniwritefi, idayref =' , idayref DO l=1,nlayermx vert_coor(l)=float(l) ENDDO DO l=1,nlayermx+1 vert2_coor(l)=float(l) ENDDO DO ig=1,ngridmx hor_coor(ig)=float(ig) ENDDO DO l=1,nsoilmx surf_coor(l)=float(l) ENDDO DO l=1,length tab_cntrl(l)=0. ENDDO ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c pour la DOCUMENTATION (fichier io/maj/fi_cntl) ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Info sur la grille physique tab_cntrl(1) = float(ngridmx) ! nombre de points de la grille physique tab_cntrl(2) = float(nlayermx) ! nombre de couches tab_cntrl(3) = float(idayref) ! jour 0 c Info sur la Planete Mars pour la dynamique et la physique tab_cntrl(5) = rad ! rayon de mars(m) ~3397200 tab_cntrl(6) = omeg ! vitesse de rotation (rad.s-1) tab_cntrl(7) = g ! gravite (m.s-2) ~3.72 tab_cntrl(8) = mugaz ! Masse molaire de l'atm (g.mol-1) ~43.49 tab_cntrl(9) = rcp ! = r/cp ~0.256793 (=kappa dans dynamique) tab_cntrl(10) = daysec ! duree du sol (s) ~88775 tab_cntrl(11) = dtphys ! pas de temps de la physique tab_cntrl(12) = 0. tab_cntrl(13) = 0. c Info sur la Planete Mars pour la physique uniquement tab_cntrl(14) = year_day ! duree de l'annee (sols) ~668.6 tab_cntrl(15) = periheli ! dist.min. soleil-mars (Mkm) ~206.66 tab_cntrl(16) = aphelie ! dist.max. soleil-mars (Mkm) ~249.22 tab_cntrl(17) = peri_day ! date du perihelie (sols depuis printemps) tab_cntrl(18) = obliquit ! Obliquite de la planete (deg) ~23.98 c Couche limite et Turbulence tab_cntrl(19) = z0 ! surface roughness (m) ~0.01 tab_cntrl(20) = lmixmin ! longueur de melange ~100 tab_cntrl(21) = emin_turb ! energie minimale ~1.e-8 c propriete optiques des calottes et emissivite du sol tab_cntrl(22) = albedice(1) ! Albedo calotte nord ~0.5 tab_cntrl(23) = albedice(2) ! Albedo calotte sud ~0.5 tab_cntrl(24) = emisice(1) ! Emissivite calotte nord ~0.95 tab_cntrl(25) = emisice(2) ! Emissivite calotte sud ~0.95 tab_cntrl(26) = emissiv ! Emissivite du sol martien ~.95 tab_cntrl(31) = iceradius(1) ! mean scat radius of CO2 snow (north) tab_cntrl(32) = iceradius(2) ! mean scat radius of CO2 snow (south) tab_cntrl(33) = dtemisice(1) ! time scale for snow metamorphism (north) tab_cntrl(34) = dtemisice(2) ! time scale for snow metamorphism (south) c Proprietes des poussiere aerosol tab_cntrl(27) = tauvis ! profondeur optique visible moyenne tab_cntrl(28) = 0. tab_cntrl(29) = 0. tab_cntrl(30) = 0. ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c Ancien code radiatif c tab_cntrl(28) = piza(1,1) ! dust vis. single scat alb c tab_cntrl(29) = cga(1,1) ! dust vis. assym. factor c tab_cntrl(30) = caer(1,1)!ratio (mean IR opt.depth)/visible IF(ldrs) THEN c Ecriture DRS du tableau des parametres du run ierr = CLUVDB() ierr = SETDIM(1,'index',' ',length,1.,float(length)) ierr = SETNAME(descript,'controle','Tableau des parametres du run' . ,' ',' ') ierr = PUTDAT(unit,tab_cntrl) c Ecriture de coordonnees bidons ierr = SETNAME(descript,'hor_coor','Indice horizontal', . 'Entier',' ') ierr = PUTVDIM(unit,ngridmx,hor_coor,ind1,indlast) ierr = SETNAME(descript,'vert_coor','Indice vertical', . 'Entier',' ') ierr = PUTVDIM(unit,nlayermx,vert_coor,ind1,indlast) ierr = SETNAME(descript,'vert2_coor','Indice vertical (bords)', . 'Entier',' ') ierr = PUTVDIM(unit,nlayermx+1,vert2_coor,ind1,indlast) ierr = SETNAME(descript,'surf_coor','Indice vertical sol', . 'Entier',' ') ierr = PUTVDIM(unit,nsoilmx,surf_coor,ind1,indlast) c Ecriture des champs horizontaux ierr = CLUVDB() ierr = . SETVDIM(1,' ','hor_coor',' ',' ',hor_coor(1),hor_coor(ngridmx)) c Ecriture des longitudes et latitudes ierr = SETNAME(descript,'long','Longitudes', . 'degres',' ') ierr = PUTDAT(unit,long) ierr = SETNAME(descript,'lati','Latitudes', . 'degres',' ') ierr = PUTDAT(unit,lati) ierr = SETNAME(descript,'area','Aires des mailles', . 'm^2',' ') ierr = PUTDAT(unit,area) c geopotentiel au sol ierr = SETNAME(descript,'phisfi','Geopotentiel au sol init', . 'm^2 s^-^2',' ') ierr = PUTDAT(unit,phisfi) c fichier albedodat ierr = SETNAME(descript,'albedodat','Albedo du sol nu', . ' ',' ') ierr = PUTDAT(unit,albedodat) c fichier inertiedat ierr = SETNAME(descript,'inertiedat','Inertie thermique du sol', . 'SI',' ') ierr = PUTDAT(unit,inertiedat) c!-*- c fichier pour les programmes de Francois Lott ierr = SETNAME(descript,'zmea','Relief moyen', . 'm',' ') ierr = PUTDAT(unit,zmea) ierr = SETNAME(descript,'zstd','ecartype du relief', . 'm',' ') ierr = PUTDAT(unit,zstd) ierr = SETNAME(descript,'zsig','Relief: parametre sigma', . 'm',' ') ierr = PUTDAT(unit,zsig) ierr = SETNAME(descript,'zgam','Relief: parametre gamma', . 'm',' ') ierr = PUTDAT(unit,zgam) ierr = SETNAME(descript,'zthe','Relief: parametre theta', . 'm',' ') ierr = PUTDAT(unit,zthe) c!-*- ELSE print*,'TABLEAU DE CONTROLE PHYSIQUE!' print*,tab_cntrl c write(unit+1,*) 'tab_cntrl' c write(unit+1,'(3e25.15)') tab_cntrl c write(unit+1,*) 'long,lati,area,phisfi' c write(unit+1,'(3e25.15)') long,lati,area,phisfi c write(unit+1,*) 'albedodat,inertiedat' c write(unit+1,'(3e25.15)') albedodat,inertiedat c write(unit+1,*) 'zmea,zstd,zsig,zgam,zthe' c write(unit+1,'(3e25.15)') zmea,zstd,zsig,zgam,zthe write(unit) tab_cntrl write(unit) long,lati,area,phisfi write(unit) albedodat,inertiedat write(unit) zmea,zstd,zsig,zgam,zthe ENDIF RETURN END