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