cómo escribir una matriz enorme para archivar fila por fila (fortran 90)
Quiero escribir una matriz con una gran cantidad de datos en un archivo fila por fila. Por ejemplo, tengo una matriz 100 * 100 y quiero tenerla en forma 100 * 100 en el archivo. Sin embargo, no funciona. Seguir es mi código y alguna descripción. N y M son números enteros alrededor de algunos cientos. RECL es la longitud esperada. Establecí el archivo, pero aquí parece que este comando no funciona. La salida es con 198 líneas cuando N se establece en 99 y M se establece en 200. Vec es una matriz compleja de doble precisión. ¿Cómo podría mostrar los valores de Vec manteniendo su formato original N * M? Mi comando de compilación es "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
Siguiendo los consejos de @george, codifiqué un programa como este:
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
Con este código, problema resuelto! Tal vez no compilé correctamente la última vez.