xref: /petsc/src/sys/classes/viewer/impls/binary/ftn-custom/zbinvf90.c (revision 6dd63270497ad23dcf16ae500a87ff2b2a0b7474)
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