Me gustaría comprobar si un puntero dentro de un tipo derivado ya se ha definido o no. Escribí el siguiente código simple que le muestre mi problema:Punteros asociados en tipo derivado? gFortran vs. Intel
program test
implicit none
type y
real(8), pointer :: x(:)
end type y
type(y), pointer :: w(:)
allocate(w(2))
allocate(w(1)%x(2))
write(*,*) associated(w(1)%x), associated(w(2)%x)
end program test
Compilar este código con gfortran 4.4.1 y ejecutarlo en Ubuntu da el resultado:
T F
mientras que el mismo código compilado en Windows Vista con el compilador Intel Fortran 11.0 ofrece:
T T
el primer resultado (gfortran) es lo que estoy realmente esperando. Pero el hecho de que el compilador de Intel proporcione un resultado diferente me hace temer que mi código no sea correcto. ¿Estoy haciendo algo terriblemente mal con los indicadores en este ejemplo? Alguna idea o explicación?
¡Muchas gracias de antemano por su ayuda!
Muchas gracias !! Este fue de hecho el problema. La solución que sugiere funciona muy bien, con el compilador de Intel y gFortran. – remek