------- Additional Comments From dir at lanl dot gov 2005-08-16 21:07 -------
I tried a slightly modified version of the program, that checks the data read,
on i686-pc-mingw32 - it errors by reading incorrect data off of the file -
[EMAIL PROTECTED] /d/Docume~1/rantad/mydocu~1/tests
$ gfortran -o rdiska rdiska.f
[EMAIL PROTECTED] /d/Docume~1/rantad/mydocu~1/tests
$ rdiska
538976288 26
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
[EMAIL PROTECTED] /d/Docume~1/rantad/mydocu~1/tests
$ gfortran --v
Using built-in specs.
Target: i686-pc-mingw32
Configured with: ../gcc/configure --prefix=/mingw --enable-languages=c,f95
--with-gmp=/home/FX/local/ --with-mpfr=/home/FX/local
Thread model: win32
gcc version 4.1.0 20050805 (experimental)
[EMAIL PROTECTED] /d/Docume~1/rantad/mydocu~1/tests
$ 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
w(1)=i-1
w(buflen)=i
call wdiska(3,w,16384,(i-1)*buflen);
10 continue
do 20 i=1,200
call rdiska(3,w,16384,(200-i)*buflen);
if(w(1).ne.(200-i))then
write(6,*)w(1),200-i
call abort
endif
if(w(1).ne.w(buflen)-1)then
write(6,*)w(1),w(buflen)
call abort
endif
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