Mapper
get_stn_valuesM.c
Go to the documentation of this file.
1 #include <sqlhdr.h>
2 #include <sqliapi.h>
3 #line 1 "get_stn_valuesM.ec"
4 #include "hydro_data.h"
5 
6 int get_stn_valuesM(char *stn_id,char *shef,time_t abeg,int maxmonths,
7  struct stn_values *stn_values)
8 {
9 
10 /* general variable definitions */
11 int i,j,k;
12 int nval=0;
13 int count=0;
14 int debug=1;
15 int b_year,b_month,b_day,b_hour,b_min,b_sec;
16 char *caller="get_stn_valuesM: ";
17 double avg[13];
18 double value[13];
19 struct tm *gm;
20 
21 /* declare informix host variables */
22 /*
23  * exec sql begin declare section;
24  */
25 #line 19 "get_stn_valuesM.ec"
26 #line 20 "get_stn_valuesM.ec"
27  char id[6];
28  char pe1[2];
29  char pe2[2];
30  char dur[2];
31  char t[2];
32  char s[2];
33  char s2[2];
34  char e[2];
35  char p[2];
36 int cal_yr;
37 int mon;
38 int zday;
39 int year, month, day, hour, min, sec;
40 float janp, febp, marp, aprp, mayp, junp;
41 float julp, augp, sepp, octp, novp, decp;
42 struct promonly
43  {
44  char id[6];
45  char pe1[2];
46  char pe2[2];
47  char dur[2];
48  char t[2];
49  char s[2];
50  char e[2];
51  char p[2];
52  int cal_yr;
53  double jan;
54  double feb;
55  double mar;
56  double apr;
57  double may;
58  double jun;
59  double jul;
60  double aug;
61  double sep;
62  double oct;
63  double nov;
64  double dec;
65  char janq[2];
66  char febq[2];
67  char marq[2];
68  char aprq[2];
69  char mayq[2];
70  char junq[2];
71  char julq[2];
72  char augq[2];
73  char sepq[2];
74  char octq[2];
75  char novq[2];
76  char decq[2];
77  } ppm;
78 /*
79  * exec sql end declare section;
80  */
81 #line 73 "get_stn_valuesM.ec"
82 
83 
84  strcpy(id,stn_id);
85  strncpy(pe1,shef+0,1);
86  *(pe1+1)='\0';
87  strncpy(pe2,shef+1,1);
88  *(pe2+1)='\0';
89  strncpy(dur,shef+2,1);
90  *(dur+1)='\0';
91  strncpy(t,shef+3,1);
92  *(t+1)='\0';
93  strncpy(s,shef+4,1);
94  *(s+1)='\0';
95  strncpy(e,shef+5,1);
96  *(e+1)='\0';
97  strncpy(p,shef+6,1);
98  *(p+1)='\0';
99 
100  if(debug)
101  {
102  gm=gmtime(&abeg);
103  b_year=gm->tm_year+1900;
104  b_month=gm->tm_mon+1;
105  b_day=gm->tm_mday;
106  b_hour=gm->tm_hour;
107  b_min=gm->tm_min;
108  b_sec=gm->tm_sec;
109  }
110 
111  nval=0;
112  count=0;
113  gm=gmtime(&abeg);
114  year=gm->tm_year+1900;
115  month=gm->tm_mon+1;
116 
117  /* get monthly averages */
118  sqlca.sqlcode=100;
119  if(!strcmp(pe1,"P"))
120  {
121  for(j=1;j<=12;j++)
122  avg[j]=-99.;
123 /*
124  * $select jan,feb,mar,apr,may,jun,
125  * jul,aug,sep,oct,nov,dec
126  * into
127  * $janp,$febp,$marp,$aprp,$mayp,$junp,
128  * $julp,$augp,$sepp,$octp,$novp,$decp
129  * from b_avg
130  * where id=$id and pe1="P" and pe2="P" and dur="M"
131  * and t="P" and s="B" and e="C" and p="M";
132  */
133 #line 114 "get_stn_valuesM.ec"
134  {
135 #line 121 "get_stn_valuesM.ec"
136  static const char *sqlcmdtxt[] =
137 #line 121 "get_stn_valuesM.ec"
138  {
139 #line 121 "get_stn_valuesM.ec"
140  "select jan , feb , mar , apr , may , jun , jul , aug , sep , oct , nov , dec from b_avg where id = ? and pe1 = \"P\" and pe2 = \"P\" and dur = \"M\" and t = \"P\" and s = \"B\" and e = \"C\" and p = \"M\"",
141  0
142  };
143 #line 121 "get_stn_valuesM.ec"
144 static ifx_cursor_t _SQ0 = {0};
145  static ifx_sqlvar_t _sqibind[] =
146  {
147  { 100, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
148 #line 121 "get_stn_valuesM.ec"
149  };
150  static ifx_sqlvar_t _sqobind[] =
151  {
152  { 104, sizeof(janp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
153  { 104, sizeof(febp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
154  { 104, sizeof(marp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
155  { 104, sizeof(aprp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
156  { 104, sizeof(mayp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
157  { 104, sizeof(junp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
158  { 104, sizeof(julp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
159  { 104, sizeof(augp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
160  { 104, sizeof(sepp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
161  { 104, sizeof(octp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
162  { 104, sizeof(novp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
163  { 104, sizeof(decp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
164 #line 121 "get_stn_valuesM.ec"
165  };
166 #line 121 "get_stn_valuesM.ec"
167  _sqibind[0].sqldata = id;
168 #line 121 "get_stn_valuesM.ec"
169  _sqobind[0].sqldata = (char *) &janp;
170 #line 121 "get_stn_valuesM.ec"
171  _sqobind[1].sqldata = (char *) &febp;
172 #line 121 "get_stn_valuesM.ec"
173  _sqobind[2].sqldata = (char *) &marp;
174 #line 121 "get_stn_valuesM.ec"
175  _sqobind[3].sqldata = (char *) &aprp;
176 #line 121 "get_stn_valuesM.ec"
177  _sqobind[4].sqldata = (char *) &mayp;
178 #line 121 "get_stn_valuesM.ec"
179  _sqobind[5].sqldata = (char *) &junp;
180 #line 121 "get_stn_valuesM.ec"
181  _sqobind[6].sqldata = (char *) &julp;
182 #line 121 "get_stn_valuesM.ec"
183  _sqobind[7].sqldata = (char *) &augp;
184 #line 121 "get_stn_valuesM.ec"
185  _sqobind[8].sqldata = (char *) &sepp;
186 #line 121 "get_stn_valuesM.ec"
187  _sqobind[9].sqldata = (char *) &octp;
188 #line 121 "get_stn_valuesM.ec"
189  _sqobind[10].sqldata = (char *) &novp;
190 #line 121 "get_stn_valuesM.ec"
191  _sqobind[11].sqldata = (char *) &decp;
192 #line 121 "get_stn_valuesM.ec"
193  sqli_slct(ESQLINTVERSION, &_SQ0,sqlcmdtxt,1,_sqibind,12,_sqobind,0,(ifx_literal_t *)0,(ifx_namelist_t *)0,0);
194 #line 121 "get_stn_valuesM.ec"
195  }
196  }
197  if(!strcmp(pe1,"S"))
198  {
199  for(j=1;j<=12;j++)
200  avg[j]=-99.;
201 /*
202  * $select jan,feb,mar,apr,may,jun,
203  * jul,aug,sep,oct,nov,dec
204  * into
205  * $janp,$febp,$marp,$aprp,$mayp,$junp,
206  * $julp,$augp,$sepp,$octp,$novp,$decp
207  * from b_avg
208  * where id=$id and pe1="S" and pe2="W" and dur="I"
209  * and t="R" and s=$s and e="C" and p="M";
210  */
211 #line 127 "get_stn_valuesM.ec"
212  {
213 #line 134 "get_stn_valuesM.ec"
214  static const char *sqlcmdtxt[] =
215 #line 134 "get_stn_valuesM.ec"
216  {
217 #line 134 "get_stn_valuesM.ec"
218  "select jan , feb , mar , apr , may , jun , jul , aug , sep , oct , nov , dec from b_avg where id = ? and pe1 = \"S\" and pe2 = \"W\" and dur = \"I\" and t = \"R\" and s = ? and e = \"C\" and p = \"M\"",
219  0
220  };
221 #line 134 "get_stn_valuesM.ec"
222 static ifx_cursor_t _SQ0 = {0};
223  static ifx_sqlvar_t _sqibind[] =
224  {
225  { 100, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
226  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
227 #line 134 "get_stn_valuesM.ec"
228  };
229  static ifx_sqlvar_t _sqobind[] =
230  {
231  { 104, sizeof(janp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
232  { 104, sizeof(febp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
233  { 104, sizeof(marp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
234  { 104, sizeof(aprp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
235  { 104, sizeof(mayp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
236  { 104, sizeof(junp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
237  { 104, sizeof(julp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
238  { 104, sizeof(augp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
239  { 104, sizeof(sepp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
240  { 104, sizeof(octp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
241  { 104, sizeof(novp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
242  { 104, sizeof(decp), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
243 #line 134 "get_stn_valuesM.ec"
244  };
245 #line 134 "get_stn_valuesM.ec"
246  _sqibind[0].sqldata = id;
247 #line 134 "get_stn_valuesM.ec"
248  _sqibind[1].sqldata = s;
249 #line 134 "get_stn_valuesM.ec"
250  _sqobind[0].sqldata = (char *) &janp;
251 #line 134 "get_stn_valuesM.ec"
252  _sqobind[1].sqldata = (char *) &febp;
253 #line 134 "get_stn_valuesM.ec"
254  _sqobind[2].sqldata = (char *) &marp;
255 #line 134 "get_stn_valuesM.ec"
256  _sqobind[3].sqldata = (char *) &aprp;
257 #line 134 "get_stn_valuesM.ec"
258  _sqobind[4].sqldata = (char *) &mayp;
259 #line 134 "get_stn_valuesM.ec"
260  _sqobind[5].sqldata = (char *) &junp;
261 #line 134 "get_stn_valuesM.ec"
262  _sqobind[6].sqldata = (char *) &julp;
263 #line 134 "get_stn_valuesM.ec"
264  _sqobind[7].sqldata = (char *) &augp;
265 #line 134 "get_stn_valuesM.ec"
266  _sqobind[8].sqldata = (char *) &sepp;
267 #line 134 "get_stn_valuesM.ec"
268  _sqobind[9].sqldata = (char *) &octp;
269 #line 134 "get_stn_valuesM.ec"
270  _sqobind[10].sqldata = (char *) &novp;
271 #line 134 "get_stn_valuesM.ec"
272  _sqobind[11].sqldata = (char *) &decp;
273 #line 134 "get_stn_valuesM.ec"
274  sqli_slct(ESQLINTVERSION, &_SQ0,sqlcmdtxt,2,_sqibind,12,_sqobind,0,(ifx_literal_t *)0,(ifx_namelist_t *)0,0);
275 #line 134 "get_stn_valuesM.ec"
276  }
277  }
278  if(!sqlca.sqlcode)
279  {
280  avg[1]=janp;
281  avg[2]=febp;
282  avg[3]=marp;
283  avg[4]=aprp;
284  avg[5]=mayp;
285  avg[6]=junp;
286  avg[7]=julp;
287  avg[8]=augp;
288  avg[9]=sepp;
289  avg[10]=octp;
290  avg[11]=novp;
291  avg[12]=decp;
292  }
293 
294  else
295  if(debug)
296  printf("get avg error = %d\n",sqlca.sqlcode);
297  if(debug)
298  for(j=1;j<=12;j++)
299  printf("avg mo:%2d = %5.2f\n",j,avg[j]);
300 
301  /* initialize to missing obs and %avg */
302  for(j=0;j<maxmonths;j++)
303  {
304  stn_values[j].value=-99.;
305  stn_values[j+maxmonths].value=-99.;
306  if(!strcmp(pe1,"S"))
307  stn_values[j+maxmonths*2].value=-99.;
308  }
309 
310  /* get value for current month */
311  for(i=4;i>=2;i--) /* check for t=4,3,2 in that order */
312  {
313  sprintf(t,"%d",i);
314  *(t+1)='\0';
315 /*
316  * $select * into $ppm from promonly
317  * where id=$id and pe1=$pe1 and pe2=$pe2 and dur=$dur
318  * and t=$t and s=$s and e="Z" and p="Z" and
319  * cal_yr=$year;
320  */
321 #line 173 "get_stn_valuesM.ec"
322  {
323 #line 176 "get_stn_valuesM.ec"
324  static const char *sqlcmdtxt[] =
325 #line 176 "get_stn_valuesM.ec"
326  {
327 #line 176 "get_stn_valuesM.ec"
328  "select * from promonly where id = ? and pe1 = ? and pe2 = ? and dur = ? and t = ? and s = ? and e = \"Z\" and p = \"Z\" and cal_yr = ?",
329  0
330  };
331 #line 176 "get_stn_valuesM.ec"
332 static ifx_cursor_t _SQ0 = {0};
333  static ifx_sqlvar_t _sqibind[] =
334  {
335  { 100, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
336  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
337  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
338  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
339  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
340  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
341  { 102, sizeof(year), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
342 #line 176 "get_stn_valuesM.ec"
343  };
344  static ifx_sqlvar_t _sqobind[] =
345  {
346  { 100, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
347  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
348  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
349  { 100, 2, 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  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
352  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
353  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
354  { 102, sizeof((ppm).cal_yr), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
355  { 105, sizeof((ppm).jan), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
356  { 105, sizeof((ppm).feb), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
357  { 105, sizeof((ppm).mar), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
358  { 105, sizeof((ppm).apr), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
359  { 105, sizeof((ppm).may), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
360  { 105, sizeof((ppm).jun), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
361  { 105, sizeof((ppm).jul), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
362  { 105, sizeof((ppm).aug), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
363  { 105, sizeof((ppm).sep), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
364  { 105, sizeof((ppm).oct), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
365  { 105, sizeof((ppm).nov), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
366  { 105, sizeof((ppm).dec), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
367  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
368  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
369  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
370  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
371  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
372  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
373  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
374  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
375  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
376  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
377  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
378  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
379 #line 176 "get_stn_valuesM.ec"
380  };
381 #line 176 "get_stn_valuesM.ec"
382  _sqibind[0].sqldata = id;
383 #line 176 "get_stn_valuesM.ec"
384  _sqibind[1].sqldata = pe1;
385 #line 176 "get_stn_valuesM.ec"
386  _sqibind[2].sqldata = pe2;
387 #line 176 "get_stn_valuesM.ec"
388  _sqibind[3].sqldata = dur;
389 #line 176 "get_stn_valuesM.ec"
390  _sqibind[4].sqldata = t;
391 #line 176 "get_stn_valuesM.ec"
392  _sqibind[5].sqldata = s;
393 #line 176 "get_stn_valuesM.ec"
394  _sqibind[6].sqldata = (char *) &year;
395 #line 176 "get_stn_valuesM.ec"
396  _sqobind[0].sqldata = (ppm).id;
397 #line 176 "get_stn_valuesM.ec"
398  _sqobind[1].sqldata = (ppm).pe1;
399 #line 176 "get_stn_valuesM.ec"
400  _sqobind[2].sqldata = (ppm).pe2;
401 #line 176 "get_stn_valuesM.ec"
402  _sqobind[3].sqldata = (ppm).dur;
403 #line 176 "get_stn_valuesM.ec"
404  _sqobind[4].sqldata = (ppm).t;
405 #line 176 "get_stn_valuesM.ec"
406  _sqobind[5].sqldata = (ppm).s;
407 #line 176 "get_stn_valuesM.ec"
408  _sqobind[6].sqldata = (ppm).e;
409 #line 176 "get_stn_valuesM.ec"
410  _sqobind[7].sqldata = (ppm).p;
411 #line 176 "get_stn_valuesM.ec"
412  _sqobind[8].sqldata = (char *) &(ppm).cal_yr;
413 #line 176 "get_stn_valuesM.ec"
414  _sqobind[9].sqldata = (char *) &(ppm).jan;
415 #line 176 "get_stn_valuesM.ec"
416  _sqobind[10].sqldata = (char *) &(ppm).feb;
417 #line 176 "get_stn_valuesM.ec"
418  _sqobind[11].sqldata = (char *) &(ppm).mar;
419 #line 176 "get_stn_valuesM.ec"
420  _sqobind[12].sqldata = (char *) &(ppm).apr;
421 #line 176 "get_stn_valuesM.ec"
422  _sqobind[13].sqldata = (char *) &(ppm).may;
423 #line 176 "get_stn_valuesM.ec"
424  _sqobind[14].sqldata = (char *) &(ppm).jun;
425 #line 176 "get_stn_valuesM.ec"
426  _sqobind[15].sqldata = (char *) &(ppm).jul;
427 #line 176 "get_stn_valuesM.ec"
428  _sqobind[16].sqldata = (char *) &(ppm).aug;
429 #line 176 "get_stn_valuesM.ec"
430  _sqobind[17].sqldata = (char *) &(ppm).sep;
431 #line 176 "get_stn_valuesM.ec"
432  _sqobind[18].sqldata = (char *) &(ppm).oct;
433 #line 176 "get_stn_valuesM.ec"
434  _sqobind[19].sqldata = (char *) &(ppm).nov;
435 #line 176 "get_stn_valuesM.ec"
436  _sqobind[20].sqldata = (char *) &(ppm).dec;
437 #line 176 "get_stn_valuesM.ec"
438  _sqobind[21].sqldata = (ppm).janq;
439 #line 176 "get_stn_valuesM.ec"
440  _sqobind[22].sqldata = (ppm).febq;
441 #line 176 "get_stn_valuesM.ec"
442  _sqobind[23].sqldata = (ppm).marq;
443 #line 176 "get_stn_valuesM.ec"
444  _sqobind[24].sqldata = (ppm).aprq;
445 #line 176 "get_stn_valuesM.ec"
446  _sqobind[25].sqldata = (ppm).mayq;
447 #line 176 "get_stn_valuesM.ec"
448  _sqobind[26].sqldata = (ppm).junq;
449 #line 176 "get_stn_valuesM.ec"
450  _sqobind[27].sqldata = (ppm).julq;
451 #line 176 "get_stn_valuesM.ec"
452  _sqobind[28].sqldata = (ppm).augq;
453 #line 176 "get_stn_valuesM.ec"
454  _sqobind[29].sqldata = (ppm).sepq;
455 #line 176 "get_stn_valuesM.ec"
456  _sqobind[30].sqldata = (ppm).octq;
457 #line 176 "get_stn_valuesM.ec"
458  _sqobind[31].sqldata = (ppm).novq;
459 #line 176 "get_stn_valuesM.ec"
460  _sqobind[32].sqldata = (ppm).decq;
461 #line 176 "get_stn_valuesM.ec"
462  sqli_slct(ESQLINTVERSION, &_SQ0,sqlcmdtxt,7,_sqibind,33,_sqobind,0,(ifx_literal_t *)0,(ifx_namelist_t *)0,0);
463 #line 176 "get_stn_valuesM.ec"
464  }
465  if(!sqlca.sqlcode)
466  {
467  for(j=1;j<=12;j++)
468  value[j]=-99.;
469  if(strcmp(ppm.janq,"B"))
470  value[1]=ppm.jan;
471  if(strcmp(ppm.febq,"B"))
472  value[2]=ppm.feb;
473  if(strcmp(ppm.marq,"B"))
474  value[3]=ppm.mar;
475  if(strcmp(ppm.aprq,"B"))
476  value[4]=ppm.apr;
477  if(strcmp(ppm.mayq,"B"))
478  value[5]=ppm.may;
479  if(strcmp(ppm.junq,"B"))
480  value[6]=ppm.jun;
481  if(strcmp(ppm.julq,"B"))
482  value[7]=ppm.jul;
483  if(strcmp(ppm.augq,"B"))
484  value[8]=ppm.aug;
485  if(strcmp(ppm.sepq,"B"))
486  value[9]=ppm.sep;
487  if(strcmp(ppm.octq,"B"))
488  value[10]=ppm.oct;
489  if(strcmp(ppm.novq,"B"))
490  value[11]=ppm.nov;
491  if(strcmp(ppm.decq,"B"))
492  value[12]=ppm.dec;
493  if(value[month] >= 0.0)
494  {
495  stn_values[nval].value = value[month];
496  if(avg[month]>=0.0)
497  stn_values[nval+maxmonths].value=100.*value[month]/avg[month];
498  if(!strcmp(pe1,"S"))
499  if(avg[4]>=0.0)
500  stn_values[nval+maxmonths*2].value=100.*value[month]/avg[4];
501  i=0; /* abort loop with a good value */
502  }
503  }
504  else
505  if(debug)
506  printf("select current month @ level %s = %d\n",t,sqlca.sqlcode);
507  }
508 
509  nval++;
510 
511  /* get level 4 value for previous maxmonths-1 */
512  ppm.cal_yr=-99; /* forces first read */
513  cal_yr=year;
514  for(k=month-1;k>month-maxmonths;k--)
515  {
516  mon=k;
517  if(k<=0)
518  {
519  cal_yr=year-(1-k/12);
520  while(mon<=0)
521  mon=mon+12;
522  }
523  if(ppm.cal_yr != cal_yr)
524  {
525 /*
526  * $select * into $ppm from promonly
527  * where id=$id and pe1=$pe1 and pe2=$pe2 and dur=$dur
528  * and t="4" and s=$s and e="Z" and p="Z" and
529  * cal_yr=$cal_yr;
530  */
531 #line 237 "get_stn_valuesM.ec"
532  {
533 #line 240 "get_stn_valuesM.ec"
534  static const char *sqlcmdtxt[] =
535 #line 240 "get_stn_valuesM.ec"
536  {
537 #line 240 "get_stn_valuesM.ec"
538  "select * from promonly where id = ? and pe1 = ? and pe2 = ? and dur = ? and t = \"4\" and s = ? and e = \"Z\" and p = \"Z\" and cal_yr = ?",
539  0
540  };
541 #line 240 "get_stn_valuesM.ec"
542 static ifx_cursor_t _SQ0 = {0};
543  static ifx_sqlvar_t _sqibind[] =
544  {
545  { 100, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
546  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
547  { 100, 2, 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  { 102, sizeof(cal_yr), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
551 #line 240 "get_stn_valuesM.ec"
552  };
553  static ifx_sqlvar_t _sqobind[] =
554  {
555  { 100, 6, 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  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
559  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
560  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
561  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
562  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
563  { 102, sizeof((ppm).cal_yr), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
564  { 105, sizeof((ppm).jan), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
565  { 105, sizeof((ppm).feb), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
566  { 105, sizeof((ppm).mar), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
567  { 105, sizeof((ppm).apr), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
568  { 105, sizeof((ppm).may), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
569  { 105, sizeof((ppm).jun), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
570  { 105, sizeof((ppm).jul), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
571  { 105, sizeof((ppm).aug), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
572  { 105, sizeof((ppm).sep), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
573  { 105, sizeof((ppm).oct), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
574  { 105, sizeof((ppm).nov), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
575  { 105, sizeof((ppm).dec), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
576  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
577  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
578  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
579  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
580  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
581  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
582  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
583  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
584  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
585  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
586  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
587  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
588 #line 240 "get_stn_valuesM.ec"
589  };
590 #line 240 "get_stn_valuesM.ec"
591  _sqibind[0].sqldata = id;
592 #line 240 "get_stn_valuesM.ec"
593  _sqibind[1].sqldata = pe1;
594 #line 240 "get_stn_valuesM.ec"
595  _sqibind[2].sqldata = pe2;
596 #line 240 "get_stn_valuesM.ec"
597  _sqibind[3].sqldata = dur;
598 #line 240 "get_stn_valuesM.ec"
599  _sqibind[4].sqldata = s;
600 #line 240 "get_stn_valuesM.ec"
601  _sqibind[5].sqldata = (char *) &cal_yr;
602 #line 240 "get_stn_valuesM.ec"
603  _sqobind[0].sqldata = (ppm).id;
604 #line 240 "get_stn_valuesM.ec"
605  _sqobind[1].sqldata = (ppm).pe1;
606 #line 240 "get_stn_valuesM.ec"
607  _sqobind[2].sqldata = (ppm).pe2;
608 #line 240 "get_stn_valuesM.ec"
609  _sqobind[3].sqldata = (ppm).dur;
610 #line 240 "get_stn_valuesM.ec"
611  _sqobind[4].sqldata = (ppm).t;
612 #line 240 "get_stn_valuesM.ec"
613  _sqobind[5].sqldata = (ppm).s;
614 #line 240 "get_stn_valuesM.ec"
615  _sqobind[6].sqldata = (ppm).e;
616 #line 240 "get_stn_valuesM.ec"
617  _sqobind[7].sqldata = (ppm).p;
618 #line 240 "get_stn_valuesM.ec"
619  _sqobind[8].sqldata = (char *) &(ppm).cal_yr;
620 #line 240 "get_stn_valuesM.ec"
621  _sqobind[9].sqldata = (char *) &(ppm).jan;
622 #line 240 "get_stn_valuesM.ec"
623  _sqobind[10].sqldata = (char *) &(ppm).feb;
624 #line 240 "get_stn_valuesM.ec"
625  _sqobind[11].sqldata = (char *) &(ppm).mar;
626 #line 240 "get_stn_valuesM.ec"
627  _sqobind[12].sqldata = (char *) &(ppm).apr;
628 #line 240 "get_stn_valuesM.ec"
629  _sqobind[13].sqldata = (char *) &(ppm).may;
630 #line 240 "get_stn_valuesM.ec"
631  _sqobind[14].sqldata = (char *) &(ppm).jun;
632 #line 240 "get_stn_valuesM.ec"
633  _sqobind[15].sqldata = (char *) &(ppm).jul;
634 #line 240 "get_stn_valuesM.ec"
635  _sqobind[16].sqldata = (char *) &(ppm).aug;
636 #line 240 "get_stn_valuesM.ec"
637  _sqobind[17].sqldata = (char *) &(ppm).sep;
638 #line 240 "get_stn_valuesM.ec"
639  _sqobind[18].sqldata = (char *) &(ppm).oct;
640 #line 240 "get_stn_valuesM.ec"
641  _sqobind[19].sqldata = (char *) &(ppm).nov;
642 #line 240 "get_stn_valuesM.ec"
643  _sqobind[20].sqldata = (char *) &(ppm).dec;
644 #line 240 "get_stn_valuesM.ec"
645  _sqobind[21].sqldata = (ppm).janq;
646 #line 240 "get_stn_valuesM.ec"
647  _sqobind[22].sqldata = (ppm).febq;
648 #line 240 "get_stn_valuesM.ec"
649  _sqobind[23].sqldata = (ppm).marq;
650 #line 240 "get_stn_valuesM.ec"
651  _sqobind[24].sqldata = (ppm).aprq;
652 #line 240 "get_stn_valuesM.ec"
653  _sqobind[25].sqldata = (ppm).mayq;
654 #line 240 "get_stn_valuesM.ec"
655  _sqobind[26].sqldata = (ppm).junq;
656 #line 240 "get_stn_valuesM.ec"
657  _sqobind[27].sqldata = (ppm).julq;
658 #line 240 "get_stn_valuesM.ec"
659  _sqobind[28].sqldata = (ppm).augq;
660 #line 240 "get_stn_valuesM.ec"
661  _sqobind[29].sqldata = (ppm).sepq;
662 #line 240 "get_stn_valuesM.ec"
663  _sqobind[30].sqldata = (ppm).octq;
664 #line 240 "get_stn_valuesM.ec"
665  _sqobind[31].sqldata = (ppm).novq;
666 #line 240 "get_stn_valuesM.ec"
667  _sqobind[32].sqldata = (ppm).decq;
668 #line 240 "get_stn_valuesM.ec"
669  sqli_slct(ESQLINTVERSION, &_SQ0,sqlcmdtxt,6,_sqibind,33,_sqobind,0,(ifx_literal_t *)0,(ifx_namelist_t *)0,0);
670 #line 240 "get_stn_valuesM.ec"
671  }
672  if(!sqlca.sqlcode)
673  {
674  cal_yr=ppm.cal_yr;
675  for(j=1;j<=12;j++)
676  value[j]=-99.;
677  if(strcmp(ppm.janq,"B"))
678  value[1]=ppm.jan;
679  if(strcmp(ppm.febq,"B"))
680  value[2]=ppm.feb;
681  if(strcmp(ppm.marq,"B"))
682  value[3]=ppm.mar;
683  if(strcmp(ppm.aprq,"B"))
684  value[4]=ppm.apr;
685  if(strcmp(ppm.mayq,"B"))
686  value[5]=ppm.may;
687  if(strcmp(ppm.junq,"B"))
688  value[6]=ppm.jun;
689  if(strcmp(ppm.julq,"B"))
690  value[7]=ppm.jul;
691  if(strcmp(ppm.augq,"B"))
692  value[8]=ppm.aug;
693  if(strcmp(ppm.sepq,"B"))
694  value[9]=ppm.sep;
695  if(strcmp(ppm.octq,"B"))
696  value[10]=ppm.oct;
697  if(strcmp(ppm.novq,"B"))
698  value[11]=ppm.nov;
699  if(strcmp(ppm.decq,"B"))
700  value[12]=ppm.dec;
701  }
702  else
703  {
704  if(debug)
705  printf("mon = %d sqlca.sqlcode = %d\n",mon,sqlca.sqlcode);
706  }
707  }
708  if(!sqlca.sqlcode)
709  {
710  if(value[mon]>=0.0)
711  {
712  stn_values[nval].value=value[mon];
713  if(avg[mon]>=0.0)
714  stn_values[nval+maxmonths].value=100.*value[mon]/avg[mon];
715  if(!strcmp(pe1,"S"))
716  {
717  if(avg[4]>=0.0)
718  stn_values[nval+maxmonths*2].value=100.*value[mon]/avg[4];
719  }
720  }
721  }
722  nval++;
723  }
724 
725  if(debug)
726  {
727  printf("nval = %d\n",nval);
728  for(k=0;k<nval;k++)
729  printf("%7.2f",stn_values[k].value);
730  printf("\n");
731  for(k=nval;k<nval*2;k++)
732  printf("%7.2f",stn_values[k].value);
733  printf("\n");
734  }
735 
736  if(strcmp(pe1,"S"))
737  nval=nval*3;
738  else
739  nval=nval*2;
740 
741  count=nval;
742 
743  if(count)
744  return(nval);
745  else
746  return(0);
747 }
748 
749 
750 #line 317 "get_stn_valuesM.ec"
static int i
struct sqlca_s sqlca
int hour
Definition: display_data.c:26
int day
Definition: display_data.c:26
int year
Definition: display_data.c:26
int month
Definition: display_data.c:26
char * mon[]
int get_stn_valuesM(char *stn_id, char *shef, time_t abeg, int maxmonths, struct stn_values *stn_values)
int debug
Definition: hydro_data.h:53
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
int count[131][131]
Definition: mapp2h.h:50
int k
Definition: mapp2h.h:48
int maxmonths
Definition: mapper.c:58
float value
long sqlcode
Definition: db.c:44
float value
Definition: hydro_data.h:35