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++)
24 MPI_Type_hvector(i, 1, stride, MPI_INT, &vecs[i]);
25 MPI_Type_commit(&vecs[i]);
28 displs[0]=0; displs[1]=-100; displs[2]=-200; /* irrelevant */
30 MPI_Type_struct(3, blockcount, displs, vecs, &mystruct);
31 MPI_Type_commit(&mystruct);
33 MPI_Type_free(&mystruct);
34 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++)
42 MPI_Type_hvector(0, 1, stride, MPI_INT, &vecs[i]);
43 MPI_Type_commit(&vecs[i]);
46 displs[0]=0; displs[1]=-100; displs[2]=-200; /* irrelevant */
48 MPI_Type_struct(3, blockcount, displs, vecs, &mystruct);
49 MPI_Type_commit(&mystruct);
51 MPI_Type_free(&mystruct);
52 for(i = 0; i < 3; i++)
54 MPI_Type_free(&vecs[i]);
57 MTest_Finalize( errs );