program test
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

烦请各位高手我帮分析一下是什么原因,谢谢!由于比较急,还各位朋友给我指点指点。