Fortran 板


LINE

先PO一下我原做这程式的动机 我是有一个档案他会记录一个碳球由60颗碳所组成的空间座标档 他会随着我跑模拟後而计录每一步阶的原子位置变化 而我的目的是去计算这颗碳球的表面积,他是由20个六角形跟12个五角形所组成, 我已经将角形是由哪几颗原子所组成的纪录好,只差带入公式去计算,而我在这是采用 海龙公式。 这边开始PO我的主要程式部分,我只先PO其中一小块面积的计算部分顺便说明参数定义 iTimeStep 表我总共跑了多少步阶 iBins 表我有多少颗原子 n 是为了先给我的原子档案上编号 x,y,z我是替每一颗原子所上的编号 open(33,file='input.dat',status='unknown') open(66,file='out.dat',status='unknown') open(67,file='area.dat',status='unknown') n=0 iTimeStep=0 321 format(1x, i3,1x, a1, 3(1x,e15.8)) 322 format(1x,i6,1x,e15.8) do while (1 .eq. 1) read(33,*,end=25) iBins read(33,*) iTimeStep=iTimeStep+1 write (66,*)iTimeStep write (66,*)iBins do i = 1, iBins read(33,*) c,x(i),y(i),z(i) n=n+1 write(66,321)n,c,x(i),y(i),z(i) !!aa1 if(i.eq.1)then!!!!!!!!!!!!!!!!!!!!!!!!!!!A x1=x(i) y1=y(i) z1=z(i) endif if(i.eq.2)then x2=x(i) y2=y(i) z2=z(i) endif if(i.eq.3)then x3=x(i) y3=y(i) z3=z(i) endif if(i.eq.4)then x4=x(i) y4=y(i) z4=z(i) endif if(i.eq.5)then x5=x(i) y5=y(i) z5=z(i) endif 里面的 if 是希望能够读原子编号,i=1时读编号一的原子座标,依此类推... 当读完时候开始做里面积算 cx=(x1+x2+x3+x4+x5)/5 cy=(y1+y2+y3+y4+y5)/5 cz=(z1+z2+z3+z4+z5)/5 !calculate the dis from center to each point lc1=(((cx-x1)**2)+((cy-y1)**2)+((cz-z1)**2))**0.5 lc2=(((cx-x2)**2)+((cy-y2)**2)+((cz-z2)**2))**0.5 lc3=(((cx-x3)**2)+((cy-y3)**2)+((cz-z3)**2))**0.5 lc4=(((cx-x4)**2)+((cy-y4)**2)+((cz-z4)**2))**0.5 lc5=(((cx-x5)**2)+((cy-y5)**2)+((cz-z5)**2))**0.5 !calculate the dis from point to point l12=(((x1-x2)**2)+((y1-y2)**2)+((z1-z2)**2))**0.5 l23=(((x2-x3)**2)+((y2-y3)**2)+((z2-z3)**2))**0.5 l34=(((x3-x4)**2)+((y3-y4)**2)+((z3-z4)**2))**0.5 l45=(((x4-x5)**2)+((y4-y5)**2)+((z4-z5)**2))**0.5 l51=(((x5-x1)**2)+((y5-y1)**2)+((z5-z1)**2))**0.5 s1=(lc1+lc2+l12)/2 s2=(lc2+lc3+l23)/2 s3=(lc3+lc4+l34)/2 s4=(lc4+lc5+l45)/2 s5=(lc5+lc1+l51)/2 !!!!!!!!!!!计算每一三角形面积 a1=(s1*(s1-lc1)*(s1-lc2)*(s1-l12))**0.5 a2=(s2*(s2-lc2)*(s2-lc3)*(s2-l23))**0.5 a3=(s3*(s3-lc3)*(s3-lc4)*(s3-l34))**0.5 a4=(s4*(s4-lc4)*(s4-lc5)*(s4-l45))**0.5 a5=(s5*(s5-lc5)*(s5-lc1)*(s5-l51))**0.5 !!!!!五边形面积 aa1=a1+a2+a3+a4+a5 enddo t5a=aa1 totala=t5a write(67,322)iTimeStep, totala n=0 enddo 25 continue end =================================================================== 我每一个原子都给他不同变数,但计算部分例如cx,cy,cz,lc1,l23,s2,a1 等共同部分则没有个别设立 目前单独计算一块面积时跟我用excel(一开始不会写只好用excel去计算)算时 几乎一样,小数三位後才不同,但我开始计算多块加总後却差别越来越大 有怀疑是否之後的计算面积是否真的有代入新座标,还是仍用第一组座标 还有不知我共同计算部分的参数是否也该个别独立宣告,也怀疑是否是这边 共同计算部分的问题。 内容有点多,希望板上的高手能帮忙指点一下,最近很烦恼 >"< 万分感谢! --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.75.123
1F:推 terryys:算面积的loop应该是先读取五个坐标以後再算面积?现在 04/26 11:34
2F:→ terryys:看起来是读一个坐标算一次 04/26 11:34
3F:→ terryys:还有totala那里应该是总面积吗? 04/26 11:35
4F:→ mr24:totala是算面积没错,我也有想过他是不是真的有读完 04/26 13:15
5F:→ mr24:所以我计算面积部分是应该放在Do loop的外面吗?? 04/26 13:16
6F:→ mr24:还是应该再多加一个Do 04/26 13:16
7F:推 terryys:总面积的话你现在没有累加啊,只是一个五角形的面积,不过 04/26 13:21
8F:→ terryys:这不是大问题 04/26 13:22
9F:→ terryys:我觉得应该先读取iBins里的那几个坐标,然後再用这些坐标 04/26 13:22
10F:→ terryys:算面积 还有那堆if应该不需要,直接用x(1) x(2)之类就可以 04/26 13:24
11F:→ mr24:好 我去试试看,真的非常谢谢你的解答!! 04/26 14:04







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

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

TOP