struct Pstruct {double x[3]; double v[3]; int k;}
particle[100];
MPI_Datatype Stype[3], Dtype3, Ptype;
int Sblock[3] = {1, 1, 1};
int Sindex[3];
MPI_Aint sized3;
ierr = MPI_Type_contiguous (3, MPI_DOUBLE, &Dtype3);
ierr = MPI_Type_extent (Dtype3, &sized3);
Sindex[0] = 0;
Sindex[1] = sized3;
Sindex[2] = sized3*2;
Stype[0] = Dtype3;
Stype[1] = Dtype3;
Stype[2] = MPI_INT;
ierr = MPI_Type_struct (3, Sblock, Sindex,
Stype, &Ptype);