1 #include <petsc/private/fortranimpl.h> 2 #include <petscviewer.h> 3 4 #if defined(PETSC_HAVE_FORTRAN_CAPS) 5 #define petscviewersetformat_ PETSCVIEWERSETFORMAT 6 #define petscviewerpushformat_ PETSCVIEWERPUSHFORMAT 7 #define petscviewerpopformat_ PETSCVIEWERPOPFORMAT 8 #define petscviewerandformatcreate_ PETSCVIEWERANDFORMATCREATE 9 #define petscviewerandformatdestroy_ PETSCVIEWERANDFORMATDESTROY 10 #define petscviewergetsubviewer_ PETSCVIEWERGETSUBVIEWER 11 #define petscviewerrestoresubviewer_ PETSCVIEWERRESTORESUBVIEWER 12 #define petscviewerflush_ PETSCVIEWERFLUSH 13 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) 14 #define petscviewersetformat_ petscviewersetformat 15 #define petscviewerpushformat_ petscviewerpushformat 16 #define petscviewerpopformat_ petscviewerpopformat 17 #define petscviewerandformatcreate_ petscviewerandformatcreate 18 #define petscviewerandformatdestroy_ petscviewerandformatdestroy 19 #define petscviewergetsubviewer_ petscviewergetsubviewer 20 #define petscviewerrestoresubviewer_ petscviewerrestoresubviewer 21 #define petscviewerflush_ petscviewerflush 22 #endif 23 24 PETSC_EXTERN void petscviewerflush_(PetscViewer *viewer, int *ierr) 25 { 26 PetscViewer v; 27 PetscPatchDefaultViewers_Fortran(viewer, v); 28 *ierr = PetscViewerFlush(v); 29 } 30 31 PETSC_EXTERN void petscviewergetsubviewer_(PetscViewer *vin, MPI_Fint *comm, PetscViewer *outviewer, PetscErrorCode *ierr) 32 { 33 PetscViewer v; 34 PetscPatchDefaultViewers_Fortran(vin, v); 35 *ierr = PetscViewerGetSubViewer(v, MPI_Comm_f2c(*(comm)), outviewer); 36 } 37 38 PETSC_EXTERN void petscviewerrestoresubviewer_(PetscViewer *vin, MPI_Fint *comm, PetscViewer *outviewer, PetscErrorCode *ierr) 39 { 40 PetscViewer v; 41 PetscPatchDefaultViewers_Fortran(vin, v); 42 *ierr = PetscViewerRestoreSubViewer(v, MPI_Comm_f2c(*(comm)), outviewer); 43 } 44 45 PETSC_EXTERN void petscviewerandformatcreate_(PetscViewer *vin, PetscViewerFormat *format, PetscViewerAndFormat **vf, PetscErrorCode *ierr) 46 { 47 PetscViewer v; 48 PetscPatchDefaultViewers_Fortran(vin, v); 49 *ierr = PetscViewerAndFormatCreate(v, *format, vf); 50 } 51 52 PETSC_EXTERN void petscviewerandformatdestroy_(PetscViewerAndFormat **vf, PetscErrorCode *ierr) 53 { 54 *ierr = PetscViewerAndFormatDestroy(vf); 55 } 56 57 PETSC_EXTERN void petscviewerpushformat_(PetscViewer *vin, PetscViewerFormat *format, PetscErrorCode *ierr) 58 { 59 PetscViewer v; 60 PetscPatchDefaultViewers_Fortran(vin, v); 61 *ierr = PetscViewerPushFormat(v, *format); 62 } 63 64 PETSC_EXTERN void petscviewerpopformat_(PetscViewer *vin, PetscErrorCode *ierr) 65 { 66 PetscViewer v; 67 PetscPatchDefaultViewers_Fortran(vin, v); 68 *ierr = PetscViewerPopFormat(v); 69 } 70