[patch, libfortran] PR33985 access="stream",form="unformatted" doesn't buffer
Angelo Graziosi
Angelo.Graziosi@roma1.infn.it
Sat Nov 3 22:51:00 GMT 2007
I have applied the patch added here
http://gcc.gnu.org/ml/fortran/2007-11/msg00011.html to GFC-4.2.2 under
Cygwin and have not observed any progesses in reading a binary file
of about 36MB. The file is written with these statements (nr = nz = 1499):
...
open(30,file=fMap,status='unknown',access='stream')
write(30) nr,nz
write(30) dr,dz
r = 0.D0*dr
do j = 0,nr
z = 0.D0*dz
do k = 0,nz
call bcalc(r,z,br,bz)
write(30) br,bz
z = z+dz
enddo
r = r+dr
enddo
close(30)
and it is read with
open(MAPUNT,file='cobra.map',status='OLD',access='STREAM')
read(MAPUNT) nr,nz
read(MAPUNT) dr,dz
call alloc_mem()
! ===============================================
! Setting MAXR and MAXZ for GUFLD interpolation
! ===============================================
maxR = real(nr*dr)
maxZ = real(nz*dz)
write(*,*)
write(*,'(A)',advance='NO') 'Loading B field...'
do i = 0,nr
do j = 0,nz
read(MAPUNT) br(i,j),bz(i,j)
enddo
enddo
close(MAPUNT)
WITH or WITHOUT the patch it takes about 2 minutes to read it (1m54.578)!
G77 takes 53 seconds to read a similar file of 50MB (the unformatted files
for G77 have the record marker, so the size increases); G95 takes less
than 6 seconds (but I suspect that g95 on Cygwin uses pure Windows libs).
So, have I misinterpreted the meaning of the patch or is it specific for
GFC-4.3 and not for 4.2.2?
Am I missing something else?
TIA,
Angelo.
More information about the Fortran
mailing list