请教fortran高手:我运行时出现了run-time error M6201 :MATH -sqrt:DOMAIN error ,现在还没解决,请求高手.

2025-01-04 13:40:46
推荐回答(2个)
回答1:

这是 sqrt 和 atan2 函数的定义域出错了,例如负数开方,NaN 开方,等等。

看起来 p=(x(i)-x(j))**2+(y(i)-y(j))**2 应该是大于等于0 的,不会出现负数开方。但如果 x y 本身就出现了 NaN,那么也会使得 p 为 NaN,导致 sqrt 定义域出错。

玩计算的话,Debug 调试是基本功,在 sqrt 处下断点,然后看看 x y 数组里是否出现了 NaN。
单步调试,你会自己解决很多问题。

因为你没给出全部代码,所以我不能代劳。

回答2:

x(i)、y(i) 表示什么?都定义了吗?