主题:关于forr1:severe (66)
oil111
[专家分:0] 发布于 2011-06-25 02:28:00
今天运行程序,出现forr1:severe (66):output statement overflows record的错误,查看之前的帖子说是rec
的值太小,将其改大点,可是自己的的数据确实只有这么多记录,该怎么解决?
请高手解答
回复列表 (共4个回复)
沙发
cgl_lgs [专家分:21040] 发布于 2011-06-25 10:52:00
recl是单个记录所占的字节数,而不是记录数,也不是单个记录的数据个数:)这回明白了么?
板凳
oil111 [专家分:0] 发布于 2011-06-25 22:19:00
我的程序代码如下
open(10,file=‘’,form='unformatted',access='direct',recl=144*37)
irec=0
do j=1,92
irec=irec+1
write(10,rec=irec)((ss(i,k,j),i=1,144*37),k=1,8)
enddo
这样的就会出现错误,而将其改为
irec=0
do j=1,92
do k=1,8
irec=irec+1
write(10,rec=irec)(ss(i,k,j),i=1,144*37)
enddo
enddo
就对了...
第一次的代码rec为92,第二次应该是92*8吧...
看了之前的帖子说是rec的值太小造成的...
我现在想的是,不改程序行么?是不是rec有个下限值
3 楼
bshine1225 [专家分:720] 发布于 2011-06-26 21:10:00
第一种写法单个记录的大小为 144*37*8
第二种写法单个记录的大小为144*37
而你定义的单个记录大小为144*37。如果想按照第一种写法的话,应该改成:
open(10,file=‘’,form='unformatted',access='direct',recl=144*37*8)
4 楼
oil111 [专家分:0] 发布于 2011-06-29 15:54:00
知道错在哪里了,低级错误呀
我来回复