Fortran Coder

查看: 6250|回复: 2
打印 上一主题 下一主题

[求助] 求各位大佬帮忙看看为什么会出现floating invalid的报错啊呜...

[复制链接]

2

帖子

1

主题

0

精华

新人

F 币
17 元
贡献
8 点
跳转到指定楼层
楼主
发表于 2021-10-31 12:34:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[Fortran] 纯文本查看 复制代码
program sx02
    implicit none
    real,parameter::cp=1004
    real(8) es,e,q,l,b,td,seitase,tl,f,t,p
    read(*,*) f,t,p
    
    es=6.112*(10**((7.5*t)/(237.3+t)))
    e=f*es
    q=e/p
    l=597.3-0.566*t
    
    do while(e<es)
        t=t-0.5
        es=6.112*(10**((7.5*t)/(237.3+t)))
    end do
    td=t
    
    b=(0.622*l)/(cp*td-1)
    tl=(td*b)/(b+log(291.56/td))

输入数据是
0.97
291.56
1003.5
    
    seitase=291.56*((1000/(p-e))**0.286)*exp(l*q/cp/tl)
    write(*,*) ,seitase
    end program sx02


分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

159

帖子

2

主题

1

精华

大师

Vim

F 币
961 元
贡献
469 点

规矩勋章

沙发
发表于 2021-10-31 14:46:38 | 只看该作者
26 行
[Fortran] 纯文本查看 复制代码
((1000/(p-e))**0.286)


其中 1000/(p-e)<0 ,一个小于0 的数的小数幂次不能在实数域定义,所以返回NaN

2

帖子

1

主题

0

精华

新人

F 币
17 元
贡献
8 点
板凳
 楼主| 发表于 2021-11-1 15:15:41 | 只看该作者
Transpose 发表于 2021-10-31 14:46
26 行

其中 1000/(p-e)

啊懂了谢谢大佬!
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-13 05:49

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表