Actual source code: zmpibaijf.c
1: #include <petsc/private/fortranimpl.h>
2: #include <petscmat.h>
4: #if defined(PETSC_HAVE_FORTRAN_CAPS)
5: #define matmpibaijgetseqbaij_ MATMPIBAIJGETSEQBAIJ
6: #define matcreatebaij_ MATCREATEBAIJ
7: #define matmpibaijsetpreallocation_ MATMPIBAIJSETPREALLOCATION
8: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
9: #define matmpibaijgetseqbaij_ matmpibaijgetseqbaij
10: #define matcreatebaij_ matcreatebaij
11: #define matmpibaijsetpreallocation_ matmpibaijsetpreallocation
12: #endif
14: PETSC_EXTERN void matmpibaijgetseqbaij_(Mat *A, Mat *Ad, Mat *Ao, PetscInt *ic, size_t *iic, PetscErrorCode *ierr)
15: {
16: const PetscInt *i;
17: *ierr = MatMPIBAIJGetSeqBAIJ(*A, Ad, Ao, &i);
18: if (*ierr) return;
19: *iic = PetscIntAddressToFortran(ic, (PetscInt *)i);
20: }
22: PETSC_EXTERN void matcreatebaij_(MPI_Comm *comm, PetscInt *bs, PetscInt *m, PetscInt *n, PetscInt *M, PetscInt *N, PetscInt *d_nz, PetscInt *d_nnz, PetscInt *o_nz, PetscInt *o_nnz, Mat *newmat, PetscErrorCode *ierr)
23: {
24: CHKFORTRANNULLINTEGER(d_nnz);
25: CHKFORTRANNULLINTEGER(o_nnz);
26: *ierr = MatCreateBAIJ(MPI_Comm_f2c(*(MPI_Fint *)&*comm), *bs, *m, *n, *M, *N, *d_nz, d_nnz, *o_nz, o_nnz, newmat);
27: }
29: PETSC_EXTERN void matmpibaijsetpreallocation_(Mat *mat, PetscInt *bs, PetscInt *d_nz, PetscInt *d_nnz, PetscInt *o_nz, PetscInt *o_nnz, PetscErrorCode *ierr)
30: {
31: CHKFORTRANNULLINTEGER(d_nnz);
32: CHKFORTRANNULLINTEGER(o_nnz);
33: *ierr = MatMPIBAIJSetPreallocation(*mat, *bs, *d_nz, d_nnz, *o_nz, o_nnz);
34: }