Mapper
libraries
cnrfc
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
i
static int i
Definition:
get_apps_defaults.c:110
create_shef_file
int create_shef_file(int remove)
Definition:
create_shef_file.c:21
fg
struct fgroup_info fg[20]
str_trim
int str_trim(char *str1)
Definition:
create_shef_file.c:137
text_edit
Widget text_edit
parm_toggle_item_set
int parm_toggle_item_set
fgroup_num
fgroup_num
text_output
Widget text_output
fg_toggle_item_set
int fg_toggle_item_set
src_toggle_item_set
int src_toggle_item_set
dur_toggle_item_set
int dur_toggle_item_set
tc
struct time_cntl tc
text
Widget text
Definition:
display_rec.c:5
debug
int debug
Definition:
hydro_data.h:53
fclose
fclose(fp)
sprintf
sprintf(fbuf,"/usr/mapper/nexrad/ngrid.%02d-%02d-%02d-%02d", year, month, day, hour)
printf
printf("fbuf is %s\n", fbuf)
fp
fp
Definition:
make_NEXRAD.c:339
system
system(tarbuf)
k
int k
Definition:
mapp2h.h:48
Generated by
1.9.1