--- A/src/H5Smpio.c	2018-09-04 04:54:44.000000000 +0200

+++ B/src/H5Smpio.c	2018-11-22 16:58:44.365923064 +0100

@@ -859,7 +859,7 @@

           *   (2GB-1)number_of_blocks * the_datatype_extent.

           */

 

-            MPI_Aint stride_in_bytes, inner_extent;

+            MPI_Aint stride_in_bytes, inner_extent, lower_bound;

             MPI_Datatype block_type;

 

             /* create a contiguous datatype inner_type x number of BLOCKS.

@@ -879,7 +879,7 @@

                     HMPI_GOTO_ERROR(FAIL, "MPI_Type_contiguous failed", mpi_code)

             }

 

-            MPI_Type_extent (inner_type, &inner_extent);

+            MPI_Type_get_extent (inner_type, &lower_bound, &inner_extent);

             stride_in_bytes = inner_extent * (MPI_Aint)d[i].strid;

 

             /* If the element count is larger than what a 32 bit integer can hold,

@@ -1424,7 +1424,7 @@

     int           block_len[2];

     int           mpi_code;               /* MPI return code */

     MPI_Datatype  inner_type, outer_type, leftover_type, type[2];

-    MPI_Aint      disp[2], old_extent;

+    MPI_Aint      disp[2], old_extent, lower_bound;

     herr_t        ret_value = SUCCEED;    /* Return value */

 

     FUNC_ENTER_NOAPI_NOINIT

@@ -1500,9 +1500,9 @@

             }

         }

 

-        MPI_Type_extent (old_type, &old_extent);

+        MPI_Type_get_extent (old_type, &lower_bound, &old_extent);

 

-        /* Set up the arguments for MPI_Type_struct constructor */

+        /* Set up the arguments for MPI_Type_create_struct constructor */

         type[0] = outer_type;

         type[1] = leftover_type;

         block_len[0] = 1;

--- A/src/H5.c	2018-10-05 07:21:51.000000000 +0200

+++ B/src/H5.c	2018-11-22 16:52:52.353016751 +0100

@@ -138,7 +138,7 @@

         if (mpi_initialized && !mpi_finalized) {

             int key_val;

 

-            if(MPI_SUCCESS != (mpi_code = MPI_Comm_create_keyval(MPI_NULL_COPY_FN, 

+            if(MPI_SUCCESS != (mpi_code = MPI_Comm_create_keyval(MPI_COMM_NULL_COPY_FN, 

                                                                  (MPI_Comm_delete_attr_function *)H5_mpi_delete_cb, 

                                                                  &key_val, NULL)))

                 HMPI_GOTO_ERROR(FAIL, "MPI_Comm_create_keyval failed", mpi_code)

--- A/testpar/t_cache.c	2018-09-10 16:43:41.000000000 +0200

+++ B/testpar/t_cache.c	2018-11-22 16:58:45.405881436 +0100

@@ -1217,20 +1217,20 @@

     struct mssg_t sample; /* used to compute displacements */

 

     /* setup the displacements array */

-    if ( ( MPI_SUCCESS != MPI_Address(&sample.req, &displs[0]) ) ||

-         ( MPI_SUCCESS != MPI_Address(&sample.src, &displs[1]) ) ||

-         ( MPI_SUCCESS != MPI_Address(&sample.dest, &displs[2]) ) ||

-         ( MPI_SUCCESS != MPI_Address(&sample.mssg_num, &displs[3]) ) ||

-         ( MPI_SUCCESS != MPI_Address(&sample.base_addr, &displs[4]) ) ||

-         ( MPI_SUCCESS != MPI_Address(&sample.len, &displs[5]) ) ||

-         ( MPI_SUCCESS != MPI_Address(&sample.ver, &displs[6]) ) ||

-         ( MPI_SUCCESS != MPI_Address(&sample.count, &displs[7]) ) ||

-         ( MPI_SUCCESS != MPI_Address(&sample.magic, &displs[8]) ) ) {

+    if ( ( MPI_SUCCESS != MPI_Get_address(&sample.req, &displs[0]) ) ||

+         ( MPI_SUCCESS != MPI_Get_address(&sample.src, &displs[1]) ) ||

+         ( MPI_SUCCESS != MPI_Get_address(&sample.dest, &displs[2]) ) ||

+         ( MPI_SUCCESS != MPI_Get_address(&sample.mssg_num, &displs[3]) ) ||

+         ( MPI_SUCCESS != MPI_Get_address(&sample.base_addr, &displs[4]) ) ||

+         ( MPI_SUCCESS != MPI_Get_address(&sample.len, &displs[5]) ) ||

+         ( MPI_SUCCESS != MPI_Get_address(&sample.ver, &displs[6]) ) ||

+         ( MPI_SUCCESS != MPI_Get_address(&sample.count, &displs[7]) ) ||

+         ( MPI_SUCCESS != MPI_Get_address(&sample.magic, &displs[8]) ) ) {

 

         nerrors++;

         success = FALSE;

         if ( verbose ) {

-            HDfprintf(stdout, "%d:%s: MPI_Address() call failed.\n",

+            HDfprintf(stdout, "%d:%s: MPI_Get_address() call failed.\n",

                       world_mpi_rank, FUNC);

         }

 

@@ -1245,14 +1245,14 @@

 

     if ( success ) {

 

-        result = MPI_Type_struct(9, block_len, displs, mpi_types, &mpi_mssg_t);

+        result = MPI_Type_create_struct(9, block_len, displs, mpi_types, &mpi_mssg_t);

 

         if ( result != MPI_SUCCESS ) {

 

             nerrors++;

             success = FALSE;

             if ( verbose ) {

-                HDfprintf(stdout, "%d:%s: MPI_Type_struct() call failed.\n",

+                HDfprintf(stdout, "%d:%s: MPI_Type_create_struct() call failed.\n",

                           world_mpi_rank, FUNC);

             }

         }

