xref: /petsc/src/sys/classes/viewer/impls/ascii/asciiimpl.h (revision 3ea99036a5fedea4d39e7e77471d0ab500c249d7)
1 #ifndef ASCIIIMPL_H
2 #define ASCIIIMPL_H
3 
4 #include <petsc/private/viewerimpl.h> /*I     "petscsys.h"   I*/
5 #include <../src/sys/fileio/mprint.h> /* defines the queue datastructures and variables */
6 
7 typedef struct {
8   FILE         *fd;
9   PetscFileMode mode;      /* The mode in which to open the file */
10   PetscInt      tab;       /* how many times text is tabbed in from left */
11   PetscInt      tab_store; /* store tabs value while tabs are turned off */
12   PetscViewer   bviewer;   /* if PetscViewer is a singleton, this points to mother */
13   PetscViewer   sviewer;   /* if PetscViewer has a singleton, this points to singleton */
14   PetscViewer   subviewer; /* used with PetscViewerGetSubViewer() */
15   char         *filename;
16   PetscBool     storecompressed;
17   PetscBool     closefile;
18   PetscInt      allowsynchronized; /* allow synchronized writes from any process to the viewer */
19 
20   PrintfQueue petsc_printfqueue, petsc_printfqueuebase;
21   int         petsc_printfqueuelength;
22 
23   PetscInt fileunit; /* indicates the output is printed with Fortran IO */
24 } PetscViewer_ASCII;
25 
26 typedef struct PetscViewerLink_t PetscViewerLink;
27 struct PetscViewerLink_t {
28   PetscViewer               viewer;
29   struct PetscViewerLink_t *next;
30 };
31 
32 PETSC_EXTERN PetscMPIInt MPIAPI Petsc_DelViewer(MPI_Comm, PetscMPIInt, void *, void *);
33 #endif
34