xref: /petsc/src/sys/fileio/ftn-custom/zmpiuopenf.c (revision 19caf8f3c08b1f0ca9f5469bde385c134aa76c82)
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 
1118d1adefSBarry Smith #if defined(__cplusplus)
1218d1adefSBarry Smith extern "C" {
1318d1adefSBarry Smith #endif
1418d1adefSBarry Smith 
15*19caf8f3SSatish Balay PETSC_EXTERN void petscfopen_(MPI_Comm *comm,char* fname,char* fmode,
16*19caf8f3SSatish Balay                                FILE **file,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len1,PETSC_FORTRAN_CHARLEN_T 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 
27*19caf8f3SSatish Balay PETSC_EXTERN void 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 
3218d1adefSBarry Smith #if defined(__cplusplus)
3318d1adefSBarry Smith }
3418d1adefSBarry Smith #endif
35