------- Additional Comments From dir at lanl dot gov 2005-08-15 13:32 ------- The Linux version is a little faster but has the same problem -
dir/tests> f77 -o rdiska rdiska.f dir/tests> time rdiska 1.088u 0.038s 0:01.13 98.2% 0+0k 0+0io 0pf+0w dir/tests> gfortran -O -o rdiska rdiska.f dir/tests> time rdiska STOP 0 5.959u 18.591s 0:24.54 100.0% 0+0k 0+0io 0pf+0w dir/tests> gfortran --v Using built-in specs. Target: i686-pc-linux-gnu Configured with: ./configure --prefix=/home/dir/gfortran --enable-languages=c,f95 Thread model: posix gcc version 4.1.0 20050815 (experimental) dir/tests> !cat cat rdiska.f program main implicit integer(a-z) dimension w(16384) common/frfcm1/mxfrf,ifrf,buflen,fcsize,dskloc ,curlen,kop,ier ncpw=4 buflen=16384 lrecl=ncpw*buflen open (3,access='direct',form='unformatted' 1,recl=lrecl,status='unknown') do 10 i=1,200 call wdiska(3,w,16384,(i-1)*buflen); 10 continue do 20 i=1,200 call rdiska(3,w,16384,(200-i)*buflen); 20 continue stop end subroutine rdiska (lus,w,nw,da) implicit integer(a-z) dimension w(nw) common/frfcm1/mxfrf,ifrf,buflen,fcsize,dskloc ,curlen,kop,ier lda=da/buflen+1 read (lus,rec=lda,iostat=ios) w return entry wdiska(lus,w,nw,da) lda=da/buflen+1 write (lus,rec=lda) w return c end -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23363