[SciPy-user] Reading Binary Files

Lorenzo Isella lorenzo.isella at gmail.com
Thu Mar 8 13:11:59 EST 2007


Dear All,
I hope this is not too off-topic. I have been given an old but
reliable fortran code for fluid dynamic simulations. It saves a a lot
of data using 3D arrays (q1,q2,q3,pr) as a binary file.
I cut and paste the part of the fortran code saving the data into a binary file:
(in the following iav=1 and iwrq2=1).


if(iav.eq.1) then
      namfil='field'//ipfi//'.dat'
      pnamfil='field'//ipfi//'.dat'
      open(13,file=namfil,form='unformatted')
                   else

      pnamfil=filcnw
      print*, "filcnw is", filcnw
      open(13,file=filcnw,form='unformatted')
                   endif
      print*, "iav is", iav

      write(6,*) pnamfil,'written at t=',
     1          time, ' prma mi=',prma,prmi
      nfil=13
      rewind(nfil)
      write(nfil) n1,n2,n3
      write(nfil) ros,alx3d,ren,time
      if(iwrq2.eq.1) then
c
c    large memory occupancy
c
       print*,"I am saving the extended results"
      write(nfil) (((q1(i,j,k),i=1,n1),j=1,n2),k=1,n3),
     1            (((q2(i,j,k),i=1,n1),j=1,n2),k=1,n3),
     1            (((q3(i,j,k),i=1,n1),j=1,n2),k=1,n3),
     1            (((pr(i,j,k),i=1,n1),j=1,n2),k=1,n3)
                     else
c
c    reduced memory occupancy
c    the pressure is not necessary for restarting files
c    even for post processing can be saved but then
c    the advancement of a time step should be performed
c
      write(nfil) (((q1(i,j,k),i=1,n1),j=1,n2),k=1,n3),
     1            (((q3(i,j,k),i=1,n1),j=1,n2),k=1,n3),
     1            (((pr(i,j,k),i=1,n1),j=1,n2),k=1,n3)
                     endif
      write(nfil) ntime,ntt,nav
      close(nfil)



The results is for instance file field0010.dat, which I try reading in
Python by using pylab and the statement:

s = file( './field0010.dat','rb' ).read( )

newarr = fromstring(s ,Float)

but the content of newarr seems absolutely wrong (number of the order
of 1e+309 which are not produced or saved in the simulations...).
Am I doing something wrong?

Kind Regards

Lorenzo



More information about the SciPy-User mailing list