Mapper
fmaz_load.c
Go to the documentation of this file.
1 #include <sqlhdr.h>
2 #include <sqliapi.h>
3 static const char _Cn5[] = "loop_fcst";
4 static const char _Cn4[] = "loop_area_sens";
5 static const char _Cn3[] = "loop_seg";
6 static const char _Cn2[] = "loop_fg";
7 static const char _Cn1[] = "qfg";
8 #line 1 "fmaz_load.ec"
9 #include <stdlib.h>
10 #include <stdio.h>
11 #include <string.h>
12 #include <errno.h>
13 #include <ctype.h>
14 #include <sys/time.h>
15 #include <sys/types.h>
16 #include <sys/stat.h>
17 
18 #include <X11/Xos.h>
19 #include <Xm/Text.h>
20 #include <Xm/TextF.h>
21 
22 #include "mm2rfs.h"
23 
24 /* external variables */
25 extern Widget text_output;
26 extern int fg_toggle_item_set;
27 extern int parm_toggle_item_set;
28 extern int dur_toggle_item_set;
29 extern int src_toggle_item_set;
30 extern int ver_toggle_item_set;
31 extern int debug;
32 
33 extern struct fgroup_info fg[20];
34 extern struct time_cntl tc;
35 
36 int fmaz_load(struct fmaz_struct *fmaz)
37 {
38 char src1[2];
39 char src2[2];
40 char dc[11];
41 char line[256];
42 int i;
43 int j;
44 int data;
45 int switch_src;
46 int num_fmazs=-1;
47 int loop_fcst_err,loop_fg_err,loop_seg_err,loop_area_sens_err;
48 
49 
50 /* declare informix host variables */
51 /*
52  * exec sql begin declare section;
53  */
54 #line 43 "fmaz_load.ec"
55 #line 44 "fmaz_load.ec"
56  char areaid[6];
57  char fgroupid[9], segid[9], rfs_id[9], wfo_resp[4];
58  char drain[2], pos[2], cgroup[2];
59  char pe1[2], pe2[2], dur[2], t[2], s[2], e[2], p[2];
60  char src[2];
61  char qz00[2], qz06[2], qz12[2], qz18[2];
62  char qz00x[2], qz06x[2], qz12x[2], qz18x[2];
63  char query[256];
64 int ccal_yr, cmon, czday, ctime;
65 int ccal_yrx, cmonx, czdayx, ctimex;
66 int vcal_yr, vmon, vzday, vhour;
67 int pos_order;
68 int segnum;
69 int size_mi2;
70 float z00, z06, z12, z18;
71 float z00x, z06x, z12x, z18x;
72 /*
73  * exec sql end declare section;
74  */
75 #line 60 "fmaz_load.ec"
76 
77 
78 /*
79  * exec sql set isolation to dirty read;
80  */
81 #line 62 "fmaz_load.ec"
82  {
83 #line 62 "fmaz_load.ec"
84  static const char *sqlcmdtxt[] =
85 #line 62 "fmaz_load.ec"
86  {
87 #line 62 "fmaz_load.ec"
88  "set isolation to dirty read",
89  0
90  };
91 #line 62 "fmaz_load.ec"
92  static ifx_statement_t _SQ0 = {0};
93 #line 62 "fmaz_load.ec"
94  sqli_stmt(ESQLINTVERSION, &_SQ0, sqlcmdtxt, 0, (ifx_sqlvar_t *)0, (struct value *)0, (ifx_literal_t *)0, (ifx_namelist_t *)0, (ifx_cursor_t *)0, -1, 0, 0);
95 #line 62 "fmaz_load.ec"
96  }
97 
98  /* database should already be open */
99 
100  /* establish data source(s) */
101  strcpy(src1,"E"); /* default is HAS */
102  strcpy(src2,"E"); /* default is HAS */
103  if(src_toggle_item_set==2)
104  {
105  strcpy(src1,"W"); /* HPC */
106  strcpy(src2,"W"); /* HPC */
107  }
108  if(src_toggle_item_set==3)
109  {
110  strcpy(src1,"U"); /* model 1 */
111  strcpy(src2,"U"); /* model 2 */
112  }
113  if(src_toggle_item_set==4)
114  {
115  strcpy(src1,"V"); /* model 2 */
116  strcpy(src2,"V"); /* model 2 */
117  }
118  if(src_toggle_item_set==5)
119  {
120  strcpy(src1,"E"); /* HAS */
121  strcpy(src2,"U"); /* model 1 */
122  }
123  if(src_toggle_item_set==6)
124  {
125  strcpy(src1,"E"); /* HAS */
126  strcpy(src2,"W"); /* HPC */
127  }
128  if(src_toggle_item_set==7)
129  {
130  strcpy(src1,"W"); /* HPC */
131  strcpy(src2,"U"); /* model 1 */
132  }
133  if(src_toggle_item_set==8)
134  {
135  strcpy(src1,"W"); /* HPC */
136  strcpy(src2,"V"); /* model 2 */
137  }
138 
139  /* set up loop to find selected or all (*) forecast groups */
140  if(fg_toggle_item_set < 0)
141  {
142  sprintf(query,"select fgroupid "
143  "from fgroup");
144  }
145  else
146  {
147  sprintf(query,"select fgroupid "
148  "from fgroup "
149  "where fgroupid matches \"%s\"",
150  fg[fg_toggle_item_set].id);
151  }
152 
153 /*
154  * $prepare qfg from $query;
155  */
156 #line 119 "fmaz_load.ec"
157  {
158 #line 119 "fmaz_load.ec"
159  sqli_prep(ESQLINTVERSION, _Cn1, query,(ifx_literal_t *)0, (ifx_namelist_t *)0, -1, 0, 0 );
160 #line 119 "fmaz_load.ec"
161  }
162  if(sqlca.sqlcode)
163  {
164  sprintf(line,"prepare qfg failed (%d)",sqlca.sqlcode);
165  if(text_output)
166  XmTextFieldSetString (text_output, line);
167  return(-1);
168  }
169 
170 /*
171  * $declare loop_fg cursor for qfg;
172  */
173 #line 128 "fmaz_load.ec"
174  {
175 #line 128 "fmaz_load.ec"
176  sqli_curs_decl_dynm(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn2, 512), _Cn2, sqli_curs_locate(ESQLINTVERSION, _Cn1, 513), 0, 0);
177 #line 128 "fmaz_load.ec"
178  }
179  if(sqlca.sqlcode)
180  {
181  sprintf(line,"declare loop_fg failed (%d)",sqlca.sqlcode);
182  if(text_output)
183  XmTextFieldSetString (text_output, line);
184  return(-1);
185  }
186 /*
187  * $open loop_fg;
188  */
189 #line 136 "fmaz_load.ec"
190  {
191 #line 136 "fmaz_load.ec"
192  sqli_curs_open(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn2, 768), (ifx_sqlda_t *)0, (char *)0, (struct value *)0, 0, 0);
193 #line 136 "fmaz_load.ec"
194  }
195  if(sqlca.sqlcode)
196  {
197  sprintf(line,"open loop_fg failed (%d)",sqlca.sqlcode);
198  if(text_output)
199  XmTextFieldSetString (text_output, line);
200  return(-1);
201  }
202  loop_fg_err=sqlca.sqlcode;
203 
204 
205  /* loop here for multiple forecast groups */
206  while(!loop_fg_err)
207  {
208 /*
209  * $fetch next loop_fg into $fgroupid;
210  */
211 #line 150 "fmaz_load.ec"
212  {
213 #line 150 "fmaz_load.ec"
214  static ifx_sqlvar_t _sqobind[] =
215  {
216  { 100, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
217 #line 150 "fmaz_load.ec"
218  };
219  static ifx_sqlda_t _SD0 = { 1, _sqobind, {0}, 1, 0 };
220  static _FetchSpec _FS1 = { 0, 1, 0 };
221 #line 150 "fmaz_load.ec"
222  _sqobind[0].sqldata = fgroupid;
223  sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn2, 768), (ifx_sqlda_t *)0, &_SD0, (char *)0, &_FS1);
224 #line 150 "fmaz_load.ec"
225  }
226  loop_fg_err=sqlca.sqlcode;
227  if(!loop_fg_err)
228  {
229 
230 /*
231  * $declare loop_seg cursor for select segid,segnum
232  * from fgroup_seg
233  * where fgroupid=$fgroupid
234  * order by segnum;
235  */
236 #line 155 "fmaz_load.ec"
237  {
238 #line 158 "fmaz_load.ec"
239  static const char *sqlcmdtxt[] =
240 #line 158 "fmaz_load.ec"
241  {
242 #line 158 "fmaz_load.ec"
243  "select segid , segnum from fgroup_seg where fgroupid = ? order by segnum",
244  0
245  };
246 #line 158 "fmaz_load.ec"
247  static ifx_sqlvar_t _sqibind[] =
248  {
249  { 100, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
250 #line 158 "fmaz_load.ec"
251  };
252  static ifx_sqlda_t _SD0 = { 1, _sqibind, {0}, 1, 0 };
253 #line 158 "fmaz_load.ec"
254  _sqibind[0].sqldata = fgroupid;
255 #line 158 "fmaz_load.ec"
256 sqli_curs_decl_stat(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn3, 512), _Cn3, sqlcmdtxt, &_SD0, (ifx_sqlda_t *)0, 0, (ifx_literal_t *)0, (ifx_namelist_t *)0, 2, 0, 0);
257 #line 158 "fmaz_load.ec"
258  }
259  if(sqlca.sqlcode)
260  {
261  sprintf(line,"declare loop_seg failed (%d)",sqlca.sqlcode);
262  if(text_output)
263  XmTextFieldSetString (text_output, line);
264  return(-1);
265  }
266 /*
267  * $open loop_seg;
268  */
269 #line 166 "fmaz_load.ec"
270  {
271 #line 166 "fmaz_load.ec"
272  sqli_curs_open(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn3, 768), (ifx_sqlda_t *)0, (char *)0, (struct value *)0, 0, 0);
273 #line 166 "fmaz_load.ec"
274  }
275  if(sqlca.sqlcode)
276  {
277  sprintf(line,"open loop_seg failed (%d)",sqlca.sqlcode);
278  if(text_output)
279  XmTextFieldSetString (text_output, line);
280  return(-1);
281  }
282  loop_seg_err=sqlca.sqlcode;
283 
284 
285  /* loop here for multiple segments in same forecast group */
286  while(!loop_seg_err)
287  {
288 /*
289  * $fetch next loop_seg into $segid,$segnum;
290  */
291 #line 180 "fmaz_load.ec"
292  {
293 #line 180 "fmaz_load.ec"
294  static ifx_sqlvar_t _sqobind[] =
295  {
296  { 100, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
297  { 102, sizeof(segnum), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
298 #line 180 "fmaz_load.ec"
299  };
300  static ifx_sqlda_t _SD0 = { 2, _sqobind, {0}, 2, 0 };
301  static _FetchSpec _FS1 = { 0, 1, 0 };
302 #line 180 "fmaz_load.ec"
303  _sqobind[0].sqldata = segid;
304 #line 180 "fmaz_load.ec"
305  _sqobind[1].sqldata = (char *) &segnum;
306  sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn3, 768), (ifx_sqlda_t *)0, &_SD0, (char *)0, &_FS1);
307 #line 180 "fmaz_load.ec"
308  }
309  loop_seg_err=sqlca.sqlcode;
310  if(!loop_seg_err)
311  {
312  /* loop here for multiple areas in the same segment */
313  strcpy(src,src1);
314 /*
315  * $declare loop_area_sens cursor for
316  * select id,
317  * pe1,pe2,dur,t,s,e,p,
318  * drain,area_sens.pos,cgroup,rfs_id,
319  * wfo_resp,size_mi2,pos_order
320  * from area_sens,pos
321  * where segid=$segid and
322  * pe1="H" and
323  * pe2="Z" and
324  * dur="I" and
325  * t="F" and
326  * s=$src and
327  * e="Z" and
328  * p="Z" and
329  * area_sens.pos=pos.pos
330  * order by id,pos.pos_order desc;
331  */
332 #line 186 "fmaz_load.ec"
333  {
334 #line 201 "fmaz_load.ec"
335  static const char *sqlcmdtxt[] =
336 #line 201 "fmaz_load.ec"
337  {
338 #line 201 "fmaz_load.ec"
339  "select id , pe1 , pe2 , dur , t , s , e , p , drain , area_sens . pos , cgroup , rfs_id , wfo_resp , size_mi2 , pos_order from area_sens , pos where segid = ? and pe1 = \"H\" and pe2 = \"Z\" and dur = \"I\" and t = \"F\" and s = ? and e = \"Z\" and p = \"Z\" and area_sens . pos = pos . pos order by id , pos . pos_order desc",
340  0
341  };
342 #line 201 "fmaz_load.ec"
343  static ifx_sqlvar_t _sqibind[] =
344  {
345  { 100, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
346  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
347 #line 201 "fmaz_load.ec"
348  };
349  static ifx_sqlda_t _SD0 = { 2, _sqibind, {0}, 2, 0 };
350 #line 201 "fmaz_load.ec"
351  _sqibind[0].sqldata = segid;
352 #line 201 "fmaz_load.ec"
353  _sqibind[1].sqldata = src;
354 #line 201 "fmaz_load.ec"
355 sqli_curs_decl_stat(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn4, 512), _Cn4, sqlcmdtxt, &_SD0, (ifx_sqlda_t *)0, 0, (ifx_literal_t *)0, (ifx_namelist_t *)0, 2, 0, 0);
356 #line 201 "fmaz_load.ec"
357  }
358  if(sqlca.sqlcode)
359  {
360  sprintf(line,"declare loop_area_sens failed (%d)",sqlca.sqlcode);
361  if(text_output)
362  XmTextFieldSetString (text_output, line);
363  return(-1);
364  }
365 /*
366  * $open loop_area_sens;
367  */
368 #line 209 "fmaz_load.ec"
369  {
370 #line 209 "fmaz_load.ec"
371  sqli_curs_open(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn4, 768), (ifx_sqlda_t *)0, (char *)0, (struct value *)0, 0, 0);
372 #line 209 "fmaz_load.ec"
373  }
374  if(sqlca.sqlcode)
375  {
376  sprintf(line,"open loop_area_sens failed (%d)",sqlca.sqlcode);
377  if(text_output)
378  XmTextFieldSetString (text_output, line);
379  return(-1);
380  }
381  loop_area_sens_err=sqlca.sqlcode;
382 
383 
384  /* loop here for multiple elements in the same area */
385  while(!loop_area_sens_err)
386  {
387 /*
388  * $fetch next loop_area_sens into $areaid,
389  * $pe1,$pe2,$dur,$t,$s,$e,$p,
390  * $drain,$pos,$cgroup,$rfs_id,
391  * $wfo_resp,$size_mi2,$pos_order;
392  */
393 #line 223 "fmaz_load.ec"
394  {
395 #line 226 "fmaz_load.ec"
396  static ifx_sqlvar_t _sqobind[] =
397  {
398  { 100, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
399  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
400  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
401  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
402  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
403  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
404  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
405  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
406  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
407  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
408  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
409  { 100, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
410  { 100, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
411  { 102, sizeof(size_mi2), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
412  { 102, sizeof(pos_order), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
413 #line 226 "fmaz_load.ec"
414  };
415  static ifx_sqlda_t _SD0 = { 15, _sqobind, {0}, 15, 0 };
416  static _FetchSpec _FS1 = { 0, 1, 0 };
417 #line 226 "fmaz_load.ec"
418  _sqobind[0].sqldata = areaid;
419 #line 226 "fmaz_load.ec"
420  _sqobind[1].sqldata = pe1;
421 #line 226 "fmaz_load.ec"
422  _sqobind[2].sqldata = pe2;
423 #line 226 "fmaz_load.ec"
424  _sqobind[3].sqldata = dur;
425 #line 226 "fmaz_load.ec"
426  _sqobind[4].sqldata = t;
427 #line 226 "fmaz_load.ec"
428  _sqobind[5].sqldata = s;
429 #line 226 "fmaz_load.ec"
430  _sqobind[6].sqldata = e;
431 #line 226 "fmaz_load.ec"
432  _sqobind[7].sqldata = p;
433 #line 226 "fmaz_load.ec"
434  _sqobind[8].sqldata = drain;
435 #line 226 "fmaz_load.ec"
436  _sqobind[9].sqldata = pos;
437 #line 226 "fmaz_load.ec"
438  _sqobind[10].sqldata = cgroup;
439 #line 226 "fmaz_load.ec"
440  _sqobind[11].sqldata = rfs_id;
441 #line 226 "fmaz_load.ec"
442  _sqobind[12].sqldata = wfo_resp;
443 #line 226 "fmaz_load.ec"
444  _sqobind[13].sqldata = (char *) &size_mi2;
445 #line 226 "fmaz_load.ec"
446  _sqobind[14].sqldata = (char *) &pos_order;
447  sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn4, 768), (ifx_sqlda_t *)0, &_SD0, (char *)0, &_FS1);
448 #line 226 "fmaz_load.ec"
449  }
450  loop_area_sens_err=sqlca.sqlcode;
451 
452  if(!loop_area_sens_err)
453  {
454 
455  /* collect forecast values and load into structure */
456  num_fmazs++;
457  strcpy(fmaz[num_fmazs].fgroupid,fgroupid);
458  strcpy(fmaz[num_fmazs].segid,segid);
459  strcpy(fmaz[num_fmazs].areaid,areaid);
460  strcpy(fmaz[num_fmazs].drain,drain);
461  strcpy(fmaz[num_fmazs].pos,pos);
462  /* note forcing to cgroup F to deal w/ multiple segments in same area */
463  strcpy(cgroup,"F");
464  strcpy(fmaz[num_fmazs].cgroup,cgroup);
465  strcpy(fmaz[num_fmazs].create,"\0");
466  sprintf(fmaz[num_fmazs].shefpc,
467  "%s%s%s%s%s%s%s",pe1,pe2,dur,t,s,e,p);
468  strcpy(fmaz[num_fmazs].fmazid,rfs_id);
469  strcpy(fmaz[num_fmazs].wfo_resp,wfo_resp);
470  fmaz[num_fmazs].size_mi2=size_mi2;
471 
472  /* note additional element because HZ's are instantaneous */
473  for(i=0;i<29;i++)
474  {
475  fmaz[num_fmazs].per[i].amt=0.;
476  strcpy(fmaz[num_fmazs].per[i].qual,"M");
477  strcpy(fmaz[num_fmazs].per[i].src,s);
478  }
479 
480  switch_src=0;
481  strcpy(src,s);
482  for(i=0;i<=dur_toggle_item_set;i++)
483  {
484  if(!i)
485  adj_time((tc.period-1)*(-6),
486  tc.year,tc.month,tc.day,tc.hour,
487  &vcal_yr,&vmon,&vzday,&vhour);
488  else
489  {
490  adj_time(24,vcal_yr,vmon,vzday,vhour,
491  &vcal_yr,&vmon,&vzday,&vhour);
492 
493  if(i == 3 && switch_src)
494  {
495  strcpy(src,src2);
496  adj_time(-24,vcal_yr,vmon,vzday,vhour,
497  &vcal_yr,&vmon,&vzday,&vhour);
498  }
499  }
500 
501  z18=-9999.;
502  strcpy(qz18,"M");
503  z00=-9999.;
504  strcpy(qz00,"M");
505  z06=-9999.;
506  strcpy(qz06,"M");
507  z12=-9999.;
508  strcpy(qz12,"M");
509 
510 /*
511  * $declare loop_fcst cursor for
512  * select z00,z06,z12,z18,qz00,qz06,qz12,qz18,
513  * ccal_yr,cmon,czday,ctime
514  * from fmaqtrly
515  * where id=$areaid and pe1=$pe1 and pe2=$pe2 and
516  * dur=$dur and t=$t and s=$src and e=$e and p=$p and
517  * drain=$drain and pos=$pos and cgroup=$cgroup and
518  * vcal_yr=$vcal_yr and vmon=$vmon and
519  * vzday=$vzday
520  * order by ccal_yr desc,cmon desc,czday desc,ctime desc;
521  */
522 #line 287 "fmaz_load.ec"
523  {
524 #line 296 "fmaz_load.ec"
525  static const char *sqlcmdtxt[] =
526 #line 296 "fmaz_load.ec"
527  {
528 #line 296 "fmaz_load.ec"
529  "select z00 , z06 , z12 , z18 , qz00 , qz06 , qz12 , qz18 , ccal_yr , cmon , czday , ctime from fmaqtrly where id = ? and pe1 = ? and pe2 = ? and dur = ? and t = ? and s = ? and e = ? and p = ? and drain = ? and pos = ? and cgroup = ? and vcal_yr = ? and vmon = ? and vzday = ? order by ccal_yr desc , cmon desc , czday desc , ctime desc",
530  0
531  };
532 #line 296 "fmaz_load.ec"
533  static ifx_sqlvar_t _sqibind[] =
534  {
535  { 100, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
536  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
537  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
538  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
539  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
540  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
541  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
542  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
543  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
544  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
545  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
546  { 102, sizeof(vcal_yr), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
547  { 102, sizeof(vmon), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
548  { 102, sizeof(vzday), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
549 #line 296 "fmaz_load.ec"
550  };
551  static ifx_sqlda_t _SD0 = { 14, _sqibind, {0}, 14, 0 };
552 #line 296 "fmaz_load.ec"
553  _sqibind[0].sqldata = areaid;
554 #line 296 "fmaz_load.ec"
555  _sqibind[1].sqldata = pe1;
556 #line 296 "fmaz_load.ec"
557  _sqibind[2].sqldata = pe2;
558 #line 296 "fmaz_load.ec"
559  _sqibind[3].sqldata = dur;
560 #line 296 "fmaz_load.ec"
561  _sqibind[4].sqldata = t;
562 #line 296 "fmaz_load.ec"
563  _sqibind[5].sqldata = src;
564 #line 296 "fmaz_load.ec"
565  _sqibind[6].sqldata = e;
566 #line 296 "fmaz_load.ec"
567  _sqibind[7].sqldata = p;
568 #line 296 "fmaz_load.ec"
569  _sqibind[8].sqldata = drain;
570 #line 296 "fmaz_load.ec"
571  _sqibind[9].sqldata = pos;
572 #line 296 "fmaz_load.ec"
573  _sqibind[10].sqldata = cgroup;
574 #line 296 "fmaz_load.ec"
575  _sqibind[11].sqldata = (char *) &vcal_yr;
576 #line 296 "fmaz_load.ec"
577  _sqibind[12].sqldata = (char *) &vmon;
578 #line 296 "fmaz_load.ec"
579  _sqibind[13].sqldata = (char *) &vzday;
580 #line 296 "fmaz_load.ec"
581 sqli_curs_decl_stat(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn5, 512), _Cn5, sqlcmdtxt, &_SD0, (ifx_sqlda_t *)0, 0, (ifx_literal_t *)0, (ifx_namelist_t *)0, 2, 0, 0);
582 #line 296 "fmaz_load.ec"
583  }
584 
585 /*
586  * $open loop_fcst;
587  */
588 #line 298 "fmaz_load.ec"
589  {
590 #line 298 "fmaz_load.ec"
591  sqli_curs_open(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn5, 768), (ifx_sqlda_t *)0, (char *)0, (struct value *)0, 0, 0);
592 #line 298 "fmaz_load.ec"
593  }
594  data=0;
595 /*
596  * $fetch next loop_fcst into
597  * $z00,$z06,$z12,$z18,
598  * $qz00,$qz06,$qz12,$qz18,
599  * $ccal_yr,$cmon,$czday,$ctime;
600  */
601 #line 300 "fmaz_load.ec"
602  {
603 #line 303 "fmaz_load.ec"
604  static ifx_sqlvar_t _sqobind[] =
605  {
606  { 104, sizeof(z00), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
607  { 104, sizeof(z06), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
608  { 104, sizeof(z12), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
609  { 104, sizeof(z18), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
610  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
611  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
612  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
613  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
614  { 102, sizeof(ccal_yr), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
615  { 102, sizeof(cmon), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
616  { 102, sizeof(czday), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
617  { 102, sizeof(ctime), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
618 #line 303 "fmaz_load.ec"
619  };
620  static ifx_sqlda_t _SD0 = { 12, _sqobind, {0}, 12, 0 };
621  static _FetchSpec _FS1 = { 0, 1, 0 };
622 #line 303 "fmaz_load.ec"
623  _sqobind[0].sqldata = (char *) &z00;
624 #line 303 "fmaz_load.ec"
625  _sqobind[1].sqldata = (char *) &z06;
626 #line 303 "fmaz_load.ec"
627  _sqobind[2].sqldata = (char *) &z12;
628 #line 303 "fmaz_load.ec"
629  _sqobind[3].sqldata = (char *) &z18;
630 #line 303 "fmaz_load.ec"
631  _sqobind[4].sqldata = qz00;
632 #line 303 "fmaz_load.ec"
633  _sqobind[5].sqldata = qz06;
634 #line 303 "fmaz_load.ec"
635  _sqobind[6].sqldata = qz12;
636 #line 303 "fmaz_load.ec"
637  _sqobind[7].sqldata = qz18;
638 #line 303 "fmaz_load.ec"
639  _sqobind[8].sqldata = (char *) &ccal_yr;
640 #line 303 "fmaz_load.ec"
641  _sqobind[9].sqldata = (char *) &cmon;
642 #line 303 "fmaz_load.ec"
643  _sqobind[10].sqldata = (char *) &czday;
644 #line 303 "fmaz_load.ec"
645  _sqobind[11].sqldata = (char *) &ctime;
646  sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn5, 768), (ifx_sqlda_t *)0, &_SD0, (char *)0, &_FS1);
647 #line 303 "fmaz_load.ec"
648  }
649  if(!sqlca.sqlcode)
650  data=1;
652  {
653 /*
654  * $fetch next loop_fcst into
655  * $z00,$z06,$z12,$z18,
656  * $qz00,$qz06,$qz12,$qz18,
657  * $ccal_yr,$cmon,$czday,$ctime;
658  */
659 #line 308 "fmaz_load.ec"
660  {
661 #line 311 "fmaz_load.ec"
662  static ifx_sqlvar_t _sqobind[] =
663  {
664  { 104, sizeof(z00), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
665  { 104, sizeof(z06), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
666  { 104, sizeof(z12), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
667  { 104, sizeof(z18), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
668  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
669  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
670  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
671  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
672  { 102, sizeof(ccal_yr), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
673  { 102, sizeof(cmon), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
674  { 102, sizeof(czday), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
675  { 102, sizeof(ctime), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
676 #line 311 "fmaz_load.ec"
677  };
678  static ifx_sqlda_t _SD0 = { 12, _sqobind, {0}, 12, 0 };
679  static _FetchSpec _FS1 = { 0, 1, 0 };
680 #line 311 "fmaz_load.ec"
681  _sqobind[0].sqldata = (char *) &z00;
682 #line 311 "fmaz_load.ec"
683  _sqobind[1].sqldata = (char *) &z06;
684 #line 311 "fmaz_load.ec"
685  _sqobind[2].sqldata = (char *) &z12;
686 #line 311 "fmaz_load.ec"
687  _sqobind[3].sqldata = (char *) &z18;
688 #line 311 "fmaz_load.ec"
689  _sqobind[4].sqldata = qz00;
690 #line 311 "fmaz_load.ec"
691  _sqobind[5].sqldata = qz06;
692 #line 311 "fmaz_load.ec"
693  _sqobind[6].sqldata = qz12;
694 #line 311 "fmaz_load.ec"
695  _sqobind[7].sqldata = qz18;
696 #line 311 "fmaz_load.ec"
697  _sqobind[8].sqldata = (char *) &ccal_yr;
698 #line 311 "fmaz_load.ec"
699  _sqobind[9].sqldata = (char *) &cmon;
700 #line 311 "fmaz_load.ec"
701  _sqobind[10].sqldata = (char *) &czday;
702 #line 311 "fmaz_load.ec"
703  _sqobind[11].sqldata = (char *) &ctime;
704  sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn5, 768), (ifx_sqlda_t *)0, &_SD0, (char *)0, &_FS1);
705 #line 311 "fmaz_load.ec"
706  }
707  }
708  while(((!strcmp(qz00,"M") && i) || (!strcmp(qz06,"M") && i) ||
709  (!strcmp(qz12,"M") && i) || !strcmp(qz18,"M")) &&
710  !sqlca.sqlcode
711  )
712  {
713 /*
714  * $fetch next loop_fcst into
715  * $z00x,$z06x,$z12x,$z18x,
716  * $qz00x,$qz06x,$qz12x,$qz18x,
717  * $ccal_yrx,$cmonx,$czdayx,$ctimex;
718  */
719 #line 318 "fmaz_load.ec"
720  {
721 #line 321 "fmaz_load.ec"
722  static ifx_sqlvar_t _sqobind[] =
723  {
724  { 104, sizeof(z00x), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
725  { 104, sizeof(z06x), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
726  { 104, sizeof(z12x), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
727  { 104, sizeof(z18x), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
728  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
729  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
730  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
731  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
732  { 102, sizeof(ccal_yrx), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
733  { 102, sizeof(cmonx), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
734  { 102, sizeof(czdayx), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
735  { 102, sizeof(ctimex), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
736 #line 321 "fmaz_load.ec"
737  };
738  static ifx_sqlda_t _SD0 = { 12, _sqobind, {0}, 12, 0 };
739  static _FetchSpec _FS1 = { 0, 1, 0 };
740 #line 321 "fmaz_load.ec"
741  _sqobind[0].sqldata = (char *) &z00x;
742 #line 321 "fmaz_load.ec"
743  _sqobind[1].sqldata = (char *) &z06x;
744 #line 321 "fmaz_load.ec"
745  _sqobind[2].sqldata = (char *) &z12x;
746 #line 321 "fmaz_load.ec"
747  _sqobind[3].sqldata = (char *) &z18x;
748 #line 321 "fmaz_load.ec"
749  _sqobind[4].sqldata = qz00x;
750 #line 321 "fmaz_load.ec"
751  _sqobind[5].sqldata = qz06x;
752 #line 321 "fmaz_load.ec"
753  _sqobind[6].sqldata = qz12x;
754 #line 321 "fmaz_load.ec"
755  _sqobind[7].sqldata = qz18x;
756 #line 321 "fmaz_load.ec"
757  _sqobind[8].sqldata = (char *) &ccal_yrx;
758 #line 321 "fmaz_load.ec"
759  _sqobind[9].sqldata = (char *) &cmonx;
760 #line 321 "fmaz_load.ec"
761  _sqobind[10].sqldata = (char *) &czdayx;
762 #line 321 "fmaz_load.ec"
763  _sqobind[11].sqldata = (char *) &ctimex;
764  sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn5, 768), (ifx_sqlda_t *)0, &_SD0, (char *)0, &_FS1);
765 #line 321 "fmaz_load.ec"
766  }
767  if(!sqlca.sqlcode)
768  {
769  if(!strcmp(qz00,"M") && !strcmp(qz00x,"Z"))
770  {
771  strcpy(qz00,qz00x);
772  z00=z00x;
773  }
774  if(!strcmp(qz06,"M") && !strcmp(qz06x,"Z"))
775  {
776  strcpy(qz06,qz06x);
777  z06=z06x;
778  }
779  if(!strcmp(qz12,"M") && !strcmp(qz12x,"Z"))
780  {
781  strcpy(qz12,qz12x);
782  z12=z12x;
783  }
784  if(!strcmp(qz18,"M") && !strcmp(qz18x,"Z"))
785  {
786  strcpy(qz18,qz18x);
787  z18=z18x;
788  }
789  }
790  }
791  if(debug)
792  printf("%s %s%s%s %s%s%s%s%s %02d/%02d "
793  "00Z:%8.2f/%s 06Z:%8.2f/%s 12Z:%8.2f/%s 18Z:%8.2f/%s"
794  " DC %02d/%02d/%02d @ %04d (%d)\n",
795  areaid,drain,pos,cgroup,pe1,pe2,dur,t,src,
796  vmon,vzday,z00,qz00,z06,qz06,z12,qz12,z18,qz18,
797  cmon,czday,ccal_yr%100,ctime/100,sqlca.sqlcode);
798  if(data)
799  {
800  /* set creation date/time */
801  if(!strlen(fmaz[num_fmazs].create))
802  {
803  sprintf(dc,"%02d%02d%02d%02d%02d\0",
804  ccal_yr%100,cmon,czday,
805  ctime/10000,(ctime%10000)/100);
806  strcpy(fmaz[num_fmazs].create,dc);
807  }
808 
809  /* set missing values to 0.0 */
810  if(!strcmp(qz00,"M")) z00=0.;
811  if(!strcmp(qz06,"M")) z06=0.;
812  if(!strcmp(qz12,"M")) z12=0.;
813  if(!strcmp(qz18,"M")) z18=0.;
814  if(!i)
815  {
816  fmaz[num_fmazs].per[0].amt=z12;
817  strcpy(fmaz[num_fmazs].per[0].qual,qz12);
818  strcpy(fmaz[num_fmazs].per[0].src,src);
819  fmaz[num_fmazs].per[1].amt=z18;
820  strcpy(fmaz[num_fmazs].per[1].qual,qz18);
821  strcpy(fmaz[num_fmazs].per[1].src,src);
822  }
823  else
824  {
825  if(i==3 && switch_src)
826  {
827  fmaz[num_fmazs].per[13].amt=z18;
828  strcpy(fmaz[num_fmazs].per[13].qual,qz18);
829  strcpy(fmaz[num_fmazs].per[13].src,src);
830  }
831  else
832  {
833  fmaz[num_fmazs].per[2+4*(i-1)].amt=z00;
834  strcpy(fmaz[num_fmazs].per[2+4*(i-1)].qual,qz00);
835  strcpy(fmaz[num_fmazs].per[2+4*(i-1)].src,src);
836  fmaz[num_fmazs].per[3+4*(i-1)].amt=z06;
837  strcpy(fmaz[num_fmazs].per[3+4*(i-1)].qual,qz06);
838  strcpy(fmaz[num_fmazs].per[3+4*(i-1)].src,src);
839  fmaz[num_fmazs].per[4+4*(i-1)].amt=z12;
840  strcpy(fmaz[num_fmazs].per[4+4*(i-1)].qual,qz12);
841  strcpy(fmaz[num_fmazs].per[4+4*(i-1)].src,src);
843  {
844  fmaz[num_fmazs].per[5+4*(i-1)].amt=z18;
845  strcpy(fmaz[num_fmazs].per[5+4*(i-1)].qual,qz18);
846  strcpy(fmaz[num_fmazs].per[5+4*(i-1)].src,src);
847  }
848  }
849  }
850  }
851 /*
852  * $close loop_fcst;
853  */
854 #line 406 "fmaz_load.ec"
855  {
856 #line 406 "fmaz_load.ec"
857  sqli_curs_close(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn5, 768));
858 #line 406 "fmaz_load.ec"
859  }
860 /*
861  * $free loop_fcst;
862  */
863 #line 406 "fmaz_load.ec"
864  {
865 #line 406 "fmaz_load.ec"
866  sqli_curs_free(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn5, 770));
867 #line 406 "fmaz_load.ec"
868  }
869 
870  /* allow for a source change after 12 periods */
871  if(dur_toggle_item_set >= 4 && i == 3 && !switch_src)
872  {
873  i--;
874  switch_src=1;
875  }
876  }
877  }
878  }
879 /*
880  * $close loop_area_sens;
881  */
882 #line 416 "fmaz_load.ec"
883  {
884 #line 416 "fmaz_load.ec"
885  sqli_curs_close(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn4, 768));
886 #line 416 "fmaz_load.ec"
887  }
888 /*
889  * $free loop_area_sens;
890  */
891 #line 416 "fmaz_load.ec"
892  {
893 #line 416 "fmaz_load.ec"
894  sqli_curs_free(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn4, 770));
895 #line 416 "fmaz_load.ec"
896  }
897  }
898  }
899 /*
900  * $close loop_seg;
901  */
902 #line 418 "fmaz_load.ec"
903  {
904 #line 418 "fmaz_load.ec"
905  sqli_curs_close(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn3, 768));
906 #line 418 "fmaz_load.ec"
907  }
908 /*
909  * $free loop_seg;
910  */
911 #line 418 "fmaz_load.ec"
912  {
913 #line 418 "fmaz_load.ec"
914  sqli_curs_free(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn3, 770));
915 #line 418 "fmaz_load.ec"
916  }
917  }
918  }
919 /*
920  * $close loop_fg;
921  */
922 #line 420 "fmaz_load.ec"
923  {
924 #line 420 "fmaz_load.ec"
925  sqli_curs_close(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn2, 768));
926 #line 420 "fmaz_load.ec"
927  }
928 /*
929  * $free loop_fg;
930  */
931 #line 420 "fmaz_load.ec"
932  {
933 #line 420 "fmaz_load.ec"
934  sqli_curs_free(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, _Cn2, 770));
935 #line 420 "fmaz_load.ec"
936  }
937 
938  /* change array ptr to total count */
939  num_fmazs++;
940 
941  return(num_fmazs);
942 }
943 
944 #line 426 "fmaz_load.ec"
int adj_time(int adj, int y, int m, int d, int h, int *adj_y, int *adj_m, int *adj_d, int *adj_h)
Definition: adj_time.c:10
static int i
struct sqlca_s sqlca
char qual[10]
Definition: subdisplay.c:33
int fmaz_load(struct fmaz_struct *fmaz)
Definition: fmaz_load.c:36
static const char _Cn3[]
Definition: fmaz_load.c:5
struct fgroup_info fg[20]
static const char _Cn1[]
Definition: fmaz_load.c:7
int parm_toggle_item_set
static const char _Cn4[]
Definition: fmaz_load.c:4
static const char _Cn2[]
Definition: fmaz_load.c:6
int ver_toggle_item_set
static const char _Cn5[]
Definition: fmaz_load.c:3
Widget text_output
int fg_toggle_item_set
int debug
Definition: hydro_data.h:53
int src_toggle_item_set
int dur_toggle_item_set
struct time_cntl tc
sprintf(fbuf,"/usr/mapper/nexrad/ngrid.%02d-%02d-%02d-%02d", year, month, day, hour)
printf("fbuf is %s\n", fbuf)
int j
Definition: mapp2h.h:48
float value
long sqlcode
Definition: db.c:44