xref: /petsc/src/sys/classes/viewer/impls/draw/ftn-custom/zdrawvf.c (revision 34e9cff27d07519c2d99d1c0a9fe31a7bc1659d3)
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)
6*34e9cff2SSatish 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)
11*34e9cff2SSatish 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 
17*34e9cff2SSatish Balay #if defined(PETSC_HAVE_FORTRAN_UNDERSCORE_UNDERSCORE)
18*34e9cff2SSatish Balay #define petsc_viewer_draw__      petsc_viewer_draw___
19*34e9cff2SSatish Balay #endif
20*34e9cff2SSatish Balay 
21*34e9cff2SSatish Balay PETSC_EXTERN PetscViewer PETSC_STDCALL petsc_viewer_draw__(MPI_Comm *comm)
22*34e9cff2SSatish Balay {
23*34e9cff2SSatish Balay   return PETSC_VIEWER_DRAW_(MPI_Comm_f2c(*(MPI_Fint*)&*comm));
24*34e9cff2SSatish Balay }
25*34e9cff2SSatish Balay 
268cc058d9SJed Brown PETSC_EXTERN void PETSC_STDCALL 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 
338cc058d9SJed Brown PETSC_EXTERN void PETSC_STDCALL 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 
40390e1bf2SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscviewerdrawopen_(MPI_Comm *comm,char* display PETSC_MIXED_LEN(len1),
41390e1bf2SBarry Smith                    char* title PETSC_MIXED_LEN(len2),int *x,int*y,int*w,int*h,PetscViewer *v,
425c6c1daeSBarry Smith                    PetscErrorCode *ierr PETSC_END_LEN(len1) PETSC_END_LEN(len2))
435c6c1daeSBarry Smith {
445c6c1daeSBarry Smith   char *c1,*c2;
455c6c1daeSBarry Smith 
465c6c1daeSBarry Smith   FIXCHAR(display,len1,c1);
475c6c1daeSBarry Smith   FIXCHAR(title,len2,c2);
485c6c1daeSBarry Smith   *ierr = PetscViewerDrawOpen(MPI_Comm_f2c(*(MPI_Fint*)&*comm),c1,c2,*x,*y,*w,*h,v);
495c6c1daeSBarry Smith   FREECHAR(display,c1);
505c6c1daeSBarry Smith   FREECHAR(title,c2);
515c6c1daeSBarry Smith }
525c6c1daeSBarry Smith 
53