Mapper
create_shef_file.c
Go to the documentation of this file.
1 #include <stdio.h>
2 #include <sys/types.h>
3 #include <sys/stat.h>
4 #include <X11/Xos.h>
5 #include <ctype.h>
6 #include "mm2chps.h"
7 
8 #include <Xm/Text.h>
9 #include <Xm/TextF.h>
10 
11 extern struct time_cntl tc;
12 extern struct fgroup_info fg[20];
13 extern fgroup_num;
14 extern Widget text_edit;
15 extern Widget text_output;
16 extern int fg_toggle_item_set;
17 extern int dur_toggle_item_set;
18 extern int src_toggle_item_set;
19 extern int parm_toggle_item_set;
20 
21 int create_shef_file(int remove)
22 {
23 FILE *fp;
24 char *text;
25 char parameter[8];
26 char line[80];
27 char tmp_file[80];
28 char src1[2];
29 char src2[2];
30 char fgroup_name[9];
31 int i;
32 int y,m,d,h,hx;
33 int len,len_actual;
34 int debug=0;
35 
36  /* establish data source(s) */
37  strcpy(src1,"E"); /* default is HAS */
38  strcpy(src2,"E"); /* default is HAS */
39  if(src_toggle_item_set==2)
40  {
41  strcpy(src1,"W"); /* HPC */
42  strcpy(src2,"W"); /* HPC */
43  }
44  if(src_toggle_item_set==3)
45  {
46  strcpy(src1,"U"); /* model 1 */
47  strcpy(src2,"U"); /* model 2 */
48  }
49  if(src_toggle_item_set==4)
50  {
51  strcpy(src1,"V"); /* model 2 */
52  strcpy(src2,"V"); /* model 2 */
53  }
54  if(src_toggle_item_set==5)
55  {
56  strcpy(src1,"E"); /* HAS */
57  strcpy(src2,"U"); /* model 1 */
58  }
59  if(src_toggle_item_set==6)
60  {
61  strcpy(src1,"E"); /* HAS */
62  strcpy(src2,"W"); /* HPC */
63  }
64  if(src_toggle_item_set==7)
65  {
66  strcpy(src1,"W"); /* HPC */
67  strcpy(src2,"U"); /* model 1 */
68  }
69  if(src_toggle_item_set==8)
70  {
71  strcpy(src1,"W"); /* HPC */
72  strcpy(src2,"V"); /* model 2 */
73  }
74 
75  if(parm_toggle_item_set == 1)
76  strcpy(parameter,"maps");
77  if(parm_toggle_item_set == 2)
78  {
79  strcpy(parameter,"mats");
80  strcpy(src1,"D"); /* only one choice */
81  strcpy(src2,"D"); /* only one choice */
82  }
83  if(parm_toggle_item_set == 3)
84  strcpy(parameter,"mazs");
85 
86  strcpy(fgroup_name,fg[fg_toggle_item_set].id);
87  str_trim(fgroup_name);
88 
89  sprintf(tmp_file,"%s.f%s.shef",fgroup_name,parameter);
90 
91  sprintf(line,"/local/bin/scale_fcst_forcings -fg %s -days %d -src %s%s -%s -shef",
92  fg[fg_toggle_item_set].id,dur_toggle_item_set,src1,src2,parameter);
93  system(line);
94 
95  if(debug)
96  printf("%s\n",line);
97 
98  if(remove)
99  {
100  if((fp = fopen (tmp_file, "r")))
101  {
102  len=20000;
103  if (!(text = XtMalloc ((unsigned)(len+1)))) /* +1 for NULL */
104  {
105  sprintf (line, "%s: XtMalloc(%ld) failed", len, tmp_file);
106  if(text_output)
107  XmTextFieldSetString (text_output, line);
108  return(0);
109  }
110  else
111  {
112  len_actual=fread (text, sizeof (char), len, fp);
113  text[len_actual] = 0; /* NULL-terminate */
114  if(text_edit)
115  XmTextSetString (text_edit, text);
116  sprintf (line, "Click 'Save as *' to store as '* File'");
117  if(text_output)
118  XmTextFieldSetString (text_output, line);
119  }
120  /* close and rm file */
121  fclose(fp);
122  sprintf(line,"rm %s",tmp_file);
123  system(line);
124  }
125  else
126  {
127  sprintf(line,"Couldn't open temp file %s",tmp_file);
128  if(text_output)
129  XmTextFieldSetString (text_output, line);
130  return(0);
131  }
132  }
133  return(1);
134 }
135 
136 /* trims spaces */
137 int str_trim(char *str1)
138 {
139 int k;
140  for(k=strlen(str1)-1;k>=1;k--)
141  if(!strncmp(str1+k," ",1))
142  *(str1+k)='\0';
143  else
144  break;
145  return(0);
146 }
147 
static int i
int create_shef_file(int remove)
struct fgroup_info fg[20]
int str_trim(char *str1)
Widget text_edit
int parm_toggle_item_set
fgroup_num
Widget text_output
int fg_toggle_item_set
int src_toggle_item_set
int dur_toggle_item_set
struct time_cntl tc
Widget text
Definition: display_rec.c:5
int debug
Definition: hydro_data.h:53
fclose(fp)
sprintf(fbuf,"/usr/mapper/nexrad/ngrid.%02d-%02d-%02d-%02d", year, month, day, hour)
printf("fbuf is %s\n", fbuf)
fp
Definition: make_NEXRAD.c:339
system(tarbuf)
int k
Definition: mapp2h.h:48