comp.lang.idl-pvwave archive - RDF feed
type: channel
description: Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado
items: reading unformatted binary data (WRITEU) with FORTRAN routine
items: Re: reading unformatted binary data (WRITEU) with FORTRAN routine

reading unformatted binary data (WRITEU) with FORTRAN routine
type: item
description: Well, this is sort of a FORTRAN question, but it has an IDL angle, so maybe someone here can help me. I've stored an array of floating points in an unformated binary data file using WRITEU in IDL. Can anyone tell me how to read the data back using FORTRAN? Terry Kucera kucera@stars.gsfc.nasa.gov
creator: kucera
date: 1994-08-11T17:27:00-00:00

Re: reading unformatted binary data (WRITEU) with FORTRAN routine
type: item
description: In article <11AUG199413273078@stars.gsfc.nasa.gov>, kucera@stars.gsfc.nasa.gov (Terry Kucera) writes... > Well, this is sort of a FORTRAN question, but it has an IDL angle, > so maybe someone here can help me. > I've stored an array of floating points in an unformated binary data file > using WRITEU in IDL. Can anyone tell me how to read the data back using > FORTRAN? Terry Kucera Thanks for the replies. We have found that the following works (on our DEC Alpha, anyway) In IDL: open the file with OPENW,unit,'filename',/segmented & WRITEU,data Then in FORTRAN, OPEN(UNIT=15,FILE='filename',STATUS='OLD',READONLY, 1 access='sequential',form='unformatted') READ(15) DATA where DATA has been defined ahead of time, of course. Terry
creator: kucera
date: 1994-08-11T22:04:00-00:00

Re: reading unformatted binary data (WRITEU) with FORTRAN routine
type: item
description: In article <11AUG199413273078@stars.gsfc.nasa.gov> kucera@stars.gsfc.nasa.gov (Terry Kucera) writes: > Well, this is sort of a FORTRAN question, but it has an IDL angle, > so maybe someone here can help me. > I've stored an array of floating points in an unformated binary data file > using WRITEU in IDL. Can anyone tell me how to read the data back using > FORTRAN? Terry Kucera > kucera@stars.gsfc.nasa.gov This is actually a very complex question. Fortran does not standardize file formats. This is (IM-not-HO) the primary reason that C and C++ have largely replaced Fortran in most of the software market, although C-Fanatics would disagree (and C has some other minor advantages). In Sun Fortran, I use the following open(1,file=...,form='unformatted',access='direct',recl=1, & status='old') irec=1 ... read(1,rec=irec)array irec=irec+ <# of bytes in array> ... (if you are using a large array, and your compiler gives you a compile or run-time error about reading too many bytes, just read smaller parts of the array.) The same steps will work with SGI Fortran, if you compile everything with the -bytereclen switch. I would guess that, that would also work on most Unix work stations, but I may be wrong. With Microsoft Fortran 4.01 (on PCs--very old) I think the open statement looks like open(1,file=...,form='binary',access='direct',recl=1, & status='old') With Lahey Fortran (for the PC) I think it looks like open(1,file=...,form='transparent',access='direct',recl=1, & status='old') I have assumed that the binary representation was the same on the machines doing input and output. If not (e.g., when transfering data between PC and Sun), you may be able to compensate for byte order by using the byteorder,array statement in IDL, before you WRITEU the array. I very much wish "they" would make raw file format I/O a part of the Fortran standard. (I complained on the Fortran news group, and it was suggested I should join the standards groups. What a waste of time.) There is another s…
creator: grunes
date: 1994-08-15T15:19:03-00:00