C -*- Mode: Fortran; -*- c----------------------------------------------------------------- c Ravi Samtaney c Copyright 2001 c Princeton Plasma Physics Laboratory c All Rights Reserved c----------------------------------------------------------------- c $Log$ c subroutine DumpOutFluidParallel(ux) use mesh_parms use mesh_common use properties use iounits double precision:: ux(IXLO:IXHI,IYLO:IYHI,nvar) character*50 infile, outfile integer nbytes, offset,itmp integer FileNumber character*50 DumpFile integer i,j,k,l FileNumber = iprocx*10000 + iprocy*100 + iprocz write(DumpFile, 1000) float(FileNumber) / 1000000 1000 format(4Hdump, f7.6) open(idump, file=DumpFile, form='unformatted') write(6,*) 'writing to file',iproc_idx,DumpFile write(idump) rgas,gamma,wmol write(idump)ux close(idump) return end c------------------------------------------------------------------------- subroutine DumpInFluidParallel(ux) use mesh_parms use mesh_common use properties use iounits double precision:: ux(IXLO:IXHI,IYLO:IYHI,nvar) character*50 infile, outfile integer nbytes, offset,itmp integer FileNumber character*50 DumpFile integer i,j,k,l FileNumber = iprocx*10000 + iprocy*100 + iprocz write(DumpFile, 1000) float(FileNumber) / 1000000 1000 format(4Hdump, f7.6) open(idump, file=DumpFile, form='unformatted') write(6,*) 'reading from file',iproc_idx,DumpFile read(idump) rgas,gamma,wmol read(idump)ux close(idump) return end c---------------------------------------------------------------- subroutine WriteBinaryFileParallel(ux,index) use mesh use mesh_common use properties use iounits double precision:: ux(IXLO:IXHI,IYLO:IYHI, nvar) double precision:: vx(IXLO:IXHI,IYLO:IYHI, nvar) double precision:: tmp(NXlsize, NYlsize) double precision:: xn(NXlsize, NYlsize) double precision:: yn(NXlsize, NYlsize) double precision:: zn(NXlsize, NYlsize) double precision:: press,rho,u,v,w,bi,bj,bk integer i,j,k integer index integer nbytes, offset,itmp, ierr, nelements character*50 outfile,fldfile, meshfile integer,parameter::ifld=91 c write(outfile,1000) float(iproc_idx)/1000.0, & float(index)/1000000.0 1000 format(6Houtput,f4.3,f7.6) open(ibinoutput,file=outfile,form='unformatted') c call ConservedToPrimitive(ux,vx) c vx(:,:,4)=vx(:,:,4)-0.5D0* & (vx(:,:,1)**2+ & vx(:,:,2)**2+ & vx(:,:,3)**2) c do i=1,nvar,1 tmp(1:nxlocal,1:nylocal)=vx(1:nxlocal,1:nylocal,i) write(ibinoutput) tmp enddo do j=1,nylocal,1 do i=1,nxlocal,1 xn(i,j)=Rc(i,j) yn(i,j)=Zc(i,j) enddo enddo c write(ibinoutput) xn write(ibinoutput) yn c close(ibinoutput) c return end c---------------------------------------------------------------- subroutine WriteTextFile(Rn,Zn,index) use mesh use mesh_common use properties use iounits c double precision:: Rn(IXLO:IXHI+1,IYLO:IYHI+1) double precision:: Zn(IXLO:IXHI+1,IYLO:IYHI+1) double precision:: ux(IXLO:IXHI,IYLO:IYHI,nvar) integer i,j,k integer index integer nbytes, offset,itmp, ierr, iter character*50 outfile c write(outfile,1000) float(iproc_idx)/1000.0, & float(index)/1000000.0 1000 format(6Houtput,f4.3,f7.6) open(itecoutput,file=outfile,form='formatted') c c do j=iylo,iyhi,1 c do i=ixlo,ixhi,1 do i=1,nxlocal+1,1 do j=1,nylocal+1,1 write(itecoutput,*) i, j,Rn(i,j), Zn(i,j) c write(itecoutput,*) i, j,Rc(i,j), Zc(i,j) enddo write(itecoutput,*) enddo c close(itecoutput) end c c c----------------------------------------------------------------------- subroutine WriteAVSFile2D(ux,index) use mesh use mesh_common use properties use iounits double precision:: ux(IXLO:IXHI,IYLO:IYHI, nvar) double precision:: vx(IXLO:IXHI,IYLO:IYHI, nvar) double precision:: div(IXLO:IXHI,IYLO:IYHI) double precision:: tmp(NXlsize, NYlsize) real:: xn(NXlsize, NYlsize) real:: yn(NXlsize, NYlsize) real:: zn(NXlsize, NYlsize) double precision:: press,rho,u,v,w,bi,bj,bk integer i,j,k integer index integer nbytes, offset,itmp, ierr, nelements character*50 outfile,fldfile, meshfile integer,parameter::ifld=91 c c File name for data write(outfile,1000) float(iproc_idx)/1000.0, & float(index)/1000000.0 1000 format(6Houtavs,f4.3,f7.6) c File name for coords write(meshfile,3000) float(iproc_idx)/1000.0, & float(index)/1000000.0 3000 format(3Hxyz,f4.3,f7.6) c c Write out fld file if(iprocx.eq.1.and.iprocy.eq.1.and.iprocz.eq.1) then write(fldfile,2000) float(index)/1000000.0 2000 format(6Houtavs,f7.6,'.fld') open(ifld,file=fldfile,form='formatted') write(ifld,1001) 1001 format('# AVS field file',/"" & 'ndim=2') write(ifld,1002) nx, ny 1002 format('dim1=',i4,/"", & 'dim2=',i4,/"", & 'nspace=2'/"", & 'veclen=8'/"", & 'data=double'/"", & 'field=irregular') c c do i=1,3,1 do i=1,2,1 write(ifld,1003) i,meshfile, & 4+(i-1)*nxlocal*nylocal*4+8*(i-1) c & 4+(i-1)*nxlocal*nylocal*8+8*(i-1) 1003 format('coord ',i2,' file=',a50, & 'filetype=binary skip=',i8 & ' offset=0') enddo c do i=1,nvar,1 write(ifld,1004) i,outfile, & 4+(i-1)*nxlocal*nylocal*8+8*(i-1) 1004 format('variable',i2,' file=',a50, & 'filetype=binary skip=',i8 & ' offset=0') enddo endif open(itecoutput,file=outfile,form='unformatted') c call ConservedToPrimitive(ux,vx) c do i=1,nvar,1 tmp=vx(1:nxlocal,1:nylocal,i) write(itecoutput) tmp enddo close(itecoutput) c do j=1,nylocal,1 do i=1,nxlocal,1 xn(i,j)=Rc(i,j) zn(i,j)=Zc(i,j) enddo enddo c open(itecoutput,file=meshfile,form='unformatted') write(itecoutput) xn write(itecoutput) zn close(itecoutput) end c c