8 #error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
11 #include "../petscincludes.h"
12 #include "../../../shared/shared.h"
22 PetscInt lower_row,upper_row;
28 double* local_vector=NULL;
34 double* gathered_vector=NULL;
40 VecGetSize(vector,&vector_size);
42 *pgathered_vector=NULL;
47 if(broadcast || my_rank==0){
48 gathered_vector=xNew<double>(vector_size);
52 VecGetOwnershipRange(vector,&lower_row,&upper_row);
54 range=upper_row-lower_row+1;
57 idxn=xNew<int>(range);
58 for (i=0;i<range;i++){
59 *(idxn+i)=lower_row+i;
61 local_vector=xNew<double>(range);
63 VecGetValues(vector,range,idxn,local_vector);
68 for (i=1;i<num_procs;i++){
84 if (range)memcpy(gathered_vector+lower_row,local_vector,range*
sizeof(
double));
93 *pgathered_vector=gathered_vector;
97 xDelete<double>(local_vector);