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

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

TOP