static char help[]= "Test vecscatter of different block sizes across processes\n\n"; #include int main(int argc,char **argv) { PetscErrorCode ierr; PetscInt i,bs,n,low,high; PetscMPIInt nproc,rank; Vec x,y,z; IS ix,iy; VecScatter vscat; const PetscScalar *yv; ierr = PetscInitialize(&argc,&argv,(char*)0,help);if (ierr) return ierr; CHKERRMPI(MPI_Comm_size(PETSC_COMM_WORLD,&nproc)); CHKERRMPI(MPI_Comm_rank(PETSC_COMM_WORLD,&rank)); PetscCheckFalse(nproc != 2,PETSC_COMM_WORLD,PETSC_ERR_WRONG_MPI_SIZE,"This test can only run on two MPI ranks"); /* Create an MPI vector x of size 12 on two processes, and set x = {0, 1, 2, .., 11} */ CHKERRQ(VecCreateMPI(PETSC_COMM_WORLD,6,PETSC_DECIDE,&x)); CHKERRQ(VecGetOwnershipRange(x,&low,&high)); for (i=low; i