OpenMP* NUM_THREADS 節の副作用

OpenMP* NUM_THREADS 節の式には、副作用があってはなりません。

NUM_THREADS 節の式の評価の副作用がどの順序で、何回発生するかは未定義です。そのため、副作用のある NUM_THREADS 節の式の存在は、プログラムを未定義にします。

ID

問題箇所

説明

1

OpenMP* の使用方法に関するエラー

不正な NUM_THREADS 節の式が指定された場所


    real r
    integer j, mysub
    common /cc/ j

    r = 2.7
    j = 1
!$OMP PARALLEL SHARED(r) NUM_THREADS(mysub() + j)
    call sub(r)
!$OMP END PARALLEL
    print *, r, j
    end

    function mysub()
        integer mysub, j
        common /cc/ j
        j = 2
        mysub = 1
    end function mysub

    subroutine sub(r)
        real r
        r = r + 9.8
    end subroutine sub
        

© 2010 Intel Corporation. 無断での引用、転載を禁じます。