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 PETSC_EXTERN void PETSC_STDCALL petscviewerdrawgetdraw_(PetscViewer *vin,int *win,PetscDraw *draw,PetscErrorCode *ierr) 16 { 17 PetscViewer v; 18 PetscPatchDefaultViewers_Fortran(vin,v); 19 *ierr = PetscViewerDrawGetDraw(v,*win,draw); 20 } 21 22 PETSC_EXTERN void PETSC_STDCALL petscviewerdrawgetdrawlg_(PetscViewer *vin,int *win,PetscDrawLG *drawlg,PetscErrorCode *ierr) 23 { 24 PetscViewer v; 25 PetscPatchDefaultViewers_Fortran(vin,v); 26 *ierr = PetscViewerDrawGetDrawLG(v,*win,drawlg); 27 } 28 29 PETSC_EXTERN void PETSC_STDCALL petscviewerdrawopen_(MPI_Comm *comm,CHAR display PETSC_MIXED_LEN(len1), 30 CHAR title PETSC_MIXED_LEN(len2),int *x,int*y,int*w,int*h,PetscViewer *v, 31 PetscErrorCode *ierr PETSC_END_LEN(len1) PETSC_END_LEN(len2)) 32 { 33 char *c1,*c2; 34 35 FIXCHAR(display,len1,c1); 36 FIXCHAR(title,len2,c2); 37 *ierr = PetscViewerDrawOpen(MPI_Comm_f2c(*(MPI_Fint*)&*comm),c1,c2,*x,*y,*w,*h,v); 38 FREECHAR(display,c1); 39 FREECHAR(title,c2); 40 } 41 42