xref: /petsc/src/sys/fileio/ftn-custom/zsysiof.c (revision 9860990e59c4c800a263b1f7b2b4653b5eba6a88)
1af0996ceSBarry Smith #include <petsc/private/fortranimpl.h>
255fcb7f5SSatish Balay 
355fcb7f5SSatish Balay #if defined(PETSC_HAVE_FORTRAN_CAPS)
455fcb7f5SSatish Balay #define petscbinaryopen_           PETSCBINARYOPEN
5*9860990eSLisandro Dalcin #define petscbinaryread_           PETSCBINARYREAD
6c1bccaadSBarry Smith #define petsctestfile_             PETSCTESTFILE
755fcb7f5SSatish Balay #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
855fcb7f5SSatish Balay #define petscbinaryopen_           petscbinaryopen
9*9860990eSLisandro Dalcin #define petscbinaryread_           petscbinaryread
10a8cc4164SSatish Balay #define petsctestfile_             petsctestfile
1155fcb7f5SSatish Balay #endif
1255fcb7f5SSatish Balay 
13390e1bf2SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscbinaryopen_(char* name PETSC_MIXED_LEN(len),PetscFileMode *type,int *fd,
1455fcb7f5SSatish Balay                                     PetscErrorCode *ierr PETSC_END_LEN(len))
1555fcb7f5SSatish Balay {
1655fcb7f5SSatish Balay   char *c1;
1755fcb7f5SSatish Balay 
1855fcb7f5SSatish Balay   FIXCHAR(name,len,c1);
19d49bb8f9SBarry Smith   *ierr = PetscBinaryOpen(c1,*type,fd);if (*ierr) return;
2055fcb7f5SSatish Balay   FREECHAR(name,c1);
2155fcb7f5SSatish Balay }
2255fcb7f5SSatish Balay 
23*9860990eSLisandro Dalcin PETSC_EXTERN void PETSC_STDCALL  petscbinaryread_(int *fd,void *data,PetscInt *num,PetscInt *count,PetscDataType *type,int *ierr)
24*9860990eSLisandro Dalcin {
25*9860990eSLisandro Dalcin   CHKFORTRANNULLINTEGER(count);
26*9860990eSLisandro Dalcin   *ierr = PetscBinaryRead(*fd,data,*num,count,*type);if (*ierr) return;
27*9860990eSLisandro Dalcin }
28*9860990eSLisandro Dalcin 
29390e1bf2SBarry Smith PETSC_EXTERN void PETSC_STDCALL petsctestfile_(char* name PETSC_MIXED_LEN(len),char* mode PETSC_MIXED_LEN(len1),PetscBool *flg,PetscErrorCode *ierr PETSC_END_LEN(len) PETSC_END_LEN(len1))
30c1bccaadSBarry Smith {
31ca43db0aSBarry Smith   char *c1;
32c1bccaadSBarry Smith 
33c1bccaadSBarry Smith   FIXCHAR(name,len,c1);
34d49bb8f9SBarry Smith   *ierr = PetscTestFile(c1,*mode,flg);if (*ierr) return;
35c1bccaadSBarry Smith   FREECHAR(name,c1);
36c1bccaadSBarry Smith }
37