data.h

References to this file elsewhere.
1 #ifndef DATA_H
2 #include "registry.h"
3 
4 typedef struct node_struct {
5 
6   int     node_kind ;
7   int     type_type ;
8   char          name[NAMELEN] ;
9   struct node_struct  * fields ;
10   struct node_struct  * type ;
11   int           ndims ;
12   struct node_struct  * dims[MAXDIMS] ;
13   int     proc_orient ;    /* ALL_[ZXY]_ON_PROC which dimension is all on processor */
14   int           ntl ;
15   int           stag_x ;
16   int           stag_y ;
17   int           stag_z ;
18   int           subject_to_communication ;
19   int           boundary_array ;
20   int           boundary_array_4d ;
21   char    use[NAMELEN] ;
22   char    dname[NAMELEN] ;
23   char    descrip[NAMELEN] ;
24   char    units[NAMELEN] ;
25 
26 /* Fields for 4D scalar arrays */
27   int           scalar_array_member ;
28   int           has_scalar_array_tendencies ;
29   struct node_struct * members ;
30 
31 /* I/O flags */
32   int     io_mask ;
33   int           history ;
34   int             auxhist1 ;
35   int             auxhist2 ;
36   int             auxhist3 ;
37   int             auxhist4 ;
38   int             auxhist5 ;
39   int             auxhist6 ;
40   int             auxhist7 ;
41   int             auxhist8 ;
42   int             auxhist9 ;
43   int             auxhist10 ;
44   int             auxhist11 ;
45   int           restart ;
46   int           input   ;
47   int             auxinput1   ;
48   int             auxinput2   ;
49   int             auxinput3   ;
50   int             auxinput4   ;
51   int             auxinput5   ;
52   int             auxinput6   ;
53   int             auxinput7   ;
54   int             auxinput8   ;
55   int             auxinput9   ;
56   int             auxinput10   ;
57   int             auxinput11   ;
58   int           boundary   ;
59   int           namelist   ;
60   char    namelistsection[NAMELEN] ;
61   struct node_struct * next ;
62   struct node_struct * next4d ;
63 
64   char force_aux_fields[2048] ;
65   char force_fcn_name[2048] ;
66   char interpd_aux_fields[2048] ;
67   char interpd_fcn_name[2048] ;
68   char interpu_aux_fields[2048] ;
69   char interpu_fcn_name[2048] ;
70   char smoothu_fcn_name[2048] ;
71   char smoothu_aux_fields[2048] ;
72 
73 /* fields used by rconfig nodes */
74   char nentries[NAMELEN] ;
75   char howset[NAMELEN] ;
76   char dflt[NAMELEN] ;
77 
78 /* fields used by Dim nodes */
79 
80   char dim_name ;
81   char dim_data_name[NAMELEN] ;
82   int  coord_axis ;   /* X, Y, Z, C */
83                                  /* DOMAIN_STANDARD, NAMELIST, CONSTANT */
84   int  len_defined_how ;  
85   char assoc_nl_var_s[NAMELEN] ;  /* for NAMELIST */
86   char assoc_nl_var_e[NAMELEN] ;  /* for NAMELIST */
87   int  coord_start ;               /* for CONSTANT */
88   int  coord_end ;                 /* for CONSTANT */
89   int  dim_order ;                 /* order that dimensions are specified
90                                       in framework */
91   int  subgrid ;                  /* 1=subgrid dimension */
92 
93 /* fields used by Package nodes */
94   char pkg_assoc[NAMELEN] ;
95   char pkg_statevars[NAMELEN] ;
96   char pkg_4dscalars[NAMELEN_LONG] ;
97 
98 /* fields used by Comm (halo, period, xpose)  nodes */
99   char comm_define[2*8192] ;
100 
101 /* marker */
102   int mark ;
103 
104 } node_t ;
105 
106 #ifndef DEFINE_GLOBALS
107 #  define EXTERN extern
108 #else
109 #  define EXTERN
110 #endif
111 
112 EXTERN int sw_deref_kludge ;
113 EXTERN int sw_io_deref_kludge ;
114 EXTERN int sw_3dvar_iry_kludge ;
115 EXTERN int sw_distrib_io_layer ;
116 EXTERN int sw_limit_args ;
117 EXTERN int sw_dm_parallel  ;
118 EXTERN int sw_move  ;
119 EXTERN int sw_all_x_staggered ;
120 EXTERN int sw_all_y_staggered ;
121 EXTERN int sw_dm_serial_in_only ;
122 EXTERN int sw_ifort_kludge ;
123 EXTERN char sw_commpath[NAMELEN] ;
124 EXTERN int sw_new_bdys ;  /* 20070207 JM support decomposed boundary arrays */
125 EXTERN int sw_new_with_old_bdys ;  /* 20070207 JM for debugging interim phase, new comms w/ old data structs */
126 
127 EXTERN node_t * Type ;
128 EXTERN node_t * Dim ;
129 EXTERN node_t * Packages ;
130 EXTERN node_t * Halos ;
131 EXTERN node_t * Periods ;
132 EXTERN node_t * Xposes ;
133 EXTERN node_t * FourD ;
134 EXTERN node_t * Swaps ;
135 EXTERN node_t * Cycles ;
136 
137 EXTERN node_t Domain ;
138 
139 EXTERN char t1[NAMELEN], t2[NAMELEN], t3[NAMELEN], t4[NAMELEN], t5[NAMELEN], t6[NAMELEN] ;
140 EXTERN char thiscom[4*NAMELEN] ;
141 EXTERN int  model_order[3] ;
142 
143 EXTERN int max_time_level  ;  /* Maximum number of time levels of any state variable */
144 
145 #define  P_XSB  1
146 #define  P_XEB  2
147 #define  P_YSB  3
148 #define  P_YEB  4
149 
150 
151 #define DATA_H
152 #endif