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