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