xref: /petsc/src/sys/fileio/ftn-custom/zmpiuopenf.c (revision b0dcfd164860a975c76f90dabf1036901aab1c4e)
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 
petscfopen_(MPI_Comm * comm,char * fname,char * fmode,FILE ** file,PetscErrorCode * ierr,PETSC_FORTRAN_CHARLEN_T len1,PETSC_FORTRAN_CHARLEN_T len2)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 
petscfclose_(MPI_Comm * comm,FILE ** file,PetscErrorCode * ierr)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