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