+void mpi_type_commit_(int* datatype, int* ierr){
+ MPI_Datatype tmp= get_datatype(*datatype);
+ *ierr= MPI_Type_commit(&tmp);
+}
+
+void mpi_type_vector_(int* count, int* blocklen, int* stride, int* old_type, int* newtype, int* ierr){
+ MPI_Datatype tmp;
+ *ierr= MPI_Type_vector(*count, *blocklen, *stride, get_datatype(*old_type), &tmp);
+ if(*ierr == MPI_SUCCESS) {
+ *newtype = new_datatype(tmp);
+ }
+}
+
+void mpi_type_create_vector_(int* count, int* blocklen, int* stride, int* old_type, int* newtype, int* ierr){
+ MPI_Datatype tmp;
+ *ierr= MPI_Type_vector(*count, *blocklen, *stride, get_datatype(*old_type), &tmp);
+ if(*ierr == MPI_SUCCESS) {
+ *newtype = new_datatype(tmp);
+ }
+}
+
+void mpi_type_hvector_(int* count, int* blocklen, MPI_Aint* stride, int* old_type, int* newtype, int* ierr){
+ MPI_Datatype tmp;
+ *ierr= MPI_Type_hvector (*count, *blocklen, *stride, get_datatype(*old_type), &tmp);
+ if(*ierr == MPI_SUCCESS) {
+ *newtype = new_datatype(tmp);
+ }
+}
+
+void mpi_type_create_hvector_(int* count, int* blocklen, MPI_Aint* stride, int* old_type, int* newtype, int* ierr){
+ MPI_Datatype tmp;
+ *ierr= MPI_Type_hvector(*count, *blocklen, *stride, get_datatype(*old_type), &tmp);
+ if(*ierr == MPI_SUCCESS) {
+ *newtype = new_datatype(tmp);
+ }
+}
+
+void mpi_type_free_(int* datatype, int* ierr){
+ MPI_Datatype tmp= get_datatype(*datatype);
+ *ierr= MPI_Type_free (&tmp);
+ if(*ierr == MPI_SUCCESS) {
+ free_datatype(*datatype);
+ }
+}
+
+void mpi_type_ub_(int* datatype, MPI_Aint * disp, int* ierr){