主题:我的子程序有问题,希望高手指点
我的这个程序,主要是计算Fx和Fy,要用到两个子程序,最后算出来的Fx和Fy不知道为什么全为0
implicit none
INTEGER I,J
real pi,time,Fx,Fy,cs,cp,damp_cs,damp_cp,stif_n,stif_t,tsd,tpd,y,pulse,pulse_u,T1,T2
pi=2.*ASIN(1.0)
cs=1400.
cp=2424.87
damp_cs=19.05*2.7*cs
damp_cp=19.05*2.7*cp
stif_n=19.05*5.292*1000000.0/381.0
stif_t=19.05*0.5*5.292*1000000.0/381.0
do J=1,21
y=(J-1)*19.05
tsd=y/cs
tpd=y/cp
do I=1,400
time=0.005*I
T1=time-tsd
T2=time-0.5442857+tsd
Fx=damp_cs*(pulse(time-tsd)-pulse(time-0.5442857+tsd))
Fy=stif_n*(pulse_u(time-tsd)+pulse_u(time-0.5442857+tsd))+damp_cp*(pulse(time-tsd)+pulse(time-0.5442857+tsd))
OPEN(UNIT=17,FILE='ff.DAT')
write(17,10)y,time,Fx,Fy
10 format(2X,'y',F8.2,2X,'time',F5.3,2X,'Fx',F20.8,2X,'Fy',F20.8)
end do
end do
pause
stop
END program main
real function pulse_u(t)
if(t.ge.0.and.t.le.0.50)then
pulse_u=sin(4*pi*t)-0.5*sin(8*pi*t)
else
pulse_u=0.0
endif
end function
real function pulse(t)
if(t.ge.0.and.t.le.0.50)then
pulse=4*pi*cos(4*pi*t)-4*pi*cos(8*pi*t)
else
pulse=0.0
endif
end function