xref: /petsc/src/sys/classes/viewer/impls/draw/ftn-custom/zdrawvf.c (revision 19caf8f3c08b1f0ca9f5469bde385c134aa76c82)
1af0996ceSBarry Smith #include <petsc/private/fortranimpl.h>
25c6c1daeSBarry Smith #include <petscdraw.h>
3665c2dedSJed Brown #include <petscviewer.h>
45c6c1daeSBarry Smith 
55c6c1daeSBarry Smith #if defined(PETSC_HAVE_FORTRAN_CAPS)
634e9cff2SSatish Balay #define petsc_viewer_draw__       PETSC_VIEWER_DRAW_BROKEN
75c6c1daeSBarry Smith #define petscviewerdrawgetdraw_   PETSCVIEWERDRAWGETDRAW
85c6c1daeSBarry Smith #define petscviewerdrawgetdrawlg_ PETSCVIEWERDRAWGETDRAWLG
95c6c1daeSBarry Smith #define petscviewerdrawopen_       PETSCVIEWERDRAWOPEN
105c6c1daeSBarry Smith #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
1134e9cff2SSatish Balay #define petsc_viewer_draw__       petsc_viewer_draw_
125c6c1daeSBarry Smith #define petscviewerdrawgetdraw_   petscviewerdrawgetdraw
135c6c1daeSBarry Smith #define petscviewerdrawgetdrawlg_ petscviewerdrawgetdrawlg
145c6c1daeSBarry Smith #define petscviewerdrawopen_       petscviewerdrawopen
155c6c1daeSBarry Smith #endif
165c6c1daeSBarry Smith 
1734e9cff2SSatish Balay #if defined(PETSC_HAVE_FORTRAN_UNDERSCORE_UNDERSCORE)
1834e9cff2SSatish Balay #define petsc_viewer_draw__      petsc_viewer_draw___
1934e9cff2SSatish Balay #endif
2034e9cff2SSatish Balay 
21*19caf8f3SSatish Balay PETSC_EXTERN PetscViewer petsc_viewer_draw__(MPI_Comm *comm)
2234e9cff2SSatish Balay {
2334e9cff2SSatish Balay   return PETSC_VIEWER_DRAW_(MPI_Comm_f2c(*(MPI_Fint*)&*comm));
2434e9cff2SSatish Balay }
2534e9cff2SSatish Balay 
26*19caf8f3SSatish Balay PETSC_EXTERN void petscviewerdrawgetdraw_(PetscViewer *vin,int *win,PetscDraw *draw,PetscErrorCode *ierr)
275c6c1daeSBarry Smith {
285c6c1daeSBarry Smith   PetscViewer v;
295c6c1daeSBarry Smith   PetscPatchDefaultViewers_Fortran(vin,v);
305c6c1daeSBarry Smith   *ierr = PetscViewerDrawGetDraw(v,*win,draw);
315c6c1daeSBarry Smith }
325c6c1daeSBarry Smith 
33*19caf8f3SSatish Balay PETSC_EXTERN void petscviewerdrawgetdrawlg_(PetscViewer *vin,int *win,PetscDrawLG *drawlg,PetscErrorCode *ierr)
345c6c1daeSBarry Smith {
355c6c1daeSBarry Smith   PetscViewer v;
365c6c1daeSBarry Smith   PetscPatchDefaultViewers_Fortran(vin,v);
375c6c1daeSBarry Smith   *ierr = PetscViewerDrawGetDrawLG(v,*win,drawlg);
385c6c1daeSBarry Smith }
395c6c1daeSBarry Smith 
40*19caf8f3SSatish Balay PETSC_EXTERN void petscviewerdrawopen_(MPI_Comm *comm,char* display,
41*19caf8f3SSatish Balay                    char* title,int *x,int*y,int*w,int*h,PetscViewer *v,
42*19caf8f3SSatish Balay                    PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len1,PETSC_FORTRAN_CHARLEN_T len2)
435c6c1daeSBarry Smith {
445c6c1daeSBarry Smith   char *c1,*c2;
455c6c1daeSBarry Smith 
465c6c1daeSBarry Smith   FIXCHAR(display,len1,c1);
475c6c1daeSBarry Smith   FIXCHAR(title,len2,c2);
48d49bb8f9SBarry Smith   *ierr = PetscViewerDrawOpen(MPI_Comm_f2c(*(MPI_Fint*)&*comm),c1,c2,*x,*y,*w,*h,v);if (*ierr) return;
495c6c1daeSBarry Smith   FREECHAR(display,c1);
505c6c1daeSBarry Smith   FREECHAR(title,c2);
515c6c1daeSBarry Smith }
525c6c1daeSBarry Smith 
53