24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 353  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 070305高分子化学与物理 304分求调剂 +7 c297914 2026-03-28 7/350 2026-03-29 01:17 by 544594351
[考研] 一志愿太原理工安全工程300分,求调剂 +5 0857求调剂. 2026-03-24 6/300 2026-03-28 22:04 by zhq0425
[考研] 322求调剂 +7 宋明欣 2026-03-27 7/350 2026-03-28 21:27 by sanrepian
[考研] 本科新能源科学与工程,一志愿华理能动285求调剂 +3 AZMK 2026-03-27 5/250 2026-03-28 16:19 by xxxsssccc
[考研] 085602 化工专硕 338分 求调剂 +12 路痴小琪 2026-03-27 12/600 2026-03-28 15:41 by L135790
[考研] 312,生物学求调剂 +3 小译同学abc 2026-03-28 3/150 2026-03-28 15:32 by 落睿可思
[考研] 一志愿厦门大学化学学硕307求调剂 +10 y7czhao 2026-03-26 10/500 2026-03-28 14:23 by 唐沐儿
[考研] 283求调剂 +7 A child 2026-03-28 7/350 2026-03-28 12:05 by zllcz
[考研] 352分 化工与材料 +5 海纳百川Ly 2026-03-27 5/250 2026-03-28 03:39 by fmesaito
[考研] 086000调剂 +3 7901117076 2026-03-26 3/150 2026-03-27 21:34 by Jianing_Mi
[考研] 一志愿南师大0703化学 275求调剂 +4 Ripcord上岸 2026-03-27 4/200 2026-03-27 17:00 by zhyzzh
[考研] 085600,材料与化工321分调剂 +4 大馋小子 2026-03-27 6/300 2026-03-27 14:11 by 松花缸1201
[考研] 315调剂 +4 0860求调剂 2026-03-26 5/250 2026-03-27 11:23 by wangjy2002
[考研] 求调剂,一志愿 南京航空航天大学大学 ,080500材料科学与工程学硕 +4 @taotao 2026-03-26 5/250 2026-03-27 08:10 by hypershenger
[考研] 304材料求调剂 +4 钟llll 2026-03-26 4/200 2026-03-27 03:42 by wxiongid
[考研] 281求调剂 +3 亚克西good 2026-03-26 5/250 2026-03-26 19:48 by 不吃魚的貓
[考研] 一志愿 南京邮电大学 288分 材料考研 求调剂 +3 jl0720 2026-03-26 3/150 2026-03-26 13:39 by zzll406
[考研] 290分调剂求助 +3 吉祥止止陈 2026-03-25 3/150 2026-03-25 19:58 by barlinike
[考研] 318求调剂 +3 plum李子 2026-03-23 3/150 2026-03-25 09:42 by 雾散后相遇lc
[考研] 300分,材料,求调剂,英一数二 +5 超赞的 2026-03-24 5/250 2026-03-24 21:07 by 星空星月
信息提示
请填处理意见