<?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 Okay, my code has come upon in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079571#M121566</link>
    <description>&lt;P&gt;Okay, my code has come upon another impasse. &amp;nbsp;The FuncMultiBunch class is defined as follows:&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;TYPE, EXTENDS(FuncBase) :: FuncMultiBunch
    INTEGER, PRIVATE :: Nn
    INTEGER, DIMENSION(:), ALLOCATABLE, PRIVATE :: DataSet
    INTEGER, DIMENSION(:), ALLOCATABLE, PRIVATE :: Topology
    INTEGER, PRIVATE :: NFB
    CLASS (FuncBunch), DIMENSION(:), POINTER, PRIVATE :: mFB
CONTAINS
    PROCEDURE :: Func =&amp;gt; Func_MultiBunch
    PROCEDURE :: FuncV =&amp;gt; FuncV_MultiBunch
    PROCEDURE :: FDJAC =&amp;gt; FDJAC_MultiBunch
    PROCEDURE :: MaximumStep =&amp;gt; MaximumStep_MultiBunch
    ...
    PROCEDURE :: Get_FB
    ...
END TYPE FuncMultiBunch
TYPE (FuncBunch), DIMENSION(:), ALLOCATABLE, TARGET, PRIVATE :: FBactual&lt;/PRE&gt;

&lt;P&gt;The PROCEDURE Get_FB is defined as follows:&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;FUNCTION Get_FB(this, N) RESULT(ptr)
    CLASS (FuncMultiBunch), INTENT(IN) :: this
    INTEGER, INTENT(IN) :: N

    TYPE (FuncBunch), POINTER :: ptr
    IF (N &amp;gt; 0 .AND. N &amp;lt;= this%Nn) THEN
        ptr =&amp;gt; this%mFB(N)
    ELSE
        ptr =&amp;gt; NULL()
    END IF
END FUNCTION Get_FB
&lt;/PRE&gt;

&lt;P&gt;The question lies in the use of Get_FB. &amp;nbsp;I am using it in various places within the enclosing module without compilation trouble. &amp;nbsp;However, in attempting to use it outside the module proper, I am getting Error #8346,&amp;nbsp;A function reference cannot be used as the leftmost part-ref of structure component. &amp;nbsp;What am I missing?&lt;/P&gt;</description>
    <pubDate>Wed, 19 Apr 2017 22:00:01 GMT</pubDate>
    <dc:creator>NotThatItMatters</dc:creator>
    <dc:date>2017-04-19T22:00:01Z</dc:date>
    <item>
      <title>Building a level-one equation solver from a level-zero equation solver</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079561#M121556</link>
      <description>&lt;P&gt;I have a function class which takes some parameters as arguments and returns functional values. &amp;nbsp;This is something along the lines of&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;TYPE, EXTENDS(FuncBase) :: FuncBunch
    INTEGER, PRIVATE :: Nn
    INTEGER, DIMENSION(:), ALLOCATABLE, PRIVATE :: Data_Set
    ! 0 = first constraint, 1 = second constraint
    INTEGER, PRIVATE :: DataConstraint
    ! 0 = single bunch constraint, 1 = two bunch constraints
    INTEGER, PRIVATE :: IConstraint ! Constraint_Type
    ...
CONTAINS
    PROCEDURE :: Func =&amp;gt; Func_Bunch
    PROCEDURE :: FuncV =&amp;gt; FuncV_Bunch
    PROCEDURE :: FDJAC =&amp;gt; FDJAC_Bunch
    PROCEDURE :: MaximumStep =&amp;gt; MaximumStep_Bunch
    PROCEDURE, ...
END TYPE FuncBunch
&lt;/PRE&gt;

&lt;P&gt;The idea here is that there are scalar functions Func and vector functions FuncV both of which need to be solved (values == 0.0). &amp;nbsp;I have some basic root solvers in a separate class to solve the single-variable and multi-variable cases. &amp;nbsp;The solver itself lies in a module with solvers for this class and other classes. &amp;nbsp;This module has a subroutine of the form&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;SUBROUTINE SOLVE_BUNCH(FBUNCH, Parameter1, Parameter2, ...)
    TYPE (FuncBunch), INTENT(INOUT) :: FBUNCH
    ...
END SUBROUTINE SOLVE_BUNCH
&lt;/PRE&gt;

&lt;P&gt;I need to extend this example to solve many sets of FuncBunch equations (Func_Bunch or FuncV_Bunch) with an overriding constraint. &amp;nbsp;The idea I had was to create a new class of the form&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;TYPE, EXTENDS(FuncBase) :: FuncMultiBunch
    INTEGER, PRIVATE :: Nn
    INTEGER, DIMENSION(:), ALLOCATABLE, PRIVATE :: DataSet
    INTEGER, DIMENSION(:), ALLOCATABLE, PRIVATE :: Topology
    ! 0 = first constraint, 1 = second constraint
    INTEGER, PRIVATE :: DataConstraint
    ! 0 = single rate constraint, 1 = two rate constraints
    INTEGER, PRIVATE :: IConstraint ! Constraint_Type
    ...
    INTEGER, PRIVATE :: NFB
    CLASS (FuncBunch), DIMENSION(:), ALLOCATABLE, PRIVATE :: mFB
    ...
CONTAINS
    PROCEDURE :: Func =&amp;gt; Func_MultiBunch
    PROCEDURE :: FuncV =&amp;gt; FuncV_MultiBunch
    PROCEDURE :: FDJAC =&amp;gt; FDJAC_MultiBunch
    PROCEDURE :: MaximumStep =&amp;gt; MaximumStep_MultiBunch
    ...
END TYPE FuncMultiBunch
&lt;/PRE&gt;

&lt;P&gt;The idea would be to use a similar solver as the first, only the internals of the SOLVE_MULTIBUNCH would be to solve each FuncBunch individually with the level-one constraints involving sums or maxima applying.&lt;/P&gt;

&lt;P&gt;The trouble I am having lies in getting the MULTIBUNCH to talk with the underlying SOLVE_BUNCH routine. &amp;nbsp;I cannot seem to use the mFB from FuncMultiBunch within SOLVE_BUNCH because FBUNCH is INTENT(INOUT) and any accessors I use would only be expressions or constants. &amp;nbsp;How might I accomplish this? &amp;nbsp;Might function pointers, a concept of which I am unfamiliar, help?&lt;/P&gt;</description>
      <pubDate>Mon, 10 Apr 2017 19:55:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079561#M121556</guid>
      <dc:creator>NotThatItMatters</dc:creator>
      <dc:date>2017-04-10T19:55:42Z</dc:date>
    </item>
    <item>
      <title>in type &lt;FuncMultiBunch&gt;</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079562#M121557</link>
      <description>&lt;P&gt;in type &amp;lt;&lt;SPAN style="color: rgb(96, 96, 96); font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, Menlo, Monaco, &amp;quot;DejaVu Sans Mono&amp;quot;, monospace, sans-serif; font-size: 13.008px;"&gt;FuncMultiBunch&lt;/SPAN&gt;&amp;gt;&lt;/P&gt;

&lt;P&gt;you can write a procedure to throw a mFB pointer&lt;/P&gt;

&lt;P&gt;then&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;CODE class="keyword" style="font-size: 13.008px; color: rgb(96, 96, 96);"&gt;CLASS&lt;/CODE&gt;&lt;SPAN style="color: rgb(96, 96, 96); font-size: 13.008px;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="plain" style="font-size: 13.008px; color: rgb(96, 96, 96);"&gt;(FuncBunch),pointer:: ptr =&amp;gt; &amp;lt;funcmultibunch&amp;gt;%throw_mfb_ptr(i)&lt;/CODE&gt;&lt;/P&gt;

&lt;P&gt;&lt;CODE class="plain" style="font-size: 13.008px; color: rgb(96, 96, 96);"&gt;call&amp;nbsp;&lt;/CODE&gt;&lt;CODE class="keyword" style="font-size: 13.008px; color: rgb(96, 96, 96);"&gt;SUBROUTINE&lt;/CODE&gt;&lt;SPAN style="color: rgb(96, 96, 96); font-size: 13.008px;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="plain" style="font-size: 13.008px; color: rgb(96, 96, 96);"&gt;SOLVE_BUNCH(ptr,parameters...)&lt;/CODE&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;CODE class="plain" style="font-size: 13.008px; color: rgb(96, 96, 96);"&gt;is that ok?&lt;/CODE&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 11 Apr 2017 09:11:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079562#M121557</guid>
      <dc:creator>Li_L_</dc:creator>
      <dc:date>2017-04-11T09:11:00Z</dc:date>
    </item>
    <item>
      <title>Sounds good.  How would that</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079563#M121558</link>
      <description>&lt;P&gt;Sounds good. &amp;nbsp;How would that change the original implementation and call sequence for SOLVE_BUNCH? &amp;nbsp;Do I need to explicitly call it with pointers to FuncBunch rather than FuncBunch targets?&lt;/P&gt;

&lt;P&gt;I'm a little new to this concept.&lt;/P&gt;</description>
      <pubDate>Tue, 11 Apr 2017 12:57:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079563#M121558</guid>
      <dc:creator>NotThatItMatters</dc:creator>
      <dc:date>2017-04-11T12:57:37Z</dc:date>
    </item>
    <item>
      <title>No, you don't need any</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079564#M121559</link>
      <description>&lt;P&gt;No, you don't need any special syntax to call a function via a function pointer (or a subroutine via a subroutine pointer). I find that a very elegant feature :).&lt;/P&gt;</description>
      <pubDate>Tue, 11 Apr 2017 12:59:05 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079564#M121559</guid>
      <dc:creator>Arjen_Markus</dc:creator>
      <dc:date>2017-04-11T12:59:05Z</dc:date>
    </item>
    <item>
      <title>Quote:NotThatItMatters wrote:</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079565#M121560</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;NotThatItMatters wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Sounds good. &amp;nbsp;How would that change the original implementation and call sequence for SOLVE_BUNCH? &amp;nbsp;Do I need to explicitly call it with pointers to FuncBunch rather than FuncBunch targets?&lt;/P&gt;

&lt;P&gt;I'm a little new to this concept.&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;i think i'm not completely got your meaning&lt;/P&gt;

&lt;P&gt;in my understanding, if you wanna solve &amp;lt;mfb&amp;gt; in module funcMultiBunch, you can call solve_bunch(funcMultibunch%mfb...) directly, because private attr wouldn't stop the access from the same module&lt;/P&gt;

&lt;P&gt;if you want call solve_bunch from the son module of funcMultiBunch, you have to write a pointer procedure to access the &amp;lt;mfb&amp;gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;solver module is the ancient module of all other type modules.&lt;/P&gt;</description>
      <pubDate>Tue, 11 Apr 2017 13:31:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079565#M121560</guid>
      <dc:creator>Li_L_</dc:creator>
      <dc:date>2017-04-11T13:31:28Z</dc:date>
    </item>
    <item>
      <title>I am calling SOLVE_BUNCH from</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079566#M121561</link>
      <description>&lt;P&gt;I am calling SOLVE_BUNCH from another module, call it the MultipleBunchConstraint module. &amp;nbsp;SOLVE_BUNCH itself exists in the SingleBunchConstraint module. &amp;nbsp;The definition of FuncBunch exists in the FuncBunch_Module module. &amp;nbsp;The definition of FuncMultiBunch exists in the FuncMultiBunch_Module module.&lt;/P&gt;

&lt;P&gt;I know this seems a little extreme, but I have designed this to keep the class (type) definitions separate from the solvers and ultimately keep them separate from the modules which use the solvers. &amp;nbsp;This is to keep away from circular module and class references which have plagued the code in the past.&lt;/P&gt;</description>
      <pubDate>Tue, 11 Apr 2017 17:11:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079566#M121561</guid>
      <dc:creator>NotThatItMatters</dc:creator>
      <dc:date>2017-04-11T17:11:12Z</dc:date>
    </item>
    <item>
      <title>SUBMODULE is the future it</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079567#M121562</link>
      <description>&lt;P&gt;SUBMODULE is the future it gets rid of all that circular dependence problem and stops you wasting your life on build cascades.&lt;/P&gt;</description>
      <pubDate>Tue, 11 Apr 2017 19:13:05 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079567#M121562</guid>
      <dc:creator>andrew_4619</dc:creator>
      <dc:date>2017-04-11T19:13:05Z</dc:date>
    </item>
    <item>
      <title>So, with SUBMODULEs the idea</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079568#M121563</link>
      <description>&lt;P&gt;So, with SUBMODULEs the idea is MultipleBunchConstraint is the module with SingleBunchConstraint the SUBMODULE? &amp;nbsp;Is accessibility from the outside of SingleBunchConstraint straightforward?&lt;/P&gt;

&lt;P&gt;If you thought I was new to pointers, the newness with SUBMODULEs is quite a bit more.&lt;/P&gt;</description>
      <pubDate>Tue, 11 Apr 2017 19:53:54 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079568#M121563</guid>
      <dc:creator>NotThatItMatters</dc:creator>
      <dc:date>2017-04-11T19:53:54Z</dc:date>
    </item>
    <item>
      <title>Module_A  Submod_A1 Submod_A2</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079569#M121564</link>
      <description>&lt;P&gt;Module_A &amp;nbsp;&lt;SPAN style="font-size: 16.26px;"&gt;Submod_A1 Submod_A2&amp;nbsp;Submod_A3&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="font-size: 16.26px;"&gt;Module_B &amp;nbsp;&lt;SPAN style="font-size: 16.26px;"&gt;Submod_B1&amp;nbsp;Submod_B2&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="font-size: 16.26px;"&gt;&lt;SPAN style="font-size: 16.26px;"&gt;module A contains shared data and interfaces for A1, A2, A3 that have the contained routines&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="font-size: 16.26px;"&gt;&lt;SPAN style="font-size: 16.26px;"&gt;module B contains shared data and interfaces for B1, B2 that have the contained routines&lt;/SPAN&gt;&lt;/P&gt;

&lt;DIV&gt;So routines in A1 A2 and A3 can all see each other and can USE routines in B&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 16.26px;"&gt;routines in B1 and &amp;nbsp;B2 can all see each other and can USE routines in A&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 16.26px;"&gt;Arrange the modules in anyway that is logical you are not restricted by dependencies.&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Tue, 11 Apr 2017 21:30:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079569#M121564</guid>
      <dc:creator>andrew_4619</dc:creator>
      <dc:date>2017-04-11T21:30:37Z</dc:date>
    </item>
    <item>
      <title>Thank you.  I read a bit</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079570#M121565</link>
      <description>&lt;P&gt;Thank you. &amp;nbsp;I read a bit after I posted that last (idiotic) post and realized my idiocy. &amp;nbsp;You have described it in such a way that even I can understand.&lt;/P&gt;</description>
      <pubDate>Tue, 11 Apr 2017 23:53:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079570#M121565</guid>
      <dc:creator>NotThatItMatters</dc:creator>
      <dc:date>2017-04-11T23:53:56Z</dc:date>
    </item>
    <item>
      <title>Okay, my code has come upon</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079571#M121566</link>
      <description>&lt;P&gt;Okay, my code has come upon another impasse. &amp;nbsp;The FuncMultiBunch class is defined as follows:&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;TYPE, EXTENDS(FuncBase) :: FuncMultiBunch
    INTEGER, PRIVATE :: Nn
    INTEGER, DIMENSION(:), ALLOCATABLE, PRIVATE :: DataSet
    INTEGER, DIMENSION(:), ALLOCATABLE, PRIVATE :: Topology
    INTEGER, PRIVATE :: NFB
    CLASS (FuncBunch), DIMENSION(:), POINTER, PRIVATE :: mFB
CONTAINS
    PROCEDURE :: Func =&amp;gt; Func_MultiBunch
    PROCEDURE :: FuncV =&amp;gt; FuncV_MultiBunch
    PROCEDURE :: FDJAC =&amp;gt; FDJAC_MultiBunch
    PROCEDURE :: MaximumStep =&amp;gt; MaximumStep_MultiBunch
    ...
    PROCEDURE :: Get_FB
    ...
END TYPE FuncMultiBunch
TYPE (FuncBunch), DIMENSION(:), ALLOCATABLE, TARGET, PRIVATE :: FBactual&lt;/PRE&gt;

&lt;P&gt;The PROCEDURE Get_FB is defined as follows:&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;FUNCTION Get_FB(this, N) RESULT(ptr)
    CLASS (FuncMultiBunch), INTENT(IN) :: this
    INTEGER, INTENT(IN) :: N

    TYPE (FuncBunch), POINTER :: ptr
    IF (N &amp;gt; 0 .AND. N &amp;lt;= this%Nn) THEN
        ptr =&amp;gt; this%mFB(N)
    ELSE
        ptr =&amp;gt; NULL()
    END IF
END FUNCTION Get_FB
&lt;/PRE&gt;

&lt;P&gt;The question lies in the use of Get_FB. &amp;nbsp;I am using it in various places within the enclosing module without compilation trouble. &amp;nbsp;However, in attempting to use it outside the module proper, I am getting Error #8346,&amp;nbsp;A function reference cannot be used as the leftmost part-ref of structure component. &amp;nbsp;What am I missing?&lt;/P&gt;</description>
      <pubDate>Wed, 19 Apr 2017 22:00:01 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079571#M121566</guid>
      <dc:creator>NotThatItMatters</dc:creator>
      <dc:date>2017-04-19T22:00:01Z</dc:date>
    </item>
    <item>
      <title>Could you show a typical line</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079572#M121567</link>
      <description>&lt;P&gt;Could you show a typical line of code that the error is reported against?&amp;nbsp; The message suggests that you have syntax akin to `object%Get_FB()%xyz`, which is not permitted.&lt;/P&gt;

&lt;P&gt;Functions with a data pointer result that can sensibly return dissociated pointers make me a little nervous... it suggests to me that the function should instead be a subroutine.&lt;/P&gt;</description>
      <pubDate>Wed, 19 Apr 2017 22:23:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079572#M121567</guid>
      <dc:creator>IanH</dc:creator>
      <dc:date>2017-04-19T22:23:35Z</dc:date>
    </item>
    <item>
      <title>Here is a "one-liner" that</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079573#M121568</link>
      <description>&lt;P&gt;Here is a "one-liner" that fails. &amp;nbsp;As you might have guessed, I am changing the names to protect the ....&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;SUBROUTINE DO_SOMETHING(FMB, ...)
USE FuncMultiBunch_Module, ONLY : FuncMultiBunch
TYPE (FuncMultiBunch), INTENT(INOUT) :: FMB
REAL QFloat
QFloat = 0.0
QFloat = QFloat + FMB%Get_FB(M)%Get_A_Float()
END SUBROUTINE DO_SOMETHING&lt;/PRE&gt;

&lt;P&gt;This line is giving me the headache.&lt;/P&gt;</description>
      <pubDate>Thu, 20 Apr 2017 13:54:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079573#M121568</guid>
      <dc:creator>NotThatItMatters</dc:creator>
      <dc:date>2017-04-20T13:54:43Z</dc:date>
    </item>
    <item>
      <title>The following "equivalent"</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079574#M121569</link>
      <description>&lt;P&gt;The following "equivalent" code compiles without error:&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;SUBROUTINE DO_SOMETHING(FMB, ...)
USE FuncMultiBunch_Module, ONLY : FuncMultiBunch
USE FuncBunch_Module, ONLY : FuncBunch
TYPE (FuncMultiBunch), INTENT(INOUT) :: FMB
REAL QFloat
TYPE (FuncBunch) :: FBlocal
QFloat = 0.0
FPlocal = FMB%Get_FB(M)
QFloat = QFloat + FPlocal%Get_A_Float()
END SUBROUTINE DO_SOMETHING&lt;/PRE&gt;

&lt;P&gt;The creation of a local version of the FuncBunch TYPE allows the code compilation. &amp;nbsp;Now, provided I am not leaving uninitialized pointers or similar, will this actually work? &amp;nbsp;Is there anything inherently wrong with what I am trying to do?&lt;/P&gt;</description>
      <pubDate>Thu, 20 Apr 2017 14:23:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079574#M121569</guid>
      <dc:creator>NotThatItMatters</dc:creator>
      <dc:date>2017-04-20T14:23:28Z</dc:date>
    </item>
    <item>
      <title>There is a typo here: FPlocal</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079575#M121570</link>
      <description>&lt;P&gt;There is a typo here: FPlocal in the last line should be FBlocal.&lt;/P&gt;</description>
      <pubDate>Thu, 20 Apr 2017 14:24:05 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079575#M121570</guid>
      <dc:creator>NotThatItMatters</dc:creator>
      <dc:date>2017-04-20T14:24:05Z</dc:date>
    </item>
    <item>
      <title>Line 6 of the code in #13 has</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079576#M121571</link>
      <description>&lt;P&gt;Line 6 of the code in #13 has the invalid syntax I was referring to - you are not permitted to have a function reference to the left of the % .&lt;/P&gt;

&lt;P&gt;Your function returns a pointer, which presumably (?) means that you want to reference the original object.&amp;nbsp; An assignment statement creates a copy of the value that is returned by the function reference.&amp;nbsp; Perhaps you want the temporary to be a pointer, and define it through pointer association.&lt;/P&gt;

&lt;PRE class="brush:;"&gt;TYPE (FuncBunch), POINTER :: FBLocal
FBLocal =&amp;gt; FMB%Get_FB (M)
QFloat = QFloat + FBLocal%Get_A_Float ()&lt;/PRE&gt;

&lt;P&gt;You can also use the associate construct to achieve the equivalent.&lt;/P&gt;

&lt;P&gt;You need to think about what will happen when your function reference returns a dissociated pointer.&lt;/P&gt;</description>
      <pubDate>Thu, 20 Apr 2017 22:07:13 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079576#M121571</guid>
      <dc:creator>IanH</dc:creator>
      <dc:date>2017-04-20T22:07:13Z</dc:date>
    </item>
    <item>
      <title>What is the difference</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079577#M121572</link>
      <description>&lt;P&gt;What is the difference between my line and a reference within a PROCEDURE that is part of FuncMultiBunch which says&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;iItem = this%Get_FB(M)%Get_A_Number()&lt;/PRE&gt;

&lt;P&gt;Are these items trouble? &amp;nbsp;They compile up fine.&lt;/P&gt;

&lt;P&gt;I understand the idea of disassociation. &amp;nbsp;I have several catches.&lt;/P&gt;</description>
      <pubDate>Thu, 20 Apr 2017 22:18:01 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079577#M121572</guid>
      <dc:creator>NotThatItMatters</dc:creator>
      <dc:date>2017-04-20T22:18:01Z</dc:date>
    </item>
    <item>
      <title>If Get_FB really is a binding</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079578#M121573</link>
      <description>&lt;P&gt;If Get_FB really is a binding in the code in #17 (and not an array component reference), then the code should not compile. If the compiler is compiling such code, then I expect that would be regarded by the compiler support people as a bug.&lt;/P&gt;</description>
      <pubDate>Fri, 21 Apr 2017 09:14:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079578#M121573</guid>
      <dc:creator>IanH</dc:creator>
      <dc:date>2017-04-21T09:14:44Z</dc:date>
    </item>
    <item>
      <title>Sorry, that was not what I</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079579#M121574</link>
      <description>&lt;P&gt;Sorry, that was not what I have in code. &amp;nbsp;What I have in code is&lt;/P&gt;

&lt;PRE class="brush:;"&gt;this%mFB(M)%Get_A_Number()&lt;/PRE&gt;

&lt;P&gt;This is much different. &amp;nbsp;Sorry.&lt;/P&gt;</description>
      <pubDate>Fri, 21 Apr 2017 14:07:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Building-a-level-one-equation-solver-from-a-level-zero-equation/m-p/1079579#M121574</guid>
      <dc:creator>NotThatItMatters</dc:creator>
      <dc:date>2017-04-21T14:07:45Z</dc:date>
    </item>
  </channel>
</rss>

