提问人:Socorro 提问时间:9/14/2022 更新时间:9/14/2022 访问量:201
'Random' “程序接收到信号 SIGABRT:处理中止信号。”错误
'Random' "Program received signal SIGABRT: Process abort signal." Error
问:
我有一个大型程序(许多模块、子例程)并收到错误“程序接收信号 SIGABRT:处理中止信号”。这个错误的奇怪之处在于,它可能会发生,例如,我运行看似相同的代码 19/20 次(我在第一次运行时注意到了这一点,然后如果我尝试了很多次,它确实在蓝月亮中运行一次)。19/20 次我收到 SIGABRT 错误。 我从代码中更改的内容基本上是通过模型中“自上而下”的模块和子例程向下传递一些稍大的数组。
- 当我传递它们但在计算中根本不使用它们时,它就会运行。
- 当我将它们传下来并以看似无害的方式使用它们时,我会得到 19/20 倍的这个错误。出于某种原因,数组中的大值我在代码中几乎只在几行中设置为零。(因此,它似乎是从其他地方获取值并错误地分配它们)
错误的随机性,即它大多不起作用,但有时代码运行良好对我来说真的很奇怪,而且我猜它与内存/新传递的数组有关。有谁知道是什么可能导致这样的事情/如何减少内存,例如,如果对不可解除分配的数组有一种“释放”,例如: 实数 (kind=dbl_kind), dimension (20,20,5) :: my_array?非常感谢!
答: 暂无答案
评论
-fcheck=all
top