Actual source code: zstringvf.c
1: #include <petsc/private/ftnimpl.h>
2: #include <petscviewer.h>
4: #if PetscDefined(HAVE_FORTRAN_CAPS)
5: #define petscviewerstringopen_ PETSCVIEWERSTRINGOPEN
6: #define petscviewerstringsetstring_ PETSCVIEWERSTRINGSETSTRING
7: #define petscviewerstringgetstringread_ PETSCVIEWERSTRINGGETSTRINGREAD
8: #elif !PetscDefined(HAVE_FORTRAN_UNDERSCORE)
9: #define petscviewerstringopen_ petscviewerstringopen
10: #define petscviewerstringsetstring_ petscviewerstringsetstring
11: #define petscviewerstringgetstringread_ petscviewerstringgetstringread
12: #endif
14: PETSC_EXTERN void petscviewerstringopen_(MPI_Comm *comm, char *name, PetscViewer *str, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len1)
15: {
16: PETSC_FORTRAN_OBJECT_CREATE(str);
17: *ierr = PetscViewerStringOpen(MPI_Comm_f2c(*(MPI_Fint *)&*comm), name, len1, str);
18: }
20: PETSC_EXTERN void petscviewerstringsetstring_(PetscViewer *str, char *name, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len1)
21: {
22: PetscViewer v_a = PetscPatchDefaultViewers(str);
23: *ierr = PetscViewerStringSetString(v_a, name, len1);
24: }
26: PETSC_EXTERN void petscviewerstringgetstringread_(PetscViewer *viewer, char string[], PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T l_string)
27: {
28: size_t len;
29: char *c_string = PETSC_NULLPTR;
30: PetscViewer v_viewer = PetscPatchDefaultViewers(viewer);
31: *ierr = PetscViewerStringGetStringRead(v_viewer, (const char **)&c_string, &len);
32: if (*ierr) return;
33: *ierr = PetscStrncpy((char *)string, c_string, l_string);
34: if (*ierr) return;
35: }