2 #include "../inc/streams.h"
5 typedef struct node_struct
{
10 struct node_struct
* fields
;
11 struct node_struct
* type
;
13 struct node_struct
* dims
[MAXDIMS
] ;
14 int proc_orient
; /* ALL_[ZXY]_ON_PROC which dimension is all on processor */
19 int nmm_v_grid
, mp_var
, full_feedback
, no_feedback
;
20 int subject_to_communication
;
22 int boundary_array_4d
;
25 char descrip
[NAMELEN
] ;
28 /* Fields for 4D scalar arrays */
29 int scalar_array_member
;
30 int has_scalar_array_tendencies
;
31 struct node_struct
* members
;
34 unsigned int io_mask
[ IO_MASK_SIZE
] ;
35 unsigned int nest_mask
;
39 char namelistsection
[NAMELEN
] ;
40 struct node_struct
* next
;
41 struct node_struct
* next4d
;
43 char force_aux_fields
[2048] ;
44 char force_fcn_name
[2048] ;
45 char interpd_aux_fields
[2048] ;
46 char interpd_fcn_name
[2048] ;
47 char interpu_aux_fields
[2048] ;
48 char interpu_fcn_name
[2048] ;
49 char smoothu_fcn_name
[2048] ;
50 char smoothu_aux_fields
[2048] ;
52 /* fields used by rconfig nodes */
53 char nentries
[NAMELEN
] ;
54 char howset
[NAMELEN
] ;
57 /* fields used by Dim nodes */
60 char dim_data_name
[NAMELEN
] ;
61 int coord_axis
; /* X, Y, Z, C */
62 /* DOMAIN_STANDARD, NAMELIST, CONSTANT */
64 char assoc_nl_var_s
[NAMELEN
] ; /* for NAMELIST */
65 char assoc_nl_var_e
[NAMELEN
] ; /* for NAMELIST */
66 int coord_start
; /* for CONSTANT */
67 int coord_end
; /* for CONSTANT */
68 int dim_order
; /* order that dimensions are specified
70 int subgrid
; /* 1=subgrid dimension */
72 /* fields used by Package nodes */
73 char pkg_assoc
[NAMELEN
] ;
74 char pkg_statevars
[NAMELEN
] ;
75 char pkg_4dscalars
[NAMELEN_LONG
] ;
77 /* fields used by Comm (halo, period, xpose) nodes */
78 char comm_define
[4*8192] ;
85 #ifndef DEFINE_GLOBALS
86 # define EXTERN extern
91 EXTERN
int sw_deref_kludge
;
92 EXTERN
int sw_io_deref_kludge
;
93 EXTERN
int sw_3dvar_iry_kludge
;
94 EXTERN
int sw_distrib_io_layer
;
95 EXTERN
int sw_limit_args
;
96 EXTERN
int sw_dm_parallel
;
98 EXTERN
int sw_all_x_staggered
;
99 EXTERN
int sw_all_y_staggered
;
100 EXTERN
int sw_dm_serial_in_only
;
101 EXTERN
int sw_fort_kludge
;
102 EXTERN
char sw_commpath
[NAMELEN
] ;
103 EXTERN
int sw_new_bdys
; /* 20070207 JM support decomposed boundary arrays */
104 EXTERN
int sw_unidir_shift_halo
; /* 20100210 JM assume that halo to shift is same in both directions and only gen one of them */
105 EXTERN
int sw_new_with_old_bdys
; /* 20070207 JM for debugging interim phase, new comms w/ old data structs */
107 EXTERN node_t
* Type
;
108 EXTERN node_t
* Dim
;
109 EXTERN node_t
* Packages
;
110 EXTERN node_t
* Halos
;
112 EXTERN node_t
* Halos_nta
;
114 EXTERN node_t
* Periods
;
115 EXTERN node_t
* Xposes
;
116 EXTERN node_t
* FourD
;
117 EXTERN node_t
* Swaps
;
118 EXTERN node_t
* Cycles
;
120 EXTERN node_t Domain
;
122 EXTERN
char t1
[NAMELEN
], t2
[NAMELEN
], t3
[NAMELEN
], t4
[NAMELEN
], t5
[NAMELEN
], t6
[NAMELEN
] ;
123 EXTERN
char thiscom
[4*NAMELEN
] ;
124 EXTERN
int model_order
[3] ;
126 EXTERN
int max_time_level
; /* Maximum number of time levels of any state variable */