1 #include <petsc/private/ftnimpl.h> 2 #include <petscviewer.h> 3 4 #if defined(PETSC_HAVE_FORTRAN_CAPS) 5 #define petscviewerbinarywriteint_ PETSCVIEWERBINARYWRITEINT 6 #define petscviewerbinarywritescalar_ PETSCVIEWERBINARYWRITESCALAR 7 #define petscviewerbinarywritereal_ PETSCVIEWERBINARYWRITEREAL 8 #define petscviewerbinaryreadint_ PETSCVIEWERBINARYREADINT 9 #define petscviewerbinaryreadscalar_ PETSCVIEWERBINARYREADSCALAR 10 #define petscviewerbinaryreadreal_ PETSCVIEWERBINARYREADREAL 11 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) 12 #define petscviewerbinarywriteint_ petscviewerbinarywriteint 13 #define petscviewerbinarywritescalar_ petscviewerbinarywritescalar 14 #define petscviewerbinarywritereal_ petscviewerbinarywritereal 15 #define petscviewerbinaryreadint_ petscviewerbinaryreadint 16 #define petscviewerbinaryreadscalar_ petscviewerbinaryreadscalar 17 #define petscviewerbinaryreadreal_ petscviewerbinaryreadreal 18 #endif 19 20 PETSC_EXTERN void petscviewerbinarywriteint_(PetscViewer *viewer, PetscInt *a, PetscInt *len, PetscErrorCode *ierr) 21 { 22 PetscViewer v; 23 PetscPatchDefaultViewers_Fortran(viewer, v); 24 *ierr = PetscViewerBinaryWrite(v, a, *len, PETSC_INT); 25 } 26 27 PETSC_EXTERN void petscviewerbinarywritescalar_(PetscViewer *viewer, PetscScalar *a, PetscInt *len, PetscErrorCode *ierr) 28 { 29 PetscViewer v; 30 PetscPatchDefaultViewers_Fortran(viewer, v); 31 *ierr = PetscViewerBinaryWrite(v, a, *len, PETSC_SCALAR); 32 } 33 34 PETSC_EXTERN void petscviewerbinarywritereal_(PetscViewer *viewer, PetscReal *a, PetscInt *len, PetscErrorCode *ierr) 35 { 36 PetscViewer v; 37 PetscPatchDefaultViewers_Fortran(viewer, v); 38 *ierr = PetscViewerBinaryWrite(v, a, *len, PETSC_REAL); 39 } 40 41 PETSC_EXTERN void petscviewerbinaryreadint_(PetscViewer *viewer, PetscInt *a, PetscInt *len, PetscInt *count, PetscErrorCode *ierr) 42 { 43 PetscViewer v; 44 PetscPatchDefaultViewers_Fortran(viewer, v); 45 CHKFORTRANNULLINTEGER(count); 46 *ierr = PetscViewerBinaryRead(v, a, *len, count, PETSC_INT); 47 } 48 49 PETSC_EXTERN void petscviewerbinaryreadscalar_(PetscViewer *viewer, PetscScalar *a, PetscInt *len, PetscInt *count, PetscErrorCode *ierr) 50 { 51 PetscViewer v; 52 PetscPatchDefaultViewers_Fortran(viewer, v); 53 CHKFORTRANNULLINTEGER(count); 54 *ierr = PetscViewerBinaryRead(v, a, *len, count, PETSC_SCALAR); 55 } 56 57 PETSC_EXTERN void petscviewerbinaryreadreal_(PetscViewer *viewer, PetscReal *a, PetscInt *len, PetscInt *count, PetscErrorCode *ierr) 58 { 59 PetscViewer v; 60 PetscPatchDefaultViewers_Fortran(viewer, v); 61 CHKFORTRANNULLINTEGER(count); 62 *ierr = PetscViewerBinaryRead(v, a, *len, count, PETSC_REAL); 63 } 64