Fortran 板


LINE

请教大家,我在做一个一维扩散的模拟, 在我一步一步debug之後,知道问题在回圈的部分,好像会无法结束?? 可以成功编译成执行档,但一旦开始执行,就无法结束了,也无法输出结果.. 以下是程式码,麻烦版有帮我看看哪边出错了?? program diffusion   !1-D diffusion implicit none !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !宣告区 real L,D,J,C,T,F,smallt !L=length,D=diffusivity,J=diffusion flux,C=initial concentration !F=Fourier's number, smallt=time interval real, parameter :: defaultL = 10 real, parameter :: defaultD = 1.03 real, parameter :: defaultJ = 1E-5 real, parameter :: defaultC = 1E-4 real array1(-1:10001),array2(-1:10001) !the length is divided into 10000 pieces, 10001 nodes, 2 virtual nodes integer*8 p, pmax, x !p=pace, x=location character mode !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !输入设定参数 write(*,*) "press ""1"" to select the default values, or""2"" to input them" read(*,*) mode if(mode=="1") then L = defaultL D = defaultD J = defaultJ C = defaultC else write(*,*) "please input the length:" read(*,*)L write(*,*) "please input the diffusivity:" read(*,*)D write(*,*) "please input the diffusion flux:" read(*,*)J write(*,*) "please input the initial concentration:" read(*,*)C end if write(*,*) "please input the time:" read(*,*)T !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !计算用到的参数 smallt = 0.25*L*L/D/10**8 pmax = T/smallt F = D*smallt/(L*L)*10**8 array1 = C array2 = C !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !这里就是出错的开始!!! do p=1,pmax do x=0,10000 array1(-1) = J*L/10000/D + array1(0) array1(10001) = array1(10000) + array1(0) - array1(-1) array2(x)=F*(array1(x+1)+array1(x-1))+(1-2*F)*array1(x) end do array1 = array2 end do !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !将阵列输出到文字档 open(unit=10,file="diffusion1.txt") do x=-1,10001 write(10,*) array1(x) end do STOP END --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.211.150
1F:→ Cypresslin:应该不是无法结束,是回圈太大,pmax还要乘上10000 12/18 09:52
2F:→ kkarthur:smallt = 0.25*L*L/D/10**8 检查你的smallt的值 12/18 12:25
3F:→ kkarthur:如果没有意外应该是0,导致pmax极大,回圈跑不完 12/18 12:26
4F:→ kkarthur:改成smallt = 0.25*L*L/D/10.0**8.0 试试看 12/18 12:26
5F:→ kkarthur:不仅是这个地方,例如array1(-1) = J*L/10000/D 12/18 12:30
6F:→ kkarthur:这都会'让你的结果与预期的不同 12/18 12:30
谢谢~ 目前我把回圈数设定成100的话都可以执行成功,所以应该是回圈太大的问题, 0.25*L*L/D/10.0**8.0有改过但还是跑不完~ 这问题满棘手的..因为有些参数就是得这麽小阿......QQ ※ 编辑: YmemY 来自: 140.112.4.209 (12/18 13:46)
7F:→ mk650:t=10,pamx=41200000,x=412000000000,粉大的回圈,如果参数没 12/18 13:56
8F:→ mk650:错,也只能丢着给它跑啦 12/18 13:56
9F:→ Cypresslin:你可以再把回圈里跟x无关的拿出来,可能可以快一咪咪 12/18 13:57
10F:→ mk650:呵三楼的精简化本人常干,不过它这个程式很简单,只有两行多余 12/18 14:00
11F:→ mk650:差别不大啦.重点在t要多大,t=0.0001够吗? 12/18 14:00
t最多可能要到100...囧 不过我想或许我的D数字错了,他可能是10^-10这麽小,所以smallt可以不用这麽小.. 虽然试了一次还是行不通 但方向应该没错 再搞搞看...谢谢
12F:→ mk650:t=1,十分钟跑完,I7 2600套装很便宜电脑,更好的电脑得会更快 12/18 14:17
13F:→ mk650:这样很快了,我的程式都要跑一周以上,有三周还没跑完的 12/18 14:18
挖赛!!!!! 原来真的要这麽久XD ※ 编辑: YmemY 来自: 140.112.211.150 (12/18 22:53)
14F:推 george1224:建议把你所计算的数值的order提高一点,电脑在进行计算 12/19 22:32
15F:→ george1224:的时候,其精度会有差别... 12/19 22:33
感谢各位的提示,经由将参数调整地平易近人一点後,模拟出正确的结果了! ※ 编辑: YmemY 来自: 140.112.211.150 (12/28 02:08)







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

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

TOP