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