<br><tt><font size=2>j3-bounces@j3-fortran.org wrote on 07/28/2009 08:34:50
AM:<br>
> > <br>
> > Same shock today here finding this out. Although it's not
much of an <br>
> > implementation issue, the simple fact that a piece of static
memory can <br>
> > be declared differently from one run to another, from one image
to <br>
> > another, is quite appalling. <br>
> <br>
> Do you also find it appalling that a user can specify bounds for a
<br>
> noncoarray explicit-shape dummy argument that are different from the
<br>
> bounds of the corresponding actual argument? </font></tt>
<br>
<br>
<br><tt><font size=2>No, because a dummy arguments meant to be flexible.
I'll find it appalling if a dummy is allowed to have a SAVE attribute.</font></tt>
<br>
<br>
<br>
<br><tt><font size=2>
This does not seem like a <br>
> new concept in Fortran.<br>
</font></tt>
<br>
<br>
<br><tt><font size=2>An adjustable variable with SAVE attribute is new
in Fortran.</font></tt>
<br>
<br>
<br>
<br><tt><font size=2>> > This blows away the symmetrical attribute
(or simplicity) I've always <br>
> > associated with coarrays. <br>
> <br>
> But the memory image IS symmetric. This is the key.<br>
</font></tt>
<br>
<br><tt><font size=2>The coshape part is NOT symmetric, that is also a
key.</font></tt>
<br>
<br>
<br><tt><font size=2>> All in a sudden UPC seems not a bad language<br>
> > at all since the asymmetrical nature of a shared array can be
better <br>
> > regulated than this. If cobounds provide nothing more than
a shrewd way <br>
> > to compute image index, then what is the point to have cobounds
and <br>
> > corank? It may make things much easier if corank has to
be 1 and <br>
> > colbound must be 1. Maybe we should stay with MPI after
all.<br>
> <br>
> The basic concept of coarrays is the extension of Fortran's array
<br>
> concepts to the image space. Restricting the corank to 1 is incompatible
<br>
> with this foundational characteristic.<br>
</font></tt>
<br>
<br>
<br><tt><font size=2>There are almost no longer any analogies can be drawn
between arrays and coarrays, not much beyond syntax. Can you allow
an adjustable array to have SAVE attribute like the following?</font></tt>
<br><tt><font size=2>subroutine foo (n)</font></tt>
<br><tt><font size=2> INTEGER, SAVE :: X(N)</font></tt>
<br>
<br>
<br>
<br><tt><font size=2>> I'm guessing you have not written code that uses
coarrays to represent a <br>
> distributed array across a 2- or 3-dimensional grid. Coarrays with
<br>
> corank > 1 are enormously useful for program clarity and maintainability
<br>
> in cases like this, and this is a pretty common case. This
is a big <br>
> advantage we have over UPC and MPI. There are others as well,
of course.<br>
</font></tt>
<br>
<br><tt><font size=2>No, I haven't written any real coarray programs --
where do I obtain a compiler for it? I bought the original argument
for supporting higher corank just for these reasons. Now the fact
that you can have adjustable cobounds starts to reverse my view on this
support. I cannot enthusiastically tell anyone that coarrays are
a good thing to use, at least not this part of the feature.</font></tt>
<br>
<br>
<br><tt><font size=2>Cheers,</font></tt>
<br>
<br>
<br><font size=2 face="sans-serif">Jim Xia<br>
<br>
XL Fortran Compiler Test<br>
IBM Toronto Lab at 8200 Warden Ave, Markham, On, L6G 1C7<br>
Phone (905) 413-3444 Tie-line 313-3444<br>
email: jimxia@ca.ibm.com<br>
D2/YF7/8200 /MKM<br>
<br>
</font><a href=http://www.ibm.com/software/awdtools/fortran/xlfortran><font size=2 face="sans-serif">http://www.ibm.com/software/awdtools/fortran/xlfortran</font></a>
<br>