主题:文件无法正常读入
halala008
[专家分:0] 发布于 2010-10-13 12:42:00
程序以及数据文件都是从国外的网站上下载下来的。程序编译成功,但运行的时候出现:
run-time error F6419:READ(文件名.bin)
-illegal structure for unformatted file
打开文件的代码是:OPEN(UNIT=IUOUT,FILE='OUTPUT.AEP',STATUS='NEW',
& FORM='FORMATTED')
请求高手解答。
最后更新于:2010-10-13 15:33:00
回复列表 (共18个回复)
11 楼
halala008 [专家分:0] 发布于 2010-10-13 15:07:00
我上传附件了怎么看不到,格式为.rar,在第一个主题修改的
12 楼
jstzhurj [专家分:4680] 发布于 2010-10-13 15:17:00
文件不能太大!
13 楼
halala008 [专家分:0] 发布于 2010-10-13 15:39:00
文件才75.5K呀
这个问题,以前别人也遇到过,但没有解决。
http://bbs.pfan.cn/showtxt.asp?id=234286
14 楼
jstzhurj [专家分:4680] 发布于 2010-10-13 15:43:00
开个新帖,重新上传一下!
15 楼
halala008 [专家分:0] 发布于 2010-10-13 16:01:00
我把那串代码的地址找出来了,地址如下:
ftp://hanna.ccmc.gsfc.nasa.gov/pub/modelweb/radiation_belt/
里面的radbelt的Fortran代码,代码也不长。
谢谢你了。
16 楼
jstzhurj [专家分:4680] 发布于 2010-10-13 19:37:00
我看了一下,初步有几个问题,我不知道别人是怎么正确运行的,可能是编译器依赖的。
1)打开文件里面的UNFORMATTED改成BINARY,即OPEN(IUAEAP,FILE=FNAME,STATUS='OLD',ERR=1822,FORM='BINARY')
2)READ(IUAEAP) IHEAD IHEAD数组我的编译器默认的是integer(4),这样去读应该得到的是错误的数据,这导致下面的语句(NMAP=IHEAD(8);READ(IUAEAP) (MAP(I),I=1,NMAP))没法正确运行!似乎应该是integer(2)。
17 楼
halala008 [专家分:0] 发布于 2010-10-13 19:51:00
你是高手,我一直都没有怀疑过这段代码,看来要检查这段代码了。
18 楼
jstzhurj [专家分:4680] 发布于 2010-10-13 21:34:00
integer确实是编译器依赖的!
程序中的integer被编译器解释成长整型了 4-byte,而实际应该是短整型 2-byte,因此,成功运行此程序的是用了比较老的编译器。
看来在新的编译器中,必须对涉及的整型变量重新定义成integer(2)才能正确运行。
我来回复