airmosaic-ai

GEOS-Chem 编译与运行排错

以下是排查顺序与可能原因,不是本机实测修复清单。先记录版本、失败阶段和首个有效错误,原日志留在授权本地;共享摘要不含机器路径、账号、主机或环境转储。只在新的任务 build/run 副本修改,不改现有健康作业。

现象 排查位置与可能原因 处理及验证
CMake 找不到编译器或依赖 所选环境、工具版本、NetCDF C/Fortran 的可见性 确认同一工具链和明确库根,在新 build 重新配置;核对依赖检测摘要
缺模块文件、模块版本不兼容或链接符号失败 Fortran 模块/库是否来自不同编译器,旧 build 是否混入 使用匹配编译器和依赖,重建任务副本;同时检查编译和链接阶段,不靠复制任意库文件修复
GCHP 出现 MPI/ESMF/MAPL 相关失败 编译期与运行期的 MPI、依赖及子模块版本 对照该 GCHP 版本说明重新检查组合;确认能链接后,再在授权短任务中验证
编译进程被杀或无明显编译错误 内存、并行度、磁盘与作业资源记录 降低并行度或申请合理资源;不把资源不足当源码错误,核对真实退出状态
更换版本后仍读取旧设置 CMake 缓存、CodeDir 目标、已安装二进制 使用新 build/run 目录,核对实际源码、配置和二进制对应关系
编译成功但运行时找不到共享库 执行环境与构建环境不同、库加载路径 在任务范围内重现匹配环境,检查具体缺失库;不要导出整个环境或全局改个人启动文件
运行时崩溃、超时或内存超限 首个错误、资源限制、线程数及线程栈 Classic 的 OpenMP 和 GCHP 的 MPI 分别核对;短副本使用 debug 构建定位,再恢复正式构建,不长期用 debug 做生产运行
restart、气象或诊断报错 输入时间/物种、边界覆盖、配置间引用 转入输入/配置排查;不靠重新编译或静默补数据解除错误

本地笔记中曾记录特定 GCHP 链接选项修复;这里不复制补丁。只有明确缺失符号、工具链与上游依据吻合时,才在任务副本评估链接设置,并保存差异。不要无条件给 CMakeLists 添加系统库或关闭科学模块来让任务“通过”。

官方排错建议包括检查环境、修改、资源限制及短时 debug;关闭过程用于定位时会改变科学含义,定位副本不得作为正式结果。官方 Debug 指南。