Fixes #3436: Move MPI_Type_create_f90_real fix to v1.7 v1.7
authorrhc
Thu Dec 20 21:19:02 2012 +0000 (6 months ago)
branchv1.7
changeset 210978c70f25a9f1c
parent 21096 ee1a9c72d205
child 21135 550246800168
Fixes #3436: Move MPI_Type_create_f90_real fix to v1.7

---svn-pre-commit-ignore-below---

r27707 [[BR]]
Fix the issues with the MPI_Op and the Fortran90 types.
ompi/datatype/ompi_datatype.h
ompi/mpi/c/type_create_f90_complex.c
ompi/mpi/c/type_create_f90_integer.c
ompi/mpi/c/type_create_f90_real.c
     1.1 --- a/ompi/datatype/ompi_datatype.h	Thu Dec 20 21:17:26 2012 +0000
     1.2 +++ b/ompi/datatype/ompi_datatype.h	Thu Dec 20 21:19:02 2012 +0000
     1.3 @@ -188,6 +188,8 @@
     1.4      opal_datatype_clone( &oldType->super, &new_ompi_datatype->super);
     1.5      /* Strip the predefined flag at the OMPI level. */
     1.6      new_ompi_datatype->super.flags &= ~OMPI_DATATYPE_FLAG_PREDEFINED;
     1.7 +    /* By default maintain the relationships related to the old data (such as ops) */
     1.8 +    new_ompi_datatype->id = oldType->id;
     1.9  
    1.10      /* Set the keyhash to NULL -- copying attributes is *only* done at
    1.11         the top level (specifically, MPI_TYPE_DUP). */
     2.1 --- a/ompi/mpi/c/type_create_f90_complex.c	Thu Dec 20 21:17:26 2012 +0000
     2.2 +++ b/ompi/mpi/c/type_create_f90_complex.c	Thu Dec 20 21:19:02 2012 +0000
     2.3 @@ -97,7 +97,10 @@
     2.4          /* Make sure the user is not allowed to free this datatype as specified
     2.5           * in the MPI standard.
     2.6           */
     2.7 -        datatype->super.flags |= OPAL_DATATYPE_FLAG_PREDEFINED;
     2.8 +        datatype->super.flags |= OMPI_DATATYPE_FLAG_PREDEFINED;
     2.9 +        /* Mark the datatype as a special F90 convenience type */
    2.10 +        snprintf(datatype->name, MPI_MAX_OBJECT_NAME, "COMBINER %s",
    2.11 +                 (*newtype)->name);
    2.12  
    2.13          a_i[0] = &r;
    2.14          a_i[1] = &p;
     3.1 --- a/ompi/mpi/c/type_create_f90_integer.c	Thu Dec 20 21:17:26 2012 +0000
     3.2 +++ b/ompi/mpi/c/type_create_f90_integer.c	Thu Dec 20 21:19:02 2012 +0000
     3.3 @@ -97,7 +97,10 @@
     3.4          /* Make sure the user is not allowed to free this datatype as specified
     3.5           * in the MPI standard.
     3.6           */
     3.7 -        datatype->super.flags |= OPAL_DATATYPE_FLAG_PREDEFINED;
     3.8 +        datatype->super.flags |= OMPI_DATATYPE_FLAG_PREDEFINED;
     3.9 +        /* Mark the datatype as a special F90 convenience type */
    3.10 +        snprintf(datatype->name, MPI_MAX_OBJECT_NAME, "COMBINER %s",
    3.11 +                 (*newtype)->name);
    3.12  
    3.13          a_i[0] = &r;
    3.14          ompi_datatype_set_args( datatype, 1, a_i, 0, NULL, 0, NULL, MPI_COMBINER_F90_INTEGER );
     4.1 --- a/ompi/mpi/c/type_create_f90_real.c	Thu Dec 20 21:17:26 2012 +0000
     4.2 +++ b/ompi/mpi/c/type_create_f90_real.c	Thu Dec 20 21:19:02 2012 +0000
     4.3 @@ -98,7 +98,10 @@
     4.4          /* Make sure the user is not allowed to free this datatype as specified
     4.5           * in the MPI standard.
     4.6           */
     4.7 -        datatype->super.flags |= OPAL_DATATYPE_FLAG_PREDEFINED;
     4.8 +        datatype->super.flags |= OMPI_DATATYPE_FLAG_PREDEFINED;
     4.9 +        /* Mark the datatype as a special F90 convenience type */
    4.10 +        snprintf(datatype->name, MPI_MAX_OBJECT_NAME, "COMBINER %s",
    4.11 +                 (*newtype)->name);
    4.12  
    4.13          a_i[0] = &r;
    4.14          a_i[1] = &p;