Description: Mpi
--- a/tml/type/gettype.hpp
+++ b/tml/type/gettype.hpp
@@ -20,13 +20,13 @@
     MPI_Datatype type[2];
     int blocklen[2]={1,1};
 
-    MPI_Address((void*)&P.first,&addr_first);
-    MPI_Address((void*)&P.second,&addr_second);
+    MPI_Get_address((void*)&P.first,&addr_first);
+    MPI_Get_address((void*)&P.second,&addr_second);
     disp[0]=MPI_Aint(0);
     disp[1]=addr_second-addr_first;
     type[0]=GetType(P.first);
     type[1]=GetType(P.second);
-    MPI_Type_struct(2,blocklen,disp,type,&tml_pair<T1,T2>::type);
+    MPI_Type_create_struct(2,blocklen,disp,type,&tml_pair<T1,T2>::type);
     MPI_Type_commit(&tml_pair<T1,T2>::type);
     tml_pair<T1,T2>::initialized=true;
   }
@@ -44,16 +44,16 @@
     MPI_Datatype type[3];
     int blocklen[3]={1,1,1};
 
-    MPI_Address(static_cast<void *>(&(P.template get<0>())), &(addr[0]));
-    MPI_Address(static_cast<void *>(&(P.template get<1>())), &(addr[1]));
-    MPI_Address(static_cast<void *>(&(P.template get<2>())), &(addr[2]));
+    MPI_Get_address(static_cast<void *>(&(P.template get<0>())), &(addr[0]));
+    MPI_Get_address(static_cast<void *>(&(P.template get<1>())), &(addr[1]));
+    MPI_Get_address(static_cast<void *>(&(P.template get<2>())), &(addr[2]));
     disp[0]=MPI_Aint(0);
     disp[1]=addr[1]-addr[0];
     disp[2]=addr[2]-addr[0];
     type[0]=GetType(P.template get<0>());
     type[1]=GetType(P.template get<1>());
     type[2]=GetType(P.template get<2>());
-    MPI_Type_struct(3,blocklen,disp,type,&tml_trip<T1,T2,T3>::type);
+    MPI_Type_create_struct(3,blocklen,disp,type,&tml_trip<T1,T2,T3>::type);
     MPI_Type_commit(&tml_trip<T1,T2,T3>::type);
     tml_trip<T1,T2,T3>::initialized = true;
   }
@@ -71,10 +71,10 @@
     MPI_Datatype type[4];
     int blocklen[4]={1,1,1,1};
 
-    MPI_Address(static_cast<void *>(&(P.template get<0>())), &(addr[0]));
-    MPI_Address(static_cast<void *>(&(P.template get<1>())), &(addr[1]));
-    MPI_Address(static_cast<void *>(&(P.template get<2>())), &(addr[2]));
-    MPI_Address(static_cast<void *>(&(P.template get<3>())), &(addr[3]));
+    MPI_Get_address(static_cast<void *>(&(P.template get<0>())), &(addr[0]));
+    MPI_Get_address(static_cast<void *>(&(P.template get<1>())), &(addr[1]));
+    MPI_Get_address(static_cast<void *>(&(P.template get<2>())), &(addr[2]));
+    MPI_Get_address(static_cast<void *>(&(P.template get<3>())), &(addr[3]));
     disp[0]=MPI_Aint(0);
     disp[1]=addr[1]-addr[0];
     disp[2]=addr[2]-addr[0];
@@ -83,7 +83,7 @@
     type[1]=GetType(P.template get<1>());
     type[2]=GetType(P.template get<2>());
     type[3]=GetType(P.template get<3>());
-    MPI_Type_struct(4,blocklen,disp,type,&tml_quad<T1,T2,T3,T4>::type);
+    MPI_Type_create_struct(4,blocklen,disp,type,&tml_quad<T1,T2,T3,T4>::type);
     MPI_Type_commit(&tml_quad<T1,T2,T3,T4>::type);
     tml_quad<T1,T2,T3,T4>::initialized = true;
   }
@@ -101,11 +101,11 @@
     MPI_Datatype type[5];
     int blocklen[5]={1,1,1,1,1};
 
-    MPI_Address(static_cast<void *>(&(P.template get<0>())), &(addr[0]));
-    MPI_Address(static_cast<void *>(&(P.template get<1>())), &(addr[1]));
-    MPI_Address(static_cast<void *>(&(P.template get<2>())), &(addr[2]));
-    MPI_Address(static_cast<void *>(&(P.template get<3>())), &(addr[3]));
-    MPI_Address(static_cast<void *>(&(P.template get<4>())), &(addr[4]));
+    MPI_Get_address(static_cast<void *>(&(P.template get<0>())), &(addr[0]));
+    MPI_Get_address(static_cast<void *>(&(P.template get<1>())), &(addr[1]));
+    MPI_Get_address(static_cast<void *>(&(P.template get<2>())), &(addr[2]));
+    MPI_Get_address(static_cast<void *>(&(P.template get<3>())), &(addr[3]));
+    MPI_Get_address(static_cast<void *>(&(P.template get<4>())), &(addr[4]));
     disp[0]=MPI_Aint(0);
     disp[1]=addr[1]-addr[0];
     disp[2]=addr[2]-addr[0];
@@ -116,7 +116,7 @@
     type[2]=GetType(P.template get<2>());
     type[3]=GetType(P.template get<3>());
     type[4]=GetType(P.template get<4>());
-    MPI_Type_struct(5,blocklen,disp,type,&tml_quin<T1,T2,T3,T4,T5>::type);
+    MPI_Type_create_struct(5,blocklen,disp,type,&tml_quin<T1,T2,T3,T4,T5>::type);
     MPI_Type_commit(&tml_quin<T1,T2,T3,T4,T5>::type);
     tml_quin<T1,T2,T3,T4,T5>::initialized = true;
   }
