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