FORTRAN IN 引数の変更

FORTRAN IN パラメーターを変更することはできません。

"IN" として宣言した引数は、純粋な入力パラメーターとして使用します。ただし、すべての FORTRAN 引数は参照渡しなので、 仮引数を変更すると "IN" としてマークされている実引数も変更されます。

ID

問題箇所

説明

1

定義

引数が定義された場所

2

メモリーへの不正な書き込み

引数が変更された場所


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

subroutine TestProc(i)
    integer, intent(in) :: i
    call IModifyMyArg(i)
    ! argument "i" is INTENT(IN) dummy argument
    ! but it is modified by IModifyMyArg
    print *,i
end

integer :: j
read *,j
print *,j
call TestProc(j)
print *,j
end
        

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