You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fortran不同dim值下数组切片处理结果不一致问题问询

Fortran子例程shiftxe_pos维度相关数值差异排查求助

我开发了Fortran子例程shiftxe_pos,用于处理4D数组fe的切片fe(1,1,:,:)。当dim=1时,该切片等价于2D数组;当dim>1时,切片内容与dim=1时完全一致,但子例程处理后的结果却存在差异:指定位置(nx/8,nv/2)的输出与输入比值,在dim=1时为1.0000000000,dim>1时为1.0000075左右。

已尝试以下方案均未解决问题:

  • 提升数值精度
  • 调整网格参数(dx/dv/dt)
  • 关闭编译优化
  • 修正intent(in)与intent(inout)参数传递冲突

仅简化版平流方案有效,但无法满足业务需求,希望获得技术排查思路与解决方案。

相关代码定义:

integer, parameter :: dp = kind(1.0d0)
real(dp), dimension(dim, dim, -1:nx, nv) :: fe

子例程核心参数:

real(dp), dimension(-1:nx, nv), intent(in) :: fe_local
real(dp), dimension(-1:nx, nv), intent(inout) :: fe_out

内容的提问来源于stack exchange,提问作者FORTRAN_victim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 10:24:48