merge standard release WRF/WPS V3.0.1.1 into wrffire
[wrffire.git] / wrfv2_fire / tools / data.h
blob4ab88f91be1ac91f6705d14a9567f053d9f37847
1 #ifndef DATA_H
2 #include "registry.h"
4 typedef struct node_struct {
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] ;
26 /* Fields for 4D scalar arrays */
27 int scalar_array_member ;
28 int has_scalar_array_tendencies ;
29 struct node_struct * members ;
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 ;
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] ;
73 /* fields used by rconfig nodes */
74 char nentries[NAMELEN] ;
75 char howset[NAMELEN] ;
76 char dflt[NAMELEN] ;
78 /* fields used by Dim nodes */
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 */
93 /* fields used by Package nodes */
94 char pkg_assoc[NAMELEN] ;
95 char pkg_statevars[NAMELEN] ;
96 char pkg_4dscalars[NAMELEN_LONG] ;
98 /* fields used by Comm (halo, period, xpose) nodes */
99 char comm_define[2*8192] ;
101 /* marker */
102 int mark ;
104 } node_t ;
106 #ifndef DEFINE_GLOBALS
107 # define EXTERN extern
108 #else
109 # define EXTERN
110 #endif
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_fort_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 */
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 ;
137 EXTERN node_t Domain ;
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] ;
143 EXTERN int max_time_level ; /* Maximum number of time levels of any state variable */
145 #define P_XSB 1
146 #define P_XEB 2
147 #define P_YSB 3
148 #define P_YEB 4
151 #define DATA_H
152 #endif