[MPI3 Fortran] MPI Fortran bindings
longb at cray.com
Fri Jun 5 14:42:52 CDT 2009
Recall that J3 was asked by Craig (representing the MPI group) to add
type(*) just for this reason. That is what should be specified. If a
particular implementation cannot support this in an explicit interface,
then it is no worse than the current <type>. I would argue that type(*)
is more intuitive to a Fortran programmer than <type>. Eventually,
their compiler will "grow into" accepting it. Given that many compiler
vendors already support some form of directive for "ignore the type in
interface argument checks", I don't think that type(*) will be that hard
for vendors to implement.
Aleksandar Donev wrote:
> On Friday 05 June 2009 12:16, Lionel, Steve wrote:
>> Not much of anything, really, if we choose not to go the C_PTR route.
> This is a deep and fundamental change to the old interface.
> TYPE(C_PTR), VALUE :: address_of_buffer
> is fundamentally different from
> TYPE(type_of_buffer), DIMENSION(*), INTENT(IN) :: buffer
> I hate C_PTR, personally...
>> Just the interface alone, with the placeholder, doesn't say much. I
>> suppose words would have to be added saying that the argument must
>> have a defined type.
> Unless such words are added, your:
>> The way it
>> would be declared in the actual interface block would not allow a
>> CLASS(*) actual except within a SELECT TYPE block.
> would in my interpretation become a non conforming implementation. "Any
> type" really means "any type", unless you say something more. Otherwise
> you are back to the horrors of MPI-1's Fortran interface...
Bill Long longb at cray.com
Fortran Technical Support & voice: 651-605-9024
Bioinformatics Software Development fax: 651-605-9142
Cray Inc., 1340 Mendota Heights Rd., Mendota Heights, MN, 55120
More information about the mpiwg-fortran