回 帖 发 新 帖 刷新版面

主题:流体力学 fortran运行报错,请大侠过来帮忙哈

最近在学习fortran流体力学,就按照Anderson的计算流体力学基础与应用一书书后的程序编写,我用的是Fortran PowerStation 4.0,经调试编译无错误,,运行后报错显示
run-time error M6101: MATH
- floating-point error: invalid
现把程序粘贴如下,希望大侠帮帮忙,小女子感激不尽!
    REAL U(41),A(41),B(41),C(41),D(41),Y(41)
     N=20
     NN=N+1
     Y(1)=0.0
     DEL=1.0/FLOAT(N)        
     RE=5.0E+3
     EE=1.0
     TIME=0.0
     DELTIM=EE*RE*DEL**2
     U(1)=0.0
     U(NN)=1.0
     AA=-0.5*EE
     BB=1.0+EE
     KKEND=2
     KKMOD=1
     DO 1 J=1,N
     U(J)=0.0
1     CONTINUE
       A(1)=1.0
     B(1)=1.0
     C(1)=1.0
     D(1)=1.0
     DO 5 KK=1,KKEND
     DO 2 J=2,N
     Y(J)=Y(J-1)+DEL
     A(J)=AA
     IF (J.EQ.N)  THEN
     A(J)=0.0
     D(J)=BB
     B(J)=AA
     END IF
     IF(J.EQ.2)  THEN
     B(J)=0.0
     C(J)=(1.0-EE)*U(J)+0.5*EE*(U(J+1)+U(J-1))
     END IF
     IF(J.EQ.N)   THEN
     C(J)=C(J)-AA*U(NN)
     END IF
2     CONTINUE
     DO 3 J=3,N
     D(J)=D(J)-B(J)*A(J-1)/D(J-1)
     C(J)=C(J)-C(J-1)*B(J)/D(J-1)
3     CONTINUE
     DO 4 K=2,N
     M=N-(K-2)
     U(M)=(C(M)-A(M) *U(M+1))/D(M)
4      CONTINUE
     Y(1)=0.0
     Y(NN)=Y(N)+DEL
     TIME=TIME+DELTIM
     TEST=MOD(KK,KKMOD)
     IF(TEST.GT.0.01)  THEN
     GOTO  5
     WRITE (6,100) KK,TIME,DELTIM
     WRITE (*,100) KK,TIME,DELTIM
     WRITE (6,101)
     WRITE (*,101)
     END  IF
5     CONTINUE
100     FORMAT(5X//5X,'SOLUTION
AT',5X,'KK',I3,5X,'TIME=',E10.3,5X,'DELTIM=',E10.3//)
101    FORMAT(3X,'J',6X,'Y',9X,'U',9X,'B',9X,'D',9X,'A',9X,'C')
102    FORMAT(2X,I3,6E10.3)
    END

回复列表 (共11个回复)

沙发

看上去好像是函数值,定义域错误

板凳


好像是D(J)没有定义吧

3 楼

这种垃圾程序,我建议您不要去看了,直接自己编写嘛,又不难。

4 楼


同意楼上的,自己编得了。上述程序代码好像很老

5 楼

感谢各位了

6 楼

N个月后楼主突然把程序重写了?

7 楼


没写,只是好久没登论坛了,看到大家的积极回帖,只是想好好谢谢大家而已,嘻嘻

8 楼

嘿嘿,有空多来啊:)咱坛内高手如云啊:)

9 楼


确实有很多高手。感谢大家

10 楼

那你是高手吗?你可不可以帮我看看这个提问,也是该论坛的,感谢哈http://bbs.pfan.cn/post-373992.html

我来回复

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