*=*=*=*= gradsread.html =*=*=*=*
FUNCTION gradsread (unit,variable,var,it) c======================================================================= c Objet: c ------ c Lecture d'un champ du modele 2D ou 3D instantanne c dans un fichier DRS. c arguments: c ---------- c entree: c ------- c unit INTEGER unite logique pour la lecture DRS c varname character*100 nom de la variable DRS c it INTEGER indice du temps a lire c sortie: c ------- c var REAL(surdimension) variable c======================================================================= implicit none #include "dimensions.h" #include "paramet.h" INTEGER gradsread INTEGER imx,ijlmx parameter (ijlmx=(iim+1)*(jjm+1)*(llm+1)) REAL var(iip1,jjp1,llm),zvar(ijlmx) character*100 variable,zvarname INTEGER i,j,l,lnblnk,longueur,im INTEGER unit,it,getnd,ix,ivar,ij integer nvarmx,nvar parameter (nvarmx=100) integer reclength,nlev,rec,nrectot character*40 varname common/gradsr/rec(nvarmx),varname(nvarmx),nlev(nvarmx) s ,reclength,nrectot,nvar print*,'Lecture de la variable ',variable print*,'variable 1',varname(1) print*,'variable 2',varname(2) print*,'variable 3',varname(3) print*,'variable 4',varname(4) print* print* print* zvarname=varname(1) longueur=lnblnk(variable) print*,'longu ',longueur ivar=1 dowhile(zvarname.ne.variable) print*,'ivar',ivar print*,zvarname print*,variable(1:longueur) ivar=ivar+1 zvarname=varname(ivar) enddo c print*,'IVAR=',ivar,' ',varname(ivar),' LM=',nlev(ivar) c print*,'REC ',rec(ivar) do l=1,nlev(ivar) print*,'lecture couche ',l read(unit+1,rec=(it-1)*nrectot+rec(ivar)+l-1) s (zvar((l-1)*reclength+ij),ij=1,reclength) c print*,'lecture couche ',l,' ok' im=reclength/(jjm+1) c call dump2d(im,jjm+1,zvar((l-1)*reclength+1),variable) do j=1,jjp1 do i=1,iim var(i,j,l)=zvar((l-1)*reclength+(j-1)*im+i) enddo var(iim+1,j,l)=var(1,j,l) enddo c call dump2d(iim+1,jjm+1,var(1,1,l),variable) enddo return END