ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/SHAPES/shaperCmd.c
Revision: 1312
Committed: Sat Jun 26 15:32:12 2004 UTC (20 years ago) by chrisfen
Content type: text/plain
File size: 11796 byte(s)
Log Message:
Setting up shaper to accept a tolerance

File Contents

# Content
1 /*
2 File autogenerated by gengetopt version 2.12.1
3 generated with the following command:
4 gengetopt --file-name=shaperCmd
5
6 The developers of gengetopt consider the fixed text that goes in all
7 gengetopt output files to be in the public domain:
8 we make no copyright claims on it.
9 */
10
11 /* If we use autoconf. */
12 #ifdef HAVE_CONFIG_H
13 #include "config.h"
14 #endif
15
16 #include <stdio.h>
17 #include <stdlib.h>
18 #include <string.h>
19
20 #include "getopt.h"
21
22 #include "shaperCmd.h"
23
24 static
25 void clear_given (struct gengetopt_args_info *args_info);
26 static
27 void clear_args (struct gengetopt_args_info *args_info);
28
29 static int
30 cmdline_parser_internal (int argc, char * const *argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required, const char *additional_error);
31
32 static char *
33 gengetopt_strdup (const char *s);
34
35 static
36 void clear_given (struct gengetopt_args_info *args_info)
37 {
38 args_info->help_given = 0 ;
39 args_info->version_given = 0 ;
40 args_info->input_given = 0 ;
41 args_info->bandwidth_given = 0 ;
42 args_info->tolerance_given = 0 ;
43 args_info->charmm_given = 0 ;
44 args_info->amber_given = 0 ;
45 args_info->lj_given = 0 ;
46 args_info->gaff_given = 0 ;
47 args_info->opls_given = 0 ;
48 args_info->ForceField_group_counter = 0 ;
49 }
50
51 static
52 void clear_args (struct gengetopt_args_info *args_info)
53 {
54 args_info->input_arg = NULL;
55 args_info->bandwidth_arg = 8 ;
56 args_info->tolerance_arg = 0.01 ;
57 }
58
59 void
60 cmdline_parser_print_version (void)
61 {
62 printf ("%s %s\n", CMDLINE_PARSER_PACKAGE, CMDLINE_PARSER_VERSION);
63 }
64
65 void
66 cmdline_parser_print_help (void)
67 {
68 cmdline_parser_print_version ();
69 printf("\n"
70 "Usage: %s [OPTIONS]...\n", CMDLINE_PARSER_PACKAGE);
71 printf("\n");
72 printf("%s\n"," -h, --help Print help and exit");
73 printf("%s\n"," -V, --version Print version and exit");
74 printf("%s\n"," -i, --input=filename input file name");
75 printf("%s\n"," -b, --bandwidth=INT The step detail for the potential grids - typically \n a power of 2 (default=`8')");
76 printf("%s\n"," -t, --tolerance=DOUBLE The tolerance for recognition of spherical harmonic \n terms (default=`0.01')");
77 printf("\n");
78 printf(" Group: ForceField A Force Field must be specified\n");
79 printf("%s\n"," -c, --charmm Use CHARMM 27 parameters");
80 printf("%s\n"," -a, --amber Use Amber99 parameters");
81 printf("%s\n"," -l, --lj Use Lennard-Jones parameters");
82 printf("%s\n"," -g, --gaff Use GAFF parameters");
83 printf("%s\n"," -o, --opls Use OPLS/AA parameters");
84 }
85
86 void
87 cmdline_parser_init (struct gengetopt_args_info *args_info)
88 {
89 clear_given (args_info);
90 clear_args (args_info);
91 }
92
93 void
94 cmdline_parser_free (struct gengetopt_args_info *args_info)
95 {
96
97 if (args_info->input_arg)
98 {
99 free (args_info->input_arg); /* free previous argument */
100 args_info->input_arg = 0;
101 }
102
103 clear_given (args_info);
104 }
105
106
107 /* gengetopt_strdup() */
108 /* strdup.c replacement of strdup, which is not standard */
109 char *
110 gengetopt_strdup (const char *s)
111 {
112 char *result = NULL;
113 if (!s)
114 return result;
115
116 result = (char*)malloc(strlen(s) + 1);
117 if (result == (char*)0)
118 return (char*)0;
119 strcpy(result, s);
120 return result;
121 }
122
123 static void
124 reset_group_ForceField(struct gengetopt_args_info *args_info);
125
126 static void
127 reset_group_ForceField(struct gengetopt_args_info *args_info)
128 {
129 if (! args_info->ForceField_group_counter)
130 return;
131
132 args_info->charmm_given = 0 ;
133 args_info->amber_given = 0 ;
134 args_info->lj_given = 0 ;
135 args_info->gaff_given = 0 ;
136 args_info->opls_given = 0 ;
137
138 args_info->ForceField_group_counter = 0;
139 }
140
141 int
142 cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
143 {
144 return cmdline_parser2 (argc, argv, args_info, 0, 1, 1);
145 }
146
147 int
148 cmdline_parser2 (int argc, char * const *argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required)
149 {
150 int result;
151
152 result = cmdline_parser_internal (argc, argv, args_info, override, initialize, check_required, NULL);
153
154 if (result == EXIT_FAILURE)
155 {
156 cmdline_parser_free (args_info);
157 exit (EXIT_FAILURE);
158 }
159
160 return result;
161 }
162
163 int
164 cmdline_parser_internal (int argc, char * const *argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required, const char *additional_error)
165 {
166 int c; /* Character of the parsed option. */
167 int error = 0;
168 struct gengetopt_args_info local_args_info;
169
170 if (initialize)
171 cmdline_parser_init (args_info);
172
173 cmdline_parser_init (&local_args_info);
174
175 optarg = 0;
176 optind = 1;
177 opterr = 1;
178 optopt = '?';
179
180 while (1)
181 {
182 int option_index = 0;
183 char *stop_char;
184
185 static struct option long_options[] = {
186 { "help", 0, NULL, 'h' },
187 { "version", 0, NULL, 'V' },
188 { "input", 1, NULL, 'i' },
189 { "bandwidth", 1, NULL, 'b' },
190 { "tolerance", 1, NULL, 't' },
191 { "charmm", 0, NULL, 'c' },
192 { "amber", 0, NULL, 'a' },
193 { "lj", 0, NULL, 'l' },
194 { "gaff", 0, NULL, 'g' },
195 { "opls", 0, NULL, 'o' },
196 { NULL, 0, NULL, 0 }
197 };
198
199 stop_char = 0;
200 c = getopt_long (argc, argv, "hVi:b:t:calgo", long_options, &option_index);
201
202 if (c == -1) break; /* Exit from `while (1)' loop. */
203
204 switch (c)
205 {
206 case 'h': /* Print help and exit. */
207 cmdline_parser_print_help ();
208 exit (EXIT_SUCCESS);
209
210 case 'V': /* Print version and exit. */
211 cmdline_parser_print_version ();
212 exit (EXIT_SUCCESS);
213
214 case 'i': /* input file name. */
215 if (local_args_info.input_given)
216 {
217 fprintf (stderr, "%s: `--input' (`-i') option given more than once%s\n", CMDLINE_PARSER_PACKAGE, (additional_error ? additional_error : ""));
218 goto failure;
219 }
220 if (args_info->input_given && ! override)
221 continue;
222 local_args_info.input_given = 1;
223 args_info->input_given = 1;
224 if (args_info->input_arg)
225 free (args_info->input_arg); /* free previous string */
226 args_info->input_arg = gengetopt_strdup (optarg);
227 break;
228
229 case 'b': /* The step detail for the potential grids - typically a power of 2. */
230 if (local_args_info.bandwidth_given)
231 {
232 fprintf (stderr, "%s: `--bandwidth' (`-b') option given more than once%s\n", CMDLINE_PARSER_PACKAGE, (additional_error ? additional_error : ""));
233 goto failure;
234 }
235 if (args_info->bandwidth_given && ! override)
236 continue;
237 local_args_info.bandwidth_given = 1;
238 args_info->bandwidth_given = 1;
239 args_info->bandwidth_arg = strtol (optarg,&stop_char,0);
240 break;
241
242 case 't': /* The tolerance for recognition of spherical harmonic terms. */
243 if (local_args_info.tolerance_given)
244 {
245 fprintf (stderr, "%s: `--tolerance' (`-t') option given more than once%s\n", CMDLINE_PARSER_PACKAGE, (additional_error ? additional_error : ""));
246 goto failure;
247 }
248 if (args_info->tolerance_given && ! override)
249 continue;
250 local_args_info.tolerance_given = 1;
251 args_info->tolerance_given = 1;
252 args_info->tolerance_arg = strtod (optarg, NULL);
253 break;
254
255 case 'c': /* Use CHARMM 27 parameters. */
256 if (local_args_info.charmm_given)
257 {
258 fprintf (stderr, "%s: `--charmm' (`-c') option given more than once%s\n", CMDLINE_PARSER_PACKAGE, (additional_error ? additional_error : ""));
259 goto failure;
260 }
261 if (args_info->charmm_given && ! override)
262 continue;
263 local_args_info.charmm_given = 1;
264 args_info->charmm_given = 1;
265 if (args_info->ForceField_group_counter && override)
266 reset_group_ForceField (args_info);
267 args_info->ForceField_group_counter += 1;
268 break;
269
270 case 'a': /* Use Amber99 parameters. */
271 if (local_args_info.amber_given)
272 {
273 fprintf (stderr, "%s: `--amber' (`-a') option given more than once%s\n", CMDLINE_PARSER_PACKAGE, (additional_error ? additional_error : ""));
274 goto failure;
275 }
276 if (args_info->amber_given && ! override)
277 continue;
278 local_args_info.amber_given = 1;
279 args_info->amber_given = 1;
280 if (args_info->ForceField_group_counter && override)
281 reset_group_ForceField (args_info);
282 args_info->ForceField_group_counter += 1;
283 break;
284
285 case 'l': /* Use Lennard-Jones parameters. */
286 if (local_args_info.lj_given)
287 {
288 fprintf (stderr, "%s: `--lj' (`-l') option given more than once%s\n", CMDLINE_PARSER_PACKAGE, (additional_error ? additional_error : ""));
289 goto failure;
290 }
291 if (args_info->lj_given && ! override)
292 continue;
293 local_args_info.lj_given = 1;
294 args_info->lj_given = 1;
295 if (args_info->ForceField_group_counter && override)
296 reset_group_ForceField (args_info);
297 args_info->ForceField_group_counter += 1;
298 break;
299
300 case 'g': /* Use GAFF parameters. */
301 if (local_args_info.gaff_given)
302 {
303 fprintf (stderr, "%s: `--gaff' (`-g') option given more than once%s\n", CMDLINE_PARSER_PACKAGE, (additional_error ? additional_error : ""));
304 goto failure;
305 }
306 if (args_info->gaff_given && ! override)
307 continue;
308 local_args_info.gaff_given = 1;
309 args_info->gaff_given = 1;
310 if (args_info->ForceField_group_counter && override)
311 reset_group_ForceField (args_info);
312 args_info->ForceField_group_counter += 1;
313 break;
314
315 case 'o': /* Use OPLS/AA parameters. */
316 if (local_args_info.opls_given)
317 {
318 fprintf (stderr, "%s: `--opls' (`-o') option given more than once%s\n", CMDLINE_PARSER_PACKAGE, (additional_error ? additional_error : ""));
319 goto failure;
320 }
321 if (args_info->opls_given && ! override)
322 continue;
323 local_args_info.opls_given = 1;
324 args_info->opls_given = 1;
325 if (args_info->ForceField_group_counter && override)
326 reset_group_ForceField (args_info);
327 args_info->ForceField_group_counter += 1;
328 break;
329
330
331 case 0: /* Long option with no short option */
332
333 case '?': /* Invalid option. */
334 /* `getopt_long' already printed an error message. */
335 goto failure;
336
337 default: /* bug: option not considered. */
338 fprintf (stderr, "%s: option unknown: %c%s\n", CMDLINE_PARSER_PACKAGE, c, (additional_error ? additional_error : ""));
339 abort ();
340 } /* switch */
341 } /* while */
342
343 if ( args_info->ForceField_group_counter != 1)
344 {
345 fprintf (stderr, "%s: %d options of group ForceField were given. One is required.%s\n", CMDLINE_PARSER_PACKAGE, args_info->ForceField_group_counter, (additional_error ? additional_error : ""));
346 error = 1;
347 }
348
349
350
351 if (check_required)
352 {
353 if (! args_info->input_given)
354 {
355 fprintf (stderr, "%s: '--input' ('-i') option required%s\n", CMDLINE_PARSER_PACKAGE, (additional_error ? additional_error : ""));
356 error = 1;
357 }
358 }
359
360 if ( error )
361 return (EXIT_FAILURE);
362
363 return 0;
364
365 failure:
366 cmdline_parser_free (&local_args_info);
367 return (EXIT_FAILURE);
368 }