分段错误-具有更多行数的无效内存引用

时间:2019-01-03 05:15:14

标签: fortran

由于行数更多(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:?

分段错误(核心已转储)”

任何建议都会受到赞赏。

0 个答案:

没有答案