GEOS-Chem中DELP_DRY初始化问题导致负浓度现象分析

GEOS-Chem中DELP_DRY初始化问题导致负浓度现象分析

geos-chem GEOS-Chem "Science Codebase" repository. Contains GEOS-Chem science routines, run directory generation scripts, and interface code. This repository is used as a submodule within the GCClassic and GCHP wrappers, as well as in other modeling contexts (external ESMs). geos-chem 项目地址: https://gitcode.com/gh_mirrors/ge/geos-chem

问题背景

在GEOS-Chem 14.6.0版本的CH4模拟过程中,研究人员发现了一个导致负浓度值的数值问题。该问题出现在模拟开始后的5分钟,表现为CH4浓度出现负值,最终导致模拟崩溃。经过排查,这个问题与PR 2521中对DELP_DRY变量初始化位置的修改直接相关。

技术细节分析

DELP_DRY是GEOS-Chem中表示干空气压力差的变量,在气象数据处理和化学物质传输计算中起着重要作用。在14.6.0版本之前,DELP_DRY的初始化位于hco_interface_gc_mod.F90模块中,而在PR 2521中,其初始化被移动到了hco_utilities_gc_mod.F90模块。

这种初始化位置的改变导致了以下问题链:

  1. 当使用不包含DELP_DRY的初始条件文件时,变量被赋予无意义的随机值
  2. 这些错误值被传递给AirQnt子程序
  3. AirQnt使用这些错误值计算State_Met%DP_DRY_PREV
  4. 最终导致化学物质浓度计算出现负值

问题验证与解决方案探索

研究人员进行了四种不同配置的测试:

  1. 原始14.6.0版本

    • 不含DELP_DRY的初始条件:出现负浓度并崩溃
    • 含DELP_DRY的初始条件:运行正常
  2. 恢复DELP_DRY到hco_interface_gc_mod.F90初始化

    • 两种初始条件均运行正常
    • 含DELP_DRY初始条件的结果与原始版本有微小差异(~1e-8 v/v)
  3. 移除hco_utilities_mod_gc.F90中的ELSE语句

    • 两种初始条件均运行正常
    • 结果与第二种配置完全一致
  4. 完全移除DELP_DRY从初始条件初始化

    • 两种初始条件均运行正常
    • 结果与第二种配置完全一致

测试结果表明,DELP_DRY实际上不需要从初始条件文件中读取,可以在第一次调用AirQnt时进行初始化。这一发现简化了代码结构,同时保持了数值稳定性。

最终解决方案与后续工作

基于测试结果,研究团队决定:

  1. 移除设置DELP_DRY为零的ELSE语句,作为当前问题的修复方案
  2. 保留DELP_DRY在初始条件文件中的存储,用于GCPy等后处理工具的单位转换
  3. 创建新的issue进一步评估DELP_DRY初始化的最佳实践

这一解决方案确保了:

  • 对于包含DELP_DRY的初始条件文件,结果与之前版本完全一致
  • 对于不包含DELP_DRY的情况,避免了负浓度问题的出现
  • 保持了后处理工具的兼容性

对模型用户的建议

对于使用GEOS-Chem 14.6.0版本进行CH4模拟的用户,如果遇到类似的负浓度问题,建议:

  1. 检查初始条件文件是否包含DELP_DRY变量
  2. 考虑升级到包含此修复的14.6.1或更高版本
  3. 在分割长时间模拟时,注意检查浓度场的连续性

这一问题的解决不仅修复了当前的数值稳定性问题,也为GEOS-Chem中气象变量初始化的最佳实践提供了重要参考。

geos-chem GEOS-Chem "Science Codebase" repository. Contains GEOS-Chem science routines, run directory generation scripts, and interface code. This repository is used as a submodule within the GCClassic and GCHP wrappers, as well as in other modeling contexts (external ESMs). geos-chem 项目地址: https://gitcode.com/gh_mirrors/ge/geos-chem

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冯彩如

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值