关于数组越界的问题!!
Subroutine ran3(idum, rand)Implicit Real *8(A-H, M, O-Z)
Parameter (mbig=4000000., mseed=1618033., mz=0., fac=1./mbig)
Dimension ma(55)
Data iff/0/
If (idum<0 .Or. iff==0) Then
iff = 1
mj = mseed - dble(iabs(idum))
mj = dmod(mj, mbig)
ma(55) = mj
mk = 1
Do i = 1, 54
ii = mod(21*i, 55)
ma(ii) = mk
mk = mj - mk
If (mk<mz) mk = mk + mbig
mj = ma(ii)
End Do
Do k = 1, 4
Do i = 1, 55
ma(i) = ma(i) - ma(1+mod(i+30,55))
If (ma(i)<mz) ma(i) = ma(i) + mbig
End Do
End Do
! End If
inext = 0
inextp = 31
idum = 1
End If
inext = inext + 1
If (inext==56) inext = 1
inextp = inextp + 1
If (inextp==56) inextp = 1
mj = ma(inext) - ma(inextp) !!!调试时 显示在这行出错误,
If (mj<mz) mj = mj + mbig
ma(inext) = mj
rand = mj*fac
Return
End Subroutine ran3
属于第三种错误 运行错误
错误提示:Subscript #1 of the arrat MA has value -858993459 which is less than the lower bound of 1
显示ma矩阵越界 一直在找错误 还没想明白修改哪里 想请问大神怎么修改才能让程序正确运行,解除错误?
十分感谢!!!!!
不满足if条件,变量初始化未执行。 1 加一個敘述: SAVE
Data iff/0/
SAVE ! save local variables inext, inextp, and ma
If (idum<0 .Or. iff==0) Then
2. http://www.indiana.edu/~clcl/Q550_WWW/Number_Generators.f95 chiangtp 发表于 2017-8-16 13:38
1 加一個敘述: SAVE
Data iff/0/
SAVE ! save local variables inext, inextp, ...
大哥您好 出现了下面的语法错误
另外您给我的这个module拿去算的时候也出现点问题
我现在在用这个程序算,ma这个程序单独拿出来算没事 但是一放到整个程序中就会报错(数组越界)
十分感谢您的回答
li913 发表于 2017-8-16 11:11
不满足if条件,变量初始化未执行。
您好 但是我单独把这个程序放到VS里算的时候正常运行
但是放到一个完整的程序中去算的时候就会报错(数组越界)
十分感谢您的回答 wy123 发表于 2017-8-16 15:42
大哥您好 出现了下面的语法错误
另外您给我的这个module拿去算的时候也出现点问题
怎樣的"语法错误"? wy123 发表于 2017-8-16 15:58
好像不会发图片您等等 不好意思哈
chiangtp 发表于 2017-8-16 15:55
怎樣的"语法错误"?
加入save后的错误
error #5082: Syntax error, found '[' when expecting one of: <LABEL> <END-OF-STATEMENT> ; BLOCK BLOCKDATA PROGRAM MODULE TYPE INTEGER REAL ...
然后我用您的那个mudule 出现这个问题
Do i = 1, n
Do
x = int(ran3(idum)*d) + 1
If (raw_order(x)<>-1) Goto 10
End Do
1>d:\documents\visual studio 2010\Projects\17081601\17081601\Source1.f90(203): error #5082: Syntax error, found '>' when expecting one of: ( <IDENTIFIER> <CHAR_CON_KIND_PARAM> <CHAR_NAM_KIND_PARAM> <CHARACTER_CONSTANT> <INTEGER_CONSTANT> ... Data iff/0/
SAVE
If (idum<0 .Or. iff==0) Then
這樣會錯??? chiangtp 发表于 2017-8-16 16:20
Data iff/0/
SAVE
If (idum
哦哦好的 加了之后问题解决了 十分感谢您!!!!!!!!!!
页:
[1]
2