comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: need help reading binary FORTRAN data
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: need help reading binary FORTRAN data [message #68329 is a reply to message #68328] Tue, 20 October 2009 10:38 Go to previous messageGo to previous message
Andy Heaps is currently offline  Andy Heaps
Messages: 22
Registered: March 2006
Junior Member
Hi Laura,
as you say this sounds a little strange. Do you know what type of
machine the file was written out on? Was it Linux, 32/64bit and was it
written as a FORTRAN unformatted file?

I would have thought that:
openr, ilun, filename, /get_lun, /f77_unformatted
model = '1111'
header = intarr(7)
readu, ilun, model, header

Would have read the file headers from what you've said.

Could you put the file somewhere on a web server so that we could have a
look? If not, is there a web site you could point to where you got this
sort of file from?

Cheers
Andy



Laura wrote:
> Hi, I'm trying to read a binary data file (seems FORTRAN oriented)
> into IDL, but got strange result. Maybe someone can help me to figure
> it out here.
>
> The file description is like this:
>
> Record #1
>
> * CHAR*4 Meteorological MODEL Identification
> * INT*4 Meteorological file starting time (YEAR, MONTH, DAY, HOUR,
> FORECAST-HOUR)
> * INT*4 NUMBER of starting locations
> * INT*4 Concentration packing flag (0=no 1=yes)
>
> Record #2
> ......
>
> However, when I tried using following IDL code,
>
> openr, ilun, filename, /get_lun
> model = '1111'
> header = lonarr(7)
> readu, ilun, model, header
>
> I get empty string in model, and weird long integer values in header.
>
> Then I looked at the binary file myself and found the first 4 bytes
> are "00 00 00 20', which seems indicating the length of "Record #1",
> the second four bytes are "4E 41 4D 53", seems to be the model string.
> So I use the following code
>
> openr, ilun, filename, /get_lun
> junk = 1L
> model = '1111'
> header = lonarr(7)
> readu, ilun, junk, model, header
>
> This time I got the string in "model" right, but the value in "junk"
> is still strange, not the "32" as I expected. If I use a bytarr(4)
> array to read each intr*4 value, the value I got matched what I saw in
> the binary file (e.g., I got "0 0 0 32" for the "00 00 00 20").
>
> Is there something between the FORTRAN int*4 and the IDL LONG needs
> special treatment?
>
> BTW, I also tried to open the file with a /F77_UNFORMATTED keyword,
> but IDL complained it's a corrupted f77 unformatted file. SWAP_ENDIAN
> doesn't work either.
>
> Any thoughts?
>
> Thanks,
>
> Laura
>
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: Database of World's Administrative Areas
Next Topic: Re: Rrun itools at breakpoint

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Oct 10 08:24:46 PDT 2025

Total time taken to generate the page: 0.47759 seconds