24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 356  |  回复: 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的回帖

老虎大王

木虫 (著名写手)

★ ★ ★ ★
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的回帖
查看全部 4 个回答

老虎大王

木虫 (著名写手)

★ ★ ★ ★ ★
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的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 070305高分子化学与物理 304分求调剂 +8 c297914 2026-03-28 8/400 2026-03-29 10:23 by ms629
[考研] 085600,专业课化工原理,321分求调剂 +5 大馋小子 2026-03-28 5/250 2026-03-29 08:56 by qingfeng258
[考研] 298求调剂 +4 种圣赐 2026-03-28 4/200 2026-03-29 08:42 by q1092522407
[考研] 本科双非材料,跨考一志愿华电085801电气,283求调剂,任何专业都可以 +6 芝士雪baoo 2026-03-28 8/400 2026-03-29 08:16 by 松花缸1201
[考研] 调剂考研 +3 王杰一 2026-03-29 3/150 2026-03-29 08:09 by fmesaito
[考研] 332求调剂 +4 @MZB382400 2026-03-28 4/200 2026-03-28 21:02 by 唐沐儿
[考研] 083000学硕274求调剂 +8 Li李鱼 2026-03-26 8/400 2026-03-28 20:33 by 加油向未来啊
[考研] 295材料工程专硕求调剂 +7 1428151015 2026-03-27 7/350 2026-03-28 19:58 by S240
[考研] 一志愿华理,数一英一285求A区调剂 +8 AZMK 2026-03-25 12/600 2026-03-28 18:15 by AZMK
[考研] 求调剂 +6 芦lty 2026-03-25 7/350 2026-03-28 13:13 by 唐沐儿
[考研] 085600 286分 材料求调剂 +7 麻辣鱿鱼 2026-03-27 8/400 2026-03-28 12:17 by zllcz
[考研] 求调剂推荐 材料 304 +15 荷包蛋hyj 2026-03-26 15/750 2026-03-28 04:13 by fmesaito
[考研] 272求调剂 +7 脚滑的守法公民 2026-03-27 7/350 2026-03-27 17:23 by laoshidan
[考研] 0703化学338求调剂! +6 Zuhui0306 2026-03-26 7/350 2026-03-27 10:35 by shangxh
[考研] 343求调剂 +4 赠我一本书 2026-03-23 4/200 2026-03-27 00:40 by wxiongid
[考研] 342求调剂 +3 加油a李zs 2026-03-26 3/150 2026-03-27 00:29 by wxiongid
[考研] 一志愿吉林大学材料与化工303分求调剂 +4 为学666 2026-03-24 4/200 2026-03-25 11:27 by BruceLiu320
[考研] 300分,材料,求调剂,英一数二 +5 超赞的 2026-03-24 5/250 2026-03-24 21:07 by 星空星月
[考研] 328求调剂 +4 LHHL66 2026-03-23 4/200 2026-03-23 14:55 by lbsjt
[考研] 求老师收我 +3 zzh16938784 2026-03-23 3/150 2026-03-23 12:56 by ztnimte
信息提示
请填处理意见