1 #include <../src/mat/impls/adj/mpi/mpiadj.h> 2 #include <petsc/private/fortranimpl.h> 3 #include <petscmat.h> 4 5 #if defined(PETSC_HAVE_FORTRAN_CAPS) 6 #define matcreatempiadj_ MATCREATEMPIADJ 7 #define matmpiadjsetpreallocation_ MATMPIADJSETPREALLOCATION 8 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) 9 #define matcreatempiadj_ matcreatempiadj 10 #define matmpiadjsetpreallocation_ matmpiadjsetpreallocation 11 #endif 12 13 PETSC_EXTERN void matcreatempiadj_(MPI_Comm *comm, PetscInt *m, PetscInt *n, PetscInt *i, PetscInt *j, PetscInt *values, Mat *A, PetscErrorCode *ierr) 14 { 15 Mat_MPIAdj *adj; 16 17 CHKFORTRANNULLINTEGER(values); 18 *ierr = MatCreateMPIAdj(MPI_Comm_f2c(*(MPI_Fint *)&*comm), *m, *n, i, j, values, A); 19 adj = (Mat_MPIAdj *)(*A)->data; 20 adj->freeaij = PETSC_FALSE; 21 } 22 23 PETSC_EXTERN void matmpiadjsetpreallocation_(Mat *mat, PetscInt *i, PetscInt *j, PetscInt *values, PetscErrorCode *ierr) 24 { 25 CHKFORTRANNULLINTEGER(values); 26 *ierr = MatMPIAdjSetPreallocation(*mat, i, j, values); 27 } 28