Actual source code: zdrawvf.c
1: #include <petsc/private/fortranimpl.h>
2: #include <petscdraw.h>
3: #include <petscviewer.h>
5: #if defined(PETSC_HAVE_FORTRAN_CAPS)
6: #define petsc_viewer_draw__ PETSC_VIEWER_DRAW_BROKEN
7: #define petscviewerdrawgetdraw_ PETSCVIEWERDRAWGETDRAW
8: #define petscviewerdrawgetdrawlg_ PETSCVIEWERDRAWGETDRAWLG
9: #define petscviewerdrawopen_ PETSCVIEWERDRAWOPEN
10: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
11: #define petsc_viewer_draw__ petsc_viewer_draw_
12: #define petscviewerdrawgetdraw_ petscviewerdrawgetdraw
13: #define petscviewerdrawgetdrawlg_ petscviewerdrawgetdrawlg
14: #define petscviewerdrawopen_ petscviewerdrawopen
15: #endif
17: #if defined(PETSC_HAVE_FORTRAN_UNDERSCORE_UNDERSCORE)
18: #define petsc_viewer_draw__ petsc_viewer_draw___
19: #endif
21: PETSC_EXTERN PetscViewer petsc_viewer_draw__(MPI_Comm *comm)
22: {
23: return PETSC_VIEWER_DRAW_(MPI_Comm_f2c(*(MPI_Fint *)&*comm));
24: }
26: PETSC_EXTERN void petscviewerdrawgetdraw_(PetscViewer *vin, int *win, PetscDraw *draw, PetscErrorCode *ierr)
27: {
28: PetscViewer v;
29: PetscPatchDefaultViewers_Fortran(vin, v);
30: *ierr = PetscViewerDrawGetDraw(v, *win, draw);
31: }
33: PETSC_EXTERN void petscviewerdrawgetdrawlg_(PetscViewer *vin, int *win, PetscDrawLG *drawlg, PetscErrorCode *ierr)
34: {
35: PetscViewer v;
36: PetscPatchDefaultViewers_Fortran(vin, v);
37: *ierr = PetscViewerDrawGetDrawLG(v, *win, drawlg);
38: }
40: PETSC_EXTERN void petscviewerdrawopen_(MPI_Comm *comm, char *display, char *title, int *x, int *y, int *w, int *h, PetscViewer *v, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len1, PETSC_FORTRAN_CHARLEN_T len2)
41: {
42: char *c1, *c2;
44: FIXCHAR(display, len1, c1);
45: FIXCHAR(title, len2, c2);
46: *ierr = PetscViewerDrawOpen(MPI_Comm_f2c(*(MPI_Fint *)&*comm), c1, c2, *x, *y, *w, *h, v);
47: if (*ierr) return;
48: FREECHAR(display, c1);
49: FREECHAR(title, c2);
50: }