Actual source code: zitcreatef.c
1: #include <petsc/private/fortranimpl.h>
2: #include <petscksp.h>
3: #include <petscviewer.h>
5: #if defined(PETSC_HAVE_FORTRAN_CAPS)
6: #define kspgettype_ KSPGETTYPE
7: #define kspsettype_ KSPSETTYPE
8: #define kspview_ KSPVIEW
9: #define kspviewfromoptions_ KSPVIEWFROMOPTIONS
10: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
11: #define kspgettype_ kspgettype
12: #define kspsettype_ kspsettype
13: #define kspview_ kspview
14: #define kspviewfromoptions_ kspviewfromoptions
15: #endif
17: PETSC_EXTERN void kspgettype_(KSP *ksp, char *name, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
18: {
19: const char *tname;
21: *ierr = KSPGetType(*ksp, &tname);
22: if (*ierr) return;
23: *ierr = PetscStrncpy(name, tname, len);
24: FIXRETURNCHAR(PETSC_TRUE, name, len);
25: }
27: PETSC_EXTERN void kspsettype_(KSP *ksp, char *type, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
28: {
29: char *t;
31: FIXCHAR(type, len, t);
32: *ierr = KSPSetType(*ksp, t);
33: if (*ierr) return;
34: FREECHAR(type, t);
35: }
37: PETSC_EXTERN void kspview_(KSP *ksp, PetscViewer *viewer, PetscErrorCode *ierr)
38: {
39: PetscViewer v;
40: PetscPatchDefaultViewers_Fortran(viewer, v);
41: *ierr = KSPView(*ksp, v);
42: }
44: PETSC_EXTERN void kspviewfromoptions_(KSP *ao, PetscObject obj, char *type, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
45: {
46: char *t;
48: FIXCHAR(type, len, t);
49: CHKFORTRANNULLOBJECT(obj);
50: *ierr = KSPViewFromOptions(*ao, obj, t);
51: if (*ierr) return;
52: FREECHAR(type, t);
53: }
55: PETSC_EXTERN void kspgetconvergedreasonstring_(KSP *ksp, char *strreason, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
56: {
57: const char *tstrreason;
58: *ierr = KSPGetConvergedReasonString(*ksp, &tstrreason);
59: *ierr = PetscStrncpy(strreason, tstrreason, len);
60: if (*ierr) return;
61: FIXRETURNCHAR(PETSC_TRUE, strreason, len);
62: }