xref: /petsc/src/sys/classes/viewer/interface/ftn-custom/zviewaf.c (revision fc0d7e871b420888abe4703d3a3f60ea7b373339) !
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 petscviewerflush_            PETSCVIEWERFLUSH
13 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
14   #define petscviewersetformat_        petscviewersetformat
15   #define petscviewerpushformat_       petscviewerpushformat
16   #define petscviewerpopformat_        petscviewerpopformat
17   #define petscviewerandformatcreate_  petscviewerandformatcreate
18   #define petscviewerandformatdestroy_ petscviewerandformatdestroy
19   #define petscviewergetsubviewer_     petscviewergetsubviewer
20   #define petscviewerrestoresubviewer_ petscviewerrestoresubviewer
21   #define petscviewerflush_            petscviewerflush
22 #endif
23 
24 PETSC_EXTERN void petscviewerflush_(PetscViewer *viewer, int *ierr)
25 {
26   PetscViewer v;
27   PetscPatchDefaultViewers_Fortran(viewer, v);
28   *ierr = PetscViewerFlush(v);
29 }
30 
31 PETSC_EXTERN void petscviewergetsubviewer_(PetscViewer *vin, MPI_Fint *comm, PetscViewer *outviewer, PetscErrorCode *ierr)
32 {
33   PetscViewer v;
34   PetscPatchDefaultViewers_Fortran(vin, v);
35   *ierr = PetscViewerGetSubViewer(v, MPI_Comm_f2c(*(comm)), outviewer);
36 }
37 
38 PETSC_EXTERN void petscviewerrestoresubviewer_(PetscViewer *vin, MPI_Fint *comm, PetscViewer *outviewer, PetscErrorCode *ierr)
39 {
40   PetscViewer v;
41   PetscPatchDefaultViewers_Fortran(vin, v);
42   *ierr = PetscViewerRestoreSubViewer(v, MPI_Comm_f2c(*(comm)), outviewer);
43 }
44 
45 PETSC_EXTERN void petscviewerandformatcreate_(PetscViewer *vin, PetscViewerFormat *format, PetscViewerAndFormat **vf, PetscErrorCode *ierr)
46 {
47   PetscViewer v;
48   PetscPatchDefaultViewers_Fortran(vin, v);
49   *ierr = PetscViewerAndFormatCreate(v, *format, vf);
50 }
51 
52 PETSC_EXTERN void petscviewerandformatdestroy_(PetscViewerAndFormat **vf, PetscErrorCode *ierr)
53 {
54   *ierr = PetscViewerAndFormatDestroy(vf);
55 }
56 
57 PETSC_EXTERN void petscviewerpushformat_(PetscViewer *vin, PetscViewerFormat *format, PetscErrorCode *ierr)
58 {
59   PetscViewer v;
60   PetscPatchDefaultViewers_Fortran(vin, v);
61   *ierr = PetscViewerPushFormat(v, *format);
62 }
63 
64 PETSC_EXTERN void petscviewerpopformat_(PetscViewer *vin, PetscErrorCode *ierr)
65 {
66   PetscViewer v;
67   PetscPatchDefaultViewers_Fortran(vin, v);
68   *ierr = PetscViewerPopFormat(v);
69 }
70