xref: /petsc/src/sys/classes/viewer/interface/ftn-custom/zviewaf.c (revision 49704ca50b493c2e85d363bc78de18338d2b5f1c)
1 #include <petsc/private/fortranimpl.h>
2 #include <petscviewer.h>
3 
4 #if defined(PETSC_HAVE_FORTRAN_CAPS)
5   #define petscviewersetformat_        PETSCVIEWERSETFORMAT
6   #define petscviewerpushformat_       PETSCVIEWERPUSHFORMAT
7   #define petscviewerpopformat_        PETSCVIEWERPOPFORMAT
8   #define petscviewerandformatcreate_  PETSCVIEWERANDFORMATCREATE
9   #define petscviewerandformatdestroy_ PETSCVIEWERANDFORMATDESTROY
10   #define petscviewergetsubviewer_     PETSCVIEWERGETSUBVIEWER
11   #define petscviewerrestoresubviewer_ PETSCVIEWERRESTORESUBVIEWER
12   #define petscviewierview_            PETSCVIEWERVIEW
13   #define petscviewerflush_            PETSCVIEWERFLUSH
14 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
15   #define petscviewersetformat_        petscviewersetformat
16   #define petscviewerpushformat_       petscviewerpushformat
17   #define petscviewerpopformat_        petscviewerpopformat
18   #define petscviewerandformatcreate_  petscviewerandformatcreate
19   #define petscviewerandformatdestroy_ petscviewerandformatdestroy
20   #define petscviewergetsubviewer_     petscviewergetsubviewer
21   #define petscviewerrestoresubviewer_ petscviewerrestoresubviewer
22   #define petscviewierview_            petscviewerview
23   #define petscviewerflush_            petscviewerflush
24 #endif
25 
26 PETSC_EXTERN void petscviewerflush_(PetscViewer *viewer, int *ierr)
27 {
28   PetscViewer v;
29   PetscPatchDefaultViewers_Fortran(viewer, v);
30   *ierr = PetscViewerFlush(v);
31 }
32 
33 PETSC_EXTERN void petscviewergetsubviewer_(PetscViewer *vin, MPI_Fint *comm, PetscViewer *outviewer, PetscErrorCode *ierr)
34 {
35   PetscViewer v;
36   PetscPatchDefaultViewers_Fortran(vin, v);
37   *ierr = PetscViewerGetSubViewer(v, MPI_Comm_f2c(*(comm)), outviewer);
38 }
39 
40 PETSC_EXTERN void petscviewerrestoresubviewer_(PetscViewer *vin, MPI_Fint *comm, PetscViewer *outviewer, PetscErrorCode *ierr)
41 {
42   PetscViewer v;
43   PetscPatchDefaultViewers_Fortran(vin, v);
44   *ierr = PetscViewerRestoreSubViewer(v, MPI_Comm_f2c(*(comm)), outviewer);
45 }
46 
47 PETSC_EXTERN PetscErrorCode PetscViewerSetFormatDeprecated(PetscViewer, PetscViewerFormat);
48 
49 PETSC_EXTERN void petscviewerandformatcreate_(PetscViewer *vin, PetscViewerFormat *format, PetscViewerAndFormat **vf, PetscErrorCode *ierr)
50 {
51   PetscViewer v;
52   PetscPatchDefaultViewers_Fortran(vin, v);
53   *ierr = PetscViewerAndFormatCreate(v, *format, vf);
54 }
55 
56 PETSC_EXTERN void petscviewerandformatdestroy_(PetscViewerAndFormat **vf, PetscErrorCode *ierr)
57 {
58   *ierr = PetscViewerAndFormatDestroy(vf);
59 }
60 
61 PETSC_EXTERN void petscviewersetformat_(PetscViewer *vin, PetscViewerFormat *format, PetscErrorCode *ierr)
62 {
63   PetscViewer v;
64   PetscPatchDefaultViewers_Fortran(vin, v);
65   *ierr = PetscViewerSetFormatDeprecated(v, *format);
66 }
67 
68 PETSC_EXTERN void petscviewerpushformat_(PetscViewer *vin, PetscViewerFormat *format, PetscErrorCode *ierr)
69 {
70   PetscViewer v;
71   PetscPatchDefaultViewers_Fortran(vin, v);
72   *ierr = PetscViewerPushFormat(v, *format);
73 }
74 
75 PETSC_EXTERN void petscviewerpopformat_(PetscViewer *vin, PetscErrorCode *ierr)
76 {
77   PetscViewer v;
78   PetscPatchDefaultViewers_Fortran(vin, v);
79   *ierr = PetscViewerPopFormat(v);
80 }
81 
82 PETSC_EXTERN void petscviewerview_(PetscViewer *vin, PetscViewer *viewerin, PetscErrorCode *ierr)
83 {
84   PetscViewer v, viewer;
85   PetscPatchDefaultViewers_Fortran(vin, v);
86   PetscPatchDefaultViewers_Fortran(viewerin, viewer);
87   *ierr = PetscViewerView(v, viewer);
88 }
89