0

パラメータに新しい値を割り当てるたびに、バス エラーが発生します。存在しないメモリをどのように指しているのかわかりません。Fortran が特別な宣言なしにパラメーターを変更することを許可していない限り、パラメーター リストで宣言されているように、このアドレスにアクセスできる必要があります。私のコードの残りの部分はエラーなしで動作します。私はそれを単にこの割り当てに分離しました。

OS Xのターミナルからgfortranを実行しています(どのバージョンかわかりません)。

SUBROUTINE p_list (c_number, c_matrix)
    INTEGER     c_number
    INTEGER     c_matrix(8000,20)
!   ... 
    c_number = 1000
!   ...
END SUBROUTINE p_list
4

1 に答える 1

3

これをなんと呼んでいますか?私は最新の FORTRAN については知りませんが、以前のバージョンの FORTRAN では、定数を渡すことによって (たとえば、p_list(0, my_matrix) を呼び出すことによって) そのようなプログラムをクラッシュさせる可能性があることは知っています。これは、FORTRAN が定数 (!) を含むすべてを暗黙的に参照渡ししたためです。

于 2010-12-13T12:30:54.653 に答える