Actual source code: zviewaf.c
1: #include <petsc/private/fortranimpl.h>
2: #include <petscviewer.h>
4: #if defined(PETSC_HAVE_FORTRAN_CAPS)
5: #define petscviewersetformat_ PETSCVIEWERSETFORMAT
6: #define petscviewersettype_ PETSCVIEWERSETTYPE
7: #define petscviewergettype_ PETSCVIEWERGETTYPE
8: #define petscviewerpushformat_ PETSCVIEWERPUSHFORMAT
9: #define petscviewerpopformat_ PETSCVIEWERPOPFORMAT
10: #define petscviewerandformatcreate_ PETSCVIEWERANDFORMATCREATE
11: #define petscviewerandformatdestroy_ PETSCVIEWERANDFORMATDESTROY
12: #define petscviewergetsubviewer_ PETSCVIEWERGETSUBVIEWER
13: #define petscviewerrestoresubviewer_ PETSCVIEWERRESTORESUBVIEWER
14: #define petscviewierview_ PETSCVIEWERVIEW
15: #define petscviewerflush_ PETSCVIEWERFLUSH
16: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
17: #define petscviewersetformat_ petscviewersetformat
18: #define petscviewersettype_ petscviewersettype
19: #define petscviewergettype_ petscviewergettype
20: #define petscviewerpushformat_ petscviewerpushformat
21: #define petscviewerpopformat_ petscviewerpopformat
22: #define petscviewerandformatcreate_ petscviewerandformatcreate
23: #define petscviewerandformatdestroy_ petscviewerandformatdestroy
24: #define petscviewergetsubviewer_ petscviewergetsubviewer
25: #define petscviewerrestoresubviewer_ petscviewerrestoresubviewer
26: #define petscviewierview_ petscviewerview
27: #define petscviewerflush_ petscviewerflush
28: #endif
30: PETSC_EXTERN void petscviewerflush_(PetscViewer *viewer, int *ierr)
31: {
32: PetscViewer v;
33: PetscPatchDefaultViewers_Fortran(viewer, v);
34: *ierr = PetscViewerFlush(v);
35: }
37: PETSC_EXTERN void petscviewergetsubviewer_(PetscViewer *vin, MPI_Fint *comm, PetscViewer *outviewer, PetscErrorCode *ierr)
38: {
39: PetscViewer v;
40: PetscPatchDefaultViewers_Fortran(vin, v);
41: *ierr = PetscViewerGetSubViewer(v, MPI_Comm_f2c(*(comm)), outviewer);
42: }
44: PETSC_EXTERN void petscviewerrestoresubviewer_(PetscViewer *vin, MPI_Fint *comm, PetscViewer *outviewer, PetscErrorCode *ierr)
45: {
46: PetscViewer v;
47: PetscPatchDefaultViewers_Fortran(vin, v);
48: *ierr = PetscViewerRestoreSubViewer(v, MPI_Comm_f2c(*(comm)), outviewer);
49: }
51: PETSC_EXTERN PetscErrorCode PetscViewerSetFormatDeprecated(PetscViewer, PetscViewerFormat);
53: PETSC_EXTERN void petscviewerandformatcreate_(PetscViewer *vin, PetscViewerFormat *format, PetscViewerAndFormat **vf, PetscErrorCode *ierr)
54: {
55: PetscViewer v;
56: PetscPatchDefaultViewers_Fortran(vin, v);
57: *ierr = PetscViewerAndFormatCreate(v, *format, vf);
58: }
60: PETSC_EXTERN void petscviewerandformatdestroy_(PetscViewerAndFormat **vf, PetscErrorCode *ierr)
61: {
62: *ierr = PetscViewerAndFormatDestroy(vf);
63: }
65: PETSC_EXTERN void petscviewersetformat_(PetscViewer *vin, PetscViewerFormat *format, PetscErrorCode *ierr)
66: {
67: PetscViewer v;
68: PetscPatchDefaultViewers_Fortran(vin, v);
69: *ierr = PetscViewerSetFormatDeprecated(v, *format);
70: }
72: PETSC_EXTERN void petscviewersettype_(PetscViewer *x, char *type_name, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
73: {
74: char *t;
76: FIXCHAR(type_name, len, t);
77: *ierr = PetscViewerSetType(*x, t);
78: if (*ierr) return;
79: FREECHAR(type_name, t);
80: }
82: PETSC_EXTERN void petscviewergettype_(PetscViewer *viewer, char *type, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len)
83: {
84: const char *c1;
86: *ierr = PetscViewerGetType(*viewer, &c1);
87: *ierr = PetscStrncpy(type, c1, len);
88: FIXRETURNCHAR(PETSC_TRUE, type, len);
89: }
91: PETSC_EXTERN void petscviewerpushformat_(PetscViewer *vin, PetscViewerFormat *format, PetscErrorCode *ierr)
92: {
93: PetscViewer v;
94: PetscPatchDefaultViewers_Fortran(vin, v);
95: *ierr = PetscViewerPushFormat(v, *format);
96: }
98: PETSC_EXTERN void petscviewerpopformat_(PetscViewer *vin, PetscErrorCode *ierr)
99: {
100: PetscViewer v;
101: PetscPatchDefaultViewers_Fortran(vin, v);
102: *ierr = PetscViewerPopFormat(v);
103: }
105: PETSC_EXTERN void petscviewerview_(PetscViewer *vin, PetscViewer *viewerin, PetscErrorCode *ierr)
106: {
107: PetscViewer v, viewer;
108: PetscPatchDefaultViewers_Fortran(vin, v);
109: PetscPatchDefaultViewers_Fortran(viewerin, viewer);
110: *ierr = PetscViewerView(v, viewer);
111: }