GEOS-Chem 14.4.0版本中APM模块运行问题的分析与解决方案
问题背景
在GEOS-Chem 14.4.0版本中,当用户尝试运行包含APM(Advanced Particle Microphysics)模块的模拟时,可能会遇到两个关键问题:
- 系统提示找不到BC(黑碳)和OC(有机碳)相关排放源的诊断变量
- 在云对流计算过程中出现无限大值(Infinity)错误
问题分析
APM模块依赖的排放源问题
APM模块需要特定的黑碳和有机碳排放源数据来进行模拟。在早期版本中,这些数据通过以下四个诊断变量提供:
- BIOMASS_BCPO(生物质燃烧产生的黑碳初级有机气溶胶)
- ANTHROPOGENIC_BCPO(人为源产生的黑碳初级有机气溶胶)
- BIOMASS_OCPO(生物质燃烧产生的有机碳初级有机气溶胶)
- ANTHROPOGENIC_OCPO(人为源产生的有机碳初级有机气溶胶)
然而,在GEOS-Chem 12.6.0版本中,随着BPCH诊断格式的移除,这些手动诊断变量也被一并删除,导致APM模块无法获取必要的排放源数据。
云对流计算中的无限大值问题
当APM模块无法获取BC和OC排放数据时,会导致相关气溶胶物种(如APMCTBC1,即硫酸盐包覆的黑碳粒子)的浓度计算出现异常。具体表现为在云对流计算过程中,某些网格点的浓度值变为NaN(非数值)或无限大,最终导致模拟崩溃。
解决方案
恢复必要的诊断变量
开发团队建议在HEMCO诊断模块中恢复这些关键变量,但将其包裹在APM专用的条件编译块中。这样可以确保:
- 仅在使用APM模块时才编译这些诊断变量
- 不影响不使用APM模块的标准模拟
- 保持代码的整洁性和模块化
具体实施建议
- 在hcoi_gc_diagn_mod.F90文件中添加以下内容:
#ifdef APM
! 黑碳和有机碳排放诊断变量
CALL HCO_DiagList_Add( am_I_Root, HcoState, 'BIOMASS_BCPO', &
'kg/m2/s', 'Biomass BC primary emissions', RC )
CALL HCO_DiagList_Add( am_I_Root, HcoState, 'ANTHROPOGENIC_BCPO', &
'kg/m2/s', 'Anthropogenic BC primary emissions', RC )
CALL HCO_DiagList_Add( am_I_Root, HcoState, 'BIOMASS_OCPO', &
'kg/m2/s', 'Biomass OC primary emissions', RC )
CALL HCO_DiagList_Add( am_I_Root, HcoState, 'ANTHROPOGENIC_OCPO', &
'kg/m2/s', 'Anthropogenic OC primary emissions', RC )
#endif
- 重新编译代码时使用调试模式,以便获取更详细的错误信息:
cmake -DAPM=y -DCMAKE_RELEASE_TYPE=Debug
make -j
make install
技术细节说明
APMCTBC1物种特性
APMCTBC1代表硫酸盐包覆的黑碳粒子,是APM模块中重要的气溶胶物种。它的形成依赖于:
- 黑碳的排放源(通过上述诊断变量提供)
- 硫酸盐的二次生成(通过SO2的化学转化)
排放源的重要性
缺少BC和OC排放数据会导致:
- 初始浓度场不正确
- 气溶胶-云相互作用计算异常
- 最终在云对流参数化过程中出现数值不稳定
结论
对于需要使用GEOS-Chem APM模块的研究人员,建议等待官方发布包含这些修复的版本,或者根据上述方案自行修改源代码。这一问题的解决不仅恢复了APM模块的正常功能,也为未来类似模块的开发提供了参考案例,展示了如何处理模块间的数据依赖关系。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



