1 #include "src/mat/impls/adj/mpi/mpiadj.h" 2 #include "zpetsc.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 EXTERN_C_BEGIN 14 void PETSC_STDCALL matcreatempiadj_(MPI_Comm *comm,PetscInt *m,PetscInt *n,PetscInt *i,PetscInt *j,PetscInt *values,Mat *A,PetscErrorCode *ierr) 15 { 16 Mat_MPIAdj *adj; 17 18 CHKFORTRANNULLINTEGER(values); 19 *ierr = MatCreateMPIAdj((MPI_Comm)PetscToPointerComm(*comm),*m,*n,i,j,values,A); 20 adj = (Mat_MPIAdj*)(*A)->data; 21 adj->freeaij = PETSC_FALSE; 22 } 23 24 void PETSC_STDCALL matmpiadjsetpreallocation_(Mat *mat,PetscInt *i,PetscInt *j,PetscInt *values, PetscErrorCode *ierr) 25 { 26 CHKFORTRANNULLINTEGER(values); 27 *ierr = MatMPIAdjSetPreallocation(*mat,i,j,values); 28 } 29 30 31 EXTERN_C_END 32