16 extern struct ts ts[20];
24 extern unsigned long cmap[16];
44 Widget rowcol,rowcol3,pbutton,
rowcol1,sep;
50 double testdist,maxdist;
53 Dimension width,height;
54 signed long XSIZE,YSIZE;
59 char *st[10],buf[100],muf[10];
61 int time_pos,naflag,m;
82 XtSetArg(args[0],XtNwidth,&width);
83 XtSetArg(args[1],XtNheight,&height);
86 XSIZE=(long)width*10L;
87 YSIZE=(long)height*10L;
89 xrat=(float)XSIZE/(
float)12800;
90 yrat=(float)YSIZE/(
float)9600;
109 lint1=(long)
npoint[0]*(
long)MY;
110 lint2=(long)
npoint[1]*(
long)MY;
125 win_x=((x*MY-xcen)/
zoom + lint1)/mult;
126 win_y=((y*MY-ycen)/
zoom + lint2)/mult;
140 x=(((win_x*mult)-lint1)*
zoom+xcen)/MY;
141 y=(((win_y*mult)-lint2)*
zoom+ycen)/MY;
156 for(m=0;m<
tsmax;m++) {
158 if(strncmp(&
tstation[i].parm[4],&
ts[m].abr[1],1)==0 &&
dflag[m+1] == 1)
179 r=
dval.
a * cos(lat*conv)/(1+sin(lat*conv))
182 s=
dval.
a * cos(lat*conv)/(1+sin(lat*conv))
185 testdist= pow((
double)(win_x-r),2) + pow((
double)(win_y-
s),2);
186 testdist= pow(testdist,.5);
188 if(testdist < maxdist) {
209 "You cannot quality control a time distributed tstation");
215 help_string=XmStringCreateLocalized(
"graph");
218 XtSetArg(args[argcount],XmNdeleteResponse,XmDO_NOTHING);argcount++;
219 XtSetArg(args[argcount],XmNautoUnmanage,False);argcount++;
220 XtSetArg(args[argcount],XmNwidth, 300);argcount++;
221 XtSetArg(args[argcount],XmNheight,500);argcount++;
222 XtSetArg(args[argcount],XmNbackground,
mmap[1]);argcount++;
223 XtSetArg(args[argcount],XmNforeground,
mmap[0]);argcount++;
225 XtSetArg(args[argcount],XmNhelpLabelString,help_string);argcount++;
235 XtSetArg(args[argcount],XmNbackground,
mmap[1]);argcount++;
236 XtSetArg(args[argcount],XmNforeground,
mmap[0]);argcount++;
237 XtSetArg(args[argcount],XmNorientation,XmVERTICAL);argcount++;
238 rowcol=XmCreateRowColumn(
edit_dialog,
"Edit tstations",args,argcount);
244 t=XmStringCreateLocalized(buf);
247 XtSetArg(args[argcount],XmNbackground,
mmap[1]);argcount++;
248 XtSetArg(args[argcount],XmNforeground,
mmap[0]);argcount++;
249 XtSetArg(args[argcount],XmNlabelString,
t);argcount++;
250 pbutton=XmCreateLabel(rowcol,
"Label",args,argcount);
251 XtManageChild(pbutton);
255 t=XmStringCreateLocalized(buf);
257 XtSetArg(args[argcount],XmNbackground,
mmap[1]);argcount++;
258 XtSetArg(args[argcount],XmNforeground,
mmap[0]);argcount++;
259 XtSetArg(args[argcount],XmNlabelString,
t);argcount++;
260 pbutton=XmCreateLabel(rowcol,
"Label",args,argcount);
261 XtManageChild(pbutton);
267 t=XmStringCreateLocalized(buf);
269 XtSetArg(args[argcount],XmNbackground,
mmap[1]);argcount++;
270 XtSetArg(args[argcount],XmNforeground,
mmap[0]);argcount++;
271 XtSetArg(args[argcount],XmNlabelString,
t);argcount++;
272 pbutton=XmCreateLabel(rowcol,
"Label",args,argcount);
273 XtManageChild(pbutton);
278 sprintf(buf,
"monthly average high %5.1f low %5.1f",
280 t=XmStringCreateLocalized(buf);
282 XtSetArg(args[argcount],XmNbackground,
mmap[1]);argcount++;
283 XtSetArg(args[argcount],XmNforeground,
mmap[0]);argcount++;
284 XtSetArg(args[argcount],XmNlabelString,
t);argcount++;
285 pbutton=XmCreateLabel(rowcol,
"Label",args,argcount);
286 XtManageChild(pbutton);
293 sprintf(buf,
"estimate %d ",
296 t=XmStringCreateLocalized(buf);
298 XtSetArg(args[argcount],XmNbackground,
mmap[1]);argcount++;
299 XtSetArg(args[argcount],XmNforeground,
mmap[0]);argcount++;
300 XtSetArg(args[argcount],XmNlabelString,
t);argcount++;
301 pbutton=XmCreateLabel(rowcol,
"Label",args,argcount);
302 XtManageChild(pbutton);
313 XtSetArg(args[argcount],XmNvalue,muf);argcount++;
314 XtSetArg(args[argcount],XmNbackground,
mmap[1]);argcount++;
315 XtSetArg(args[argcount],XmNforeground,
mmap[0]);argcount++;
316 textz=XmCreateTextField(rowcol,
"Point QPF",args,argcount);
317 XtManageChild(
textz);
321 t=XmStringCreateLocalized(
"tstation quality");
324 XtSetArg(args[argcount],XmNbackground,
mmap[1]);argcount++;
325 XtSetArg(args[argcount],XmNforeground,
mmap[0]);argcount++;
326 XtSetArg(args[argcount],XmNlabelString,
t);argcount++;
327 pbutton=XmCreateLabel(rowcol,
"Label",args,argcount);
328 XtManageChild(pbutton);
340 XtSetArg(args[argcount],XmNbackground,
mmap[1]);argcount++;
341 XtSetArg(args[argcount],XmNforeground,
mmap[0]);argcount++;
342 XtSetArg(args[argcount],XmNpacking,XmPACK_COLUMN); argcount++;
343 XtSetArg(args[argcount],XmNnumColumns,2);argcount++;
344 XtSetArg(args[argcount],XmNorientation,XmVERTICAL);argcount++;
345 rowcol1=XmCreateRadioBox(rowcol,
"Edit tstations",args,argcount);
350 st[1]=
"Reset to Original";
355 XtSetArg(args[argcount],XmNbackground,
mmap[1]);argcount++;
356 XtSetArg(args[argcount],XmNforeground,
mmap[0]);argcount++;
357 XtSetArg(args[argcount],XmNselectColor,
cmap[4]);argcount++;
360 XtSetArg(args[argcount],XmNset,True);
363 XtSetArg(args[argcount],XmNset,False);
367 pbutton=XmCreateToggleButton(
rowcol1,st[i],args,argcount);
371 XtManageChild(pbutton);
383 st[1]=
"Screened (Force)";
384 st[2]=
"Questionable";
390 XtSetArg(args[argcount],XmNbackground,
mmap[1]);argcount++;
391 XtSetArg(args[argcount],XmNforeground,
mmap[0]);argcount++;
392 XtSetArg(args[argcount],XmNselectColor,
cmap[4]);argcount++;
395 XtSetArg(args[argcount],XmNset,True);
398 XtSetArg(args[argcount],XmNset,False);
402 pbutton=XmCreateToggleButton(
rowcol1,st[i],args,argcount);
405 XtManageChild(pbutton);
408 XtSetSensitive(pbutton,False);
427 sep=XmCreateSeparator(rowcol,
"swp",NULL,0);
433 t=XmStringCreateLocalized(
"Station Location");
435 XtSetArg(args[argcount],XmNbackground,
mmap[1]);argcount++;
436 XtSetArg(args[argcount],XmNforeground,
mmap[0]);argcount++;
437 XtSetArg(args[argcount],XmNlabelString,
t);argcount++;
438 pbutton=XmCreateLabel(rowcol,
"Label",args,argcount);
439 XtManageChild(pbutton);
443 XtSetArg(args[argcount],XmNbackground,
mmap[1]);argcount++;
444 XtSetArg(args[argcount],XmNforeground,
mmap[0]);argcount++;
445 XtSetArg(args[argcount],XmNpacking,XmPACK_COLUMN); argcount++;
446 XtSetArg(args[argcount],XmNnumColumns,2);argcount++;
447 XtSetArg(args[argcount],XmNorientation,XmVERTICAL);argcount++;
448 rowcol3=XmCreateRadioBox(rowcol,
"Edit tstations",args,argcount);
458 XtSetArg(args[argcount],XmNbackground,
mmap[1]);argcount++;
459 XtSetArg(args[argcount],XmNforeground,
mmap[0]);argcount++;
460 XtSetArg(args[argcount],XmNselectColor,
cmap[4]);argcount++;
463 XtSetArg(args[argcount],XmNset,True);
466 XtSetArg(args[argcount],XmNset,False);
470 pbutton=XmCreateToggleButton(rowcol3,st[i],args,argcount);
473 XtManageChild(pbutton);
478 XtManageChild(rowcol3);
479 XtManageChild(rowcol);
497 else if((
int)data==2) {
504 else if((
int)data==1) {
511 else if((
int)data==3) {
593 XtSetArg(args[argcount],XmNvalue,&cstr);argcount++;
594 XtGetValues(
textz,args,argcount);
675 XtSetArg(args[0],XmNmenuHistory,
diswidget[k]);
751 if(pc[4]!=
'Z' && pc[4]!=
'M')
struct station tstation[1000]
void update_bad_tvalues(int iday)
void restore_bad_tvalues(int iday)
void berror(Widget widget, char *string)
void kill_widget(Widget widget, XtPointer client_data, XtPointer call_data)
char tstation_list_custom_file[1000]
void display_data(char *hb5, char *pc, int dmonth, int dday, int dyear, int dhour, int ddays)
void change_tcustom_file(Widget w, XtPointer data, XtPointer call_data)
void reset_tstation_quality(Widget w, XtPointer data, XtPointer call_data)
void tgraph_file(Widget w, XtPointer data, XtPointer call_data)
void change_tstation_location(Widget w, XtPointer data, XtPointer call_data)
void edit_maxminstations(int win_x, int win_y, unsigned int win_button)
void change_tstation_quality(Widget w, XtPointer data, XtPointer call_data)
void estimate_daily_tstations(int j)
printf("pcp %d\n", pcp_in_use[103])
void quality_control_tstations(int j)