サブルーチン呼び出しで、実引数の型が対応する仮引数の型と一致しません。
このエラーは、実際のパラメーターと仮パラメーターの型のサイズが一致しない場合に発生します。実引数のほうが大きい場合は警告として処理され、 実引数のほうが小さい場合は境界違反を引き起こす可能性があるためにエラーとして処理されます。
サブルーチン型の FORTRAN 仮引数を呼び出したときにも、同じ種類のエラーが発生することがあります。つまり、仮引数を使用して呼び出されるサブルーチンで、直接呼び出した場合と同じ問題が発生することがあります。この問題が発生するかどうかは、サブルーチン型の仮引数に渡されるサブルーチンに依存します。この問題が発生した場合は、サブルーチン引数が渡された呼び出し位置を特定する問題箇所もレポートされます。
ID |
問題箇所 |
説明 |
---|---|---|
1 |
呼び出し位置 |
渡された実引数 |
2 |
定義 |
呼び出されたプロシージャーの定義と仮パラメーターの宣言 |
subroutine IWant6(m) integer, dimension(6) :: m print *, m end subroutine IGive4(sub) external sub integer, dimension(4) :: n n = 1 call sub(n) ! size of actual argument is less that size of dummy argument ! when sub is IWant6 end integer, dimension(4) :: n n = 1 ! size of actual argument is less that size of dummy argument call IWant6(n) ! Call passes subroutine that will not ! be happy when called from IGive4 call IGive4(IWant6) end
© 2010 Intel Corporation. 無断での引用、転載を禁じます。