Je voudrais vérifier si un pointeur à l'intérieur d'un type dérivé a déjà été défini ou non. J'ai écrit le simple code ci-dessous pour vous montrer mon problème:Pointeurs associés dans le type dérivé? 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
ce code avec Compiler gfortran 4.4.1 et en cours d'exécution sur Ubuntu donne le résultat:
T F
alors que le même code compilé sur Windows Vista avec le compilateur Intel Fortran 11.0 fournit:
T T
le premier résultat (gfortran) est ce que je suis réellement attendais. Mais le fait que le compilateur Intel fournisse un résultat différent me fait craindre que mon code ne soit pas correct. Est-ce que je fais quelque chose de terriblement mal avec les pointeurs dans cet exemple? Une idée ou une explication?
Un grand merci d'avance pour votre aide!
Merci beaucoup !! C'était en effet le problème. La solution que vous suggérez fonctionne très bien, avec le compilateur Intel et gFortran. – remek