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 PETSC_EXTERN void PETSC_STDCALL petscfopen_(MPI_Comm *comm,CHAR fname PETSC_MIXED_LEN(len1),CHAR fmode PETSC_MIXED_LEN(len2), 12 FILE **file,PetscErrorCode *ierr PETSC_END_LEN(len1) PETSC_END_LEN(len2)) 13 { 14 char *c1,*c2; 15 16 FIXCHAR(fname,len1,c1); 17 FIXCHAR(fmode,len2,c2); 18 *ierr = PetscFOpen(MPI_Comm_f2c(*(MPI_Fint*)&*comm),c1,c2,file); 19 FREECHAR(fname,c1); 20 FREECHAR(fmode,c2); 21 } 22 23 PETSC_EXTERN void PETSC_STDCALL petscfclose_(MPI_Comm *comm,FILE **file,PetscErrorCode *ierr) 24 { 25 *ierr = PetscFClose(MPI_Comm_f2c(*(MPI_Fint*)&*comm),*file); 26 } 27 28