<?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 Thanks.  In usual style I now in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Meaning-of-quot-variable-is-defined-quot-in-the-context-of/m-p/968494#M96406</link>
    <description>&lt;P&gt;Thanks.&amp;nbsp; In usual style I now cannot work out what/how I saw the actual argument error, but whatever it was - it was what made me realize that the syntax I originally had for the left hand side substring was wrong but not being picked up by the compiler.&lt;/P&gt;
&lt;P&gt;If you are party to any further discussion about what "variable" means I'd appreciate any update.&amp;nbsp; I'm not even sure I can spell equivalence.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 05 Aug 2013 15:39:02 GMT</pubDate>
    <dc:creator>IanH</dc:creator>
    <dc:date>2013-08-05T15:39:02Z</dc:date>
    <item>
      <title>Meaning of "variable is defined" in the context of coarrays</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Meaning-of-quot-variable-is-defined-quot-in-the-context-of/m-p/968490#M96402</link>
      <description>&lt;P&gt;Those who follow c.l.f will have seen this question from me a few weeks back (&lt;A href="https://groups.google.com/d/topic/comp.lang.fortran/A8MMtWnkVGc/discussion"&gt;this&lt;/A&gt; might link to it).&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In F2008 it says for non-atomic operations that "if a variable is defined on an image in a segment, it shall not be referenced, defined or become undefined in a segment on another image unless the segments are ordered."&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm not sure whether "a variable" means the entire coarray involved in the definition, or just the specific subobjects of a coarray that might be defined.&amp;nbsp; On c.l.f. I got an answer from someone who definitely knows their stuff that it was definitely the whole thing.&amp;nbsp; I got another answer from someone who similarly definitely knows their stuff that it was definitely just the subobjects (through example of what was considered valid).&amp;nbsp; This difference in deduction around the definition of "is defined" definitely deflated me.&lt;/P&gt;
&lt;P&gt;What does Intel Fortran think?&lt;/P&gt;
&lt;P&gt;If the answer is "just the specific subobjects", how does ifort manage "partial" updates (some subobjects only) to a coarray if it isn't using shared memory?&lt;/P&gt;
&lt;P&gt;(I'm wondering whether there's something I'm missing given the apparent careful use of the terms "variable", "coarray", "effective argument", etc in the relevant requirements on programs imposed by the standard in section 8.5.2 - bear in mind the above question is coming from someone who's been working with coarrays for about ten minutes so I might be missing really obvious things.)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;While I'm here, some [st]feature requests dressed up as[/st] questions...&lt;/P&gt;
&lt;P&gt;- Are you guys considering some sort of "single process/multiple threads" support for coarrays?&amp;nbsp; (That is - something like the way OpenMP is implemented).&amp;nbsp; Debugging a maze of twisty little images, all alike, strikes me as a bit of an adventure.&lt;/P&gt;
&lt;P&gt;- What's the rationale for not making "syntax only" support of coarrays the default?&amp;nbsp; (That is - by default the compiler accepts the square bracket syntax and just "hardwires" NUM_IMAGES and THIS_IMAGE or whatever to give one, use the /Qcoarray compiler option to tell the program to go forth and multiply.)&amp;nbsp; Error 8517 has now made my list of compiler messages that I'd like to take out the back one day for a "feedback session".&lt;/P&gt;</description>
      <pubDate>Mon, 05 Aug 2013 05:06:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Meaning-of-quot-variable-is-defined-quot-in-the-context-of/m-p/968490#M96402</guid>
      <dc:creator>IanH</dc:creator>
      <dc:date>2013-08-05T05:06:00Z</dc:date>
    </item>
    <item>
      <title>The thing on the left of the</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Meaning-of-quot-variable-is-defined-quot-in-the-context-of/m-p/968491#M96403</link>
      <description>&lt;P&gt;The thing on the left of the equals in an assignment statement is a &lt;EM&gt;variable&lt;/EM&gt; and a &lt;EM&gt;variable&lt;/EM&gt; can be a &lt;EM&gt;designator&lt;/EM&gt; and a &lt;EM&gt;designator&lt;/EM&gt; can be a &lt;EM&gt;substring&lt;/EM&gt; and a &lt;EM&gt;substring&lt;/EM&gt; is a &lt;EM&gt;parent-string&lt;/EM&gt; followed by a substring range thing and a &lt;EM&gt;parent-string&lt;/EM&gt; can be a &lt;EM&gt;coindexed-named-object&lt;/EM&gt;.&amp;nbsp; So that means the substring range thing follows the coindexing stuff... correct?&lt;/P&gt;
&lt;P&gt;[fortran]PROGRAM LearnMyLetters&lt;BR /&gt;&amp;nbsp; IMPLICIT NONE&lt;BR /&gt;&amp;nbsp; CHARACTER(26) :: abc&lt;LI&gt;&lt;BR /&gt;&amp;nbsp; INTEGER :: i&lt;BR /&gt;&amp;nbsp; !***&lt;BR /&gt;&amp;nbsp; i = THIS_IMAGE()&lt;BR /&gt;&amp;nbsp; DO WHILE (i &amp;lt;= LEN(abc))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; abc[1](i:i) = ACHAR(IACHAR('A') + i - 1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = i + NUM_IMAGES()&lt;BR /&gt;&amp;nbsp; END DO&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; SYNC ALL&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; IF (THIS_IMAGE() == 1) PRINT "(A)", abc&lt;BR /&gt;END PROGRAM LearnMyLetters&lt;BR /&gt;&lt;BR /&gt;[/fortran]&lt;/LI&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;[plain]H:\Projects\Coarrays\LearnMyLetters&amp;gt;ifort /check:all /warn:all /standard-semantics /Qcoarray LearnMyLetters.f90&lt;BR /&gt;Intel(R) Visual Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 13.1.3.198 Build 20130607&lt;BR /&gt;Copyright (C) 1985-2013 Intel Corporation.&amp;nbsp; All rights reserved.&lt;BR /&gt;&lt;BR /&gt;LearnMyLetters.f90(8): error #5082: Syntax error, found '(' when expecting one of: % . = =&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; abc[1](i:i) = ACHAR(IACHAR('A') + i - 1)&lt;BR /&gt;----------^&lt;BR /&gt;compilation aborted for LearnMyLetters.f90 (code 1)[/plain]&lt;/P&gt;
&lt;P&gt;but if we switch [1] and (i:i) it compiles.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;(If I use that switched order in a actual argument reference, the compiler complains (correctly, I think then).)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 05 Aug 2013 05:31:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Meaning-of-quot-variable-is-defined-quot-in-the-context-of/m-p/968491#M96403</guid>
      <dc:creator>IanH</dc:creator>
      <dc:date>2013-08-05T05:31:45Z</dc:date>
    </item>
    <item>
      <title>Ian,</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Meaning-of-quot-variable-is-defined-quot-in-the-context-of/m-p/968492#M96404</link>
      <description>&lt;P&gt;Ian,&lt;/P&gt;
&lt;P&gt;Lots of things here - let me address some of them - the syntax error I will get to a bit later.&lt;/P&gt;
&lt;P&gt;No disrespect intended for either Richard Maine or Mike Metcalf, but neither of those two are people I would consider experts on coarrays. Now if Bill Long from Cray had commented, that would be another thing entirely. I had thought there was some discussion of your question on the J3 mailing list, but I guess not. It may yet happen.&lt;/P&gt;
&lt;P&gt;My gut feel on this issue is that the whole coarray is meant when discussing "variable" - it is consistent with the way the language treats other variables (consider, for example, the rules on EQUIVALENCE.) The way we generally work it is that we don't look to see what other images have done until we reach a segment boundary (or something else is done that touches a coarray locally. Indeed, we've recently discovered that we're not quite doing this right, in that we allow the local "part" of the coarray, referenced without [], get out of synch with the same part referenced with [], so we have to fix that.&lt;/P&gt;
&lt;P&gt;We are not at present considering an alternative to MPI for our coarray implementation - we have enough other things to do to keep us busy!&lt;/P&gt;
&lt;P&gt;As for the "syntax only", that's not really what is needed. It would be an alternative library (or lots of special casing in the current one) that skipped the MPI calls. Again, a not-trivial effort for a special case. Maybe someday...&lt;/P&gt;</description>
      <pubDate>Mon, 05 Aug 2013 14:20:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Meaning-of-quot-variable-is-defined-quot-in-the-context-of/m-p/968492#M96404</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2013-08-05T14:20:48Z</dc:date>
    </item>
    <item>
      <title>It turns out the parsing</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Meaning-of-quot-variable-is-defined-quot-in-the-context-of/m-p/968493#M96405</link>
      <description>&lt;P&gt;It turns out the parsing issue had been previously reported to us a while ago, with an almost identical program. I wasn't able to get the compiler to give me an error with an actual argument - it allowed me to use both forms without error.&amp;nbsp; Our issue ID on this is DPD200179215 - I attached your test program to it and will let you know when we get it fixed.&lt;/P&gt;</description>
      <pubDate>Mon, 05 Aug 2013 14:49:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Meaning-of-quot-variable-is-defined-quot-in-the-context-of/m-p/968493#M96405</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2013-08-05T14:49:28Z</dc:date>
    </item>
    <item>
      <title>Thanks.  In usual style I now</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Meaning-of-quot-variable-is-defined-quot-in-the-context-of/m-p/968494#M96406</link>
      <description>&lt;P&gt;Thanks.&amp;nbsp; In usual style I now cannot work out what/how I saw the actual argument error, but whatever it was - it was what made me realize that the syntax I originally had for the left hand side substring was wrong but not being picked up by the compiler.&lt;/P&gt;
&lt;P&gt;If you are party to any further discussion about what "variable" means I'd appreciate any update.&amp;nbsp; I'm not even sure I can spell equivalence.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 05 Aug 2013 15:39:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Meaning-of-quot-variable-is-defined-quot-in-the-context-of/m-p/968494#M96406</guid>
      <dc:creator>IanH</dc:creator>
      <dc:date>2013-08-05T15:39:02Z</dc:date>
    </item>
    <item>
      <title>When you update to 14.0, you</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Meaning-of-quot-variable-is-defined-quot-in-the-context-of/m-p/968495#M96407</link>
      <description>&lt;P&gt;When you update to 14.0, you should be able to use the new keyword&amp;nbsp;&amp;nbsp;/Qcoarray:single to squelch your error 8517's.&amp;nbsp;&amp;nbsp; Leave off the "single" to get real coarray behavior.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --Lorri&lt;/P&gt;</description>
      <pubDate>Mon, 05 Aug 2013 19:34:40 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Meaning-of-quot-variable-is-defined-quot-in-the-context-of/m-p/968495#M96407</guid>
      <dc:creator>Lorri_M_Intel</dc:creator>
      <dc:date>2013-08-05T19:34:40Z</dc:date>
    </item>
  </channel>
</rss>

