1 #include <petsc/private/fortranimpl.h> 2 #include <petscviewerhdf5.h> 3 4 #if defined(PETSC_HAVE_FORTRAN_CAPS) 5 #define petscviewerhdf5open_ PETSCVIEWERHDF5OPEN 6 #define petscviewerhdf5pushgroup_ PETSCVIEWERHDF5PUSHGROUP 7 #define petscviewerhdf5getgroup_ PETSCVIEWERHDF5GETGROUP 8 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) 9 #define petscviewerhdf5open_ petscviewerhdf5open 10 #define petscviewerhdf5pushgroup_ petscviewerhdf5pushgroup 11 #define petscviewerhdf5getgroup_ petscviewerhdf5getgroup 12 #endif 13 14 PETSC_EXTERN void PETSC_STDCALL petscviewerhdf5open_(MPI_Comm *comm,CHAR name PETSC_MIXED_LEN(len),PetscFileMode *type, 15 PetscViewer *binv,PetscErrorCode *ierr PETSC_END_LEN(len)) 16 { 17 char *c1; 18 FIXCHAR(name,len,c1); 19 *ierr = PetscViewerHDF5Open(MPI_Comm_f2c(*(MPI_Fint*)&*comm),c1,*type,binv); 20 FREECHAR(name,c1); 21 } 22 23 PETSC_EXTERN void PETSC_STDCALL petscviewerhdf5pushgroup_(PetscViewer *viewer, CHAR name PETSC_MIXED_LEN(len), 24 PetscErrorCode *ierr PETSC_END_LEN(len)) 25 { 26 char *c1; 27 FIXCHAR(name,len,c1); 28 *ierr = PetscViewerHDF5PushGroup(*viewer,c1); 29 FREECHAR(name,c1); 30 } 31 32 PETSC_EXTERN void PETSC_STDCALL petscviewerhdf5getgroup_(PetscViewer *viewer, CHAR name PETSC_MIXED_LEN(len), 33 PetscErrorCode *ierr PETSC_END_LEN(len)) 34 { 35 const char *c1; 36 *ierr = PetscViewerHDF5GetGroup(*viewer,&c1); 37 *ierr = PetscStrncpy(name,c1,len); 38 FIXRETURNCHAR(PETSC_TRUE,name,len); 39 } 40