Tengo la siguiente pregunta: ¿Cuál es la sobrecarga real de las instrucciones allocate/deallocate en Fortran90 +? es decir, varias matrices de tamaño medio se asignan dentro de un bucle, comoFortran asignar/desasignar
do i = 1, 1000
allocate(tmp(20))
tmp(1:20) = 1d0
call foo(tmp)
deallocate(tmp)
end do
¿Vale la pena asignar una única matriz trabajo basado en el tamaño máximo en este caso?
Si hay ahorros notables depende de cuánto tiempo lleve "foo" para ejecutarse. ¿Vale la pena el cambio? Es una cuestión de opinión, o debería medir el tiempo de ejecución en su compilador y máquina. ¿El cambio hace que el código sea menos legible? Si es así, ¿vale la pena guardar milisegundos de tiempo de ejecución? ¿segundos? –