xref: /petsc/src/sys/classes/viewer/interface/ftn-custom/zviewaf.c (revision f97672e55eacc8688507b9471cd7ec2664d7f203)
1 #include <petsc/private/fortranimpl.h>
2 #include <petscviewer.h>
3 
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 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
16 #define petscviewersetformat_        petscviewersetformat
17 #define petscviewersettype_          petscviewersettype
18 #define petscviewergettype_          petscviewergettype
19 #define petscviewerpushformat_       petscviewerpushformat
20 #define petscviewerpopformat_        petscviewerpopformat
21 #define petscviewerandformatcreate_  petscviewerandformatcreate
22 #define petscviewerandformatdestroy_ petscviewerandformatdestroy
23 #define petscviewergetsubviewer_     petscviewergetsubviewer
24 #define petscviewerrestoresubviewer_ petscviewerrestoresubviewer
25 #define petscviewierview_            petscviewerview
26 #endif
27 
28 PETSC_EXTERN void  petscviewergetsubviewer_(PetscViewer *vin,MPI_Fint * comm,PetscViewer *outviewer, PetscErrorCode *ierr)
29 {
30   PetscViewer v;
31   PetscPatchDefaultViewers_Fortran(vin, v);
32   *ierr = PetscViewerGetSubViewer(v,MPI_Comm_f2c(*(comm)),outviewer);
33 }
34 
35 PETSC_EXTERN void  petscviewerrestoresubviewer_(PetscViewer *vin,MPI_Fint * comm,PetscViewer *outviewer, PetscErrorCode *ierr)
36 {
37   PetscViewer v;
38   PetscPatchDefaultViewers_Fortran(vin, v);
39   *ierr = PetscViewerRestoreSubViewer(v,MPI_Comm_f2c(*(comm)),outviewer);
40 }
41 
42 PETSC_EXTERN PetscErrorCode PetscViewerSetFormatDeprecated(PetscViewer, PetscViewerFormat);
43 
44 PETSC_EXTERN void petscviewerandformatcreate_(PetscViewer *vin, PetscViewerFormat *format, PetscViewerAndFormat **vf, PetscErrorCode *ierr)
45 {
46   PetscViewer v;
47   PetscPatchDefaultViewers_Fortran(vin, v);
48   *ierr = PetscViewerAndFormatCreate(v, *format, vf);
49 }
50 
51 PETSC_EXTERN void petscviewerandformatdestroy_(PetscViewerAndFormat **vf, PetscErrorCode *ierr)
52 {
53   *ierr = PetscViewerAndFormatDestroy(vf);
54 }
55 
56 PETSC_EXTERN void petscviewersetformat_(PetscViewer *vin, PetscViewerFormat *format, PetscErrorCode *ierr)
57 {
58   PetscViewer v;
59   PetscPatchDefaultViewers_Fortran(vin, v);
60   *ierr = PetscViewerSetFormatDeprecated(v, *format);
61 }
62 
63 PETSC_EXTERN void petscviewersettype_(PetscViewer *x, char* type_name, PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len)
64 {
65   char *t;
66 
67   FIXCHAR(type_name, len, t);
68   *ierr = PetscViewerSetType(*x, t);if (*ierr) return;
69   FREECHAR(type_name, t);
70 }
71 
72 PETSC_EXTERN void petscviewergettype_(PetscViewer *viewer, char* type, PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len)
73 {
74    const char *c1;
75 
76    *ierr = PetscViewerGetType(*viewer, &c1);
77    *ierr = PetscStrncpy(type, c1, len);
78    FIXRETURNCHAR(PETSC_TRUE, type, len);
79 }
80 
81 PETSC_EXTERN void petscviewerpushformat_(PetscViewer *vin, PetscViewerFormat *format, PetscErrorCode *ierr)
82 {
83   PetscViewer v;
84   PetscPatchDefaultViewers_Fortran(vin, v);
85   *ierr = PetscViewerPushFormat(v, *format);
86 }
87 
88 PETSC_EXTERN void petscviewerpopformat_(PetscViewer *vin, PetscErrorCode *ierr)
89 {
90   PetscViewer v;
91   PetscPatchDefaultViewers_Fortran(vin, v);
92   *ierr = PetscViewerPopFormat(v);
93 }
94 
95 PETSC_EXTERN void petscviewerview_(PetscViewer *vin, PetscViewer *viewerin, PetscErrorCode *ierr)
96 {
97   PetscViewer v,viewer;
98   PetscPatchDefaultViewers_Fortran(vin, v);
99   PetscPatchDefaultViewers_Fortran(viewerin, viewer);
100   *ierr = PetscViewerView(v,viewer);
101 }
102