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 PETSC_STDCALL 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 PETSC_STDCALL matmpiadjsetpreallocation_(Mat *mat,PetscInt *i,PetscInt *j,PetscInt *values, PetscErrorCode *ierr) 24 { 25 CHKFORTRANNULLINTEGER(values); 26 *ierr = MatMPIAdjSetPreallocation(*mat,i,j,values); 27 } 28 29