“分段错误可能难以追踪。由于通常没有明确的错误消息,因此可能需要反复试验才能找出问题所在。我试了好久(•́へ•́╬)!大致总结了一下,给大家参考,如果还有其他情况,欢迎大家补充。”
本文参考了气象家园的大部分关于 segmentation fault 的帖子,这里就不一一列出了;另外参考了论坛 kwerner 的文章 What is the most common reasonfor a segmentation fault?在此向各位前辈表示感谢!
一、存在 CFL 错误导致 segmentation fault
一般的段错误可以试试缩短namelist.input 中的积分步长(time_step)来解决,这也是最常见的,在论坛流传最广的解决方法。
其实是否需要减少积分步长要看是否存在 CFL 错误,如果有 CFL错误才应该尝试缩短积分步长来解决问题。存在 CFL 错误意味着模型变得不稳定,这通常是由陡峭的地形或非常强的对流造成的。
可以通过以下命令来看 error 和 out 文件里面是否存在 cfl 错误。
grep -rn "cfl" rsl.*
1.减少时间步长
如果存在 cfl 错误,恭喜你(σ゚∀゚)σ…:☆,这时候就应该首先尝试减少时间步长了。time_step 的标准建议是 6dx(例如,如果dx = 30000,那么 time_step 应该小于等于180 )。但是如果仍然存在 CFL 错误,可以尝试将 time_step 减少到 4dx 或3dx 。当然,这样有时会有效,但并非总是有效,如果还是不行,就要接着往下尝试了ヽ(ー_ー)ノ。
2.添加 smooth_cg_topo = .true
可以尝试在namelist.input 的 &domains 部分中添加 smooth_cg_topo = .true。如果 CFL 错误发生在边界区域,则在实际运行之前。此选项平滑粗模型网格的外部行/列,以匹配数据附带的低分辨率地形。
3.设置 epssm = 0.2(最高 0.5)
如果 CFL 错误发生在复杂地形附近,您可以尝试设置 epssm = 0.2(最高 0.5)以查看是否有所不同。此选项用于略微前移垂直压力梯度(或声波)的中心,以抑制三维发散。
4.设置 w_damping = 1
也可以尝试设置 w_damping = 1。该参数是垂直速度阻尼。阻尼为0时,w增加过快,导致不稳定,溢出了计算机计算上限。
二、磁盘空间不足
有时可能是磁盘空间不足的结果。检查一下电脑还有多少空间可用于要写入的文件。如果域很大或分辨率很高,则输出文件会大得多(有时会有几 GB)。一般服务器应该不会有这个问题,如果是用自己的电脑要仔细检查一下这个问题(╹▽╹)。
三、内存问题
分段错误错误可能是由于内存问题。尝试在终端输入:
1. setenv MP_STACK_SIZE 64000000 (OMP_STACKSIZE)
setenv MP_STACK_SIZE64000000 (OMP_STACKSIZE)
2. limit stacksize unlimited
如果您使用的是 csh 或 tcsh,请尝试以下操作:
limit stacksizeunlimited
3.ulimit -s unlimited
如果您使用 sh 或 bash,请使用以下命令:
ulimit -s unlimited
如果 ulimit -s unlimited 没有用的话,这里也可以试试 ulimit -s 262140,气象家园有人说这样会有用,我也没试过,不知道什么原因。
可能还是无法解决问题,但默认堆栈大小通常非常小,会因内存不足而导致分段错误,多试试总没错ᕙ༼°益° ༽ᕗ。
四、使用过多或过少处理器或分解不好的结果
分段错误通常是使用过多或过少处理器或分解不好的结果。如何设置处理器数量,可以参考https://forum.mmm.ucar.edu/phpBB3/viewtopic.php?f=73&t=5082,英语不好,就不瞎翻译了,大家可以去看英文原版o(´^`)o。
五、输入数据有问题
如果模型在运行开始时就出现了 segmentation fault,这通常意味着输入数据有问题。检查一下 met_em* 文件,注意下各种变量中的任何奇怪的地方。检查所有变量和所有级别。如果有问题建议去官方下载数据,并在下载完成后检查数据大小,有的时候外网原因会下载不全(▼ヘ▼#)。
六、模型域设置问题
可能是你的域设置太靠边了,就和我一样,在检查前面全部没问题后,我试着改变了嵌套网格设计,就可以正常运行了。
------------------------------------—>
大概就是这么多了。
大家下期见─=≡Σ(((つ•̀ω•́)つ
————————————————
本文为转自CSDN博主「陆詟水栗」的原创文章(私信未能联系上作者。若有关于文章内容、版权或其他问题可联系小编协调),点击文末阅读原文按钮即可跳转原文。
原文链接:https://blog.csdn.net/weixin_42487488/article/details/119703861