24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2253  |  回复: 5

xingxiao

铜虫 (小有名气)

[求助] 运行结果为0,怎么回事?

我编了下面一段子程序,运行后结果输出0,不知道是怎么回事,存储空间肯定能存储这么大的数,而且没有越界:
     implicit none
     real,intent(in)::q
      integer,intent(in)::Ng
      integer,dimension(1:Ng),intent(in)::ink
      real,dimension(1:Ng,1:3000,1:7),intent(in)::AN
      integer,intent(inout)::Nele,Nion
      integer i,j
      nele=0.0;nion=0.0
      do i=1,Ng
             do j=1,ink(i)
            if(AN(i,j,1)<=0.0.and.q<0.0) then   !AN(i,j,1)是路程     !  
                Nele=nele+1
            else if(AN(i,j,1)<=0.0.and.q>0.0) then
              Nion=nion+1
          end if
        end do
      end do


我想实现的目的是统计粒子在一个空间边界处的数目,粒子在电场力的作用下向前走,每走一步(如果走到了边界处)就把粒子数目加1

[ Last edited by xingxiao on 2012-2-10 at 13:22 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
jjdg(金币+1): 感谢参与 2012-02-11 09:03:01
你把 an(i,j,1) 和 q 打印出来看看不就知道了……

这个程序的判断句中就有可能跳过一些条件的啊

» 本帖已获得的红花(最新10朵)

2楼2012-02-10 16:39:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

emanlee

木虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
jjdg(金币+1): 感谢参与 2012-02-11 09:03:07
先把Ng的值改得比较小,比如改为5。然后,单步执行程序,观察各个变量的值。找到问题之后,再改回Ng的原值。

» 本帖已获得的红花(最新10朵)

3楼2012-02-10 23:31:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xingxiao

铜虫 (小有名气)

送鲜花一朵
引用回帖:
: Originally posted by emanlee at 2012-02-10 23:31:23:
先把Ng的值改得比较小,比如改为5。然后,单步执行程序,观察各个变量的值。找到问题之后,再改回Ng的原值。

感谢你的提醒,这是一个思路
4楼2012-02-11 08:43:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xingxiao

铜虫 (小有名气)

送鲜花一朵
引用回帖:
: Originally posted by snoopyzhao at 2012-02-10 16:39:18:
你把 an(i,j,1) 和 q 打印出来看看不就知道了……

这个程序的判断句中就有可能跳过一些条件的啊

应该是我程序中还有一些条件没考虑全,谢谢
5楼2012-02-11 08:44:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

joy4210

金虫 (小有名气)

AN(i,j,1)和q的值没有给啊!所以应该没有进入if判断里边吧
6楼2012-02-14 16:20:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xingxiao 的主题更新
信息提示
请填处理意见