ループカウンターの変更

FORTRAN ループカウンターがループの内側からの関数呼び出しによって変更されました。

FORTRAN では、DO ループでループカウンターを変更することができません。コンパイラーは、ループカウンターを直接変更しようとした場合には検出しますが、仮引数を変更するサブルーチンにループカウンターを渡して変更した場合には検出しません。この診断は、このような場合に出力されます。

ID

問題箇所

説明

1

呼び出し位置

ループの内側で関数が呼び出された場所

2

メモリー書き込み

変数が変更された場所

subroutine IModify(k)
    integer :: k
    k = k+1
end

    real, dimension(5) :: a
    integer :: i
    do i = 1,5
        a(i) = 3.14
        call IModify(i)
! do-counter "i" is modified in "IModify" call
    end do
    print *,a
end    
        

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