Fix the issues with the MPI_Op and the Fortran90 types.
This commit was SVN r27707.
Этот коммит содержится в:
родитель
6046812952
Коммит
4a581d276d
@ -188,6 +188,8 @@ ompi_datatype_duplicate( const ompi_datatype_t* oldType, ompi_datatype_t** newTy
|
|||||||
opal_datatype_clone( &oldType->super, &new_ompi_datatype->super);
|
opal_datatype_clone( &oldType->super, &new_ompi_datatype->super);
|
||||||
/* Strip the predefined flag at the OMPI level. */
|
/* Strip the predefined flag at the OMPI level. */
|
||||||
new_ompi_datatype->super.flags &= ~OMPI_DATATYPE_FLAG_PREDEFINED;
|
new_ompi_datatype->super.flags &= ~OMPI_DATATYPE_FLAG_PREDEFINED;
|
||||||
|
/* By default maintain the relationships related to the old data (such as ops) */
|
||||||
|
new_ompi_datatype->id = oldType->id;
|
||||||
|
|
||||||
/* Set the keyhash to NULL -- copying attributes is *only* done at
|
/* Set the keyhash to NULL -- copying attributes is *only* done at
|
||||||
the top level (specifically, MPI_TYPE_DUP). */
|
the top level (specifically, MPI_TYPE_DUP). */
|
||||||
|
@ -97,7 +97,10 @@ int MPI_Type_create_f90_complex(int p, int r, MPI_Datatype *newtype)
|
|||||||
/* Make sure the user is not allowed to free this datatype as specified
|
/* Make sure the user is not allowed to free this datatype as specified
|
||||||
* in the MPI standard.
|
* in the MPI standard.
|
||||||
*/
|
*/
|
||||||
datatype->super.flags |= OPAL_DATATYPE_FLAG_PREDEFINED;
|
datatype->super.flags |= OMPI_DATATYPE_FLAG_PREDEFINED;
|
||||||
|
/* Mark the datatype as a special F90 convenience type */
|
||||||
|
snprintf(datatype->name, MPI_MAX_OBJECT_NAME, "COMBINER %s",
|
||||||
|
(*newtype)->name);
|
||||||
|
|
||||||
a_i[0] = &r;
|
a_i[0] = &r;
|
||||||
a_i[1] = &p;
|
a_i[1] = &p;
|
||||||
|
@ -97,7 +97,10 @@ int MPI_Type_create_f90_integer(int r, MPI_Datatype *newtype)
|
|||||||
/* Make sure the user is not allowed to free this datatype as specified
|
/* Make sure the user is not allowed to free this datatype as specified
|
||||||
* in the MPI standard.
|
* in the MPI standard.
|
||||||
*/
|
*/
|
||||||
datatype->super.flags |= OPAL_DATATYPE_FLAG_PREDEFINED;
|
datatype->super.flags |= OMPI_DATATYPE_FLAG_PREDEFINED;
|
||||||
|
/* Mark the datatype as a special F90 convenience type */
|
||||||
|
snprintf(datatype->name, MPI_MAX_OBJECT_NAME, "COMBINER %s",
|
||||||
|
(*newtype)->name);
|
||||||
|
|
||||||
a_i[0] = &r;
|
a_i[0] = &r;
|
||||||
ompi_datatype_set_args( datatype, 1, a_i, 0, NULL, 0, NULL, MPI_COMBINER_F90_INTEGER );
|
ompi_datatype_set_args( datatype, 1, a_i, 0, NULL, 0, NULL, MPI_COMBINER_F90_INTEGER );
|
||||||
|
@ -98,7 +98,10 @@ int MPI_Type_create_f90_real(int p, int r, MPI_Datatype *newtype)
|
|||||||
/* Make sure the user is not allowed to free this datatype as specified
|
/* Make sure the user is not allowed to free this datatype as specified
|
||||||
* in the MPI standard.
|
* in the MPI standard.
|
||||||
*/
|
*/
|
||||||
datatype->super.flags |= OPAL_DATATYPE_FLAG_PREDEFINED;
|
datatype->super.flags |= OMPI_DATATYPE_FLAG_PREDEFINED;
|
||||||
|
/* Mark the datatype as a special F90 convenience type */
|
||||||
|
snprintf(datatype->name, MPI_MAX_OBJECT_NAME, "COMBINER %s",
|
||||||
|
(*newtype)->name);
|
||||||
|
|
||||||
a_i[0] = &r;
|
a_i[0] = &r;
|
||||||
a_i[1] = &p;
|
a_i[1] = &p;
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user