1: #include <../src/mat/impls/adj/mpi/mpiadj.h> 2: #include <petsc/private/fortranimpl.h> 3: #include <petscmat.h> 5: #if defined(PETSC_HAVE_FORTRAN_CAPS) 6: #define matpartitioningsetvertexweights_ MATPARTITIONINGSETVERTEXWEIGHTS 7: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) 8: #define matpartitioningsetvertexweights_ matpartitioningsetvertexweights 9: #endif 11: PETSC_EXTERN void matpartitioningsetvertexweights_(MatPartitioning *part, const PetscInt weights[], PetscErrorCode *ierr) 12: { 13: PetscInt len; 14: PetscInt *array; 15: *ierr = MatGetLocalSize((*part)->adj, &len, NULL); 16: if (*ierr) return; 17: *ierr = PetscMalloc1(len, &array); 18: if (*ierr) return; 19: *ierr = PetscArraycpy(array, weights, len); 20: if (*ierr) return; 21: *ierr = MatPartitioningSetVertexWeights(*part, array); 22: }