Fortran - Problema con memoria dinamica fortran

 
Vista:

Problema con memoria dinamica fortran

Publicado por beto (1 intervención) el 22/12/2007 11:18:25
Hola, qué tal? me preguntaba si podrían ayudarme con un ejercicio que tengo que hacer en fortran 90. El ejercicio es el siguiente:
Escribir un programa que cree un vector dinámico y lo vaya rellenando con los valores enteros proporcionados por el usuario. El vector comenzará dimensionado a 2 y duplicará su capacidad cada vez que se rellene completamente. El proceso se detendrá cuando el usuario introduzca el número 666.

Lo tengo prácticamente hecho lo que pasa es que al aumentarle la memoria dinámica cuando esta lleno los elementos del vector guardados anteriormente me los pisa y me los pone todos a cero...

Les estaría muy agradecido si puediera ayudarme con esto, muchas gracias
Un saludo.

El codigo que tengo hecho es este:

program prueba

implicit none

integer, dimension(:), allocatable :: vector
integer :: n, fin, i, j

i = 1
n = 2
allocate(vector(n))

print *,"El tamaño inicial del vector será de",n,"huecos"


write(*,*) "vector[",i,"]: "
read(*,*) vector(i)

do while ((vector(i).ne.666).and.(i.ne.n))
i = i +1
write(*,*) "vector[",i,"]: "
read(*,*) vector(i)
if((i.eq.n).and.(vector(i).ne.666)) then
n = n * 2
allocate(vector(n))
end if

end do

print*,"se ha introducido el numero 666, la computación ha terminado"
print *,"La lista de números es:"
write(*,*) (vector(j),j=1,n)

end program prueba
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder