回 帖 发 新 帖 刷新版面

主题:我的子程序有问题,希望高手指点


我的这个程序,主要是计算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

回复列表 (共1个回复)

沙发

real function pulse_u(t)
此函数中 pi 未曾定义,为何不坚持用 implicit none 呢?

我来回复

您尚未登录,请登录后再回复。点此登录或注册