Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
New Contributor I
12 Views

associated problem

Jump to solution
program main
    implicit none

    type :: t
        integer :: a
    end type t

    type(t), pointer :: tp
    integer, pointer :: i

    if(associated(tp)) write(*,*) "tp is associated."
    if(associated(i )) write(*,*) "i  is associated."

end program main

Code above outputs a strange result of "i is associated" but tp is not, why is that ?

Intel(R) Visual Fortran Compiler 17.0.0.109 [IA-32] is the current compiler, and I also tried Linux version of ifort 13.1.1 and nothing wrong appears, thanks for reply.

0 Kudos

Accepted Solutions
Highlighted
Valued Contributor II
12 Views

The associated-ness of uninitialised pointer variables is undefined. So it could actually be true or false depending on the phase of the moon.

To be sure you have reliable results, always initialise them first, for instance:

type(t), pointer :: tp => null()

View solution in original post

0 Kudos
2 Replies
Highlighted
Valued Contributor II
13 Views

The associated-ness of uninitialised pointer variables is undefined. So it could actually be true or false depending on the phase of the moon.

To be sure you have reliable results, always initialise them first, for instance:

type(t), pointer :: tp => null()

View solution in original post

0 Kudos
Highlighted
New Contributor I
12 Views

That's interesting about the moon :)

0 Kudos