xref: /petsc/src/sys/classes/viewer/impls/draw/ftn-custom/zdrawvf.c (revision 2205254efee3a00a594e5e2a3a70f74dcb40bc03)
1 #include <petsc-private/fortranimpl.h>
2 #include <petscdraw.h>
3 
4 #if defined(PETSC_HAVE_FORTRAN_CAPS)
5 #define petscviewerdrawgetdraw_   PETSCVIEWERDRAWGETDRAW
6 #define petscviewerdrawgetdrawlg_ PETSCVIEWERDRAWGETDRAWLG
7 #define petscviewerdrawopen_       PETSCVIEWERDRAWOPEN
8 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
9 #define petscviewerdrawgetdraw_   petscviewerdrawgetdraw
10 #define petscviewerdrawgetdrawlg_ petscviewerdrawgetdrawlg
11 #define petscviewerdrawopen_       petscviewerdrawopen
12 #endif
13 
14 EXTERN_C_BEGIN
15 
16 void PETSC_STDCALL petscviewerdrawgetdraw_(PetscViewer *vin,int *win,PetscDraw *draw,PetscErrorCode *ierr)
17 {
18   PetscViewer v;
19   PetscPatchDefaultViewers_Fortran(vin,v);
20   *ierr = PetscViewerDrawGetDraw(v,*win,draw);
21 }
22 
23 void PETSC_STDCALL petscviewerdrawgetdrawlg_(PetscViewer *vin,int *win,PetscDrawLG *drawlg,PetscErrorCode *ierr)
24 {
25   PetscViewer v;
26   PetscPatchDefaultViewers_Fortran(vin,v);
27   *ierr = PetscViewerDrawGetDrawLG(v,*win,drawlg);
28 }
29 
30 void PETSC_STDCALL petscviewerdrawopen_(MPI_Comm *comm,CHAR display PETSC_MIXED_LEN(len1),
31                    CHAR title PETSC_MIXED_LEN(len2),int *x,int*y,int*w,int*h,PetscViewer *v,
32                    PetscErrorCode *ierr PETSC_END_LEN(len1) PETSC_END_LEN(len2))
33 {
34   char *c1,*c2;
35 
36   FIXCHAR(display,len1,c1);
37   FIXCHAR(title,len2,c2);
38   *ierr = PetscViewerDrawOpen(MPI_Comm_f2c(*(MPI_Fint*)&*comm),c1,c2,*x,*y,*w,*h,v);
39   FREECHAR(display,c1);
40   FREECHAR(title,c2);
41 }
42 
43 EXTERN_C_END
44