Actual source code: zitclf.c
1: #include <petsc/private/fortranimpl.h>
2: #include <petscksp.h>
4: #if defined(PETSC_HAVE_FORTRAN_CAPS)
5: #define kspgetoptionsprefix_ KSPGETOPTIONSPREFIX
6: #define kspappendoptionsprefix_ KSPAPPENDOPTIONSPREFIX
7: #define kspsetoptionsprefix_ KSPSETOPTIONSPREFIX
8: #define kspbuildsolution_ KSPBUILDSOLUTION
9: #define kspbuildresidual_ KSPBUILDRESIDUAL
10: #define matcreateschurcomplement_ MATCREATESCHURCOMPLEMENT
11: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
12: #define kspgetoptionsprefix_ kspgetoptionsprefix
13: #define kspappendoptionsprefix_ kspappendoptionsprefix
14: #define kspsetoptionsprefix_ kspsetoptionsprefix
15: #define kspbuildsolution_ kspbuildsolution
16: #define kspbuildresidual_ kspbuildresidual
17: #define matcreateschurcomplement_ matcreateschurcomplement
18: #endif
20: PETSC_EXTERN void kspbuildsolution_(KSP *ksp, Vec *v, Vec *V, int *ierr)
21: {
22: CHKFORTRANNULLOBJECT(V);
23: *ierr = KSPBuildSolution(*ksp, *v, V);
24: }
26: PETSC_EXTERN void kspbuildresidual_(KSP *ksp, Vec *t, Vec *v, Vec *V, int *ierr)
27: {
28: CHKFORTRANNULLOBJECT(V);
29: *ierr = KSPBuildResidual(*ksp, *t, *v, V);
30: }
32: PETSC_EXTERN void kspgetoptionsprefix_(KSP *ksp, char *prefix, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
33: {
34: const char *tname;
36: *ierr = KSPGetOptionsPrefix(*ksp, &tname);
37: *ierr = PetscStrncpy(prefix, tname, len);
38: if (*ierr) return;
39: FIXRETURNCHAR(PETSC_TRUE, prefix, len);
40: }
42: PETSC_EXTERN void kspappendoptionsprefix_(KSP *ksp, char *prefix, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
43: {
44: char *t;
46: FIXCHAR(prefix, len, t);
47: *ierr = KSPAppendOptionsPrefix(*ksp, t);
48: if (*ierr) return;
49: FREECHAR(prefix, t);
50: }
52: PETSC_EXTERN void kspsetoptionsprefix_(KSP *ksp, char *prefix, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
53: {
54: char *t;
56: FIXCHAR(prefix, len, t);
57: *ierr = KSPSetOptionsPrefix(*ksp, t);
58: if (*ierr) return;
59: FREECHAR(prefix, t);
60: }