aboutsummaryrefslogtreecommitdiff
path: root/src/ioGH.h
blob: b6743eb96f73b158ce6cc58f3517a5d71cdf6644 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
 /*@@
   @header    ioGH.h
   @date      Tue 9th Jan 1999
   @author    Gabrielle Allen
   @desc 
   The extensions to the GH structure from IOUtil.
   @history
   @hauthor Thomas Radke @hdate 16 Mar 1999
   @hdesc Added parameters for 2D and 3D output
   @hauthor Thomas Radke @hdate 17 Mar 1999
   @hdesc Changed naming: IEEEIO -> FlexIO
   @hauthor Thomas Radke @hdate 30 Mar 1999
   @hdesc Undefined DI macro
   @endhistory
   @version $Header$
 @@*/


typedef struct IOGH {

#if 0
  /* TR: commented these things out because they were moved into the other
         IO thorns' GH extensions
         But maybe someday we want them back here, eg. if the user 
         wants to say how often to do 3D output in general for all IO thorns
         that can produce 3D output; of course they should still be able
         override this with their own parameters.
   */
  /* How often to output */
  int  infoevery;
  int  IO_0Devery;
  int  IO_1Devery;
  int  IO_2Devery;
  int  IO_3Devery;

  /* Directory in which to output */
  char  *outpfx_0D;
  char  *outpfx_1D;
  char  *outpfx_2D;
  char  *outpfx_3D;
#endif

  /* for 3D output */
  int ioproc;       /* the IO processor each proc belongs to */
  int nioprocs;     /* total number of IO processors */
  int ioproc_every; /* output by every N'th processor */
  int unchunked;    /* if true generate unchunked output file */
  int *downsample;  /* downsampling parameters array of size cctk_maxdim */
  int out_single;   /* if true output 3D data in single precision */

  /* for recovery */
  int recovered;    /* flag indicated restart after successful recovery */

} ioGH;

/* enums for checkpointing/recovery and filereader functions */
enum {CP_INITIAL_DATA, CP_EVOLUTION_DATA, CP_RECOVER_PARAMETERS,
      CP_RECOVER_DATA, FILEREADER_DATA};

/* prototypes of routines that are exported by IOUtil to other IO thorns */
extern void ParseVarsForOutput (const char *var_list, char do_output []);
extern void IOUtil_PrepareFilename (cGH *GH, const char *basename, char *fname,
                                int called_from, int ioproc,int file_unchunked);
extern int IOUtil_RegisterRecover (const char *name,
                                   int (*func) (cGH *, const char *, int));
extern int IOUtil_RecoverFromFile (cGH *GH, const char *basename,
                                   int called_from);
extern char *IOUtil_GetAllParameters (cGH *GH);
extern void IOUtil_SetAllParameters (char *parameters);