[請益] 關於ALLOCATE 副程式該怎麼宣告?

作者: freedomQ (香腸)   2013-02-26 13:33:18
主程式的宣告
real*8,allocatable::xi(:),ri(:),zi(:),yi(:),ECL(:)
副程式的宣告
subroutine FCN (XA, F, n1)
integer n1,g,o
real XA(n1), F(n1)
real beta1,lambda1
real sum1,sum2,sum3,sum4,sum5
real*8,allocatable::xi(:),ri(:)
common/a2/beta1,lambda1
由於主程式與副程式都很龐大所以我就省略,只貼上宣告變數的地方有疑惑
最後執行時出現了這行想請問這是跟我的陣列大小有關嗎?
forrtl severe <161>:program EXception - array bounds exceeded
副程式這樣宣告陣列可以嗎??
懇請各位高手幫我看看 謝謝
作者: terryys (terry)   2013-02-27 09:48:00
使用超出你宣告的大小會這樣,例如宣告a(10)但你想用a(11)
作者: philodi (我老婆好疼我喔)   2013-03-02 11:40:00
你要先確定矩陣爆掉是出現在哪裡?再來就是副程式可以直接這樣 SUBROUTINE(N,X)INTEGER N REAL X(N) 如此不用在副程式中使用ALLOCATABLE

Links booklink

Contact Us: admin [ a t ] ucptt.com