24小时热门版块排行榜    

查看: 448  |  回复: 3
当前主题已经存档。

jutun

铜虫 (初入文坛)

[交流] 【求助】程序出错,寻求高手指点

我编了一个子程序,在一系列坐标点pp(np,mp)其中np是粒子的标号1,2,3......,mp代表x,y,z方向,想删除20个任意标号的坐标点,并且删除后把标号重新排列,我编的程序如下:

      INTEGER ITF,i1,j1,j2,j3
      DOUBLE PRECISION x1,PP_temp(MP,ND)
        DO  75 i1 =NL+1 , NP
   PP_temp(i1,X) = PP(i1,X)
        PP_temp(i1,Y) = PP(i1,Y)
        PP_temp(i1,Z) = PP(i1,Z)
        PP(i1,X)=0
        PP(i1,Y)=0
        PP(i1,Z)=0
75    continue

      
     CALL RANDOM_seed()
       do 610 j1=1,20
   
call random_number(x1)
ITF=NINT(x1*(NP-NL-1))+NL+1
print*,itf
       NP=NP-1
        do 76 j2=NL+1,ITF-1
          PP(j2, x) = PP_temp(j2,x)
  PP(j2, y) = PP_temp(j2,y)
  PP(j2, z) = PP_temp(j2,z)
76   continue
   do 77 j3=ITF,NP
  PP(j3, x) = PP_temp(j3+1,x)
  PP(j3, y) = PP_temp(j3+1,y)
  PP(j3, z) = PP_temp(j3+1,z)
   77 continue
610    continue
ITF是产生的随机编号,在NL+1~NP之间
程序的语法好像没有错误,估计是逻辑不对,请虫友帮忙看看错在哪里了?我真挺着急的,万分感谢了!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

老虎大王

木虫 (著名写手)

★ ★ ★ ★ ★
jutun(金币+5,VIP+0):恩,我明白了,能不能再指点一下,该如何修改啊? 5-11 17:02
do 76 j2=NL+1,ITF-1
          PP(j2, x) = PP_temp(j2,x)
  PP(j2, y) = PP_temp(j2,y)
  PP(j2, z) = PP_temp(j2,z)
76   continue
   do 77 j3=ITF,NP
  PP(j3, x) = PP_temp(j3+1,x)
  PP(j3, y) = PP_temp(j3+1,y)
  PP(j3, z) = PP_temp(j3+1,z)
   77 continue
610    continue


问题出在这里。你每一次都从PP_temp这个数组出发来更新PP数组,但是PP_temp并没有更新。

比如,你的PP_temp数组(我们简化一下,假设它是个1维数组),比如,第一个数是1,第二个数是2,第三个数是3。。。第N个数是n。现在:
1. 第一次,j1=1时,假设随机数是5,就是删除第五个数,那么按你的程序,执行过后,在你的PP数组里,应有:
第一个数是1,第二个数是2,第三个数是3,第四个数是4,第五个数是6,第六个数是7。。。。。。但你的PP_TEMP数组没有变化。

2. 第二次,j1=2时,假设随机数是3,就是再删除第三个数,那么按你的程序,执行过后,在你的PP数组里,应有:
第一个数是1,第二个数是2,第三个数是4,第四个数是5,第五个数是6。。。。

问题来了吧。。呵呵。

[ Last edited by 老虎大王 on 2009-5-11 at 15:14 ]
2楼2009-05-11 15:12:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

老虎大王

木虫 (著名写手)

所以你搞个PP_temp数组,是画蛇添足,反而不对,造成了你无论循环多少次,都只有最近的一次更新有效。
3楼2009-05-11 15:17:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

老虎大王

木虫 (著名写手)

★ ★ ★ ★
kuhailangyu(金币+4,VIP+0):大王果然厉害,辛苦了! 5-11 22:06
修改方法:
1。PP数组不要清零。
2.  直接更新PP,即:pp(i,x)=pp(i+1,x )。。。。
4楼2009-05-11 20:12:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jutun 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 哈尔滨工业大学韩晓军教授课题组招收2027年硕士推免生及博士研究生 +3 灯灯灯灯DDDD 2026-09-03 3/150 2026-09-03 21:22 by 科研皮皮猪
[考研] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 YLHlRHNwYkce 2026-09-02 8/400 2026-09-03 20:40 by jyNB2vrbdUpR
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 YLHlRHNwYkce 2026-09-02 8/400 2026-09-03 20:31 by jyNB2vrbdUpR
[硕博家园] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 uFOAtb1CDngh 2026-09-02 9/450 2026-09-03 20:20 by jyNB2vrbdUpR
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +4 ero8OE6tv9cu 2026-09-02 5/250 2026-09-03 20:09 by jyNB2vrbdUpR
[硕博家园] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 YLHlRHNwYkce 2026-09-02 8/400 2026-09-03 18:50 by jyNB2vrbdUpR
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 YLHlRHNwYkce 2026-09-02 11/550 2026-09-03 18:42 by jyNB2vrbdUpR
[找工作] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 ero8OE6tv9cu 2026-09-02 8/400 2026-09-03 16:38 by T0rGB46095mJ
[硕博家园] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 ero8OE6tv9cu 2026-09-02 5/250 2026-09-03 16:38 by T0rGB46095mJ
[考研] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 ero8OE6tv9cu 2026-09-02 10/500 2026-09-03 16:27 by T0rGB46095mJ
[基金申请] 国社科又开始会评了,不知道这次命运如何 +10 雨打竹帘 2026-08-30 14/700 2026-09-03 13:17 by qsd10086
[教师之家] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 YLHlRHNwYkce 2026-09-02 8/400 2026-09-03 12:03 by T0rGB46095mJ
[基金申请] 要骂人了,新模版改版就是要淡化问题凝练这种虚的东西,结果有个评委还在说凝练得不够 +9 瞬息宇宙 2026-08-31 17/850 2026-09-02 14:04 by anjeeshine
[基金申请] 学科评审组评审是指会评吗? +5 瞬息宇宙 2026-08-31 5/250 2026-09-02 10:13 by 雨冰共舞
[基金申请] 面上函评意见出来了,像什么等级? 20+4 Tsingking1 2026-08-27 17/850 2026-09-01 19:51 by 超级无敌华子
[基金申请] 能否申诉? +7 echo8914667 2026-08-30 8/400 2026-08-31 17:00 by yihongxu
[基金申请] 中青基了要发朋友圈吗? +7 349506619 2026-08-28 7/350 2026-08-31 13:39 by 冼亮淀粉酶
[基金申请] 29号明天会评吗 +4 笨笨唐 2026-08-28 4/200 2026-08-31 09:30 by huixian257
[基金申请] 为什么到现在没收到通知? +5 tannykie 2026-08-29 5/250 2026-08-30 21:05 by purplejack
[基金申请] 国自然评审意见 +13 wangmingqi 2026-08-28 19/950 2026-08-29 10:22 by Poppy1104
信息提示
请填处理意见