1 #include <petsc/private/fortranimpl.h> 2 #include <petscviewer.h> 3 4 #if defined(PETSC_HAVE_FORTRAN_CAPS) 5 #define petscviewersetformat_ PETSCVIEWERSETFORMAT 6 #define petscviewersettype_ PETSCVIEWERSETTYPE 7 #define petscviewergettype_ PETSCVIEWERGETTYPE 8 #define petscviewerpushformat_ PETSCVIEWERPUSHFORMAT 9 #define petscviewerpopformat_ PETSCVIEWERPOPFORMAT 10 #define petscviewerandformatcreate_ PETSCVIEWERANDFORMATCREATE 11 #define petscviewerandformatdestroy_ PETSCVIEWERANDFORMATDESTROY 12 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) 13 #define petscviewersetformat_ petscviewersetformat 14 #define petscviewersettype_ petscviewersettype 15 #define petscviewergettype_ petscviewergettype 16 #define petscviewerpushformat_ petscviewerpushformat 17 #define petscviewerpopformat_ petscviewerpopformat 18 #define petscviewerandformatcreate_ petscviewerandformatcreate 19 #define petscviewerandformatdestroy_ petscviewerandformatdestroy 20 #endif 21 22 PETSC_EXTERN PetscErrorCode PetscViewerSetFormatDeprecated(PetscViewer, PetscViewerFormat); 23 24 PETSC_EXTERN void PETSC_STDCALL petscviewerandformatcreate_(PetscViewer *vin, PetscViewerFormat *format, PetscViewerAndFormat **vf, PetscErrorCode *ierr) 25 { 26 PetscViewer v; 27 PetscPatchDefaultViewers_Fortran(vin, v); 28 *ierr = PetscViewerAndFormatCreate(v, *format, vf); 29 } 30 31 PETSC_EXTERN void petscviewerandformatdestroy_(PetscViewerAndFormat **vf, PetscErrorCode *ierr) 32 { 33 *ierr = PetscViewerAndFormatDestroy(vf); 34 } 35 36 PETSC_EXTERN void PETSC_STDCALL petscviewersetformat_(PetscViewer *vin, PetscViewerFormat *format, PetscErrorCode *ierr) 37 { 38 PetscViewer v; 39 PetscPatchDefaultViewers_Fortran(vin, v); 40 *ierr = PetscViewerSetFormatDeprecated(v, *format); 41 } 42 43 PETSC_EXTERN void PETSC_STDCALL petscviewersettype_(PetscViewer *x, char* type_name PETSC_MIXED_LEN(len), PetscErrorCode *ierr PETSC_END_LEN(len)) 44 { 45 char *t; 46 47 FIXCHAR(type_name, len, t); 48 *ierr = PetscViewerSetType(*x, t); 49 FREECHAR(type_name, t); 50 } 51 52 PETSC_EXTERN void PETSC_STDCALL petscviewergettype_(PetscViewer *viewer, char* type PETSC_MIXED_LEN(len), PetscErrorCode *ierr PETSC_END_LEN(len)) 53 { 54 const char *c1; 55 56 *ierr = PetscViewerGetType(*viewer, &c1); 57 *ierr = PetscStrncpy(type, c1, len); 58 FIXRETURNCHAR(PETSC_TRUE, type, len); 59 } 60 61 PETSC_EXTERN void PETSC_STDCALL petscviewerpushformat_(PetscViewer *vin, PetscViewerFormat *format, PetscErrorCode *ierr) 62 { 63 PetscViewer v; 64 PetscPatchDefaultViewers_Fortran(vin, v); 65 *ierr = PetscViewerPushFormat(v, *format); 66 } 67 68 PETSC_EXTERN void PETSC_STDCALL petscviewerpopformat_(PetscViewer *vin, PetscErrorCode *ierr) 69 { 70 PetscViewer v; 71 PetscPatchDefaultViewers_Fortran(vin, v); 72 *ierr = PetscViewerPopFormat(v); 73 } 74