(j3.2006) (SC22WG5.3813) [ukfortran] Ballot on the technical content of the TR
Aleksandar Donev
donev1 at llnl.gov
Wed Dec 10 14:08:30 EST 2008
Hi Jim,
> Last thing I'd like to mention is in N1761 assumed-rank arrays are
> always passed using a Fortran descriptor. This was a big change from
> the original response to MPI forum that Fortran standardize
> IGNORE_TKR.
The thinking (at least mine) was that "TYPE(*), DIMENSION(*)" already
provides a kind of IGNORE_TKR since the actual can be of any type and
even rank, by virtue of the long-existing practice of sequence
association. However, Reinhold has pointed out recently that sequence
association does not work with generic resolution, nor does it work
with a scalar actual that is not an array element. He has
proposed "DIMENSION(**)" to specify a dummy that is passed by address
and can be matched by an actual of any rank (including scalar), even in
generic resolution. Would that help?
DIMENSION(..) was meant to be used in new, "modern" interfaces, where
descriptors are passed. They add a lot of power to the descriptor TR,
coming from a user perspective. They won't help the old "F77" folks,
but, I can assure you, there are scientific programmers that know F90
and onward and can and will use them.
> I believe this was caused by tangling the MPI
> request with TR 29113.
As I explained above there was no "tangling". These are separate pieces
of an effort to "improve interoperability with C" for types of dummy
arguments that do not exist in both languages, so one language needs to
do something new (C has to construct descriptors, and Fortran needs to
learn how "void*" works).
> To me we shouldn't do that and we'd better
> leave them separate, i.e. response to MPI folks with something else,
> and remove the assumed-type and assumed-rank features from TR 29113.
I am very opposed to further delays by a needless wasted effort to go
backwards. Let's make something work and publish the damn TR. We could
even make it a two-part document, so that vendors can only implement
one and say so. The first part would be the "void*" part (allowing type
and some kind of rank mismatch between actual and dummy), and the
second the descriptor part.
Best,
Aleks
--
Aleksandar Donev, Ph.D.
Lawrence Postdoctoral Fellow @ Lawrence Livermore National Laboratory
High Performance Computational Materials Science and Chemistry
E-mail: donev1 at llnl.gov
Phone: (925) 424-6816 Fax: (925) 423-0785
Address: P.O.Box 808, L-367, Livermore, CA 94551-9900
Web: http://cherrypit.princeton.edu/donev
More information about the J3
mailing list