Fortran 板


LINE

PARAMETER (RC=3.0D-4, RN=2.0D-4) 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 RY=RC*RAND(1.0D0)**(1.0/3.0) IF(RY.LT.2.0D-4) GO TO 101 PTHETA=ACOS(2*RAND(1.0D0)-1) PPHI=2*PI*RAND(1.0D0) X=RY*SIN(PTHETA)*COS(PPHI) Y=RY*SIN(PTHETA)*SIN(PPHI) Z=RY*COS(PTHETA) 请问我现在假设有一个球的模型,而每一个乱数得到的座标会是空间上的一点 我现在是想点数均匀分布在大球跟小球之间 所以我假设IF(RY.LT.2.0D-4) GO TO 101,若是RY小於小球的半径就重新跑 但是有个问题是跑完了就会由下一个接下去 例如 1符合但2不符合就从3开始 但是2就没办法记录到就变成只有两个结果, 有办法解决这个问题吗 谢谢大家 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.106.110
1F:→ latinboy: 把N=N+1移到IF下一行... 问问题之前你有没有想过@@ 12/15 16:32
2F:→ nestea911399:N=N+1不能移到下面,因为下面还有整个回圈像上ㄧ篇那 12/15 16:37
3F:→ nestea911399:要是移到下面KPAR就没办法纪录粒子数 12/15 16:39
4F:推 meteorology:所以你是想要RY小於小球的半径也要输出吗? 12/15 16:52
5F:→ nestea911399:可以想像只要把点分布在甜甜圈就中间空心的不要 12/15 16:55
6F:→ meteorology:可是就你的例如感觉在空心部份你是要粒子数资料 12/15 16:56
7F:→ nestea911399:就是当RY小於R时我不要执行,RY大於RN才执行 12/15 17:01
8F:→ nestea911399:像我的写法好像可以达到我的目的但是有些粒就纪录不 12/15 17:04
9F:→ nestea911399:到,因为若RY<R时,N就会再+1就变成第三颗继续执行 12/15 17:05
10F:推 meteorology:恩那你就在if下先把你要的粒子write到档案 再GOTO 12/15 17:12
11F:→ meteorology:到101 12/15 17:12
12F:→ nestea911399:可是那是乱数产生我没办法知道哪一次要纪录,我只能把 12/15 17:14
13F:→ nestea911399:不要的丢掉 12/15 17:14
14F:推 meteorology:那必须看你要的变数是什麽了~ 12/15 17:15
15F:推 meteorology:因为每个人专业不同 所以这些输出可能跟理论有关 12/15 17:20
16F:→ meteorology:建议你先去翻翻理论~或许就可以知道要的是什麽~ 12/15 17:20
17F:推 latinboy: 你不PO出完整的程式码 或是完整的do block 很难回答 12/15 18:31
18F:→ latinboy: 感觉就是if处里一下就能解决的问题 12/15 18:32
19F:→ latinboy: 你还是问实验室学长姐比较快... 12/15 18:33
20F:→ nestea911399:完整CODE在上ㄧ篇已经有了,不好意思,我只是想问说,如 12/15 18:38
21F:→ nestea911399:何让每一颗粒子都是在小球以外出现,谢谢 12/15 18:39
22F:→ meteorology:你不是因为没有办法看到半径小於小球的数据? 12/15 23:24
23F:→ meteorology:如果是这样你原本的程式不是就可以了? 12/15 23:25
24F:→ meteorology:因为你已经做了大於小球的资料输出 12/15 23:28
25F:→ nestea911399:可是因为是乱数产生有可能会有小於RN的情况发生,所以 12/16 15:31
26F:→ nestea911399:若是用我的方法当小於RN就重新跑那会有没记录到的情 12/16 15:32
27F:→ nestea911399:况,谢谢 12/16 15:33
28F:推 meteorology:你乱数产生是产生RY吗? 12/16 15:37
29F:→ nestea911399:对 12/16 15:49
30F:推 meteorology:你的问题有点乱~因为这样看下来的确小於RN的半径就 12/16 16:20
31F:→ meteorology:会不见 如果你要小於RN的也要列出来 有两个办法 12/16 16:21
32F:→ meteorology:一个是把IF去掉 让回圈跑完 并且输出RY的值 从中挑 12/16 16:22
33F:→ meteorology:选大於RN的RY的结果 12/16 16:23
34F:→ meteorology:另外就是在程式中小於RN的值做另外的档案输出 12/16 16:24
35F:→ irlmpo:code若不是自己写的,建议你不要看程式码,再重写一次 12/18 12:57
36F:→ irlmpo:ps.仅是个人建议,无恶意 12/18 13:06
37F:推 meteorology:帮原po说一下~~这支程式是上万行~XDD 12/18 18:51
38F:→ nestea911399:谢谢M大帮我说明谢谢大家 12/18 23:18
39F:推 noonee:那我的推荐是 把每个独立的地方都尽量拆成subroutine 12/18 23:19
40F:→ noonee:或许很蠢 不过厘清问题很方便 12/18 23:19
41F:推 meteorology:楼上 这不蠢阿 这是好方法!y 12/19 13:23







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

请输入看板名称,例如:WOW站内搜寻

TOP