主题:求助 可变数组越界问题
303343265
[专家分:0] 发布于 2011-05-08 09:52:00
real(8),dimension(:,:),allocatable::ps,G
出现错误ps数组有值3超越了上界0
这里的0是在哪里定义 不是上界吗?
求大侠们指教
最后更新于:2011-05-08 13:53:00
回复列表 (共5个回复)
沙发
303343265 [专家分:0] 发布于 2011-05-08 10:13:00
检查一遍发现在这里出现问题 do me=1,mesh
n=ko(me)
allocate (ps(n,2),G(n-2,2))
do k=1,n
ps(k,1)=a(menode(me,k),1)
ps(k,2)=a(menode(me,k),2)
enddo
do
do i=2,n-1
G(i-1,:)=(ps(1,:)+ps(i,:)+ps(i+1,:))/3.0d0
板凳
yeg001 [专家分:14390] 发布于 2011-05-08 11:12:00
我第一次见到这样的声明:
real(8),dimension(:,:),allocatable(ps(-1:3),G(-1:3))
n=ko(me) 如果n小于1, 第一个do就会出错. 如果n小于3, 第二的do会出错.
3 楼
yeg001 [专家分:14390] 发布于 2011-05-08 11:13:00
楼主使用什么编译器? 请说明一下.
4 楼
303343265 [专家分:0] 发布于 2011-05-08 13:59:00
用的是visual studio 2005
是这一行运行时会出错G(i-1,:)=(ps(1,:)+ps(i,:)+ps(i+1,:))/3.0d0
数组跑出上界
no是前面一个read进来的数据,肯定是大于3的
5 楼
cgl_lgs [专家分:21040] 发布于 2011-05-09 13:34:00
如果ko数组里的值与menode里的值不对应那就会出错,看着很正常。是不是数据有问题?
我来回复