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