Actual source code: zpartitionf.c
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: #define matpartitioningview_ MATPARTITIONINGVIEW
8: #define matpartitioningsettype_ MATPARTITIONINGSETTYPE
9: #define matpartitioningviewfromoptions_ MATPARTITIONINGVIEWFROMOPTIONS
10: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
11: #define matpartitioningsetvertexweights_ matpartitioningsetvertexweights
12: #define matpartitioningview_ matpartitioningview
13: #define matpartitioningsettype_ matpartitioningsettype
14: #define matpartitioningviewfromoptions_ matpartitioningviewfromoptions
15: #endif
17: PETSC_EXTERN void matpartitioningsetvertexweights_(MatPartitioning *part, const PetscInt weights[], PetscErrorCode *ierr)
18: {
19: PetscInt len;
20: PetscInt *array;
21: *ierr = MatGetLocalSize((*part)->adj, &len, NULL);
22: if (*ierr) return;
23: *ierr = PetscMalloc1(len, &array);
24: if (*ierr) return;
25: *ierr = PetscArraycpy(array, weights, len);
26: if (*ierr) return;
27: *ierr = MatPartitioningSetVertexWeights(*part, array);
28: }
29: PETSC_EXTERN void matpartitioningview_(MatPartitioning *part, PetscViewer *viewer, PetscErrorCode *ierr)
30: {
31: PetscViewer v;
32: PetscPatchDefaultViewers_Fortran(viewer, v);
33: *ierr = MatPartitioningView(*part, v);
34: }
36: PETSC_EXTERN void matpartitioningsettype_(MatPartitioning *part, char *type, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
37: {
38: char *t;
39: FIXCHAR(type, len, t);
40: *ierr = MatPartitioningSetType(*part, t);
41: if (*ierr) return;
42: FREECHAR(type, t);
43: }
44: PETSC_EXTERN void matpartitioningviewfromoptions_(MatPartitioning *ao, PetscObject obj, char *type, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
45: {
46: char *t;
48: FIXCHAR(type, len, t);
49: CHKFORTRANNULLOBJECT(obj);
50: *ierr = MatPartitioningViewFromOptions(*ao, obj, t);
51: if (*ierr) return;
52: FREECHAR(type, t);
53: }