24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 355  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 332求调剂 +7 蕉蕉123 2026-03-28 7/350 2026-03-29 08:25 by fmesaito
[考研] 304求调剂 +6 曼殊2266 2026-03-27 6/300 2026-03-28 14:10 by 唐沐儿
[考研] 0703本科郑州大学求调剂 +3 nhj_ 2026-03-25 3/150 2026-03-28 13:24 by Iveryant
[考研] 311求调剂 +9 lin0039 2026-03-26 9/450 2026-03-28 13:05 by 唐沐儿
[考研] 286求调剂 +12 PolarBear11 2026-03-26 12/600 2026-03-28 12:14 by zllcz
[考研] 339求调剂,想调回江苏 +6 烤麦芽 2026-03-27 8/400 2026-03-28 10:40 by 烤麦芽
[考研] 277跪求调剂 +5 1915668 2026-03-27 9/450 2026-03-28 09:58 by zhshch
[考研] 272求调剂 +7 脚滑的守法公民 2026-03-27 7/350 2026-03-27 17:23 by laoshidan
[考研] 一志愿南师大0703化学 275求调剂 +4 Ripcord上岸 2026-03-27 4/200 2026-03-27 17:00 by zhyzzh
[考研] 085601 材料工程 313分 求调剂 +5 Ong3 2026-03-27 5/250 2026-03-27 12:24 by goldfish51
[考研] 一志愿211,335分,0856,求调剂院校和导师 +4 倾____萧 2026-03-27 5/250 2026-03-27 11:52 by zhshch
[考研] 286求调剂 +4 lim0922 2026-03-26 4/200 2026-03-27 10:28 by guoweigw
[考研] 341求调剂 +7 青柠檬1 2026-03-26 7/350 2026-03-27 00:19 by wxiongid
[考研] 一志愿北化求调剂 +3 Jsman 2026-03-22 3/150 2026-03-26 21:06 by ajpv风雷
[考研] 296求调剂 +4 汪!?! 2026-03-25 7/350 2026-03-25 16:41 by 汪!?!
[考研] 302求调剂 +4 锦衣卫藤椒 2026-03-25 4/200 2026-03-25 16:29 by 功夫疯狂
[考研] 生物学学硕求调剂 +7 小羊睡着了? 2026-03-23 10/500 2026-03-25 02:24 by 清风拂扬。 m
[考研] 一志愿北化315 求调剂 +3 akrrain 2026-03-24 3/150 2026-03-24 19:35 by 了了了了。。
[考研] 一志愿河北工业大学0817化工278分求调剂 +7 jhybd 2026-03-23 12/600 2026-03-24 09:03 by jhybd
[考研] 石河子大学(211、双一流)硕博研究生长期招生公告 +3 李子目 2026-03-22 3/150 2026-03-22 21:01 by 怎么释怀
信息提示
请填处理意见