2
コードを実行すると、サブルーチンにエラーメッセージが表示されます。変数定義コンテキストのINTENT(IN)仮引数
このコードは、Kincaid & Gauss Seidelの楕円偏微分方程式を解く方法に関するCheneyの本の練習からのものです。
エラーメッセージがある:(1)における変数定義コンテキスト(割当)でINTENT(IN)と
仮引数 'U'。
私は以下のコードの(1)を参照します。エラーメッセージが表示されないようにサブルーチンを修正する方法はありますか?
subroutine seidel(ax,ay,nx,ny,h,itmax,u)
real, dimension(0:nx,0:ny), intent(in) :: u
real, intent(in) :: ax,ay, h
integer, intent(in) :: nx, ny, itmax
integer:: i,j,k
do k = 1,itmax
do j = 1,ny-1
y = ay + real(j)*h
do i = 1,nx-1
x = ax + real(i)*h
v = u(i+1,j) + u(i-1,j) + u(i,j+1) + u(i,j-1)
u(i,j) = (v - h*h*g(x,y))/(4.0 - h*h*f(x,y)) (1)
end do
end do
end do
end subroutine seidel
感謝。私がインテント(inout)に変更したとき、私はまだエラーメッセージを受け取ります。これは、 "グローバルプロシージャでのインタフェースの不一致:引数uでのINTENTの不一致"エラーメッセージは、私がサブルーチンと呼ぶ行を参照しています。上記の私のコードの最初の行。なぜこれが起こっているのか知っていますか? –
「インターフェイスの不一致」というフレーズは、表示されないコードの部分の問題を示唆しています。作業する[mcve]を私たちに与えてください。 '暗黙のnone'の少しでも役立つでしょう、そして、宣言されていない' v'や 'x'などの変数を使って、最終的にポップアップする問題を説明する必要はありません。 –
@HighPerformanceMarkありがとうございます。あなたが私の質問を提案して編集するときに、私は完全な/最小限の例を思いつきます。 –