xref: /petsc/src/sys/fileio/ftn-custom/zmpiuopenf.c (revision 18d1adefffea661e60e6680fc855c731754765cd)
1af0996ceSBarry Smith #include <petsc/private/fortranimpl.h>
255fcb7f5SSatish Balay 
355fcb7f5SSatish Balay #if defined(PETSC_HAVE_FORTRAN_CAPS)
455fcb7f5SSatish Balay #define petscfopen_                PETSCFOPEN
5e8976759SBarry Smith #define petscfclose_               PETSCFCLOSE
655fcb7f5SSatish Balay #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
755fcb7f5SSatish Balay #define petscfopen_                petscfopen
8e8976759SBarry Smith #define petscfclose_               petscfclose
955fcb7f5SSatish Balay #endif
1055fcb7f5SSatish Balay 
11*18d1adefSBarry Smith #if defined(__cplusplus)
12*18d1adefSBarry Smith extern "C" {
13*18d1adefSBarry Smith #endif
14*18d1adefSBarry Smith 
15390e1bf2SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscfopen_(MPI_Comm *comm,char* fname PETSC_MIXED_LEN(len1),char* fmode PETSC_MIXED_LEN(len2),
1655fcb7f5SSatish Balay                                FILE **file,PetscErrorCode *ierr PETSC_END_LEN(len1) PETSC_END_LEN(len2))
1755fcb7f5SSatish Balay {
1855fcb7f5SSatish Balay   char *c1,*c2;
1955fcb7f5SSatish Balay 
2055fcb7f5SSatish Balay   FIXCHAR(fname,len1,c1);
2155fcb7f5SSatish Balay   FIXCHAR(fmode,len2,c2);
22d49bb8f9SBarry Smith   *ierr = PetscFOpen(MPI_Comm_f2c(*(MPI_Fint*)&*comm),c1,c2,file);if (*ierr) return;
2355fcb7f5SSatish Balay   FREECHAR(fname,c1);
2455fcb7f5SSatish Balay   FREECHAR(fmode,c2);
2555fcb7f5SSatish Balay }
2655fcb7f5SSatish Balay 
27e8976759SBarry Smith PETSC_EXTERN void PETSC_STDCALL petscfclose_(MPI_Comm *comm,FILE **file,PetscErrorCode *ierr)
28e8976759SBarry Smith {
29e8976759SBarry Smith   *ierr = PetscFClose(MPI_Comm_f2c(*(MPI_Fint*)&*comm),*file);
30e8976759SBarry Smith }
31e8976759SBarry Smith 
32*18d1adefSBarry Smith #if defined(__cplusplus)
33*18d1adefSBarry Smith }
34*18d1adefSBarry Smith #endif
35