Fortran 板


LINE

小弟最近在学有限元素法 在下面程式中,n<24内都可以正常显示输出的值 但一旦n超过24时,输出的值除了原本给定的边界值 计算出来的值均会变成??????????? 想请问版上的大神们有遇过这种情形吗? PROGRAM FEM_HW1 IMPLICIT NONE real*8,parameter :: min = 0.d0 !Boundary real*8,parameter :: Max = 1.d0 !Boundary integer,parameter :: n = 24 integer :: i real*8 :: h,a,b,dx,x real*8 :: aa11,aa12,aa22,bb1,bb2 real*8 :: a11,a12,a22,b1,b2 real*8 :: ans real*8 :: gl(0:n) real*8 :: BB(0:n),DD(0:n),AA(0:n),CC(0:n) = 0 real*8 :: y(0:n) aa11(x,b,dx) = x*((b-x)/dx)**2 !Q = x aa22(x,a,dx) = x*((x-a)/dx)**2 !Q = x aa12(x,a,b,dx) = x*(a-x)/dx*(x-b)/dx !Q = x bb1(x,b,dx) = -x*(b-x)/dx !G = -x bb2(x,a,dx) = -x*(x-a)/dx !G = -x open(unit = 9,FILE='FEM_HW1.txt') dx = (Max - min)/dble(n) do i = 0,n gl(i) = dble(i)*dx+min end do do i = 0,n-1 h = (gl(i+1)-gl(i))/3.d0 call simpson(gl(i),gl(i+1),aa11(gl(i),gl(i+1),dx) C,aa11(gl(i)+h,gl(i+1),dx),aa11(gl(i)+h*2,gl(i+1),dx) C,aa11(gl(i)+h*3,gl(i+1),dx),ans) a11 = 1.d0/dx - ans call simpson(gl(i),gl(i+1),aa22(gl(i),gl(i),dx) C,aa22(gl(i)+h,gl(i),dx),aa22(gl(i)+h*2,gl(i),dx) C,aa22(gl(i)+h*3,gl(i),dx),ans) a22 = 1.d0/dx - ans call simpson(gl(i),gl(i+1),aa12(gl(i),gl(i),gl(i+1),dx) C,aa12(gl(i)+h,gl(i),gl(i+1),dx),aa12(gl(i)+h*2,gl(i),gl(i+1),dx) C,aa12(gl(i)+h*3,gl(i),gl(i+1),dx),ans) a12 = -1.d0/dx - ans call simpson(gl(i),gl(i+1),bb1(gl(i),gl(i+1),dx) C,bb1(gl(i)+h,gl(i+1),dx),bb1(gl(i)+h*2,gl(i+1),dx) C,bb1(gl(i)+h*3,gl(i+1),dx),ans) b1 = -ans call simpson(gl(i),gl(i+1),bb2(gl(i),gl(i),dx) C,bb2(gl(i)+h,gl(i),dx),bb2(gl(i)+h*2,gl(i),dx) C,bb2(gl(i)+h*3,gl(i),dx),ans) b2 = -ans BB(i+1) = BB(i+1) + a12 DD( i ) = DD( i ) + a11 AA( i ) = AA( i ) + a12 DD(i+1) = DD(i+1) + a22 CC( i ) = CC( i ) + b1 CC(i+1) = CC(i+1) + b2 end do BB(0) = 0.d0 DD(0) = 1.d0 AA(0) = 0.d0 CC(0) = 0.d0 !B.C. BB(n) = 0.d0 DD(n) = 1.d0 AA(n) = 0.d0 CC(n) = 0.d0 !B.C. CC( 1 ) = CC(1) - BB(1)*CC(0) BB( 1 ) = 0.d0 CC(n-1) = CC(n-1) - AA(n-1)*CC(n) AA(n-1) = 0.d0 call SY(1,n-1,BB(1:n-1),DD(1:n-1),AA(1:n-1),CC(1:n-1)) y = CC do i = 0,n write(*,"((F12.8))")y(i) write(9,"((F12.8))")y(i) end do close(9) STOP END SUBROUTINE simpson(min,Max,a,b,c,d,I) IMPLICIT NONE real*8 :: min,Max,a,b,c,d real*8 :: I I = (Max-min)*(a+b*3+c*3+d)/8 RETURN END SUBROUTINE SY(IL,IU,BB,DD,AA,CC) IMPLICIT DOUBLE PRECISION(A-H,O-Z) DIMENSION AA(1), BB(1), CC(1), DD(1) LP = IL + 1 DO 10 I = LP, IU R = BB(I)/DD(I-1) DD(I) = DD(I) - R*AA(I-1) 10 CC(I) = CC(I) - R*CC(I-1) CC(IU) = CC(IU)/DD(IU) DO 20 I = LP,IU J = IU - I + IL 20 CC(J) = (CC(J)-AA(J)*CC(J+1))/DD(J) RETURN END --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.116.20.17
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Fortran/M.1552076717.A.FB2.html
1F:推 espresso1: 设n=25就无法输出值? 03/10 15:26







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