xref: /petsc/src/mat/impls/adj/mpi/ftn-custom/zmpiadjf.c (revision af0996ce37bc06907c37d8d91773840993d61e62)
1c6db04a5SJed Brown #include <../src/mat/impls/adj/mpi/mpiadj.h>
2*af0996ceSBarry Smith #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 
138cc058d9SJed 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 
238cc058d9SJed 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