Actual source code: zmatproductf.c
1: #include <petsc/private/fortranimpl.h>
2: #include <petscmat.h>
3: #include <petscviewer.h>
5: #if defined(PETSC_HAVE_FORTRAN_CAPS)
6: #define matproductview_ MATPRODUCTVIEW
7: #define matproductsetalgorithm_ MATPRODUCTSETALGORITHM
8: #define matproductgetalgorithm_ MATPRODUCTGETALGORITHM
9: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
10: #define matproductview_ matproductview
11: #define matproductsetalgorithm_ matproductsetalgorithm
12: #define matproductgetalgorithm_ matproductgetalgorithm
13: #endif
15: PETSC_EXTERN void matproductview_(Mat *mat, PetscViewer *viewer, PetscErrorCode *ierr)
16: {
17: PetscViewer v;
18: PetscPatchDefaultViewers_Fortran(viewer, v);
19: *ierr = MatProductView(*mat, v);
20: }
22: PETSC_EXTERN void matproductsetalgorithm_(Mat *mat, char *algorithm, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
23: {
24: char *t;
26: FIXCHAR(algorithm, len, t);
27: *ierr = MatProductSetAlgorithm(*mat, t);
28: if (*ierr) return;
29: FREECHAR(algorithm, t);
30: }
32: PETSC_EXTERN void matproductgetalgorithm_(Mat *mat, char *algorithm, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
33: {
34: const char *talgo;
36: *ierr = MatProductGetAlgorithm(*mat, &talgo);
37: if (*ierr) return;
38: if (algorithm != PETSC_NULL_CHARACTER_Fortran) {
39: *ierr = PetscStrncpy(algorithm, talgo, len);
40: if (*ierr) return;
41: }
42: FIXRETURNCHAR(PETSC_TRUE, algorithm, len);
43: }