5 void substitute(
char * str ,
char * match ,
char * replace,
char * result );
8 char * make_lower(
char * s1 ) ;
9 char * make_lower_temp(
const char * s1 ) ;
12 int is_a_fast_interface_type(
char *str );
13 int pre_parse(
char * dir, FILE * infile, FILE * outfile,
int usefrom_sw );
14 int reg_parse( FILE * infile ) ;
15 int must_have_real_or_double(
char *str );
16 int set_dim_len (
char * dimspec ,
node_t * dim_entry ) ;
17 int set_dim_order (
char * dimorder ,
node_t * dim_entry ) ;
18 int set_dim_orient (
char * dimorient ,
node_t * dim_entry ) ;
21 int add_node_to_end_4d (
node_t * node ,
node_t ** list ) ;
22 int init_type_table() ;
24 int set_state_dims (
char * dims ,
node_t * node ) ;
25 int set_ctrl (
char * ctrl ,
node_t * node ) ;
26 int gen_state_struct (
char * fname ) ;
29 int show_node(
node_t * p ) ;
30 int show_node1(
node_t * p,
int indent ) ;
31 void show_nodelist(
node_t * p ) ;
32 void show_nodelist1(
node_t * p ,
int indent ) ;
35 void gen_c_module( FILE * fph,
node_t * ModName );
37 int gen_state_struct (
char * fname ) ;
38 int gen_decls ( FILE * fp ,
node_t * node ,
int sw_ranges,
int sw_point ,
int mask ,
int layer ) ;
39 int gen_state_subtypes (
char * fname ) ;
40 int gen_state_subtypes1 ( FILE * fp ,
node_t * node ,
int sw_ranges,
int sw_point ,
int mask ) ;
41 int print_warning( FILE * fp ,
char * fname,
char * comment ) ;
42 void close_the_file( FILE * fp,
char * comment ) ;
43 int make_entries_uniq (
char * fname ) ;
44 int add_warning (
char * fname ) ;
46 int init_modname_table();
47 node_t * get_type_entry (
char *
typename ) ;
48 node_t * get_modname_entry (
char * modname ) ;
49 node_t * get_rconfig_entry(
char * name ) ;
51 node_t * get_entry_r (
char * name ,
char * use ,
node_t * node ) ;
52 node_t * get_dim_entry(
char *s,
int ) ;
53 node_t * new_node (
int kind ) ;
55 node_t * get_4d_entry (
char * name ) ;
56 node_t * get_dimnode_for_coord (
node_t * node ,
int coord_axis ) ;
57 int get_index_for_coord (
node_t * node ,
int coord_axis ) ;
59 char * my_strtok(
char * s1 ) ;
60 char * strtok_rentr(
char * s1 ,
char * s2,
char ** tokpos ) ;
62 char * bdy_indicator(
int bdy ) ;
63 char * make_upper_case (
char * str );
64 char * make_lower_case (
char * str );
66 char * field_name(
char * tmp,
node_t * p ,
int tag ) ;
67 char * field_name_bdy(
char * tmp,
node_t * p ,
int tag,
int bdy ) ;
68 char * dimension_with_colons(
char * pre,
char * tmp,
node_t * p,
char * post) ;
69 char * dimension_with_ones(
char * pre,
char * tmp,
node_t * p,
char * post) ;
70 char * dimension_with_ranges(
char * ref ,
char * pre,
int bdy ,
char * tmp,
node_t * p,
char * post,
char * nlstructname ) ;
71 char * arrray_size_expression(
char * refarg ,
char * pre ,
int bdy ,
char * tmp ,
node_t * p ,
char * post ,
char * nlstructname ) ;
72 char * index_with_firstelem(
char * pre ,
char * dref ,
int bdy ,
char * tmp ,
node_t * p ,
char * post ) ;
74 char * declare_array_as_pointer(
char * tmp,
node_t * p ) ;
75 char * field_type(
char * tmp ,
node_t * p ) ;
78 int init_typedef_history() ;
79 int add_typedef_name (
char * name ) ;
80 int get_num_typedefs() ;
81 char * get_typedef_name (
char * name ) ;
82 char * get_typename_i(
int i) ;
84 int gen_alloc (
char * dirname ) ;
85 int gen_alloc1 (
char * dirname ) ;
86 int gen_alloc2 ( FILE * fp ,
char * structname ,
node_t * node,
int *j,
int *iguy,
int *fraction,
int numguys,
int frac,
int sw );
88 int gen_module_files (
char * dirname,
char * prog_ver );
89 int gen_module_state_description (
char * dirname ) ;
90 int gen_module_state_description1 ( FILE * fp ,
node_t * node ) ;
92 void remove_nickname(
const char *nickname,
char *src,
char *dst );
93 void append_nickname(
const char *nickname,
char *src,
char *dst );
94 char * dimstr_c(
int d );
95 void checkOnlyReals(
const char *q_mapsto,
node_t * q);
96 void checkContainsMesh(
node_t * q);
98 int gen_scalar_indices (
char * dirname ) ;
99 int gen_scalar_indices1 ( FILE * fp, FILE ** fp2 ) ;
101 int gen_actual_args (
char * dirname ) ;
102 int gen_dummy_args (
char * dirname ) ;
103 int gen_dummy_decls (
char * dn ) ;
104 int gen_args (
char * dirname ,
int sw ) ;
105 int gen_args1 ( FILE * fp ,
char * outstr,
char * structname ,
node_t * node ,
int *linelen ,
int sw ,
int deep ) ;
107 int gen_scalar_derefs (
char * dirname ) ;
108 int scalar_derefs (
char * dirname ) ;
109 int scalar_derefs1 ( FILE * fp ,
node_t * node,
int direction ) ;
111 int set_mark (
int val ,
node_t * lst ) ;
112 int set_mark_4d (
int val ,
node_t * lst ) ;
114 int gen_i1_decls (
char * dn ) ;
115 int gen_get_nl_config (
char * dirname ) ;
117 int gen_config_assigns (
char * dirname ) ;
118 int gen_config_reads (
char * dirname ) ;
120 char * set_mem_order(
node_t * node ,
char * str ,
int n ) ;
122 int gen_wrf_io (
char * dirname ) ;
123 int set_dim_strs (
node_t *node ,
char ddim[3][2][NAMELEN],
char mdim[3][2][NAMELEN],
char pdim[3][2][NAMELEN] ,
char * prepend,
int sw_allow_stagger ) ;
124 int set_dim_strs2 (
node_t *node ,
char ddim[3][2][NAMELEN],
char mdim[3][2][NAMELEN],
char pdim[3][2][NAMELEN] ,
char * prepend,
int sw_disregard_stag ) ;
125 int set_dim_strs3 (
node_t *node ,
char ddim[3][2][NAMELEN],
char mdim[3][2][NAMELEN],
char pdim[3][2][NAMELEN] ,
char * prepend,
int sw_disregard_stag ) ;
126 int gen_wrf_io2 ( FILE * fp ,
char * fname ,
char * structname ,
char * fourdname ,
node_t * node ,
int sw_io ) ;
128 int gen_namelist_defines (
char * dirname ,
int sw_dimension ) ;
129 int gen_namelist_defaults (
char * dirname ) ;
130 int gen_namelist_script (
char * dirname ) ;
132 int gen_model_data_ord (
char * dirname ) ;
134 void get_elem (
char * structname ,
char * nlstructname ,
char * tx ,
int i ,
node_t * p ,
int first_last ) ;
136 int associated_with_4d_array(
node_t * p ) ;
140 char * array_size_expression (
char *,
char *,
int,
char *,
node_t *,
char * ,
char * );
141 void range_of_dimension (
char *,
char * ,
int,
node_t *,
char * );
142 void dimension_size_expression (
char *,
char *,
int,
node_t *,
char *);
143 int gen_alloc_count (
char *);
144 int gen_alloc_count1 (
char *);
145 int gen_ddt_write (
char * );
146 int gen_ddt_write1 ( FILE *,
char *,
node_t *);
147 int gen_dealloc (
char * );
148 int gen_dealloc1 (
char * );
149 int gen_dealloc2 ( FILE *,
char *,
node_t *);
150 int gen_scalar_tables ( FILE *);
151 int gen_scalar_tables_init ( FILE *);
152 int gen_scalar_indices_init ( FILE *);
154 int create_ht(
char *** p );
155 int gen_nest_interp1 ( FILE *,
node_t *,
char *,
int,
int );
156 int gen_packs_halo ( FILE *fp ,
node_t *p,
char *shw,
int xy ,
int pu ,
char * packname,
char * commname );
157 int gen_packs ( FILE *fp ,
node_t *p,
int shw,
int xy ,
int pu ,
char * packname,
char * commname );
158 int gen_periods (
char * dirname ,
node_t * periods );
159 int gen_swaps (
char * dirname ,
node_t * swaps );
160 int gen_cycles (
char * dirname ,
node_t * cycles );
161 int gen_xposes (
char * dirname );
162 int gen_comm_descrips (
char * dirname );
163 int gen_shift (
char * dirname );
164 int gen_datacalls (
char * dirname );
165 int gen_nest_packing (
char * dirname );
166 int gen_nest_pack (
char * dirname );
167 int gen_nest_unpack (
char * dirname );
168 int gen_nest_packunpack ( FILE *fp ,
node_t * node ,
int dir,
int down_path );
169 int count_fields (
node_t * node ,
int * d2 ,
int * d3 ,
char * fourd_names,
int down_path );
170 int gen_debug (
char * dirname );
172 void reset_mask (
unsigned int * mask ,
int e ) ;
173 void set_mask (
unsigned int * mask ,
int e ) ;
174 int get_mask (
unsigned int * mask ,
int e ) ;
176 char * fast_interface_type_shortname (
char * ) ;
177 char * std_case(
char * ) ;
179 char * dimstr(
int ) ;
181 char * C_type (
char * ) ;
182 char * c_types_binding(
char *s );
183 char * assoc_or_allocated(
node_t * r );
184 int is_pointer(
node_t * r );
185 int has_deferred_dim(
node_t * node,
int noisy );