[gradsusr] Reading 3d variable in FORTRAN after using fwrite
Hui Wang
hui.wang at noaa.gov
Sat Apr 28 00:14:08 EDT 2012
Tom,
You may try the following fortran codes,
real chi(nx,ny,nt)
open(29,file='CHI.2000.summer.dat',access='direct',
1 form='unformatted',recl=nx*ny*4)
do it=1,nt
read(29, rec=it) ((chi(i,j,it),i=1,nx),j=1,ny)
end do
For recl, it may be just "nx*ny", depending on the computer you are using.
Good luck,
Hui
On 4/27/2012 8:56 PM, Thomas Robinson wrote:
> Aloha,
>
> I used fwrite to write out a 2d variable that varies in time, so it
> has dimensions of x,y,t.
>
> nt=763
> 'set fwrite -le -sq -cl CHI.2000.summer.dat'
> 'set gxout fwrite'
> day = 360
> while (day <= nt)
> 'set t ' day
> 'd chi'
> day=day+1
> endwhile
> 'disable fwrite'
>
> This seems to work fine. When I go to try to open it using FORTRAN, I
> get an error.
>
> real chi (nx,ny,nt)
> open (29, file="CHI.2000.summer.dat", status="OLD",
> & access="sequential",form="unformatted")
> read(29)chi
>
> If I have my chi variable as (nx,ny) there is no problem. If I just
> set nt=2, then there is a problem when I run the program:
> PGFIO-F-219/unformatted read/unit=29/attempt to read/write past end of
> record.
> File name = CHI.2000.summer.dat unformatted, sequential access
> record = 1
> In source file avg_chi.f, at line number 25
>
>
> I was feeling saucey and tried to change the code up adding
> real chi_temp(nx,ny)
> and I tried this:
> do 50 it=1,nt
> write (6,*)it
> read (29)chi_temp
> do 51 ix=1,nx
> do 52 iy=1,ny
> chi(ix,iy,it)=chi_temp(ix,iy)
> 52 continue
> 51 continue
> 50 continue
>
> And this is what happened:
> 1
> 2
> 3
> 4
> PGFIO-F-217/unformatted read/unit=29/attempt to read past end of file.
> File name = CHI.2000.summer.dat unformatted, sequential access
> record = 4
> In source file avg_chi.f, at line number 29
>
> I should have about 300 time steps. Is there a limit or something?
> Any help you could provide would be very much appreciated!
>
> --
> Tom Robinson
> At-Large Graduate Student Organization Representative
> Student Caucus Representative for the Graduate Student Organization
> Graduate Student - Department of Meteorology
> 732-718-2323 <tel:732-718-2323>
>
>
> _______________________________________________
> gradsusr mailing list
> gradsusr at gradsusr.org
> http://gradsusr.org/mailman/listinfo/gradsusr
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://gradsusr.org/pipermail/gradsusr/attachments/20120428/ec9e01b2/attachment-0003.html
More information about the gradsusr
mailing list