8 char *
names[]={
"Utah zone 1",
30 int pdi[]={1,2,3,4,5,6,7,21,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22};
32 double ful[]={0.90,1.25,1.20,1.20,1.25,1.25,1.25,1.25,1.30,1.40,1.60,
33 1.75,1.80,1.80,1.35,1.70,2.25,2.25,1.50,2.25,2.25,1.25};
35 double f1[]= {0.78,0.80,0.63,0.75,0.72,0.72,0.88,0.72,0.69,0.79,0.69,
36 0.69,0.72,0.72,0.89,0.77,0.78,0.78,0.73,0.67,0.78,0.72};
38 double f6[]= {1.33,1.28,1.25,1.17,1.12,1.12,1.28,1.20,1.12,1.21,1.12,
39 1.06,1.11,1.17,1.30,1.12,1.12,1.12,1.33,1.16,1.16,1.12};
41 double bf[]= {1.25,1.05,1.05,1.05,1.00,1.15,1.20,1.15,1.15,1.05,1.10,
42 1.25,1.10,1.10,1.15,1.25,1.00,1.00,1.25,1.25,1.25,1.25};
44 char values[]={0xc8,0x48,0x03,0x30,0x02,0x5c,
45 0xc8,0x48,0x03,0x24,0x02,0x1b,
46 0xc8,0x40,0x03,0x4a,0x02,0x6d,
47 0xc8,0x48,0x03,0x45,0x02,0x34,
48 0xc8,0x48,0x03,0x61,0x02,0x6e,
49 0xc8,0x48,0x03,0x75,0x02,0x58,
50 0xc8,0x48,0x03,0x6a,0x02,0x2f,
51 0xc8,0x48,0x03,0x9a,0x02,0x40,
52 0xc8,0x40,0x03,0xb8,0x02,0x15,
53 0xc8,0x48,0x03,0x8d,0x01,0xf4,
54 0xc8,0x50,0x03,0x8f,0x01,0xc0,
55 0xc8,0x48,0x03,0x9e,0x01,0x8f,
56 0xc8,0x48,0x03,0x18,0x01,0xf1,
57 0xc8,0x40,0x03,0x58,0x01,0xea,
58 0xc8,0x48,0x03,0x30,0x01,0xd3,
59 0xc8,0x48,0x03,0x51,0x01,0xbb,
60 0xc8,0x48,0x03,0x0b,0x01,0xb7,
61 0xc8,0x48,0x03,0x37,0x01,0xae,
62 0xc8,0x40,0x03,0x53,0x01,0x93,
63 0xc8,0x48,0x03,0x03,0x02,0x0d,
64 0xc8,0x48,0x03,0x7c,0x02,0x86,
68 String
fallbacks[]={
"*fontList: -adobe-courier-bold-r-*-180-*",NULL};
76 main(
int argc,
char *argv[])
82 int i,
j,
k,h,m,ier,mer,found,ival,no,ono;
84 char *p,
fbuf[50000],abuf[100],mbuf[100],
name[50],date[50],dbuf[100];
88 Widget pbutton,rowcol,rowcol1,form,sw,rowcol2;
93 dirp=opendir(
"/tmp/queue/afos/in");
96 printf(
"could not open /tmp/queue/afos/in\n");
109 if(strncasecmp(
"NMCGPH6KA",
de->d_name,9)==0) {
129 if(ono == 12 && no == 1) {
137 else if(no == 1 && ono == 12)
155 strcpy(
fbuf,
"/tmp/queue/afos/in/");
166 ier=fread(
fbuf,1,50000,
fp);
170 mer=memcmp(&
fbuf[
i],
"VALID",5);
174 strncpy(date,&
fbuf[
i],16);
198 for(
j=
i+8;
j<
i+12;
j++) {
209 fval[m]=(float)ival/10;
220 fp=fopen(
"/usr/db/raw/ffg/data/ffg.out",
"w");
231 fp=fopen(
"/usr/db/raw/ffg/data/ffg.out",
"r");
242 ier=sscanf(dbuf,
"%f",&fval[
i]);
250 XtSetLanguageProc(NULL,NULL,NULL);
252 XmNdeleteResponse,XmDO_NOTHING,NULL);
255 XtSetArg(
args[argcount],XmNorientation,XmVERTICAL);argcount++;
258 t=XmStringCreateLocalized(
"FFG (Version 1.0)");
260 XtSetArg(
args[argcount],XmNlabelString,t);argcount++;
261 pbutton=XmCreateLabel(rowcol,
"Label",
args,argcount);
262 XtManageChild(pbutton);
265 pbutton=XmCreateSeparator(rowcol,
"swp",NULL,0);
266 XtManageChild(pbutton);
268 t=XmStringCreateLocalized(date);
270 XtSetArg(
args[argcount],XmNlabelString,t);argcount++;
271 pbutton=XmCreateLabel(rowcol,
"Label",
args,argcount);
272 XtManageChild(pbutton);
276 XtSetArg(
args[argcount],XmNwidth,550);argcount++;
277 XtSetArg(
args[argcount],XmNheight,300);argcount++;
278 XtSetArg(
args[argcount],XmNscrollingPolicy,XmAUTOMATIC);argcount++;
280 sw=XmCreateScrolledWindow(rowcol,
"dummy",
args,argcount);
283 XtSetArg(
args[argcount],XmNpacking,XmPACK_COLUMN); argcount++;
284 XtSetArg(
args[argcount],XmNnumColumns,22);argcount++;
285 XtSetArg(
args[argcount],XmNorientation,XmHORIZONTAL);argcount++;
286 XtSetArg(
args[argcount],XmNisAligned,True);argcount++;
287 XtSetArg(
args[argcount],XmNentryAlignment,XmALIGNMENT_END);argcount++;
288 rowcol1=XmCreateRowColumn(sw,
"Edit Stations",
args,argcount);
292 t=XmStringCreateLocalized(
names[
i]);
294 XtSetArg(
args[argcount],XmNlabelString,t);argcount++;
295 pbutton=XmCreateLabel(rowcol1,
"Label",
args,argcount);
296 XtManageChild(pbutton);
301 XtSetArg(
args[argcount],XmNvalue,dbuf);argcount++;
302 textw[
i]=XmCreateTextField(rowcol1,
"Point QPF",
args,argcount);
307 pbutton=XmCreateSeparator(rowcol,
"swp",NULL,0);
308 XtManageChild(pbutton);
311 form=XmCreateForm(rowcol,
"Edit Stations",
args,argcount);
314 XtSetArg(
args[argcount],XmNleftAttachment,XmATTACH_POSITION);argcount++;
315 XtSetArg(
args[argcount],XmNleftPosition,20);argcount++;
316 XtSetArg(
args[argcount],XmNrightAttachment,XmATTACH_POSITION);argcount++;
317 XtSetArg(
args[argcount],XmNrightPosition,40);argcount++;
318 pbutton=XmCreatePushButton(form,
"Send",
args,argcount);
319 XtAddCallback(pbutton,XmNactivateCallback,
send_afos,NULL);
320 XtManageChild(pbutton);
323 XtSetArg(
args[argcount],XmNleftAttachment,XmATTACH_POSITION);argcount++;
324 XtSetArg(
args[argcount],XmNleftPosition,60);argcount++;
325 XtSetArg(
args[argcount],XmNrightAttachment,XmATTACH_POSITION);argcount++;
326 XtSetArg(
args[argcount],XmNrightPosition,80);argcount++;
327 pbutton=XmCreatePushButton(form,
"Quit",
args,argcount);
328 XtAddCallback(pbutton,XmNactivateCallback,
quit_callback,NULL);
329 XtManageChild(pbutton);
332 XtManageChild(rowcol1);
334 XtManageChild(rowcol);
343 double ff1[50],ff3[50],ff6[50],fval[50];
346 char *p,dbuf[100],abuf[100],mbuf[100],
name[50],key[20],*w;
347 char buf1[50],buf2[50];
348 char datebuf[50],
buf[50],*q,add[10],
fname[50];
365 XtSetArg(
args[argcount],XmNvalue,&cstr);argcount++;
375 XtSetArg(
args[argcount],XmNwidth, 400);argcount++;
376 XtSetArg(
args[argcount],XmNheight,400);argcount++;
377 XtSetArg(
args[argcount],XmNautoUnmanage,
FALSE);argcount++;
378 XtSetArg(
args[argcount],XmNdialogStyle,
379 XmDIALOG_FULL_APPLICATION_MODAL);argcount++;
380 XtSetArg(
args[argcount],XmNdeleteResponse,XmDO_NOTHING);
385 XtUnmanageChild(XmMessageBoxGetChild(
dialog,XmDIALOG_CANCEL_BUTTON));
386 XtUnmanageChild(XmMessageBoxGetChild(
dialog,XmDIALOG_HELP_BUTTON));
392 strcat(
text,
"The following products were\ncreated and sent to AFOS:\n\n");
396 XtSetArg(
args[argcount],XmNrows,10);argcount++;
397 XtSetArg(
args[argcount],XmNcolumns,20);argcount++;
398 XtSetArg(
args[argcount],XmNeditable,False);argcount++;
399 XtSetArg(
args[argcount],XmNeditMode,XmMULTI_LINE_EDIT);argcount++;
400 XtSetArg(
args[argcount],XmNcursorPositionVisible,False);argcount++;
401 XtSetArg(
args[argcount],XmNvalue,
text);argcount++;
402 textwi=XmCreateScrolledText(
dialog,
"areas",
args,argcount);
404 XtManageChild(textwi);
411 ff3[
i]=(0.0192*fval[m] + .9808) + .005;
413 else if(fval[m] < -2.0 && fval[m] > -5.0)
417 ff3[
i]=(-.02*fval[m] + .824) + .005;
430 strftime(dbuf,80,
"%I%M %p %Z %B %d, %Y",gm);
438 strcpy(datebuf,&dbuf[
i]);
440 fp=fopen(
"/usr/db/raw/ffg/data/ffg.in",
"r");
444 printf(
"could not open /usr/db/raw/ffg/data/ffg.in\n");
451 p=fgets(dbuf,100,
fp);
469 strcpy(
fname,
"/usr/db/raw/ffg/data/");
476 printf(
"could not open %s\n",buf1);
486 fputs(
"Colorado Basin River Forcast Center\n",fw);
487 fputs(
"National Weather Service Salt Lake City, Utah\n",fw);
488 sprintf(mbuf,
"\nFlash flood guidance issued %s\n",datebuf);
491 sprintf(mbuf,
"\n.B SLR %02d%02d DH12/PPHCF/PPTCF/PPQCF\n",
492 gm->tm_mon+1,gm->tm_mday);
497 fputs(
": Average\n",fw);
498 fputs(
":Forecast Rainfall in Inches\n",fw);
499 fputs(
": Zone 1 hr 3 hr 6 hr\n",fw);
500 fputs(
":-------- --------------------\n",fw);
505 p=fgets(dbuf,100,
fp);
514 fseek(
fp,pos,SEEK_SET);
519 ier=sscanf(dbuf,
"%s %s",buf1,buf2);
523 sprintf(mbuf,
"%s %4.1f %4.1f %4.1f\n",
524 buf2,ff1[
k],ff3[
k],ff6[
k]);
530 fputs(
".END\n\n",fw);
531 fputs(
"Values are average inches of rainfall to begin flooding\n",fw);
532 fputs(
"\nFlash Flood Guidance is primarily dependent upon terrain and rainfall\n",fw);
533 fputs(
"intensity. Flash Flood Guidance for urban areas and steep mountainous\n",fw);
534 fputs(
"terrain may be less than indicated above.\n",fw);
536 fputs(
"\nNNNN\n",fw);
547 sprintf(mbuf,
"%s %s to afos\n",key,w);
549 XmTextInsert(textwi,
posit,mbuf);
569 void traverse(Widget w,XtPointer data,XtPointer junk)
573 XmProcessTraversal(w,XmTRAVERSE_NEXT_TAB_GROUP);
main(int argc, char *argv[])
char * pars_line(char *buf, char *s, char *sbuf)
sprintf(fbuf,"/usr/mapper/nexrad/ngrid.%02d-%02d-%02d-%02d", year, month, day, hour)
printf("fbuf is %s\n", fbuf)
fprintf(fp,"%d %d %d %d 1\n", iminx, iminy, maxi, maxj)