初学Fortran 为什么fortran程序第一遍能运行成功,第二遍就失败了?
程序代码如下:open(1,file='vt.dat')write(*,*)'inputA,B,v0,t=?'read(*,*)A,B,v0,tv1=v0s=10.0s1...
程序代码如下:
open(1,file='vt.dat')
write(*,*)'input A,B,v0,t=?'
read(*,*)A,B,v0,t
v1=v0
s=10.0
s1=10.0
dt=t/1000
do j=1,1000
tt=t*float(j)/1000
v=((A-exp((-1.)*B*tt))/B)
v1=(v1+(A-B*v1)*dt)
s=s+v*dt
s1=s1+v1*dt
write(1,*)tt,s,s1
end do
end
第一遍能运行成功,第二遍运行就出现了以下文字
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
#0 ffffffff
求解! 展开
open(1,file='vt.dat')
write(*,*)'input A,B,v0,t=?'
read(*,*)A,B,v0,t
v1=v0
s=10.0
s1=10.0
dt=t/1000
do j=1,1000
tt=t*float(j)/1000
v=((A-exp((-1.)*B*tt))/B)
v1=(v1+(A-B*v1)*dt)
s=s+v*dt
s1=s1+v1*dt
write(1,*)tt,s,s1
end do
end
第一遍能运行成功,第二遍运行就出现了以下文字
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
#0 ffffffff
求解! 展开
展开全部
经调试,已无甚问题 !
open(1,file='vt.dat',status='new')
write(*,*)'input A,B,v0,t=?'
c read(*,*)A,B,v0,t
a=1
b=2
v0=3
t=4
v1=v0
s=10.0
s1=10.0
dt=t/1000
do 10 j=1,1000
tt=t*float(j)/1000
v=((A-exp((-1.)*B*tt))/B)
v1=(v1+(A-B*v1)*dt)
s=s+v*dt
s1=s1+v1*dt
write(1,*)tt,s,s1
10 continue
close(1)
end
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询