初学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
求解! 展开
1个回答
展开全部
经调试,已无甚问题 !
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
浙江启扬智能科技有限公司
2023-06-12 广告
2023-06-12 广告
在嵌入式开发中,建立交叉开发环境可以提高开发效率和代码质量。以下是建立交叉开发环境的一些原因:1. 硬件资源限制:嵌入式系统的硬件资源,如处理器主频、内存容量等,相对于PC机来说较为有限。利用PC机进行开发可以利用更快的硬件设备,提高开发效...
点击进入详情页
本回答由浙江启扬智能科技有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询