aboutsummaryrefslogtreecommitdiff
path: root/src/iobasicGH.h
blob: e957a008ef9a3686e34ea265ff19f549447c4f39 (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
 /*@@
   @header    iobasicGH.h
   @date      Friday 18th September 1999
   @author    Gabrielle Allen
   @desc
              The extensions to the GH structure from IOBasic.
   @enddesc
   @version $Header$
 @@*/

#include "StoreNamedData.h"


typedef struct IOBASIC_REDUCTION
{
  int handle;
  char *name;
  char is_valid;
  CCTK_REAL value;
  struct IOBASIC_REDUCTION *next;
} iobasic_reduction_t;

typedef struct IOBASIC_REDUCTIONLIST
{
  unsigned int num_reductions;
  iobasic_reduction_t *reductions;
} iobasic_reductionlist_t;

typedef struct IOBASIC_PARSEINFO
{
  const char *reductions_string;
  iobasic_reductionlist_t *reduction_list;
} iobasic_parseinfo_t;

typedef struct IOBASIC_GH
{
  /* how often to output */
  int  outScalar_every, outInfo_every;
  char info_reductions_changed;

  /* directory in which to place scalar output */
  char *outdir;

  /* The last iteration output */
  int *outInfo_last, *outScalar_last;

  /* The reduction lists for info and scalar output for all variables */
  iobasic_reductionlist_t *info_reductions, *scalar_reductions;

  /* database for names of output files that were already created */
  pNamedData *filenameListScalar;

} iobasicGH;


/* prototypes of functions to be registered */
int IOBasic_InfoOutputGH (const cGH *GH);
int IOBasic_TriggerInfoOutput (const cGH *GH, int vindex);
int IOBasic_TimeForInfoOutput (const cGH *GH, int vindex);
int IOBasic_ScalarOutputGH (const cGH *GH);
int IOBasic_TriggerScalarOutput (const cGH *GH, int vindex);
int IOBasic_TimeForScalarOutput (const cGH *GH, int vindex);

/* other function prototypes */
void IOBasic_AssignReductionList (int vindex, const char *optstring, void *arg);
int IOBasic_WriteInfo (const cGH *GH, int vindex);
int IOBasic_WriteScalar (const cGH *GH, int vindex, const char *alias);