24小时热门版块排行榜    

查看: 486  |  回复: 3

zzg03211

新虫 (初入文坛)

[求助] 我的一个程序运行总是不成功,求大神帮忙 已有1人参与

如题,求助。附件里面是我的代码,求好心人看看帮小弟解答下不胜感激。。。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zzg03211

新虫 (初入文坛)

!
!   SUBROUTINE FOR EARTHQUAKE RESPONSE SPECTAR
!
!           CODED BY Y.OHSAKI
!
     SUBROUTINE ERES(NH,H,ND1,NT,T,ND2,DT,NN,DDY,ND3,IND,QMAX,RES)
!
     DIMENSION H(ND1),T(ND2),DDY(ND3),RES(ND2,ND1)
     DIMENSION EMAX(3),RMAX(3)
     PARAMETER (P2=6.283185)
!
!    MAXIMA OF INPUT MOTION
!
     EMAX(1)=ABS(DDY(1))
     EMAX(2)=0.
     EMAX(3)=0.
     DDYF=DDY(1)
     DYF=0.
     YF=0.
     DO 110 M=2,NN
     DDYM=DDY(M)
     DY=DYF+(DDYF+DDYM)*DT/2
     Y=YF+DYF*DT+(DDYF/3.+DDYM/6.)*DT**2
     EMAX(1)=AMAX1(EMAX(1),ABS(DDYM))
     EMAX(2)=AMAX1(EMAX(2),ABS(DY))
     EMAX(3)=AMAX1(EMAX(3),ABS(Y))
     DDYF=DDYM
     DYF=DY
     YF=Y
110  CONTINUE
     QMAX=EMAX(IND)
!
!    RESPONSE COMPUTATION
!
     DO 150 L=1,NH
     DO 140 K=1,NT
     IF (T(K).EQ.0.)GO TO 130
     W=P2/T(K)
     W2=W*W
     HW=H(L)*W
     WD=W*SQRT(1.-H(L)**2)
     WDT=WD*DT
     E=EXP(-HW*DT)
     CWDT=COS(WDT)
     SWDT=SIN(WDT)
     A11=E*(CWDT+HW*SWDT/WD)
     A12=E*SWDT/WD
     A21=-E*W2*SWDT/WD
     A22=E*(CWDT-HW*SWDT/WD)
     SS=-HW*SWDT-WD*CWDT
     CC=-HW*CWDT+WD*SWDT
     S1=(E*SS+WD)/W2
     C1=(E*CC+HW)/W2
     S2=(E*DT*SS+HW*S1+WD*C1)/W2
     C2=(E*DT*CC+HW*C1-WD*S1)/W2
     S3=DT*S1-S2
     C3=DT*C1-C2
     B11=-S2/WDT
     B12=-S3/WDT
     B21=(HW*S2-WD*C2)/WDT
     B22=(HW*S3-WD*C3)/WDT
     RMAX(1)=2.*HW*ABS(DDY(1))*DT
     RMAX(2)=ABS(DDY(1))*DT
     RMAX(3)=0.
     DXF=-DDY(1)*DT
     XF=0.
     DO 120 M=2,NN
     DDYM=DDY(M)
     DDYF=DDY(M-1)
     X=A12*DXF+A11*XF+B12*DDYM+B11*DDYF
     DX=A22*DXF+A21*XF+B22*DDYM+B21*DDYF
     DDX=-2.*HW*DX-W2*X
     RMAX(1)=AMAX1(RMAX(1),ABS(DDX))
     RMAX(2)=AMAX1(RMAX(2),ABS(DX))
     RMAX(3)=AMAX1(RMAX(3),ABS(X))
     DXF=DX
     XF=X
120  CONTINUE
     RES(K,L)=RMAX(IND)
     GO TO 140
130  RES(K,L)=0.
     IF(IND.EQ.1) RES(K,L)=EMAX(1)
140  CONTINUE
150  CONTINUE
     RETURN
     END
     
     DIMENSION H(3),T(35),DDY(4),RES(35,3)
     DATA NH/3/,H/0.,0.05,0.1/,IND/1/,DT/0.02/
     DATA NT/35/,T/0.00,0.05,0.10,0.15,0.20,0.25,0.30,0.35,0.40,&
                0.45,0.50,0.55,0.60,0.65,0.70,0.75,0.80,0.85,&
                 0.90,0.95,1.00,1.20,1.40,1.60,1.80,2.00,2.20,&
                 2.40,2.60,2.80,3.00,3.50,4.00,4.50,5.00/
      open(5,file='data.dat',status='old')
      REWIND(5)
!
      READ(5,501)(DDY(M),M=2,5)
      CALL ERES(NH,H,3,NT,T,35,DT,NN,DDY,4,IND,QMAX,RES)
      STOP
!
501  FORMAT(F10.3)
      END
     不好意思,程序没传上。上面的就是我的代码
2楼2014-10-10 18:33:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

weiwei43

至尊木虫 (正式写手)

有错误信息吗?
3楼2014-10-17 08:28:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

weiwei43

至尊木虫 (正式写手)

【答案】应助回帖

程序语法没有问题,编译都可以通过。
计算时需要一个数据文件,data.dat,你给的文件没有这个数据。
4楼2014-10-17 08:34:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zzg03211 的主题更新
信息提示
请填处理意见