作者freedomQ (香肠)
看板Fortran
标题[请益] 关於ALLOCATE 副程式该怎麽宣告?
时间Tue Feb 26 13:33:18 2013
主程式的宣告
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
副程式这样宣告阵列可以吗??
恳请各位高手帮我看看 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.130.100.173
1F:推 terryys:使用超出你宣告的大小会这样,例如宣告a(10)但你想用a(11) 02/27 09:48
2F:推 philodi:你要先确定矩阵爆掉是出现在哪里? 03/02 11:40
3F:→ philodi:再来就是副程式可以直接这样 SUBROUTINE(N,X) 03/02 11:42
4F:→ philodi:INTEGER N REAL X(N) 如此不用在副程式中使用ALLOCATABLE 03/02 11:43