xref: /petsc/src/vec/vec/tests/ex40.c (revision 1fb7b255396822dd64a4ea9c656967637c985cf5)
1 
2 static char help[] = "Tests taking part of existing array to create a new vector.\n\n";
3 
4 #include <petscvec.h>
5 
6 int main(int argc,char **argv)
7 {
8   PetscErrorCode ierr;
9   PetscMPIInt    size;
10   PetscInt       n = 10,i;
11   PetscScalar    array[10];
12   Vec            x;
13 
14   ierr = PetscInitialize(&argc,&argv,(char*)0,help);if (ierr) return ierr;
15   ierr = MPI_Comm_size(PETSC_COMM_WORLD,&size);CHKERRMPI(ierr);
16   if (size != 1) SETERRQ(PETSC_COMM_WORLD,PETSC_ERR_WRONG_MPI_SIZE,"This is a uniprocessor example only!");
17 
18   /* create vector */
19   for (i=0; i<n; i++) array[i] = i;
20   n = n-1;
21 
22   ierr = VecCreateSeqWithArray(PETSC_COMM_SELF,1,n,array+1,&x);CHKERRQ(ierr);
23   ierr = VecView(x,PETSC_VIEWER_STDOUT_SELF);CHKERRQ(ierr);
24   ierr = VecDestroy(&x);CHKERRQ(ierr);
25   ierr = PetscFinalize();
26   return ierr;
27 }
28 
29