Actual source code: zluf.c
1: #include <petsc/private/fortranimpl.h>
2: #include <petscpc.h>
4: #if defined(PETSC_HAVE_FORTRAN_CAPS)
5: #define pcfactorsetmatorderingtype_ PCFACTORSETMATORDERINGTYPE
6: #define pcfactorsetmatsolvertype_ PCFACTORSETMATSOLVERTYPE
7: #define pcfactorgetmatsolvertype_ PCFACTORGETMATSOLVERTYPE
8: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
9: #define pcfactorsetmatorderingtype_ pcfactorsetmatorderingtype
10: #define pcfactorsetmatsolvertype_ pcfactorsetmatsolvertype
11: #define pcfactorgetmatsolvertype_ pcfactorgetmatsolvertype
12: #endif
14: PETSC_EXTERN void pcfactorsetmatorderingtype_(PC *pc, char *ordering, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
15: {
16: char *t;
18: FIXCHAR(ordering, len, t);
19: *ierr = PCFactorSetMatOrderingType(*pc, t);
20: if (*ierr) return;
21: FREECHAR(ordering, t);
22: }
23: PETSC_EXTERN void pcfactorsetmatsolvertype_(PC *pc, char *ordering, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
24: {
25: char *t;
27: FIXCHAR(ordering, len, t);
28: *ierr = PCFactorSetMatSolverType(*pc, t);
29: if (*ierr) return;
30: FREECHAR(ordering, t);
31: }
32: PETSC_EXTERN void pcfactorgetmatsolvertype_(PC *mat, char *name, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
33: {
34: const char *tname;
36: *ierr = PCFactorGetMatSolverType(*mat, &tname);
37: if (*ierr) return;
38: if (name != PETSC_NULL_CHARACTER_Fortran) {
39: *ierr = PetscStrncpy(name, tname, len);
40: if (*ierr) return;
41: }
42: FIXRETURNCHAR(PETSC_TRUE, name, len);
43: }