回 帖 发 新 帖 刷新版面

主题:运行问题

请问运行是这个错误是什么原因,请各位大侠帮忙

回复列表 (共11个回复)

沙发

看看text2.f90的第136行,那个log10函数里的数值小于或等于0了。

板凳


sw=2.0d0*lambda/pi*cdabs(csga)**2
swdb=10.0d0*dlog10(sw)
下面那行就是136行,dlog10里面的sw是正值啊

3 楼

[quote]
sw=2.0d0*lambda/pi*cdabs(csga)**2
swdb=10.0d0*dlog10(sw)
下面那行就是136行,dlog10里面的sw是正值啊[/quote]

建议你打印出来看看

sw=2.0d0*lambda/pi*cdabs(csga)**2
write(*,*) sw
pause
swdb=10.0d0*dlog10(sw)

4 楼

打印出来是
NaN
这是什么意思啊?

5 楼

[quote]打印出来是
NaN
这是什么意思啊?[/quote]


问题不就来了嘛,sw是一个无效的数。
再试试:
sw=2.0d0*lambda/pi*cdabs(csga)**2
write(*,*) lambda,csga,cdabs(csga),sw
pause
swdb=10.0d0*dlog10(sw)

6 楼

lamda和pi同时为0就会产生这个问题,
或者是
求sw的式子中,原本就有值为NaN的数据

7 楼


谢谢你了,我再认真看看再向你请教

8 楼


估计问题出在函数cdabs(csga)上,pi一般不会忘了赋值。

9 楼

cdabs不应该返回NaN的,除非csga原本就有问题。

10 楼

[quote]cdabs不应该返回NaN的,除非csga原本就有问题。[/quote]

既然这样,排除pi不等于0的情况下,问题就在csga或者lambda上了。

我来回复

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