24小时热门版块排行榜    

查看: 1934  |  回复: 5

自由黑黑

新虫 (初入文坛)

[求助] fortran的array bounds exceeded错误

在调试过程中读取文件里面的粒子坐标数据,不管我怎么调换文件里面的数据位置,最后调试的时候都会在第十三个数据出错,然后提示如图错误,我想知道这是什么原因,数据不可能出错,程序读取是这样的:
j=0
k=0
do i=1,t (t表示全部的粒子数量)
  read(30,*) j,k,xx,yy,zz
  write(*,*) j,k,xx,yy,zz
  x(j)=xx
  y(j)=yy
  z(j)=zz
end do
上述程序要读取的文件内容一部分是这样的:
11983 2 0.350112 0.055504 0.0548728 (对应程序的j,k,xx,yy,zz)
9530 2 1.90357 0.0433896 0.583248
7279 2 1.45049 0.121421 0.367378
7277 2 1.53983 0.254279 0.572032
13230 2 2.32761 0.565487 0.348983 (后面类似,就不粘贴了)
我想知道到底怎么回事
fortran的array bounds exceeded错误
1.png
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dongdong_xmc

木虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
x, y, z 怎么声明的?贴出来看看。
你说的第十三个数据出错是什么意思?
2楼2013-08-24 12:16:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

自由黑黑

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by dongdong_xmc at 2013-08-24 12:16:47
x, y, z 怎么声明的?贴出来看看。
你说的第十三个数据出错是什么意思?

声明:real*8  x(n),y(n),z(n)
x,y,z表示粒子的三维坐标,十三个出错就是读取数据的时候读到第十三行的五个数据的时候提示array bounds exceeded
3楼2013-08-25 14:11:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

自由黑黑

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by dongdong_xmc at 2013-08-24 12:16:47
x, y, z 怎么声明的?贴出来看看。
你说的第十三个数据出错是什么意思?

数组溢出的问题我找到了,但是运行以后又出现新问题,就是出现 list-directed I/O syntax error,unit 30,请问这个问题主要是什么原因呢,求指教,谢谢
4楼2013-08-25 14:44:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dongdong_xmc

木虫 (小有名气)

【答案】应助回帖

引用回帖:
4楼: Originally posted by 自由黑黑 at 2013-08-25 14:44:07
数组溢出的问题我找到了,但是运行以后又出现新问题,就是出现 list-directed I/O syntax error,unit 30,请问这个问题主要是什么原因呢,求指教,谢谢...

读取文件30有错误。你试着找到底是哪一行出错了。

可能的问题是数据类型不对,出现了无穷大,或者读实数的时候出现了字符,等等。
5楼2013-08-26 02:57:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1252180504

新虫 (小有名气)

引用回帖:
4楼: Originally posted by 自由黑黑 at 2013-08-25 14:44:07
数组溢出的问题我找到了,但是运行以后又出现新问题,就是出现 list-directed I/O syntax error,unit 30,请问这个问题主要是什么原因呢,求指教,谢谢...

我和你一样也是数组溢出  你是怎么解决的 ? 数组溢出的原因是什么
心若不动 风又奈何
6楼2015-03-04 16:41:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 自由黑黑 的主题更新
信息提示
请填处理意见