8 #error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
11 #include "../petscincludes.h"
12 #include "../../../shared/shared.h"
21 PetscInt lower_row,upper_row;
27 double* local_matrix=NULL;
35 double* outmatrix=NULL;
38 MatGetSize(matrix,&M,&N);
41 MatGetOwnershipRange(matrix,&lower_row,&upper_row);
43 range=upper_row-lower_row+1;
46 if (my_rank==0)outmatrix=xNew<double>(M*N);
49 local_matrix=xNew<double>(N*range);
50 idxm=xNew<int>(range);
56 for (i=0;i<range;i++){
57 *(idxm+i)=lower_row+i;
60 MatGetValues(matrix,range,idxm,N,idxn,local_matrix);
66 for (i=1;i<num_procs;i++){
81 memcpy(outmatrix,local_matrix,N*range*
sizeof(
double));
85 *poutmatrix=outmatrix;
88 xDelete<double>(local_matrix);