fortran程序错误,编译过程没提示错误,执行a.out时错误信息如下:
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
#0 0x2B037CE82697
#1 0x2B037CE82CDE
#2 0x2B037D91527F
#3 0x2B037DA34CF4
#4 0x2B037CF51424
#5 0x2B037CF4FBD3
#6 0x400A8A in MAIN__ at massjd.f:?
Segmentation fault (core dumped)
刚接触fortran语言,不太明白是什么问题,请各位大神帮忙看下
程序如下:
program mass
c
implicit none
include '../aek.h'
c
integer*4 i,j,k
real*8 xc,zc,phi(nx,ny,nz),sumphi,sumx,sumz
c
c...open input and output file
open (unit=11,file='mass.txt',form='formatted',status='new')
open (unit=2,file='../movfields/0100.dat',
> form='unformatted',status='old')
c...initialize
sumx=0d0
sumz=0d0
sumphi=0d0
do i=1,nx
do k=1,nz
c...location of (x,z) = (1d0*i-0.5d0,1d0*k-0.5d0)
read(2) phi(i,j,k)
if (phi(i,j,k) .gt. 0d0) then
sumphi=sumphi+phi(i,j,k)
sumx=sumx+phi(i,j,k)*(1d0*i-0.5d0)
sumz=sumz+phi(i,j,k)*(1d0*k-0.5d0)
endif
enddo
enddo
xc=sumx/sumphi
zc=sumz/sumphi
write(11,*) xc,zc
close (unit=2)
close (unit=11)
end |