主题:为什么把循环变量的终值改变,编译就出错了?
原来的循环变量的终值是2000,可是需要多做一段,需要增加到5000,可是编译时就出现下面的错误了:
ld: rel32 out of range in start in start from /usr/lib/crt1.10.5.o
collect2: ld returned 1 exit status
是什么原因呢?
我的程序中与循环变量有关的部分是:
integer,parapemer::nstep=5000 (nstep为循环变量的终值)
real*8 xcm(nattot,nstep),ycm(nattot,nstep),zcm(nattot,nstep)
real*8 msd(nstep)
ntime=0
msd=0.0d0
do i=1,nstep-1,10
do j=i+1,nstep
m=j-i
ntime(m)=ntime(m)+1
do k=1,nwat
xdiff = xcm(p(k),j) - xcm(p(k),i)
ydiff = ycm(p(k),j) - ycm(p(k),i)
zdiff = zcm(p(k),j) - zcm(p(k),i)
msd(m) =msd(m)+xdiff*xdiff+ydiff*ydiff+zdiff*zdiff
enddo
enddo
enddo
do i=1,nstep-1
msd(i)=msd(i)/(dble(nwat)*dble(ntime(i)))
write(nout,*) dble(i)*dt,msd(i)
enddo
ld: rel32 out of range in start in start from /usr/lib/crt1.10.5.o
collect2: ld returned 1 exit status
是什么原因呢?
我的程序中与循环变量有关的部分是:
integer,parapemer::nstep=5000 (nstep为循环变量的终值)
real*8 xcm(nattot,nstep),ycm(nattot,nstep),zcm(nattot,nstep)
real*8 msd(nstep)
ntime=0
msd=0.0d0
do i=1,nstep-1,10
do j=i+1,nstep
m=j-i
ntime(m)=ntime(m)+1
do k=1,nwat
xdiff = xcm(p(k),j) - xcm(p(k),i)
ydiff = ycm(p(k),j) - ycm(p(k),i)
zdiff = zcm(p(k),j) - zcm(p(k),i)
msd(m) =msd(m)+xdiff*xdiff+ydiff*ydiff+zdiff*zdiff
enddo
enddo
enddo
do i=1,nstep-1
msd(i)=msd(i)/(dble(nwat)*dble(ntime(i)))
write(nout,*) dble(i)*dt,msd(i)
enddo