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)

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.

Retired 12/31/2016

Oupps !!

Sorry, here is the good one ...


Pour compiler version is : ifort (IFORT) 13.1.0 20130121

Is the a.out useful for you ??


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.

Retired 12/31/2016

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

Retired 12/31/2016

Leave a Comment

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