(j3.2006) Fortran 2003 Catch 22?

Tom Clune Thomas.L.Clune
Thu Mar 21 07:44:36 EDT 2013

On Mar 21, 2013, at 4:01 AM, Malcolm Cohen <malcolm at nag-j.co.jp> wrote:

> (1) The abstract base class, Parent, has a private data component, which will 
> matter in a moment.
> The posted code has it public.

Oops - sorry about that.  Hastily simplified version of the real code.   

> If it's private, and there is no way of setting it, I am puzzled as to its 
> utility.

I added (non-deferred) type-bound set/get procedures to the Parent class.  They can have access even though the component is private.

>> The extended class, Child, adds in an allocatable polymorphic component.   I 
>> would like to have a "constructor" for Child that returns an instance, but 
>> there is a problem with assignment of objects of type Child.   Default 
>> assignment is illegal because of the polymorphic component (until F2008).
> What makes you think that?  F2003 explicitly says of allocatable components in 
> intrinsic assignment
>  "the corresponding component of variable is allocated with the same dynamic 
> type and type parameters as the component of expr"
> so clearly we not only intended for polymorphics to work, we actually wrote down 
> that it works!

Hmm.   An expert with the appropriate qualifications indicated that they thought this was a 2008 extension.   When it worked with gfortran, I assumed that was the explanation.   That probably ends the matter.  I'm content with set/get methods as a workaround for a compiler bug in my primary compiler.

>>  So instead I have a type-bound ASSIGNMENT(=) that handles the polymorphic 
>> allocation manually.  Unfortunately, I cannot correctly copy the private 
>> component in the parent because the parent is itself abstract.  I also tried 
>> adding a type-bound assignment(=) procedure to the parent class, but the 
>> compiler gave a similar plausible error message that this was not allowed.
> Either the compiler is wrong, or your code was wrong.  From your description I 
> don't see any difficulty with adhering to F2003 (the trivial sample I put 
> together worked).
> As far as I can tell, you seem to be struggling with compiler bugs and/or coding 
> errors, not with standard deficiencies?

Thanks.  The compiler message seemed so sure of itself.  :-)


- Tom

> Cheers,
> -- 
> ................................Malcolm Cohen, Nihon NAG, Tokyo. 
> _______________________________________________
> J3 mailing list
> J3 at mailman.j3-fortran.org
> http://mailman.j3-fortran.org/mailman/listinfo/j3

Thomas Clune, Ph. D. 					<Thomas.L.Clune at nasa.gov>
Chief, Software Systems Support Office		Code 610.3
NASA GSFC								301-286-4635
MS 610.8 B33-C128						<http://ssso.gsfc.nasa.gov>
Greenbelt, MD 20771

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.j3-fortran.org/pipermail/j3/attachments/20130321/51ce7377/attachment.html 

More information about the J3 mailing list