Those who follow c.l.f will have seen this question from me a few weeks back (this might link to it).
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."
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. On c.l.f. I got an answer from someone who definitely knows their stuff that it was definitely the whole thing. 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). This difference in deduction around the definition of "is defined" definitely deflated me.
What does Intel Fortran think?
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?
(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.)
While I'm here, some [st]feature requests dressed up as[/st] questions...
- Are you guys considering some sort of "single process/multiple threads" support for coarrays? (That is - something like the way OpenMP is implemented). Debugging a maze of twisty little images, all alike, strikes me as a bit of an adventure.
- What's the rationale for not making "syntax only" support of coarrays the default? (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.) 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".