3

Fortran 95 では、ファイルから itemarray を読み取っているため、itemarray(size) をインテント (out) にすることはできないというエラー メッセージが表示されます。このエラーを修正するにはどうすればよいですか?

このサブルーチンでは、基本的にファイルから読み取り、値を配列に格納しようとしています。

以下は、私が参照しているサブルーチンのコードです。どんな助けでも大歓迎です。御時間ありがとうございます。

SUBROUTINE readItems(size,itemarray,priarray,quarray)

INTEGER:: iost=0, i=0
INTEGER, INTENT(OUT):: quarray(50)
INTEGER, INTENT(OUT):: size
REAL, INTENT(OUT):: priarray(50)
CHARACTER(20),INTENT(OUT)::itemarray(50)
CHARACTER(20)::namefiletoread

PRINT*,"Enter the name of file you would like to read: "
READ*,namefiletoread

OPEN(UNIT=77,FILE = namefiletoread, ACTION = "READ", STATUS="REWIND",IOSTAT=iost)
IF(iost>0)STOP "Problem opening the file!"

DO i=1, size
READ(77,'(A,F6.2,I8)',IOSTAT=iost), itemarray(i), priarray(i),quarray(i)
IF(iost<0)STOP
END DO


END SUBROUTINE
4

1 に答える 1

3

問題は、変数「サイズ」にある可能性があります。これはインテント (アウト) として宣言されているため、明らかに呼び出し元の関数からのものではなく、反復処理を開始する前にどこにも割り当てられていないようです。

于 2011-04-18T07:08:50.073 に答える