主题:运行问题
zqt1229
[专家分:0] 发布于 2010-09-27 13:46:00
请问运行是这个错误是什么原因,请各位大侠帮忙
最后更新于:2010-09-27 13:48:00
回复列表 (共11个回复)
沙发
cgl_lgs [专家分:21040] 发布于 2010-09-27 14:04:00
看看text2.f90的第136行,那个log10函数里的数值小于或等于0了。
板凳
zqt1229 [专家分:0] 发布于 2010-09-27 14:33:00
sw=2.0d0*lambda/pi*cdabs(csga)**2
swdb=10.0d0*dlog10(sw)
下面那行就是136行,dlog10里面的sw是正值啊
3 楼
jstzhurj [专家分:4680] 发布于 2010-09-27 14:38:00
[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 楼
zqt1229 [专家分:0] 发布于 2010-09-27 14:52:00
打印出来是
NaN
这是什么意思啊?
5 楼
jstzhurj [专家分:4680] 发布于 2010-09-27 15:17:00
[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 楼
cgl_lgs [专家分:21040] 发布于 2010-09-27 15:37:00
lamda和pi同时为0就会产生这个问题,
或者是
求sw的式子中,原本就有值为NaN的数据
7 楼
zqt1229 [专家分:0] 发布于 2010-09-27 15:37:00
谢谢你了,我再认真看看再向你请教
8 楼
jstzhurj [专家分:4680] 发布于 2010-09-27 15:40:00
估计问题出在函数cdabs(csga)上,pi一般不会忘了赋值。
9 楼
cgl_lgs [专家分:21040] 发布于 2010-09-27 15:57:00
cdabs不应该返回NaN的,除非csga原本就有问题。
10 楼
jstzhurj [专家分:4680] 发布于 2010-09-27 16:05:00
[quote]cdabs不应该返回NaN的,除非csga原本就有问题。[/quote]
既然这样,排除pi不等于0的情况下,问题就在csga或者lambda上了。
我来回复