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