title: Fortran derived type with an abstract type component
body: <p>In fortran 2003, is it possible to define a derived type which has a component of an abstract type? For example, as below, I want to define a type <code>Sup</code> having a component <code>o_Abst</code> of <code>Abst</code> type.</p>
  
  <pre><code>TYPE, ABSTRACT :: Abst
   CONTAINS 
     PROCEDURE(some_proc), deferred, pass :: some_proc 
     ..
  END TYPE Abst
  
  TYPE :: Sup
     PRIVATE
     CLASS(Abst) :: o_Abst
     ..
   CONTAINS
     PROCEDURE :: another_proc
  END TYPE Sup
  </code></pre>
  
  <p>One problem I have already encountered is in writing a constructor for a <code>Sup</code> type object. I can not assign a value to the component <code>o_Abst</code> by intrinsic assignment with <code>=</code> (Intel compiler says, "In an intrinsic assignment statement, variable shall not be polymorphic."). Or can't I write a constructor for a <code>Abst</code> type object because a deferred type-bound procedure can not be properly overridden if an argument other than the passed object dummy argument is of abstract type, as far as I understand.</p>
  
  <p>I would also be happy to hear about a work around that avoids the use of a type like <code>Sup</code>. If it is tempting to define a type with a component of an abstract type, what are alternative strategies in general?</p>