Hi all, I'm trying to get, at this point, just a single vector file to plot in paraview. I'm creating ensight gold files in fortran compiled with the new GCC compiler set (i've tried older ones as well) on OS X 10.6. My case files will load, the variables will show up but there's not information in them. I can also see my grid. I'm attempting to use, what i think, is a fairly common fortran program to make case and ensight gold field files. I have some C subroutines that do this fine, but i'd like to have a Fortran version but no matter what i do nothing seems to work, what am i missing?
Any help, or a better way of doing this in fortran, would be much appreciated. Thanks, and hit me up if you need any other information. ! ****************************************************************************** subroutine WriteRectEnsightGeo(imin,imax,jmin,jmax,kmin,kmax,x1,x2,x3,FileName,WriteBinary) implicit none INTEGER,INTENT(IN)::imin,imax,jmin,jmax,kmin,kmax REAL*8,DIMENSION(imax),INTENT(IN)::x1 REAL*8,DIMENSION(jmax),INTENT(IN)::x2 REAL*8,DIMENSION(kmax),INTENT(IN)::x3 LOGICAL ,INTENT(IN)::WriteBinary CHARACTER(LEN=80) ,INTENT(IN)::FileName ! character(LEN=80)::buffer character(LEN=80)::binary_form character(LEN=80)::file_description1,file_description2 character(LEN=80)::node_id,element_id character(LEN=80)::part,description_part,block integer::FileUnit,i,j,k,npart,isize,jsize,ksize integer::reclength FileUnit = 40 binary_form ='C Binary' file_description1='Ensight Model Geometry File Created by ' file_description2='WriteRectEnsightGeo Routine' node_id ='node id off' element_id ='element id off' part ='part' npart =1 description_part ='3D periodic channel' block ='block rectilinear' isize=imax-imin+1 jsize=jmax-jmin+1 ksize=kmax-kmin+1 reclength=80*8+4*(4+isize+jsize+ksize) if (WriteBinary) then open (unit=FileUnit,file=trim(FileName)//'.geo',& form='UNFORMATTED',access="direct",recl=reclength) write(unit=FileUnit,rec=1) binary_form & ,file_description1 & ,file_description2 & ,node_id & ,element_id & ,part,npart & ,description_part & ,block & ,isize,jsize,ksize & ,(sngl(x1(i)),i=imin,imax) & ,(sngl(x2(j)),j=jmin,jmax) & ,(sngl(x3(k)),k=kmin,kmax) else open (unit=FileUnit,file=trim(FileName)//'.geo') write(FileUnit,'(A)') 'Ensight Model Geometry File Created by ' write(FileUnit,'(A)') 'WriteRectEnsightGeo Routine' write(FileUnit,'(A)') 'node id off' write(FileUnit,'(A)') 'element id off' write(FileUnit,'(A)') 'part' write(FileUnit,'(i10)')npart write(FileUnit,'(A)') '3D periodic channel' write(FileUnit,'(A)') 'block rectilinear' write(FileUnit,'(3i10)') isize,jsize,ksize write(FileUnit,'(E12.5)') (x1(i),i=imin,imax) write(FileUnit,'(E12.5)') (x2(j),j=jmin,jmax) write(FileUnit,'(E12.5)') (x3(k),k=kmin,kmax) endif end subroutine WriteRectEnsightGeo !********************************************************* ! ****************************************************************************** subroutine WriteEnsightVar(ndv,m1,m2,m3,var,VarName,WriteBinary, & imin,imax,jmin,jmax,kmin,kmax) implicit none INTEGER ,INTENT(IN)::m1,m2,m3,ndv INTEGER ,INTENT(IN)::imin,imax,jmin,jmax,kmin,kmax REAL*8,DIMENSION(ndv,m1,m2,m3),INTENT(IN)::var CHARACTER*80,INTENT(IN)::Varname LOGICAL ,INTENT(IN)::WriteBinary character(len=80):: VarFileName,buffer character(len=80):: part,block integer::FileUnit,i,j,k,npart,m,reclength FileUnit = 40 part ='part' npart=1 block='block rectilinear' reclength=80*3+4*(1+(imax-imin+1)*(jmax-jmin+1)*(kmax-kmin+1)*ndv) if (ndv.eq.1)VarFileName = trim(Varname)//'.scl' if (ndv.eq.3)VarFileName = trim(Varname)//'.vec' ! write(*,'(5x,A)') VarFileName if(WriteBinary) then open (unit=FileUnit,file=VarFileName, & form='UNFORMATTED',access="direct",recl=reclength) write(unit=FileUnit,rec=1) VarFileName & ,part,npart,block & ,((((SNGl(var(m,i,j,k)) & ,i=imin,imax) & ,j=jmin,jmax) & ,k=kmin,kmax) & ,m=1,ndv) else open (unit=FileUnit,file=VarFileName) write(buffer,'(a,a)') Varname write(FileUnit,'(A)') buffer write(FileUnit,'(A)') 'part' write(FileUnit,'(I10)')npart write(FileUnit,'(A)') 'block rectilinear' do m=1,ndv write(FileUnit,'(e12.5)') & (((SNGl(var(m,i,j,k)),i=imin,imax),j=jmin,jmax),k=kmin,kmax) enddo endif close(FileUnit) end subroutine WriteEnsightVar ! ! ****************************************************************************** ! ****************************************************************************** subroutine EnsightCase(VarName,GeoName,VarType,ntini,nstop,nprint) implicit none INTEGER,INTENT(IN)::VarType,nstop,ntini,nprint CHARACTER(LEN=80),INTENT(IN)::Varname CHARACTER(LEN=80),INTENT(IN)::GeoName integer::FileUnit,i,nfile write(*,'(/2A)') ' Creating case file for Ensight and Paraview: ' & ,Varname nfile=(nstop-ntini+1)/nprint FileUnit = 40 open(FileUnit,file=trim(Varname)//'.case') write(FileUnit,10) trim(GeoName)//'.geo' 10 format( & 'FORMAT' ,/ , & 'type: ensight gold',//, & 'GEOMETRY' ,/ , & 'model: ',A ,//, & 'VARIABLE') if (nfile.eq.1) then if(VarType.eq.1) & write(FileUnit,15)trim(Varname),trim(Varname)//'.scl' if(VarType.eq.3) & write(FileUnit,25)trim(Varname),trim(Varname)//'.vec' else if(VarType.eq.1) & write(FileUnit,15)trim(Varname),trim(Varname)//'**********.scl' if(VarType.eq.3) & write(FileUnit,25)trim(Varname),trim(Varname)//'**********.vec' write(FileUnit,45) nfile,ntini,nprint write(FileUnit,'(f15.3)') (ntini+float(i)*nprint,i=1,nfile) endif close(FileUnit) 15 format('scalar per node: ',A,' ', A) 25 format('vector per node: ',A,' ', A) 45 format( & /,'TIME ' , & /,'time set: 1 ' , & /,'number of steps:' ,i4 , & /,'filename start number:',i10 & /,'filename increment:' ,i4 & /,'time values: ' & ) end subroutine EnsightCase ! ! ****************************************************************************** _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview