1*6dd63270SBarry Smith #include <petsc/private/ftnimpl.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 155975b3b6SBarry Smith PETSC_EXTERN void petscfopen_(MPI_Comm *comm, char *fname, char *fmode, FILE **file, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len1, PETSC_FORTRAN_CHARLEN_T len2) 1655fcb7f5SSatish Balay { 1755fcb7f5SSatish Balay char *c1, *c2; 1855fcb7f5SSatish Balay 1955fcb7f5SSatish Balay FIXCHAR(fname, len1, c1); 2055fcb7f5SSatish Balay FIXCHAR(fmode, len2, c2); 215975b3b6SBarry Smith *ierr = PetscFOpen(MPI_Comm_f2c(*(MPI_Fint *)&*comm), c1, c2, file); 225975b3b6SBarry Smith if (*ierr) return; 2355fcb7f5SSatish Balay FREECHAR(fname, c1); 2455fcb7f5SSatish Balay FREECHAR(fmode, c2); 2555fcb7f5SSatish Balay } 2655fcb7f5SSatish Balay 2719caf8f3SSatish 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