2016-10-04 18 views
0

結果を追加せずにテキストファイルにマトリックスは、多かれ少なかれ:アップデートは、私がこのようなFortran 77のコードを持って

nMaxRow=100 
nMaxStep=100 
! initialization of the matrix if Step=1 
do step=1,nMaxStep 

    if (step.eq.1) then 
     do ii=1,nMaxRow 
     do jj=1,nMaxStep 
      A(ii,jj)=0 
     end do 
     end do 
    end if 


!now for each step and for each row update the cell of the matrix 
    do ii=1,nMaxRow 
     A(ii,step)=X(ii) !X(ii) is a number associated with the specific ow at that specific step 
    end do 

!Now I want to write the updated matrix at this step into a text file, 
!How can I do that???? 

end do !close the do step... 

は、行列の値を更新し、で更新されたマトリックスを書くことも可能ですその特定のステップは、テキストファイルに?私は

私は、Fortran 90のためのコマンドが存在している「REPLACE」ことが判明...しかし、私は、Fortran 77のため

一つの簡単に似た何かを見つけることができませんでした...結果に各ステップを追加せずに、意味しますアイデアは新しいものを書く直前にファイルを削除することです...しかし、私はそれが好きではなく、とにかくそれをやる方法を知らない。

+0

あなたは 'STATUS = 'REPLACE''をサポートしていないどのコンパイラを使用していますか?いずれにしても、f77に戻ったほとんどのコンパイラは、 'STATUS = 'UNKNOWN''を開いた場合に置き換えます。 – agentp

+0

@agentp Fortran 77で状態REPLACEが見つかりませんでした。私は静かに私の答えで再オープン時にコンパイラが置き換えを行うだろうと仮定しています。 –

+0

REPLACEはf90ですが、私の主張は本当にf77コンパイラを持っている可能性はほとんどありません。 – agentp

答えて

2

ファイルが既に(前回の書き込みから)開いている場合、あなただけの

rewind(unitnumber) 

を使用して、ファイルの先頭を行くことができますし、再び書き始めます。ファイルの元の内容が削除され、再度開始されます。いくつかのレコードだけを返すことをやめたくない場合は、backtrace()を使うことができますが、ここではそれを望まないかもしれません。

開いていない場合は、開いて書き込みを開始してください。追加しない限り、元のコンテンツは上書きされます。

+0

それは動作します!ありがとう! –

関連する問題