1 #include <petsc/private/fortranimpl.h> 2 3 #if defined(PETSC_HAVE_FORTRAN_CAPS) 4 #define petscfopen_ PETSCFOPEN 5 #define petscfclose_ PETSCFCLOSE 6 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) 7 #define petscfopen_ petscfopen 8 #define petscfclose_ petscfclose 9 #endif 10 11 #if defined(__cplusplus) 12 extern "C" { 13 #endif 14 15 PETSC_EXTERN void petscfopen_(MPI_Comm *comm,char* fname,char* fmode, 16 FILE **file,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len1,PETSC_FORTRAN_CHARLEN_T len2) 17 { 18 char *c1,*c2; 19 20 FIXCHAR(fname,len1,c1); 21 FIXCHAR(fmode,len2,c2); 22 *ierr = PetscFOpen(MPI_Comm_f2c(*(MPI_Fint*)&*comm),c1,c2,file);if (*ierr) return; 23 FREECHAR(fname,c1); 24 FREECHAR(fmode,c2); 25 } 26 27 PETSC_EXTERN void petscfclose_(MPI_Comm *comm,FILE **file,PetscErrorCode *ierr) 28 { 29 *ierr = PetscFClose(MPI_Comm_f2c(*(MPI_Fint*)&*comm),*file); 30 } 31 32 #if defined(__cplusplus) 33 } 34 #endif 35