由于行数更多(ndt = 112256),所以我遇到了这个问题,而当行数较少时(例如,如果ndt = 69888),它就可以正常工作。
我尝试在代码的前几行中增加最大限制
real dt,crad,p
dimension dt(9000000),crad(9000000),p(1000)
dimension a(90000000)
integer rvac
ndt=112256
open (unit=1,file='x.dat')
open (unit=4,file='x1.dat')
do j=1,1000
p(j)=0.0d0
enddo
do i=1,ndt
read(1,*) dt(i), a(i), crad(i)
rvac = crad(i)
if (rvac.le.180)then
p(rvac)=p(rvac)+1
endif
enddo
sum=0.
sum1=0.
do rvac=1,180
write(4,*) rvac,p(rvac),p(rvac)/ndt
c111 format(f12.5,3x,f12.5)
enddo
c
stop
end
我收到以下错误消息:
“程序接收到的信号SIGSEGV:分段错误-无效的内存引用。
此错误的回溯:
#0 0x2B76431D4777
#1 0x2B76431D4D7E
#2 0x2B764350BCAF
MAIN__中的#3 0x400BA8,位于prob.f:?
分段错误(核心已转储)”
任何建议都会受到赞赏。