I think it would be useful (and at the same time not hard for the
implementation) to require that the handle returned for a
basic datatype be the same as the predefined one. That is, the user
should be able to do
if (datatype == MPI_INT)
> Second, what are the array_types returned? Is it
> just a pointer to the handle or a new handle? That is, does the user
> have to free it?
A pointer to the handle is fine. Since the oldtype still exists (has
not been freed), is there a need for a new handle?
If a new handle is really needed, the user could explicitly do an
MPI_Type_contiguous with a count=1 on the returned handle, or
more elegantly, an MPI_Type_dup if it exists :-)