[MPI3 Fortran] MPI Fortran bindings

Bill Long 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...
> Best,
> Aleks

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 mailing list