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