xref: /petsc/src/sys/classes/viewer/impls/draw/ftn-custom/zdrawvf.c (revision 6a98f8dc3f2c9149905a87dc2e9d0fedaf64e09a)
1 #include <petsc/private/fortranimpl.h>
2 #include <petscdraw.h>
3 #include <petscviewer.h>
4 
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
16 
17 #if defined(PETSC_HAVE_FORTRAN_UNDERSCORE_UNDERSCORE)
18 #define petsc_viewer_draw__      petsc_viewer_draw___
19 #endif
20 
21 PETSC_EXTERN PetscViewer petsc_viewer_draw__(MPI_Comm *comm)
22 {
23   return PETSC_VIEWER_DRAW_(MPI_Comm_f2c(*(MPI_Fint*)&*comm));
24 }
25 
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 }
32 
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 }
39 
40 PETSC_EXTERN void petscviewerdrawopen_(MPI_Comm *comm,char* display,
41                    char* title,int *x,int*y,int*w,int*h,PetscViewer *v,
42                    PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len1,PETSC_FORTRAN_CHARLEN_T len2)
43 {
44   char *c1,*c2;
45 
46   FIXCHAR(display,len1,c1);
47   FIXCHAR(title,len2,c2);
48   *ierr = PetscViewerDrawOpen(MPI_Comm_f2c(*(MPI_Fint*)&*comm),c1,c2,*x,*y,*w,*h,v);if (*ierr) return;
49   FREECHAR(display,c1);
50   FREECHAR(title,c2);
51 }
52 
53