FORTRAN サブルーチン呼び出しで、非オプション仮引数に null 値が渡されています。
呼び出しがコンパイルされるときに、呼び出されたルーチンにオプション・パラメーターがあることを示すインターフェイスを利用できることがあります。実引数の数が仮引数よりも少ない場合、コンパイラーは不足分の仮引数に NULL ポインターの逆参照を渡します。呼び出されるプロシージャーの実際の定義がインターフェイスと一致しない場合、この方法では非オプション仮引数に NULL ポインターの逆参照が渡されてしまいます。これは通常、NULL ポインターの逆参照エラーになります。
ID |
問題箇所 |
説明 |
---|---|---|
1 |
定義 |
関数が定義された場所 |
2 |
呼び出し位置 |
関数が呼び出された場所 |
subroutine mysub(j) integer :: j print *,j end interface subroutine mysub(j) integer, optional :: j end subroutine mysub end interface integer :: m read *, m call mysub(m) call mysub() ! error here: interface says argument is optional when it isn't end
© 2010 Intel Corporation. 無断での引用、転載を禁じます。