大量のデータを含む行列を行ごとにファイルに書き込みたい。たとえば、100*100 のマトリックスがあり、ファイル内で 100*100 の形式にしたいとします。ただし、機能しません。以下は私のコードと説明です。N と M は数百程度の整数です。RECL は予想される長さです ファイルを設定しましたが、ここではこのコマンドが機能しないようです。N が 99 に設定され、M が 200 に設定されている場合、出力は 198 行になります。Vec は倍精度の複素行列です。元の形式 N*M を維持したまま Vec の値を出力するにはどうすればよいですか? 私のコンパイル コマンドは「ifort -o out test.f90」です。
open(unit=2, file='graph1.txt', ACTION="write", STATUS="replace",RECL=40*M+10)
do i=1,N
do j=1,M
write(2, '(F)', advance='no') real(Vec(i,j))
end do
write(2, *) ''
end do
@george のアドバイスに従って、次のようなプログラムをコーディングしました。
program test
implicit none
integer i,j
open(unit=2, file='graph1.txt', ACTION="write", STATUS="replace")
do i=1,500
write(2, '(1600F14.7)')( 0.00001 ,j=1,499)
end do
close(2)
end
このコードで、問題は解決しました!前回は正しくコンパイルできなかったのかもしれません。