回 帖 发 新 帖 刷新版面

主题:求助。学习Fortran的请进

term1=term1+((h*hx*sigma*bioth*hx*(gammah-gammao))/((1d0+bioth*h)**(2d0)))
      term1=term1+((0.5d0*h2*sigma*bioth*hxx*(gammah-gammao))/((1d0+bioth*h)**(2d0)))
      term1=term1+((0.5d0*h2*sigma*bioth*hx*(gammahx-gammaox))/((1d0+bioth*h)**(2d0)))
      term1=term1-((h2*sigma*bioth2*hx*(gammah-gammao)*hx)/((1d0+bioth*h)**(3d0)))
最后没办法运行,总是显示绿色和红色。本身不是学这个的,也只是做课设用到的,时间比较紧,对于这个程序完全是从未接触。不知道有没有高手能够改进这个呢?万分感激!

回复列表 (共4个回复)

沙发


把报错内容贴出来

板凳

term1=term1+((h*hx*sigma*bioth*hx*(gammah-gammao))/((1d0+bioth*h)**(2d0)))
      term1=term1+((0.5d0*h2*sigma*bioth*hxx*(gammah-gammao))/((1d0+bioth*h)**(2d0)))
      term1=term1+((0.5d0*h2*sigma*bioth*hx*(gammahx-gammaox))/((1d0+bioth*h)**(2d0)))
      term1=term1-((h2*sigma*bioth2*hx*(gammah-gammao)*hx)/((1d0+bioth*h)**(3d0)))
以上表达式中的1d0、2d0、0.5d0是你定义好的量吗?貌似应该加*号吧。1*d0、2*d0、0.5*d0、3*d0……
出错后先看错误出在哪里,找到原因后,然后再修改调试。

3 楼

楼上误会了, 1d0 这些是表示双精度数.
楼主说的红色绿色, 我猜可能是以fixed格式打开, 代码超过长度.
详细还要他自己贴出错情况出来.

4 楼

如果不是导师的硬性规定,请不要再用Fixed Format了,使用可爱的Free Format吧——除非您还可能接触打孔机~~~~~

我来回复

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