[MPI3 Fortran] MPI Fortran bindings

Aleksandar Donev donev1 at llnl.gov
Fri Jun 5 12:19:47 CDT 2009


On Friday 05 June 2009 05:13, Bill Long wrote:

> The options for <type> would be TYPE(*) or something like
> INTEGER combined with a directive to ignore the actual type.  
> <dimension> could be DIMENSION(*) combined with an ignore directive,
> or DIMENSION(..).  For the non-blocking equivalent:
Implementation dependent??? BLAH!

That makes the bindings useless. It is impossible to write portable 
code, yet alone figure out what it means semantically. E.g., 
DIMENSION(*) and DIMENSION(..) are fundamentally different, for 
example, in terms of copy in/out properties.

Also,

<any_type_and_shape>, intent(IN) :: BUF

makes this look like we are specifying an *intrinsic* subroutine (one 
that the compiler and language know about, rather than an interface to 
an external routine).

This is too much to ask of implementors (IMO), but even we go down that 
route we need to be a lot more specific (even our intrinsic functions 
are more specific than that), both in terms of what actual types are 
allowed and handled (can the actual be polymorphic, for example), and 
possibly the shape.

-- 
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://cims.nyu.edu/~donev/




More information about the mpiwg-fortran mailing list