Wie schreibe ich eine riesige Matrix, um Zeile für Zeile zu archivieren? (fortran 90)
Ich möchte zeilenweise eine Matrix mit vielen Daten in eine Datei schreiben. Zum Beispiel habe ich eine Matrix 100 * 100 und möchte sie in der Form 100 * 100 in der Datei haben. Es funktioniert jedoch nicht. Es folgen mein Code und eine Beschreibung. N und M sind ganze Zahlen um einige Hundert. RECL ist die erwartete Länge Ich habe die Datei eingestellt, aber hier scheint es, dass dieser Befehl nicht funktioniert. Die Ausgabe erfolgt mit 198 Zeilen, wenn N auf 99 und M auf 200 gesetzt sind. Vec ist eine komplexe Matrix mit doppelter Genauigkeit. Wie kann ich die Werte von Vec im Originalformat N * M ausgeben? Mein Kompilierbefehl lautet "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
Nach @george-Ratschlägen habe ich ein Programm wie dieses codiert:
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
Mit diesem Code ist das Problem behoben! Vielleicht habe ich das letzte Mal nicht richtig kompiliert.