[Numpy-discussion] problem with FortranFile

Brennan Williams brennan.williams@visualreservoir....
Sun Nov 8 17:33:47 CST 2009


I'm using FortranFile to read a binary Fortran file.
It has a bit of header data at the top of the file which I'm reading 
with a combination of readString and struct.unpack
This is then followed by a number of lines/records, each of which has 20 
double precision reals/floats.
For some reason it reads the first 19 ok and then things start going wrong.

To read the double precision data I'm using....

          for il in range(0,nlines):
              try:
                  darray=f.readReals('d')
             except:
                 print 'problem reading well data line',il


I've added print statements to my code and to fortranfile.py and the 
print output I get is....

line 19
readRecord:l= 160
readRecord:len(data_str)= 160
readRecord:check_size= 160
readReals:len(data_str)= 160
calcsizeprec= 8
num= 20
numbers
(4.2843303680419922, 0.0, 0.0, 0.0, 4955.73974609375, 0.0, -1000.0, 
-1000.0, 0.0, 0.0, 0.0, 21.22749137878418, 0.0, 0.0, 0.0, 0.0, 
0.2054678201675415, 0.0, 6386.78271484375, 6356.27001953125)
il= 19 dsize= 20
darray= [  4.28433037e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   4.95573975e+03   0.00000000e+00  -1.00000000e+03  -1.00000000e+03
   0.00000000e+00   0.00000000e+00   0.00000000e+00   2.12274914e+01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   2.05467820e-01   0.00000000e+00   6.38678271e+03   6.35627002e+03]
---------------------
line 20
readRecord:l= 160
readRecord:len(data_str)= 132
problem reading well data line 20


line 19 is ok, readReals calls readRecord and the length of the data is 
160 and check_size = l etc etc.

line 20 is not ok, the 4-byte length value at the start of the record is 
160 but the data_str=self.read(l) line only gets 132 bytes and not 160.

The data file itself is ok as I've written a small Fortran program to 
read it.

So, am I doing something wrong?

I have a little test .py file and data file I can include if it helps.

Regards

Brennan





More information about the NumPy-Discussion mailing list