|  | 
6#
 
 
 楼主|
发表于 2014-2-24 13:21:26
|
只看该作者 
| 刚有分析了一下,问题程序应该是如下循环部分。 Nlist2(I)在I=6时才开始大于0,而程序中断时I=5,所以后面必然连锁出错。这是什么原因造成的呢?明明前几步的大循环都没有出错啊。
 
 I = 1
 L2 = 0
 DO N0=2,Nlev
 ddl0 = 1.5*dl0(N0)
 DO N1=1,Nsumbox(N0)
 I = I+1
 IF(Nlist2(I)>0)THEN
 DO I0=1,Nlist2(I)
 L2 = L2+1
 I1 = list2(L2)
 xx = boxCen(I1,1)-boxCen(I,1)
 yy = boxCen(I1,2)-boxCen(I,2)
 zz = boxCen(I1,3)-boxCen(I,3)
 IF(ABS(zz)>ddl0)THEN
 IF(zz>0.) THEN
 NlistU(I) = NlistU(I)+1
 listU(I,NlistU(I)) = I1
 ELSE
 NlistD(I) = NlistD(I)+1
 listD(I,NlistD(I)) = I1
 END IF
 ELSE
 IF(ABS(yy)>ddl0)THEN
 IF(yy>0.) THEN
 NlistN(I) = NlistN(I)+1
 listN(I,NlistN(I)) = I1
 ELSE
 NlistS(I) = NlistS(I)+1
 listS(I,NlistS(I)) = I1
 END IF
 ELSE IF(ABS(xx)>ddl0)THEN
 IF(xx>0.)THEN
 NlistE(I) = NlistE(I)+1
 listE(I,NlistE(I)) = I1
 ELSE
 NlistW(I) = NlistW(I)+1
 listW(I,NlistW(I)) = I1
 END IF
 END IF
 END IF
 END DO
 END IF
 END DO
 END DO
 | 
 |