1
1

Fix the issues with the MPI_Op and the Fortran90 types.

This commit was SVN r27707.
Этот коммит содержится в:
George Bosilca 2012-12-19 11:08:18 +00:00
родитель 6046812952
Коммит 4a581d276d
4 изменённых файлов: 14 добавлений и 3 удалений

Просмотреть файл

@ -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;