(j3.2006) TYPE(*) and scalars

Bill Long longb
Thu Mar 22 11:20:25 EDT 2012

On 3/22/12 10:05 AM, Rasmussen, Craig E wrote:
> On Mar 21, 2012, at 5:21 PM, Bill Long wrote:
>> On 3/21/12 5:40 PM, Rasmussen, Craig E wrote:
>>> The problem is that the "well know name" is that it must be implementable in Fortran with a standard subroutine.  So generics don't really work unless MPI publishes both interfaces.  In your example, the published routine names would have to be both bar1 and bar2.
>> In a real implementation I would assume that foo would be spelled cbar.  (as in both being MPI_send, or some such.)  That's the actual name of the C function in the MPI library, which is the only actual routine.
>>> In case anyone really cares, this is because of the PMPI interfaces which allows tool writers to intercept the MPI calls.
>> The tools can't intercept the C functions by their actual names?   C programmers can't use the tools?  Timing the C function (where all the work happens) would seem like what you want.
> Yes, tools users can use the actual names.  But these names would have to be published in the standard.  This is ultimately the problem as no one wants to pollute the standard with lots of temporary names.

Guess I'm still missing something here.  If the MPI module has a generic 

interface MPI_send
   subroutine MPI_send_00 (buf, ...) bind(c,name="MPI_send")
     type(*) :: buf
    end subroutine MPI_send_00
    subroutine MPI_send_01 (buf, ...) bind(c, name="MPI_send")
      type(*),dimension(*) :: buf
     end subroutine MPI_send_01
end interface MPI_send


1) The user only sees and calls MPI_send(....)
2) The compiler generates calls to an external with the name MPI_send
3) The tools see only the name MPI_send

and no one needs to know the names of the specifies - they are basically 
arbitrary - and they do not need to be published in the MPI standard. 
The user and tools people would both see only one name: MPI_send.    I 
don't see how this could end up "polluting" the MPI standard.


> -craig
> _______________________________________________
> J3 mailing list
> J3 at j3-fortran.org
> http://j3-fortran.org/mailman/listinfo/j3

Bill Long                                           longb at cray.com
Fortran Technical Support    &                 voice: 651-605-9024
Bioinformatics Software Development            fax:   651-605-9142
Cray Inc./Cray Plaza, Suite 210/380 Jackson St./St. Paul, MN 55101

More information about the J3 mailing list