Actual source code: zdrawvf.c

  1: #include <petsc/private/fortranimpl.h>
  2: #include <petscdraw.h>
  3: #include <petscviewer.h>

  5: #if defined(PETSC_HAVE_FORTRAN_CAPS)
  6:   #define petsc_viewer_draw__       PETSC_VIEWER_DRAW_BROKEN
  7:   #define petscviewerdrawgetdraw_   PETSCVIEWERDRAWGETDRAW
  8:   #define petscviewerdrawgetdrawlg_ PETSCVIEWERDRAWGETDRAWLG
  9:   #define petscviewerdrawopen_      PETSCVIEWERDRAWOPEN
 10: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
 11:   #define petsc_viewer_draw__       petsc_viewer_draw_
 12:   #define petscviewerdrawgetdraw_   petscviewerdrawgetdraw
 13:   #define petscviewerdrawgetdrawlg_ petscviewerdrawgetdrawlg
 14:   #define petscviewerdrawopen_      petscviewerdrawopen
 15: #endif

 17: #if defined(PETSC_HAVE_FORTRAN_UNDERSCORE_UNDERSCORE)
 18:   #define petsc_viewer_draw__ petsc_viewer_draw___
 19: #endif

 21: PETSC_EXTERN PetscViewer petsc_viewer_draw__(MPI_Comm *comm)
 22: {
 23:   return PETSC_VIEWER_DRAW_(MPI_Comm_f2c(*(MPI_Fint *)&*comm));
 24: }

 26: PETSC_EXTERN void petscviewerdrawgetdraw_(PetscViewer *vin, int *win, PetscDraw *draw, PetscErrorCode *ierr)
 27: {
 28:   PetscViewer v;
 29:   PetscPatchDefaultViewers_Fortran(vin, v);
 30:   *ierr = PetscViewerDrawGetDraw(v, *win, draw);
 31: }

 33: PETSC_EXTERN void petscviewerdrawgetdrawlg_(PetscViewer *vin, int *win, PetscDrawLG *drawlg, PetscErrorCode *ierr)
 34: {
 35:   PetscViewer v;
 36:   PetscPatchDefaultViewers_Fortran(vin, v);
 37:   *ierr = PetscViewerDrawGetDrawLG(v, *win, drawlg);
 38: }

 40: PETSC_EXTERN void petscviewerdrawopen_(MPI_Comm *comm, char *display, char *title, int *x, int *y, int *w, int *h, PetscViewer *v, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len1, PETSC_FORTRAN_CHARLEN_T len2)
 41: {
 42:   char *c1, *c2;

 44:   FIXCHAR(display, len1, c1);
 45:   FIXCHAR(title, len2, c2);
 46:   *ierr = PetscViewerDrawOpen(MPI_Comm_f2c(*(MPI_Fint *)&*comm), c1, c2, *x, *y, *w, *h, v);
 47:   if (*ierr) return;
 48:   FREECHAR(display, c1);
 49:   FREECHAR(title, c2);
 50: }