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燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP