Я получаю эту проблему, так как есть большее количество строк (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: Ошибка сегментации - недопустимая ссылка на память.
Backtrace для этой ошибки:
# 0 0x2B76431D4777
# 1 0x2B76431D4D7E
# 2 0x2B764350BCAF
# 3 0x400BA8 в MAIN__ на prob.f:?
Ошибка сегментации (ядро сброшено) "
Любые предложения приветствуются.