*=*=*=*= write_noro.html =*=*=*=*
SUBROUTINE write_noro(unit,nq,ldrs,time,vcov,ucov,h,q,pext, . phis,zmea,zstd,zsig,zgam,zthe,nbetat) IMPLICIT NONE c================================================================= c c Ecriture des fichiers de redemarrage sous format DRS c c L.Fairhead 04/93 c Modifie par F.Lott pour stocker les champs de representation c de l'orographie a l'echelle sous-maille. c c parametres: c unit: unite logique d'ecriture c time: pas de temps de la simulation c vcov, ucov, h, pext, phis: champs a ecrire c zmea,zstd,zsig,zgam,zthe : champs a ecrire c nbetat: Nbre d'etats qui seront ecrits c c================================================================= #include "dimensions.h" #include "paramet.h" #include "description.h" #include "drsdef.h" #include "comvert.h" #include "comgeom.h" INTEGER nq LOGICAL ldrs REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm) REAL h(ip1jmp1,llm) REAL pext(ip1jmp1) REAL phis(ip1jmp1) REAL zmea(ip1jmp1),zstd(ip1jmp1),zsig(ip1jmp1) REAL zgam(ip1jmp1),zthe(ip1jmp1) REAL q(ip1jmp1,llm,nq) REAL time INTEGER nbetat INTEGER unit INTEGER ierr, setvdim, SETNAME, PUTDAT, putvdim, cluvdb INTEGER it1, it2,iq CHARACTER*2 str2 IF(ldrs) THEN c Ecriture/extension de la coordonnee temps ierr = cluvdb() ierr = SETNAME(descript,'temps','temps simule','jours',' ') ierr = putvdim(unit,1,time,it1,it2) WRITE(6,*)' writedem: it1, it2, ',it1 ,it2 c Ecriture des champs ierr = cluvdb() ierr = SETVDIM(1,' ','rlonu',' ',' ',rlonu(1),rlonu(iip1)) ierr = SETVDIM(2,' ','rlatu',' ',' ',rlatu(1),rlatu(jjp1)) ierr = SETVDIM(3,' ','sig_s',' ',' ',sig_s(1),sig_s(llm)) ierr = SETVDIM(4,' ','temps',' ',' ',time,time) ierr = SETNAME(descript,'ucov','vents u covariants','m/s',' ') ierr = PUTDAT(unit,ucov) ierr = SETVDIM(1,' ','rlonv',' ',' ',rlonv(1),rlonv(iip1)) ierr = SETVDIM(2,' ','rlatv',' ',' ',rlatv(1),rlatv(jjm)) ierr = SETNAME(descript,'vcov','vents v covariants','m/s',' ') ierr = PUTDAT(unit,vcov) ierr = SETVDIM(1,' ','rlonv',' ',' ',rlonv(1),rlonv(iip1)) ierr = SETVDIM(2,' ','rlatu',' ',' ',rlatu(1),rlatu(jjp1)) ierr = SETNAME(descript,'h','temperature potentielle',' ',' ') ierr = PUTDAT(unit,h) IF(nq.GE.1) THEN DO iq=1,nq str2(1:1)='q' WRITE(str2(2:2),'(i1.1)') iq ierr = SETNAME(descript,str2,'traceur',' ',' ') ierr = PUTDAT( unit,q(1,1,iq) ) ENDDO ENDIF ierr = cluvdb() ierr = SETVDIM(1,' ','rlonv',' ',' ',rlonv(1),rlonv(iip1)) ierr = SETVDIM(2,' ','rlatu',' ',' ',rlatu(1),rlatu(jjp1)) ierr = SETVDIM(3,' ','temps',' ',' ',time,time) ierr = SETNAME(descript,'pext','pression extensive','Pa',' ') ierr = PUTDAT(unit,pext) ierr = SETNAME(descript,'phis','geopotentiel au sol',' ',' ') ierr = PUTDAT(unit,phis) ierr = SETNAME(descript,'zmea','orography moyenne',' ',' ') ierr = PUTDAT(unit,zmea) ierr = SETNAME(descript,'zstd','dev st de la OSM',' ',' ') ierr = PUTDAT(unit,zstd) ierr = SETNAME(descript,'zsig','pente de la OSM',' ',' ') ierr = PUTDAT(unit,zsig) ierr = SETNAME(descript,'zgam','anisotropy la OSM',' ',' ') ierr = PUTDAT(unit,zgam) ierr = SETNAME(descript,'zthe','angle la OSM',' ',' ') ierr = PUTDAT(unit,zthe) ELSE IF(nq.GE.1) THEN WRITE(unit) time,ucov,vcov,h,q,pext,phis * ,zmea,zstd,zsig,zgam,zthe ELSE WRITE(unit) time,ucov,vcov,h,pext,phis * ,zmea,zstd,zsig,zgam,zthe ENDIF ENDIF RETURN END