<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic And to clarify the structure in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994423#M102254</link>
    <description>And to clarify the structure constructor issue - any array expression that's not just a designator or constant (or something like that) associated with an actual argument in a "structure constructor overload" causes an ICE (the "oops" above is probably a distraction).

[fortran]
MODULE m20121004
  IMPLICIT NONE
  PRIVATE
  PUBLIC :: MyType
  TYPE :: MyType
  END TYPE MyType
  INTERFACE MyType
    MODULE PROCEDURE MyType_
  END INTERFACE MyType
CONTAINS
  FUNCTION MyType_(arg) RESULT(r)
    INTEGER, INTENT(IN) :: arg(:)
    TYPE(MyType) :: r    
  END FUNCTION MyType_
END MODULE m20121004

PROGRAM StructureConstructors
  USE m20121004
  IMPLICIT NONE
  
  TYPE(MyType) :: t
  t = MyType([1,2] * 1)
END PROGRAM StructureConstructors
[/fortran]

[plain]
&amp;gt;ifort /check:all /warn:all /standard-semantics StructureConstructors.f90
Intel(R) Visual Fortran Compiler XE for applications running on IA-32, Version 13.0.0.089 Build 20120731
Copyright (C) 1985-2012 Intel Corporation.  All rights reserved.

StructureConstructors.f90(11): warning #6178: The return value of this FUNCTION has not been defined.   &lt;R&gt;
  FUNCTION MyType_(arg) RESULT(r)
-------------------------------^
StructureConstructors.f90(11): remark #7712: This variable has not been used.   [ARG]
  FUNCTION MyType_(arg) RESULT(r)
-------------------^
StructureConstructors.f90(11): remark #7712: This variable has not been used.   &lt;R&gt;
  FUNCTION MyType_(arg) RESULT(r)
-------------------------------^
StructureConstructors.f90(22): internal error: Please visit 'http://www.intel.com/software/products/support' for assistance.
  t = MyType([1,2] * 1)
^
[ Aborting due to internal error. ]
compilation aborted for StructureConstructors.f90 (code 1)
[/plain]&lt;/R&gt;&lt;/R&gt;</description>
    <pubDate>Thu, 04 Oct 2012 06:08:06 GMT</pubDate>
    <dc:creator>IanH</dc:creator>
    <dc:date>2012-10-04T06:08:06Z</dc:date>
    <item>
      <title>Generic binding inheritance</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994410#M102241</link>
      <description>&lt;P&gt;The following source:&lt;/P&gt;
&lt;P&gt;[fortran]MODULE MaterialStreamValues&lt;BR /&gt;&amp;nbsp; IMPLICIT NONE&lt;BR /&gt;&amp;nbsp; PRIVATE&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; TYPE, ABSTRACT, PUBLIC :: MaterialStreamValue&lt;BR /&gt;&amp;nbsp; CONTAINS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROCEDURE(ms_wflow_op), DEFERRED :: wflow_op&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GENERIC :: OPERATOR(.WFlow.) =&amp;gt; wflow_op&lt;BR /&gt;&amp;nbsp; END TYPE MaterialStreamValue&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; ABSTRACT INTERFACE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELEMENTAL FUNCTION ms_wflow_op(str) RESULT(wflow)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMPORT :: MaterialStreamValue&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMPLICIT NONE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !-------------------------------------------------------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLASS(MaterialStreamValue), INTENT(IN) :: str&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REAL :: wflow&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END FUNCTION ms_wflow_op&lt;BR /&gt;&amp;nbsp; END INTERFACE&lt;BR /&gt;END MODULE MaterialStreamValues&lt;BR /&gt;&lt;BR /&gt;MODULE AqueousStreamValues&lt;BR /&gt;&amp;nbsp; USE MaterialStreamValues&lt;BR /&gt;&amp;nbsp; IMPLICIT NONE&lt;BR /&gt;&amp;nbsp; PRIVATE&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; TYPE, EXTENDS(MaterialStreamValue), PUBLIC :: AqueousStreamValue&lt;BR /&gt;&amp;nbsp; CONTAINS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROCEDURE :: wflow_op =&amp;gt; as_wflow_op&lt;BR /&gt;&amp;nbsp; END TYPE AqueousStreamValue&lt;BR /&gt;CONTAINS&lt;BR /&gt;&amp;nbsp; SUBROUTINE proc(str)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLASS(AqueousStreamValue), INTENT(IN) :: str&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; REAL :: magnitude&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; !***************************************************************************&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; magnitude = .WFlow. str&lt;BR /&gt;&amp;nbsp; END SUBROUTINE proc&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; ELEMENTAL FUNCTION as_wflow_op(str) RESULT(wflow)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLASS(AqueousStreamValue), INTENT(IN) :: str&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; REAL :: wflow&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; !***************************************************************************&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wflow = 2.0&lt;BR /&gt;&amp;nbsp; END FUNCTION as_wflow_op&lt;BR /&gt;END MODULE AqueousStreamValues&lt;BR /&gt;&lt;BR /&gt;[/fortran]&lt;/P&gt;
&lt;P&gt;when compiled with ifort 13.0.0 gives an error that I think is bogus:&lt;/P&gt;
&lt;P&gt;[plain]&amp;gt;ifort /c /check:all /warn:all /standard-semantics Ifort13GoesAndRuinsMyBeautifulTypeHierarchy.f90&lt;BR /&gt;Intel(R) Visual Fortran Compiler XE for applications running on IA-32, Version 13.0.0.089 Build 20120731&lt;BR /&gt;Copyright (C) 1985-2012 Intel Corporation.&amp;nbsp; All rights reserved.&lt;BR /&gt;&lt;BR /&gt;Ifort13GoesAndRuinsMyBeautifulTypeHierarchy.f90(36): error #6767: No matching user defined OPERATOR with the given type&lt;BR /&gt;and rank has been defined.&amp;nbsp;&amp;nbsp; [WFLOW]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; magnitude = .WFlow. str&lt;BR /&gt;-----------------^&lt;BR /&gt;Ifort13GoesAndRuinsMyBeautifulTypeHierarchy.f90(39): remark #7712: This variable has not been used.&amp;nbsp;&amp;nbsp; [STR]&lt;BR /&gt;&amp;nbsp; ELEMENTAL FUNCTION as_wflow_op(str) RESULT(wflow)&lt;BR /&gt;---------------------------------^&lt;BR /&gt;compilation aborted for Ifort13GoesAndRuinsMyBeautifulTypeHierarchy.f90 (code 1)[/plain]&lt;/P&gt;
&lt;P&gt;This had me going cross-eyed trying to spot the spelling mistake/get a reproducer, until I realised that the order of the module procedures in the second module matters (put proc after as_wflow_op and the error goes away).&lt;/P&gt;
&lt;P&gt;There be ice-bergs for the compiler not far away from this example too.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 25 Sep 2012 14:51:13 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994410#M102241</guid>
      <dc:creator>IanH</dc:creator>
      <dc:date>2012-09-25T14:51:13Z</dc:date>
    </item>
    <item>
      <title>IanH, have you experimented</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994411#M102242</link>
      <description>IanH, have you experimented to see if there is an issue between operator(.WFlow.) and result(wflow)?
Fortran is case insensitive.
The order of the module procedures may (will) alter the order of creation of the symbol table. Should the symbol table contain operators sans .'s then there may be a conflict.
I do not have V13 of the compiler so I cannot test.

Jim Dempsey</description>
      <pubDate>Tue, 25 Sep 2012 16:13:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994411#M102242</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2012-09-25T16:13:59Z</dc:date>
    </item>
    <item>
      <title>The name of the result</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994412#M102243</link>
      <description>The name of the result variable (or the name of the operator) doesn't seem to change things.

This problem is also in 12.1.x, not sure how I've avoided it till now.</description>
      <pubDate>Tue, 25 Sep 2012 20:08:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994412#M102243</guid>
      <dc:creator>IanH</dc:creator>
      <dc:date>2012-09-25T20:08:27Z</dc:date>
    </item>
    <item>
      <title>Here's a similar block of</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994413#M102244</link>
      <description>Here's a similar block of code (main change is the addition of a structure constructor) that gives an ICE.

[fortran]
MODULE MaterialStreamValues
  IMPLICIT NONE
  PRIVATE
  
  TYPE, ABSTRACT, PUBLIC :: MaterialStreamValue
  CONTAINS
    PROCEDURE(ms_wflow_op), DEFERRED, PRIVATE :: wflow_op
    GENERIC :: OPERATOR(.WFlow.) =&amp;gt; wflow_op
  END TYPE MaterialStreamValue
  
  ABSTRACT INTERFACE
    FUNCTION ms_wflow_op(str) RESULT(wflow)
      IMPORT :: MaterialStreamValue
      IMPLICIT NONE
      CLASS(MaterialStreamValue), INTENT(IN) :: str
      REAL :: wflow
    END FUNCTION ms_wflow_op
  END INTERFACE
END MODULE MaterialStreamValues


MODULE AqueousStreamValues
  USE MaterialStreamValues
  IMPLICIT NONE
  PRIVATE
  
  PUBLIC :: AqueousStreamValue
  
  TYPE, EXTENDS(MaterialStreamValue) :: AqueousStreamValue
    PRIVATE
    REAL :: WFlow
    REAL :: MVConc(10)
  CONTAINS
    PROCEDURE :: wflow_op =&amp;gt; as_wflow_op
  END TYPE AqueousStreamValue
  
  INTERFACE AqueousStreamValue
    MODULE PROCEDURE AqueousStreamValue_
  END INTERFACE AqueousStreamValue
CONTAINS
  PURE FUNCTION AqueousStreamValue_(wflow, mvconc) RESULT(str)
    REAL, INTENT(IN) :: wflow
    REAL, INTENT(IN) :: mvconc(:)
    TYPE(AqueousStreamValue) :: str
    !***************************************************************************
    str%WFlow = wflow
    str%MVConc = mvconc
  END FUNCTION AqueousStreamValue_
  
  FUNCTION as_wflow_op(str) RESULT(wflow)
    CLASS(AqueousStreamValue), INTENT(IN) :: str
    REAL :: wflow
    !***************************************************************************
    wflow = 2.0
  END FUNCTION as_wflow_op
  
  FUNCTION proc(lhs, rhs) RESULT(res)
    CLASS(AqueousStreamValue), INTENT(IN) :: lhs
    REAL, INTENT(IN) :: rhs
    TYPE(AqueousStreamValue) :: res
    !***************************************************************************
    ! Oops - passed scalar instead of an array.
    res = AqueousStreamValue(.WFlow. lhs * rhs, 1.0)
  END FUNCTION proc
END MODULE AqueousStreamValues
[/fortran]


[plain]
&amp;gt;ifort /c /check:all /warn:all /standard-semantics "2012-09-26 ice.f90"
Intel(R) Visual Fortran Compiler XE for applications running on IA-32, Version 13.0.0.089 Build 20120731
Copyright (C) 1985-2012 Intel Corporation.  All rights reserved.

2012-09-26 ice.f90(63): internal error: Please visit 'http://www.intel.com/software/products/support' for assistance.
    res = AqueousStreamValue(.WFlow. lhs * rhs, 1.0)
^
[ Aborting due to internal error. ]
compilation aborted for 2012-09-26 ice.f90 (code 1)[/plain]</description>
      <pubDate>Tue, 25 Sep 2012 20:51:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994413#M102244</guid>
      <dc:creator>IanH</dc:creator>
      <dc:date>2012-09-25T20:51:45Z</dc:date>
    </item>
    <item>
      <title>Ian, thanks for the second</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994414#M102245</link>
      <description>Ian, thanks for the second example - I have reported this as issue DPD200236866. As you note, making the second argument of the "constructor" an array rather than a scalar allows it to compile.  In the code as shown, the compiler ought to complain about the constructor not matching the type.

I will look at the first example next - I think you also started a discussion in comp.lang.fortran on this one.</description>
      <pubDate>Fri, 28 Sep 2012 18:55:07 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994414#M102245</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2012-09-28T18:55:07Z</dc:date>
    </item>
    <item>
      <title>First example escalated as</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994415#M102246</link>
      <description>First example escalated as DPD200236870.</description>
      <pubDate>Fri, 28 Sep 2012 19:36:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994415#M102246</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2012-09-28T19:36:33Z</dc:date>
    </item>
    <item>
      <title>The c.l.f discussion was just</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994416#M102247</link>
      <description>The c.l.f discussion was just about language rules.  Hopefully what the ifort compiler does now is what is supposed to happen.

In the first example, the ordering of procedures after the contains statement of the module changes whether things compile or not,  That can't be a healthy sign.</description>
      <pubDate>Fri, 28 Sep 2012 19:42:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994416#M102247</guid>
      <dc:creator>IanH</dc:creator>
      <dc:date>2012-09-28T19:42:12Z</dc:date>
    </item>
    <item>
      <title>Right - I've seen another</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994417#M102248</link>
      <description>Right - I've seen another case where procedure order matters. This is not right and we'll fix it.</description>
      <pubDate>Fri, 28 Sep 2012 19:59:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994417#M102248</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2012-09-28T19:59:00Z</dc:date>
    </item>
    <item>
      <title>The c.l.f. discussion comes</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994418#M102249</link>
      <description>The c.l.f. discussion comes back with information (F08/0052) that says what I think the ifort compiler does now (private bindings can be overridden in modules other than the module that defines the private binding) is broken.  :(</description>
      <pubDate>Mon, 01 Oct 2012 22:55:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994418#M102249</guid>
      <dc:creator>IanH</dc:creator>
      <dc:date>2012-10-01T22:55:46Z</dc:date>
    </item>
    <item>
      <title>And here be an example of c.l</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994419#M102250</link>
      <description>And here be an example of c.l.f discussed breakage.

[fortran]
MODULE ParentMod
  IMPLICIT NONE
  PRIVATE
  
  PUBLIC :: call_a
  PUBLIC :: call_b
  
  TYPE, ABSTRACT, PUBLIC :: Parent
  CONTAINS
    PROCEDURE(parent_a), DEFERRED, PRIVATE, NOPASS :: a
    PROCEDURE, PRIVATE, NOPASS :: b
  END TYPE Parent
  
  ABSTRACT INTERFACE
    SUBROUTINE parent_a
    END SUBROUTINE parent_a
  END INTERFACE
CONTAINS
  SUBROUTINE call_a(arg)
    CLASS(Parent), INTENT(IN) :: arg
    CALL arg%a
  END SUBROUTINE call_a
  
  SUBROUTINE b
    PRINT "('parent b')"
  END SUBROUTINE b
  
  SUBROUTINE call_b(arg)
    CLASS(Parent), INTENT(IN) :: arg
    CALL arg%b
  END SUBROUTINE call_b
END MODULE ParentMod


MODULE ExtensionMod
  USE ParentMod
  IMPLICIT NONE
  PRIVATE
  
  ! This violates C429 - this type inherits a deferred type bound procedure but 
  ! it is not abstract.  No diagnostic from compiler.  (Rest of example pretends 
  ! this issue doesn't exist.)
  TYPE, EXTENDS(PARENT), PUBLIC :: Extension
  CONTAINS
    PROCEDURE, NOPASS :: a
    PROCEDURE, NOPASS :: b
  END TYPE Extension
CONTAINS
  SUBROUTINE a
    PRINT "('extension a')"
  END SUBROUTINE a
  SUBROUTINE b
    PRINT "('extension b')"
  END SUBROUTINE b
END MODULE ExtensionMod


PROGRAM PrivatelyIThinkItWasTheWrongCall
  USE ParentMod
  USE ExtensionMod
  IMPLICIT NONE
  TYPE(Extension) :: te
  CLASS(Parent), ALLOCATABLE :: cp
  !*****************************************************************************
  ALLOCATE(Extension :: cp)
  
  CALL te%a
  CALL call_a(cp)     ! Prints 'extension a', but really calling deferred .
                      ! procedure without implementation.
  
  CALL te%b
  CALL call_b(cp)     ! Prints 'extension b', but should be "parent b".
END PROGRAM PrivatelyIThinkItWasTheWrongCall
[/fortran]</description>
      <pubDate>Tue, 02 Oct 2012 01:23:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994419#M102250</guid>
      <dc:creator>IanH</dc:creator>
      <dc:date>2012-10-02T01:23:53Z</dc:date>
    </item>
    <item>
      <title>Thanks - we are aware of</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994420#M102251</link>
      <description>Thanks - we are aware of Corrigendum 1 (we did, after all, vote on it) and will be going through it.</description>
      <pubDate>Tue, 02 Oct 2012 14:09:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994420#M102251</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2012-10-02T14:09:06Z</dc:date>
    </item>
    <item>
      <title>In the case of your last</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994421#M102252</link>
      <description>In the case of your last example, F08/0052 says that since no accessible type-bound procedures are inherited at line 062, C429 doesn't apply. At least that's my reading - do you agree?</description>
      <pubDate>Tue, 02 Oct 2012 17:35:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994421#M102252</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2012-10-02T17:35:45Z</dc:date>
    </item>
    <item>
      <title>Not quite (if I follow, which</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994422#M102253</link>
      <description>Not quite (if I follow, which is always an issue prior to the first coffee of the day) - the change that F08/0052 made was to qualify what you can override, not what is inherited - so the unaccessible bindings are inherited, but can't be overridden.  As one of those bindings is deferred then the extension needs to be abstract (but as you can't override the binding, the Parent type is rendered useless).  I think there was an example like this in the interp.</description>
      <pubDate>Tue, 02 Oct 2012 20:54:19 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994422#M102253</guid>
      <dc:creator>IanH</dc:creator>
      <dc:date>2012-10-02T20:54:19Z</dc:date>
    </item>
    <item>
      <title>And to clarify the structure</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994423#M102254</link>
      <description>And to clarify the structure constructor issue - any array expression that's not just a designator or constant (or something like that) associated with an actual argument in a "structure constructor overload" causes an ICE (the "oops" above is probably a distraction).

[fortran]
MODULE m20121004
  IMPLICIT NONE
  PRIVATE
  PUBLIC :: MyType
  TYPE :: MyType
  END TYPE MyType
  INTERFACE MyType
    MODULE PROCEDURE MyType_
  END INTERFACE MyType
CONTAINS
  FUNCTION MyType_(arg) RESULT(r)
    INTEGER, INTENT(IN) :: arg(:)
    TYPE(MyType) :: r    
  END FUNCTION MyType_
END MODULE m20121004

PROGRAM StructureConstructors
  USE m20121004
  IMPLICIT NONE
  
  TYPE(MyType) :: t
  t = MyType([1,2] * 1)
END PROGRAM StructureConstructors
[/fortran]

[plain]
&amp;gt;ifort /check:all /warn:all /standard-semantics StructureConstructors.f90
Intel(R) Visual Fortran Compiler XE for applications running on IA-32, Version 13.0.0.089 Build 20120731
Copyright (C) 1985-2012 Intel Corporation.  All rights reserved.

StructureConstructors.f90(11): warning #6178: The return value of this FUNCTION has not been defined.   &lt;R&gt;
  FUNCTION MyType_(arg) RESULT(r)
-------------------------------^
StructureConstructors.f90(11): remark #7712: This variable has not been used.   [ARG]
  FUNCTION MyType_(arg) RESULT(r)
-------------------^
StructureConstructors.f90(11): remark #7712: This variable has not been used.   &lt;R&gt;
  FUNCTION MyType_(arg) RESULT(r)
-------------------------------^
StructureConstructors.f90(22): internal error: Please visit 'http://www.intel.com/software/products/support' for assistance.
  t = MyType([1,2] * 1)
^
[ Aborting due to internal error. ]
compilation aborted for StructureConstructors.f90 (code 1)
[/plain]&lt;/R&gt;&lt;/R&gt;</description>
      <pubDate>Thu, 04 Oct 2012 06:08:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994423#M102254</guid>
      <dc:creator>IanH</dc:creator>
      <dc:date>2012-10-04T06:08:06Z</dc:date>
    </item>
    <item>
      <title>I expect that the fix for the</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994424#M102255</link>
      <description>I expect that the fix for both problems will appear in Update 2 (January, I think).</description>
      <pubDate>Tue, 23 Oct 2012 20:49:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Generic-binding-inheritance/m-p/994424#M102255</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2012-10-23T20:49:00Z</dc:date>
    </item>
  </channel>
</rss>

