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

关于OpenMP 5.2中declare simd linear(p:ref)规范与示例不一致的问询

OpenMP 5.2规范与官方示例中linear(p: ref)子句的疑似不一致性

规范要求

根据OpenMP 5.2规范5.4.6节(linear子句)的描述:

若linear修饰符为ref,列表项必须是多态变量、假定形状数组或具有ALLOCATABLE属性的变量。

官方示例

OpenMP 5.2官方示例中的linear_modifier.1.f90包含如下Fortran代码:

module m
  integer, parameter :: NN = 1023
  integer :: a(NN)

contains
  subroutine add_one2(p)
    implicit none
    !$omp declare simd(add_one2) linear(p: ref) simdlen(8)

    integer :: p ! <--- p为简单整数标量

    p = p + 1
  end subroutine
end module

疑问

上述示例中,linear(p: ref)的变量p是简单integer标量,显然不属于规范中规定的“多态变量”“假定形状数组”或“具有ALLOCATABLE属性的变量”范畴。这看起来与规范要求存在矛盾,究竟是对规范的理解有误,还是示例本身存在问题?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 10:03:14