1 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
3 * (C) 2001 by Argonne National Laboratory.
4 * See COPYRIGHT in top-level directory.
6 /* Based on code from Jeff Parker at IBM. */
13 int main(int argc, char *argv[])
15 MPI_Datatype mystruct, vecs[3];
16 MPI_Aint stride = 5, displs[3];
17 int i = 0, blockcount[3];
20 MTest_Init(&argc, &argv);
22 for (i = 0; i < 3; i++) {
23 MPI_Type_hvector(i, 1, stride, MPI_INT, &vecs[i]);
24 MPI_Type_commit(&vecs[i]);
29 displs[2] = -200; /* irrelevant */
31 MPI_Type_struct(3, blockcount, displs, vecs, &mystruct);
32 MPI_Type_commit(&mystruct);
34 MPI_Type_free(&mystruct);
35 for (i = 0; i < 3; i++) {
36 MPI_Type_free(&vecs[i]);
39 /* this time with the first argument always 0 */
40 for (i = 0; i < 3; i++) {
41 MPI_Type_hvector(0, 1, stride, MPI_INT, &vecs[i]);
42 MPI_Type_commit(&vecs[i]);
47 displs[2] = -200; /* irrelevant */
49 MPI_Type_struct(3, blockcount, displs, vecs, &mystruct);
50 MPI_Type_commit(&mystruct);
52 MPI_Type_free(&mystruct);
53 for (i = 0; i < 3; i++) {
54 MPI_Type_free(&vecs[i]);