I went ahead and used the workaround you suggested at http://software.intel.com/en-us/forums/topic/339466, and I am now able to get this particular project to compile. However, I am getting some runtime behavior related to procedure pointer association that I believe is not correct. Basically I have a subroutine that accepts a derived type and a procedure pointer, and sets one of the derived type procedure pointer components to point to the dummy argument. The problem is, immediately after the line that does this, a different procedure pointer component, which was unassociated before, now becomes associated, even though it hasn't been touched. Here is some pseudo code that demonstrates this:
TYPE Object PROCEDURE(), POINTER, NOPASS :: f => NULL() PROCEDURE(), POINTER, NOPASS :: g => NULL() END TYPE Object SUBROUTINE foo(o, farg) TYPE (Object) :: o PROCEDURE(), POINTER :: farg ! At this point, o%g is not associated o%f => farg ! Now o%g has become associated even though I didn't touch it END SUBROUTINE foo
Any thoughts on this, or does this sound like a compiler bug?
P.S. Can you confirm that the f and g components in my example are guaranteed to be not associated when a new instance of TYPE(Object) is declared? (I don't think this has to do with my problem, since I did confirm that o%g is not associated before the line of interest.)