主题:[讨论]请教各位fortran编程高手关于顺序读取二进制文件出错的问题
implicit real*8 (a-h,o-z)
open(unit=1,file='./skwin',form='unformatted',status='replace')
do i=1,5
do j=1,4
rho=dfloat(j)
write(1) rho
end do
end do
close(1)
end program
program get
implicit real*8 (a-h,o-z)
real*8 rho(4)
open(unit=10,file='./skwin',form='unformatted',access='direct', &
& recl=8,status='old')
DO i=1,5
READ(unit=10,rec=i) (rho(j),j=1,4)
write(*,*) (rho(j),j=1,4)
END DO
CLOSE(10)
END Program
我先通过上面的test程序将数据写入一个二进制文件skwin中,然后用上面get顺序读取这个二进制文件,但是得到的值与写进去的不一样下面是用get读取得到的结果
3.952525166729972E-323 1.750594721008484E-313 3.952525166729972E-323 1.750594721008484E-313
3.952525166729972E-323 1.750594721008484E-313 3.952525166729972E-323 1.750594721008484E-313
3.952525166729972E-323 1.750594721008484E-313 3.952525166729972E-323 1.750594721008484E-313
3.952525166729972E-323 1.750594721008484E-313 3.952525166729972E-323 1.750594721008484E-313
3.952525166729972E-323 1.750594721008484E-313 3.952525166729972E-323 1.750594721008484E-313
而本来应该得到:
1.0 2.0 3.0 4.0
1.0 2.0 3.0 4.0
1.0 2.0 3.0 4.0
1.0 2.0 3.0 4.0
1.0 2.0 3.0 4.0
烦请各位高手我帮分析一下是什么原因,谢谢!由于比较急,还各位朋友给我指点指点。