Fortran 板


LINE

以下是程式码 CALL JUMP(DSMAX(MAT),DS) ! Determines segment length. CALL STEP(DS,DSEF,NCROSS) ! Moves particle to end of step. WRITE(17,*) N,MIN(DS,DSEF) ! 决定把DS 跟 DSEF的最小值写入档案 但是现在有一个问题是, 我想把每一颗粒子的总距离加起来,即是 第一颗的总距离,及第二颗的总距离 例如 1 1.451336171889607E-007 1 1.625982843357572E-007 1 7.786647901384987E-008 1 6.001349813026089E-008 1 2.501697761188227E-008 2 1.989400815159079E-008 2 3.863321521894446E-008 2 2.358943701411900E-008 可是在N=1时 有5个小距离 N=2 有3个小距离 在程式里要如何知道每一次所有的小距离,然後相加起来 得到各别的N总距离 谢谢 N=0 ! Shower counter. C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C ------------------------ Shower simulation starts here. C 101 CONTINUE N=N+1.0D0 C C ********** Set the initial state of the primary particle. C KPAR=KPARP X=X0 Y=Y0 Z=Z0 E=E0 CALL GCONE(U,V,W) ! Initial direction. C C **** Check if the trajectory intersects the material system. C CALL LOCATE IF(MAT.EQ.0) THEN CALL STEP(1.0D30,DSEF,NCROSS) IF(MAT.EQ.0) THEN ! The particle does not enter the system. PRIM(1)=PRIM(1)+1.0D0 GO TO 105 ENDIF ENDIF C C ************ Primary particle counters. C ILB(1)=1 ! Identifies primary particles. ILB(2)=0 ILB(3)=0 ILB(4)=0 ILB(5)=0 DO IC=1,7 COL(IC)=0.0D0 ! Numbers of events. ENDDO DO I=1,NBOD EDEP(I)=0.0D0 ! Energy deposited in each body. ENDDO C --------------------------------------------------------------------- C ------------------------ Track simulation begins here. C COMMON/TRACK/E,X,Y,Z,U,V,W,WGHT,KPAR,IBODY,MAT,ILB(5) CALL CLEANS ! Cleans the secondary stack. 102 CONTINUE CALL START ! Starts simulation in current medium. C 103 CONTINUE CALL JUMP(DSMAX(MAT),DS) ! Determines segment length. CALL STEP(DS,DSEF,NCROSS) ! Moves particle to end of step. WRITE(17,*) N,MIN(DS,DSEF) DS0=DS0+MIN(DS,DSEF) WRITE(36,*) N,DS0 ! DDSS=DDSS+MIN(DS,DSEF) C IF(MAT.EQ.0) THEN ! The particle has left the material system. IEXIT=1 ! Labels emerging particles. GO TO 104 ! Exit. ENDIF C IF(NCROSS.GT.0) GO TO 102 ! The particle crossed an interface. C CALL KNOCK(DE,ICOL) ! Simulates the interaction event. COL(ICOL)=COL(ICOL)+1.0D0 ! The interaction is counted. EDEP(IBODY)=EDEP(IBODY)+DE ! Deposited energy counter. IF(E.LT.EABS(KPAR,mat)) THEN ! The particle has been absorbed. IEXIT=2 ! Labels absorbed particles. GO TO 104 ! Exit. ENDIF GO TO 103 C ------------------------ The simulation of the track ends here. C --------------------------------------------------------------------- 104 CONTINUE C C ************ Increment particle counters. C IF(ILB(1).EQ.1) THEN PRIM(IEXIT)=PRIM(IEXIT)+1.0D0 DO KC=1,6 AVNI(KC,IEXIT)=AVNI(KC,IEXIT)+COL(KC) AVNI2(KC,IEXIT)=AVNI2(KC,IEXIT)+COL(KC)**2 ENDDO ELSE SEC(KPAR,IEXIT)=SEC(KPAR,IEXIT)+1.0D0 C C ------------------------ The simulation of the shower ends here. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C **** Energies deposited in different bodies. C DO KB=1,NBOD EDEPT(KB)=EDEPT(KB)+EDEP(KB) VEDEPT(KB)=VEDEPT(KB)+EDEP(KB)**2 ENDDO C **** Deposited energy distributions in selected bodies or groups of C bodies (specific of each geometry). C In this case, EDEP(1,*) = Energy in body 1. EDISTR=EDEP(1) IF(EDISTR.GT.1.0D0) THEN ICH=1.0D0+EDISTR/DEBIN ICH=MIN(NCHD,ICH) EDEPD(1,ICH)=EDEPD(1,ICH)+1.0D0 ENDIF C 105 CONTINUE C C ---- End the simulation after the alloted time or after completing C DSIMS showers. CALL TIMER(TSEC) IF(TSEC.LT.TSECA.AND.N.LT.NTOT) GO TO 101 谢谢 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.106.110
1F:→ noway501:DS2=DS2+DS 12/09 17:40
2F:→ noway501:我觉得你还是把CODE写完整一点出来 CALL放在DO loap里吗? 12/09 17:42
※ 编辑: nestea911399 来自: 140.114.106.110 (12/09 18:21)
3F:推 meteorology:N代表的意思是颗还是粒? 12/09 18:22
4F:→ nestea911399:是代表粒子颗数,谢谢 12/09 18:23
5F:→ nestea911399:我的问题是不知道每一个颗的DS会有几个,谢谢 12/09 18:26
6F:推 meteorology:例如的结果是编号17的档案结果吗? 12/09 18:27
7F:→ nestea911399:对,那是我简化的,原本有40或50几个,只是不能确定N=1 12/09 18:32
8F:→ nestea911399:有几个,N=2时又有几个? 12/09 18:32
9F:→ nestea911399:然後只纪录加到最後一个的总DS,再把总DS写在档案里 12/09 18:33
10F:推 meteorology:这样的话能不能把JUMP的SUB. 贴出来看一下 12/09 18:38
11F:→ meteorology:你试着在WRITE前面加上判断式判断N=1时 sum=sum+1 12/09 18:41
12F:→ nestea911399:不好意思.可是我现在就没办法知道N=1的DS有几个因为 12/09 19:06
13F:→ nestea911399:每次累加的结果都会写进档案,我只要最後的总DS 12/09 19:08
14F:推 meteorology:所以其实你的问题是希望他不要每次累加都输出 12/09 19:16
15F:→ meteorology:而是只要他累加过後的结果? 12/09 19:16
16F:→ nestea911399:恩...因为我没办法知道他每一次会有几个DS出现 12/09 21:15
17F:推 meteorology:我的想法是想办法将N=1要转成2前 做输出 12/10 00:23
18F:→ meteorology:所以可以放在N=N+1DO 这行下面 打上 12/10 00:25
19F:→ meteorology:WRITE(17,*) N-1,MIN(DS,DSEF) 12/10 00:25
20F:推 meteorology:看到整个都花了XDDDDDDDD 12/10 00:32
21F:→ nestea911399:谢谢,那请问第一颗怎麽办 12/10 00:34
22F:→ nestea911399:不行捏,因为要是把WRITE放在N=N+1DO下面DS会等於零 12/10 00:44
23F:推 meteorology:那放在104 continue下呢? 试试看 n不用-1 12/10 02:29
24F:推 snowanimal:简单 你读完第一行之後再回去读第一行就好啦 12/10 10:12
25F:→ nestea911399:请问你的第一行是指哪里? 12/10 12:54
26F:→ snowanimal:资料的第一行 12/10 23:25
27F:推 meteorology:我想雪大的说法应该是档案输出後 去读每个N的第一行 12/11 00:00
28F:→ snowanimal:读进资料後 弄两个变数 一个当计数器 一个当作判定式 12/11 11:06







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP