1

ダミー変数がインテント (IN) の場合、エイリアシングを使用して Fortran サブルーチンを呼び出すことは合法ですか (または、トゥルーブルを与えることができますか)? 私は自分のコードで次のようなことをしなければなりません:

  program myprogram
     ......
     ......
     call check(itstrt, itstrt )
     do k= itstrt,itend
        call check(itstrt, k)
     enddo
  end

  subroutine check(itstrt, k)
  integer , intent(in)    :: itstrt, k
     if(k==itstrt) write(*,*) 'I gotta do something'
  end 

追加の変数 varPROV=itstrt を使用して最初のチェックを call check(itstrt, varPROV) として簡単に呼び出すことができることはわかっていますが、標準の内容と、それを行う際の問題点を知りたいです。ありがとうA。

4

1 に答える 1

2

合法です。エイリアシングの問題とINTENT(IN)(別々に)問題は、プログラムがダミー変数を定義しようとすることに関連しています-おそらく代入ステートメントの左側に現れる変数などによって。

于 2013-04-16T20:05:55.093 に答える