回 帖 发 新 帖 刷新版面

主题:求助 可变数组越界问题

real(8),dimension(:,:),allocatable::ps,G
出现错误ps数组有值3超越了上界0
这里的0是在哪里定义 不是上界吗?
求大侠们指教

回复列表 (共5个回复)

沙发

检查一遍发现在这里出现问题       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

板凳

我第一次见到这样的声明:
real(8),dimension(:,:),allocatable(ps(-1:3),G(-1:3))

n=ko(me) 如果n小于1, 第一个do就会出错. 如果n小于3, 第二的do会出错.

3 楼

楼主使用什么编译器? 请说明一下.

4 楼


用的是visual studio 2005
是这一行运行时会出错G(i-1,:)=(ps(1,:)+ps(i,:)+ps(i+1,:))/3.0d0
数组跑出上界
no是前面一个read进来的数据,肯定是大于3的 

5 楼

如果ko数组里的值与menode里的值不对应那就会出错,看着很正常。是不是数据有问题?

我来回复

您尚未登录,请登录后再回复。点此登录或注册