xref: /petsc/src/sys/classes/viewer/interface/ftn-custom/zviewaf.c (revision b41ce5d507ea9a58bfa83cf403107a702e77a67d)
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 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
13 #define petscviewersetformat_        petscviewersetformat
14 #define petscviewersettype_          petscviewersettype
15 #define petscviewergettype_          petscviewergettype
16 #define petscviewerpushformat_       petscviewerpushformat
17 #define petscviewerpopformat_        petscviewerpopformat
18 #define petscviewerandformatcreate_  petscviewerandformatcreate
19 #define petscviewerandformatdestroy_ petscviewerandformatdestroy
20 #endif
21 
22 PETSC_EXTERN PetscErrorCode PetscViewerSetFormatDeprecated(PetscViewer, PetscViewerFormat);
23 
24 PETSC_EXTERN void PETSC_STDCALL petscviewerandformatcreate_(PetscViewer *vin, PetscViewerFormat *format, PetscViewerAndFormat **vf, PetscErrorCode *ierr)
25 {
26   PetscViewer v;
27   PetscPatchDefaultViewers_Fortran(vin, v);
28   *ierr = PetscViewerAndFormatCreate(v, *format, vf);
29 }
30 
31 PETSC_EXTERN void petscviewerandformatdestroy_(PetscViewerAndFormat **vf, PetscErrorCode *ierr)
32 {
33   *ierr = PetscViewerAndFormatDestroy(vf);
34 }
35 
36 PETSC_EXTERN void PETSC_STDCALL petscviewersetformat_(PetscViewer *vin, PetscViewerFormat *format, PetscErrorCode *ierr)
37 {
38   PetscViewer v;
39   PetscPatchDefaultViewers_Fortran(vin, v);
40   *ierr = PetscViewerSetFormatDeprecated(v, *format);
41 }
42 
43 PETSC_EXTERN void PETSC_STDCALL petscviewersettype_(PetscViewer *x, char* type_name PETSC_MIXED_LEN(len), PetscErrorCode *ierr PETSC_END_LEN(len))
44 {
45   char *t;
46 
47   FIXCHAR(type_name, len, t);
48   *ierr = PetscViewerSetType(*x, t);
49   FREECHAR(type_name, t);
50 }
51 
52 PETSC_EXTERN void PETSC_STDCALL petscviewergettype_(PetscViewer *viewer, char* type PETSC_MIXED_LEN(len), PetscErrorCode *ierr PETSC_END_LEN(len))
53 {
54    const char *c1;
55 
56    *ierr = PetscViewerGetType(*viewer, &c1);
57    *ierr = PetscStrncpy(type, c1, len);
58    FIXRETURNCHAR(PETSC_TRUE, type, len);
59 }
60 
61 PETSC_EXTERN void PETSC_STDCALL petscviewerpushformat_(PetscViewer *vin, PetscViewerFormat *format, PetscErrorCode *ierr)
62 {
63   PetscViewer v;
64   PetscPatchDefaultViewers_Fortran(vin, v);
65   *ierr = PetscViewerPushFormat(v, *format);
66 }
67 
68 PETSC_EXTERN void PETSC_STDCALL petscviewerpopformat_(PetscViewer *vin, PetscErrorCode *ierr)
69 {
70   PetscViewer v;
71   PetscPatchDefaultViewers_Fortran(vin, v);
72   *ierr = PetscViewerPopFormat(v);
73 }
74