找回密码
 注册
Simdroid-非首页
查看: 185|回复: 3

[3. Fortran] 帮我看看这个文件读入错误

[复制链接]
发表于 2004-11-3 13:17:51 | 显示全部楼层 |阅读模式 来自 清华大学
在附件中的Fortran程序中,第51-60行有一个文件读入语句:
  1.       OPEN(2,FILE='f',FORM='UNFORMATTED')
  2.       READ (2) (F(J),J=1,NEQ)
  3.     CLOSE (2)
  4.     open(22,FILE='f1.dat',FORM='FORMATTED')
  5.     write (22,*) (F(J),J=1,NEQ)
  6.       CLOSE (22)
  7. c    write(*,*)'f=',f
  8.       DO J=1,NEQ
  9.       U(J)=F(J)
  10.     enddo
复制代码
在DEBUG时,我发现数组U(J)的元素的值全为NAN,我在ENDDO后面设置了一个断点来跟踪是
否文件读入有问题,跟踪后发现,F(J)的值也为NAN,这时我想可能是OPEN语句要打开的对
象文件'f'有问题,为了检测该数据文件是否有问题,我在READ语句后面加入了一个写语句
,让它输出一个有格式文件f1.dat。结果发现,f1.dat文件中却写入成功,也就是说,REA
D语句已经成功从文件f中读入了数据,那为什么F(J)的值为NAN?请高手指点一二,不胜感
激。附件中是程序文件solv.for及数据文件f。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2004-11-6 02:03:39 | 显示全部楼层 来自 美国

Re:帮我看看这个文件读入错误

Simdroid开发平台
程序简化到如下程度,没有发现问题
  1.       implicit real*8 (a-h,o-z)
  2.       integer, parameter :: NEQ=10
  3.       real(4) F(NEQ), U(NEQ)
  4. C.......OPEN F FILE
  5.       OPEN(2,FILE='f',FORM='UNFORMATTED')
  6.       READ (2) (F(I),I=1,NEQ)
  7.       CLOSE (2)
  8.       open(22,FILE='f1.dat',FORM='FORMATTED')
  9.       write (22,*) (F(I),I=1,NEQ)
  10.       CLOSE (22)
  11. c  write(*,*)'f=',f
  12.       DO I=1,NEQ
  13.       U(I)=F(I)
  14.      enddo
  15. c  
  16.      end
复制代码
  1.   -1.236702     -0.1950102      0.0000000E+00  0.0000000E+00  -1.236700   
  2. -0.2106352      -1.236700     -0.2106352      0.0000000E+00  0.0000000E+00
复制代码
 楼主| 发表于 2004-11-9 11:37:03 | 显示全部楼层 来自 山东青岛

Re:帮我看看这个文件读入错误

谢谢FREEPU版主,我再看看是不是别的什么原因。
发表于 2004-11-12 02:27:08 | 显示全部楼层 来自 美国

Re:帮我看看这个文件读入错误

straggler wrote:
谢谢FREEPU版主,我再看看是不是别的什么原因。
不用客气,偶可不是什么版主啊;)
可是从傲雪来?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-11-2 01:33 , Processed in 0.038581 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表