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