[Paraview] My fortran routines to Wrtie binary files in Ensight format for rectilinear grid

Stéphane Montésino Stephane.Montesino at hmg.inpg.fr
Mon Feb 6 02:10:35 EST 2006


Ok, VTK 
>has an interface to write VTK files from a Fortran code, but it obliges 
>me to install, or pick and compile the VTK routines needed with my 
>program, in any machine I intend to run my program. My solution has 
>been working fine for me, and I hope it'll keep working for a long 
>time... As I work basicaly with CFD, and my team group has licenses for 
>the Ensight visualizer, I've been writing all my files in Ensight's 
>format. It's easy to implement in C/C++ or Fortran, portable (thank God 
>Paraview has support to this format), parallel through the 
>server-of-server casefile extension and I can keep using Ensight when 
>I'd like to do something that Paraview can't do yet - almost nothing it 
>happen  ;-) 
>
>If you are interested in trying to use Ensight's format, get the 
>following routines 
>http://www.nacad.ufrj.br/~rnelias/public/EnsightFortranRoutines.zip
Renato N. Elias
===============================================
PhD student - http://www.nacad.ufrj.br/~rnelias
High Performance Computing Center
Federal University of Rio de Janeiro
Rio de Janeiro, Brazil
+55(21) 2562-8080 



Thanks to your routines I modified for rectilinear grid, I can use Binary file......
The Asci .case file is quasi the same
!    ******************************************************************************
!
!    WriteEnsightSca writes result data in Ensight's format
!
!    n1,n2,n3....: number of nodes in the x1,x2,x3 direction
!    sca.........: scalar result data
!    radical.....: word used to build filenames
!    ntime.......: result file identifier
!
!   By  Steph. Montesino    ******************************************************************************
      subroutine WriteEnsightSca(n1,n2,n3,sca,radical,WriteBinary)

      implicit none

      INTEGER                   ,INTENT(IN)::n1,n2,n3
      REAL*8,DIMENSION(n1,n2,n3),INTENT(IN)::sca
      CHARACTER*50              ,INTENT(IN)::radical
      LOGICAL                   ,INTENT(IN)::WriteBinary


      character ScaFileName*54,buffer*80
      integer::nfilsca,i,j,k,part

      nfilsca = 21
      part=1

!     SCALAR FILE (PRESSURE)
      ScaFileName = trim(radical)//'.scl'
      write(*,'(5x,A)') ScaFileName

	if(WriteBinary) then
        open (unit=nfilsca,file=ScaFileName,form='binary')
        write(buffer,'(a,e12.5)') 'time',0.d0 
        write(nfilsca) buffer   
        buffer= 'part'
        write(nfilsca)  buffer
        write(nfilsca)  part
        buffer= 'block rectilinear'
        write(nfilsca) buffer
        write(nfilsca) (((SNGl(sca(i,j,k)),i=1,n1),j=1,n2),k=1,n3)
      else
        open (unit=nfilsca,file=ScaFileName)
        write(buffer,'(a,a)') radical  
        write(nfilsca,'(A)')  buffer   
        write(nfilsca,'(A)') 'part'
        write(nfilsca,'(I10)')part
        write(nfilsca,'(A)') 'block rectilinear'
        write(nfilsca,'(e12.5)') (((sca(i,j,k),i=1,n1),j=1,n2),k=1,n3)
      endif

      close(nfilsca)

      end  subroutine
!
******************************************************************************
!                      subrout  write_rectilinear_ensight_geo
!   By  Steph. Montesino
******************************************************************************
!
!    writes mesh data in Ensight's ascii format for rectilinear geometry
!
!    n1,n2,n3....: number of nodes in the x1,x2,x3 direction
!    x1,x2,x3....: coordinates 
!
      subroutine WriteRectEnsightGeo(n1,n2,n3,x1,x2,x3,name,WriteBinary)

      implicit none

      INTEGER             ,INTENT(IN)::n1,n2,n3
      REAL*8,DIMENSION(n1),INTENT(IN)::x1
      REAL*8,DIMENSION(n2),INTENT(IN)::x2
      REAL*8,DIMENSION(n3),INTENT(IN)::x3
      LOGICAL             ,INTENT(IN)::WriteBinary

	character name*30, buffer*80
      integer::nfil,i,j,k,part

      nfil = 11
      part=1

      if (WriteBinary) then
        open (unit=nfil,file=trim(name)//'.geo',form='binary')
        buffer='Fortran Binary'
        write (nfil) buffer
        buffer='Ensight Model Geometry File Created by '
        write (nfil) buffer
        buffer='WriteRectEnsightGeo Routine'
        write (nfil) buffer
        buffer='node id off'
        write (nfil) buffer
        buffer='element id off'
        write (nfil) buffer
        buffer='part'
        write (nfil) buffer
        part=1
        write (nfil) part
        buffer='3D periodic channel'
        write (nfil) buffer
        buffer='block rectilinear'
        write (nfil) buffer
        write(nfil) n1,n2,n3
        write(nfil) (sngl(x1(i)),i=1,n1)
        write(nfil) (sngl(x2(j)),j=1,n2)
        write(nfil) (sngl(x3(k)),k=1,n3)
      else
        open (unit=nfil,file=trim(name)//'.geo')
        write (nfil,'(A)') 'Ensight Model Geometry File Created by '
        write (nfil,'(A)') 'WriteRectEnsightGeo Routine'
        write (nfil,'(A)') 'node id off'
        write (nfil,'(A)') 'element id off'
        write (nfil,'(A)') 'part'
        write (nfil,'(i10)')part
        write (nfil,'(A)') '3D periodic channel'
        write (nfil,'(A)') 'block rectilinear'
        write (nfil,'(3i10)') n1,n2,n3
        write(nfil,'(E12.5)') (x1(i),i=1,n1)
        write(nfil,'(E12.5)') (x2(j),j=1,n2)
        write(nfil,'(E12.5)') (x3(k),k=1,n3)
      endif

      end subroutine


-------------- next part --------------
A non-text attachment was scrubbed...
Name: Stephane.Montesino.vcf
Type: text/x-vcard
Size: 308 bytes
Desc: not available
Url : http://public.kitware.com/pipermail/paraview/attachments/20060206/f0a743c1/Stephane.Montesino.vcf


More information about the ParaView mailing list