Derived type constructor for extended types does not initialize all fields

Derived type constructor for extended types does not initialize all fields

Dear Fortran,

I have some derived types, types extended from a root (astract) type.

I define (scalar) variables using their constructors.

When the type is "simple" types (e.g. Point_2D : real :: x, y) it is Ok

But, when the type is more complicated (e.g. Circle : Point_2D and real :: radius)

  the field radius is not intialized.

More strange (see output file) if the type is like ( Rectangle : Point_2D , real: h,w) the

 h-field is initialized with the value of w-field and, therefore, w_fild not initialized

See details and program in attached files.

(Of course, if the fields are defined field by field it is Ok but more tedious to do)

AttachmentSize
Downloadtext/plain dataobject.txt1.16 KB
Downloadapplication/octet-stream dataobject-2.f903.19 KB
6 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

The source you attached has several errors and won't compile.  Please fix these errors and attach again.

Steve - Intel Developer Support

Oupps !!

Sorry, here is the good one ...

Bernard

Pour compiler version is : ifort (IFORT) 13.1.0 20130121

Is the a.out useful for you ??

Attachments: 

AttachmentSize
Downloadapplication/octet-stream dataobject-2.f903.17 KB

This line is not beautiful : Type(Point_3D) :: P3 = POINT_3D(12.0,13,100.0)

I prefer ;  Type(Point_3D) :: P3 = POINT_3D(12.0,13.0,100.0)

Thanks - I can reproduce the problem and have escalated it as issue DPD200241863. I will let you know of any progress.

Steve - Intel Developer Support

This problem has been fixed for a release later this year.

Steve - Intel Developer Support

Leave a Comment

Please sign in to add a comment. Not a member? Join today