ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/applications/staticProps/StaticPropsCmd.c
Revision: 3128
Committed: Wed Apr 11 23:27:20 2007 UTC (17 years, 3 months ago) by chuckv
Content type: text/plain
File size: 51112 byte(s)
Log Message:
Added Bond Order Parameter as a function of radius.

File Contents

# User Rev Content
1 tim 1994 /*
2 chuckv 3128 File autogenerated by gengetopt version 2.19.1
3 tim 1994 generated with the following command:
4 chuckv 3128 gengetopt -i StaticProps.ggo -F StaticPropsCmd -u
5 tim 1994
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 gezelter 2701 /* If we use autoconf. */
12     #ifdef HAVE_CONFIG_H
13     #include "config.h"
14     #endif
15 tim 1994
16     #include <stdio.h>
17     #include <stdlib.h>
18     #include <string.h>
19    
20     #include "getopt.h"
21    
22 tim 1995 #include "StaticPropsCmd.h"
23 tim 1994
24 chuckv 3128 const char *gengetopt_args_info_purpose = "";
25    
26     const char *gengetopt_args_info_usage = "Usage: StaticProps [OPTIONS]... [FILES]...";
27    
28     const char *gengetopt_args_info_description = "";
29    
30     const char *gengetopt_args_info_help[] = {
31     " -h, --help Print help and exit",
32     " -V, --version Print version and exit",
33     " -i, --input=filename input dump file",
34     " -o, --output=filename output file name",
35     " -n, --step=INT process every n frame (default=`1')",
36     " -b, --nbins=INT number of bins (general purpose) \n (default=`100')",
37     " -x, --nbins_x=INT number of bins in x axis (default=`100')",
38     " -y, --nbins_y=INT number of bins in y axis (default=`100')",
39     " -a, --nanglebins=INT number of bins for cos(angle) (default=`50')",
40     " --length=DOUBLE maximum length (Defaults to 1/2 smallest length \n of first frame)",
41     " -c, --rcut=DOUBLE cutoff radius (rcut)",
42     " -z, --zoffset=DOUBLE Where to set the zero for the slab_density \n calculation (default=`0')",
43     " --sele1=selection script select the first stuntdouble set",
44     " --sele2=selection script select the second stuntdouble set",
45     " --sele3=selection script select the third stuntdouble set",
46     " --refsele=selection script\n select reference (use and only use with --gxyz)",
47     " --molname=STRING molecule name",
48     " --begin=INT begin internal index",
49     " --end=INT end internal index",
50     " --radius=DOUBLE nanoparticle radius",
51     "\n Group: staticProps\n an option of this group is required",
52     " --bo bond order parameter (--rcut must be specified)",
53     " --bor bond order parameter as a function of radius \n (--rcut must be specified)",
54     " -g, --gofr g(r)",
55     " --r_theta g(r, cos(theta))",
56     " --r_omega g(r, cos(omega))",
57     " --theta_omega g(cos(theta), cos(omega))",
58     " --gxyz g(x, y, z)",
59     " -p, --p2 p2 order parameter (--sele1 and --sele2 must be \n specified)",
60     " --rp2 rp2 order parameter (--sele1 and --sele2 must \n be specified)",
61     " -s, --scd scd order parameter (either --sele1, --sele2, \n --sele3 are specified or --molname, --begin, \n --end are specified)",
62     " -d, --density density plot",
63     " --slab_density slab density",
64     " --hxy hxy",
65     " --rho_r rho of R",
66     0
67     };
68    
69 gezelter 2701 static
70     void clear_given (struct gengetopt_args_info *args_info);
71     static
72     void clear_args (struct gengetopt_args_info *args_info);
73    
74     static int
75     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);
76    
77     static int
78     cmdline_parser_required2 (struct gengetopt_args_info *args_info, const char *prog_name, const char *additional_error);
79    
80     static char *
81     gengetopt_strdup (const char *s);
82    
83     static
84     void clear_given (struct gengetopt_args_info *args_info)
85     {
86     args_info->help_given = 0 ;
87     args_info->version_given = 0 ;
88     args_info->input_given = 0 ;
89     args_info->output_given = 0 ;
90     args_info->step_given = 0 ;
91 gezelter 3009 args_info->nbins_given = 0 ;
92 xsun 2751 args_info->nbins_x_given = 0 ;
93     args_info->nbins_y_given = 0 ;
94 gezelter 2701 args_info->nanglebins_given = 0 ;
95     args_info->length_given = 0 ;
96 gezelter 3007 args_info->rcut_given = 0 ;
97 gezelter 2701 args_info->zoffset_given = 0 ;
98     args_info->sele1_given = 0 ;
99     args_info->sele2_given = 0 ;
100     args_info->sele3_given = 0 ;
101     args_info->refsele_given = 0 ;
102     args_info->molname_given = 0 ;
103     args_info->begin_given = 0 ;
104     args_info->end_given = 0 ;
105 chuckv 3076 args_info->radius_given = 0 ;
106 gezelter 3007 args_info->bo_given = 0 ;
107 chuckv 3128 args_info->bor_given = 0 ;
108 gezelter 2701 args_info->gofr_given = 0 ;
109     args_info->r_theta_given = 0 ;
110     args_info->r_omega_given = 0 ;
111     args_info->theta_omega_given = 0 ;
112     args_info->gxyz_given = 0 ;
113     args_info->p2_given = 0 ;
114 xsun 2783 args_info->rp2_given = 0 ;
115 gezelter 2701 args_info->scd_given = 0 ;
116     args_info->density_given = 0 ;
117     args_info->slab_density_given = 0 ;
118 xsun 2751 args_info->hxy_given = 0 ;
119 chuckv 3076 args_info->rho_r_given = 0 ;
120 gezelter 2701 args_info->staticProps_group_counter = 0 ;
121     }
122    
123     static
124     void clear_args (struct gengetopt_args_info *args_info)
125     {
126     args_info->input_arg = NULL;
127     args_info->input_orig = NULL;
128     args_info->output_arg = NULL;
129     args_info->output_orig = NULL;
130     args_info->step_arg = 1;
131     args_info->step_orig = NULL;
132 gezelter 3009 args_info->nbins_arg = 100;
133     args_info->nbins_orig = NULL;
134 xsun 2751 args_info->nbins_x_arg = 100;
135     args_info->nbins_x_orig = NULL;
136     args_info->nbins_y_arg = 100;
137     args_info->nbins_y_orig = NULL;
138 gezelter 2701 args_info->nanglebins_arg = 50;
139     args_info->nanglebins_orig = NULL;
140     args_info->length_orig = NULL;
141 gezelter 3007 args_info->rcut_orig = NULL;
142 gezelter 2701 args_info->zoffset_arg = 0;
143     args_info->zoffset_orig = NULL;
144     args_info->sele1_arg = NULL;
145     args_info->sele1_orig = NULL;
146     args_info->sele2_arg = NULL;
147     args_info->sele2_orig = NULL;
148     args_info->sele3_arg = NULL;
149     args_info->sele3_orig = NULL;
150     args_info->refsele_arg = NULL;
151     args_info->refsele_orig = NULL;
152     args_info->molname_arg = NULL;
153     args_info->molname_orig = NULL;
154     args_info->begin_orig = NULL;
155     args_info->end_orig = NULL;
156 chuckv 3076 args_info->radius_orig = NULL;
157 gezelter 2701
158     }
159    
160 chuckv 3128 static
161     void init_args_info(struct gengetopt_args_info *args_info)
162     {
163     args_info->help_help = gengetopt_args_info_help[0] ;
164     args_info->version_help = gengetopt_args_info_help[1] ;
165     args_info->input_help = gengetopt_args_info_help[2] ;
166     args_info->output_help = gengetopt_args_info_help[3] ;
167     args_info->step_help = gengetopt_args_info_help[4] ;
168     args_info->nbins_help = gengetopt_args_info_help[5] ;
169     args_info->nbins_x_help = gengetopt_args_info_help[6] ;
170     args_info->nbins_y_help = gengetopt_args_info_help[7] ;
171     args_info->nanglebins_help = gengetopt_args_info_help[8] ;
172     args_info->length_help = gengetopt_args_info_help[9] ;
173     args_info->rcut_help = gengetopt_args_info_help[10] ;
174     args_info->zoffset_help = gengetopt_args_info_help[11] ;
175     args_info->sele1_help = gengetopt_args_info_help[12] ;
176     args_info->sele2_help = gengetopt_args_info_help[13] ;
177     args_info->sele3_help = gengetopt_args_info_help[14] ;
178     args_info->refsele_help = gengetopt_args_info_help[15] ;
179     args_info->molname_help = gengetopt_args_info_help[16] ;
180     args_info->begin_help = gengetopt_args_info_help[17] ;
181     args_info->end_help = gengetopt_args_info_help[18] ;
182     args_info->radius_help = gengetopt_args_info_help[19] ;
183     args_info->bo_help = gengetopt_args_info_help[20] ;
184     args_info->bor_help = gengetopt_args_info_help[21] ;
185     args_info->gofr_help = gengetopt_args_info_help[22] ;
186     args_info->r_theta_help = gengetopt_args_info_help[23] ;
187     args_info->r_omega_help = gengetopt_args_info_help[24] ;
188     args_info->theta_omega_help = gengetopt_args_info_help[25] ;
189     args_info->gxyz_help = gengetopt_args_info_help[26] ;
190     args_info->p2_help = gengetopt_args_info_help[27] ;
191     args_info->rp2_help = gengetopt_args_info_help[28] ;
192     args_info->scd_help = gengetopt_args_info_help[29] ;
193     args_info->density_help = gengetopt_args_info_help[30] ;
194     args_info->slab_density_help = gengetopt_args_info_help[31] ;
195     args_info->hxy_help = gengetopt_args_info_help[32] ;
196     args_info->rho_r_help = gengetopt_args_info_help[33] ;
197    
198     }
199    
200 tim 1994 void
201     cmdline_parser_print_version (void)
202     {
203     printf ("%s %s\n", CMDLINE_PARSER_PACKAGE, CMDLINE_PARSER_VERSION);
204     }
205    
206     void
207     cmdline_parser_print_help (void)
208     {
209 chuckv 3128 int i = 0;
210 tim 1994 cmdline_parser_print_version ();
211 chuckv 3128
212     if (strlen(gengetopt_args_info_purpose) > 0)
213     printf("\n%s\n", gengetopt_args_info_purpose);
214    
215     printf("\n%s\n\n", gengetopt_args_info_usage);
216    
217     if (strlen(gengetopt_args_info_description) > 0)
218     printf("%s\n", gengetopt_args_info_description);
219    
220     while (gengetopt_args_info_help[i])
221     printf("%s\n", gengetopt_args_info_help[i++]);
222 tim 1994 }
223    
224 gezelter 2701 void
225     cmdline_parser_init (struct gengetopt_args_info *args_info)
226     {
227     clear_given (args_info);
228     clear_args (args_info);
229 chuckv 3128 init_args_info (args_info);
230    
231     args_info->inputs = NULL;
232     args_info->inputs_num = 0;
233 gezelter 2701 }
234 tim 1994
235 gezelter 2701 static void
236     cmdline_parser_release (struct gengetopt_args_info *args_info)
237     {
238    
239 chuckv 3128 unsigned int i;
240 gezelter 2701 if (args_info->input_arg)
241     {
242     free (args_info->input_arg); /* free previous argument */
243     args_info->input_arg = 0;
244     }
245     if (args_info->input_orig)
246     {
247     free (args_info->input_orig); /* free previous argument */
248     args_info->input_orig = 0;
249     }
250     if (args_info->output_arg)
251     {
252     free (args_info->output_arg); /* free previous argument */
253     args_info->output_arg = 0;
254     }
255     if (args_info->output_orig)
256     {
257     free (args_info->output_orig); /* free previous argument */
258     args_info->output_orig = 0;
259     }
260     if (args_info->step_orig)
261     {
262     free (args_info->step_orig); /* free previous argument */
263     args_info->step_orig = 0;
264     }
265 gezelter 3009 if (args_info->nbins_orig)
266 gezelter 2701 {
267 gezelter 3009 free (args_info->nbins_orig); /* free previous argument */
268     args_info->nbins_orig = 0;
269 gezelter 2701 }
270 xsun 2763 if (args_info->nbins_x_orig)
271 xsun 2751 {
272     free (args_info->nbins_x_orig); /* free previous argument */
273     args_info->nbins_x_orig = 0;
274     }
275     if (args_info->nbins_y_orig)
276     {
277     free (args_info->nbins_y_orig); /* free previous argument */
278     args_info->nbins_y_orig = 0;
279     }
280 gezelter 2701 if (args_info->nanglebins_orig)
281     {
282     free (args_info->nanglebins_orig); /* free previous argument */
283     args_info->nanglebins_orig = 0;
284     }
285     if (args_info->length_orig)
286     {
287     free (args_info->length_orig); /* free previous argument */
288     args_info->length_orig = 0;
289     }
290 gezelter 3007 if (args_info->rcut_orig)
291     {
292     free (args_info->rcut_orig); /* free previous argument */
293     args_info->rcut_orig = 0;
294     }
295 gezelter 2701 if (args_info->zoffset_orig)
296     {
297     free (args_info->zoffset_orig); /* free previous argument */
298     args_info->zoffset_orig = 0;
299     }
300     if (args_info->sele1_arg)
301     {
302     free (args_info->sele1_arg); /* free previous argument */
303     args_info->sele1_arg = 0;
304     }
305     if (args_info->sele1_orig)
306     {
307     free (args_info->sele1_orig); /* free previous argument */
308     args_info->sele1_orig = 0;
309     }
310     if (args_info->sele2_arg)
311     {
312     free (args_info->sele2_arg); /* free previous argument */
313     args_info->sele2_arg = 0;
314     }
315     if (args_info->sele2_orig)
316     {
317     free (args_info->sele2_orig); /* free previous argument */
318     args_info->sele2_orig = 0;
319     }
320     if (args_info->sele3_arg)
321     {
322     free (args_info->sele3_arg); /* free previous argument */
323     args_info->sele3_arg = 0;
324     }
325     if (args_info->sele3_orig)
326     {
327     free (args_info->sele3_orig); /* free previous argument */
328     args_info->sele3_orig = 0;
329     }
330     if (args_info->refsele_arg)
331     {
332     free (args_info->refsele_arg); /* free previous argument */
333     args_info->refsele_arg = 0;
334     }
335     if (args_info->refsele_orig)
336     {
337     free (args_info->refsele_orig); /* free previous argument */
338     args_info->refsele_orig = 0;
339     }
340     if (args_info->molname_arg)
341     {
342     free (args_info->molname_arg); /* free previous argument */
343     args_info->molname_arg = 0;
344     }
345     if (args_info->molname_orig)
346     {
347     free (args_info->molname_orig); /* free previous argument */
348     args_info->molname_orig = 0;
349     }
350     if (args_info->begin_orig)
351     {
352     free (args_info->begin_orig); /* free previous argument */
353     args_info->begin_orig = 0;
354     }
355     if (args_info->end_orig)
356     {
357     free (args_info->end_orig); /* free previous argument */
358     args_info->end_orig = 0;
359     }
360 chuckv 3076 if (args_info->radius_orig)
361     {
362     free (args_info->radius_orig); /* free previous argument */
363     args_info->radius_orig = 0;
364     }
365 gezelter 2701
366 chuckv 3128 for (i = 0; i < args_info->inputs_num; ++i)
367     free (args_info->inputs [i]);
368    
369     if (args_info->inputs_num)
370     free (args_info->inputs);
371    
372 gezelter 2701 clear_given (args_info);
373     }
374 tim 1994
375 gezelter 2701 int
376     cmdline_parser_file_save(const char *filename, struct gengetopt_args_info *args_info)
377     {
378     FILE *outfile;
379     int i = 0;
380    
381     outfile = fopen(filename, "w");
382    
383     if (!outfile)
384     {
385     fprintf (stderr, "%s: cannot open file for writing: %s\n", CMDLINE_PARSER_PACKAGE, filename);
386     return EXIT_FAILURE;
387     }
388    
389     if (args_info->help_given) {
390     fprintf(outfile, "%s\n", "help");
391     }
392     if (args_info->version_given) {
393     fprintf(outfile, "%s\n", "version");
394     }
395     if (args_info->input_given) {
396     if (args_info->input_orig) {
397     fprintf(outfile, "%s=\"%s\"\n", "input", args_info->input_orig);
398     } else {
399     fprintf(outfile, "%s\n", "input");
400     }
401     }
402     if (args_info->output_given) {
403     if (args_info->output_orig) {
404     fprintf(outfile, "%s=\"%s\"\n", "output", args_info->output_orig);
405     } else {
406     fprintf(outfile, "%s\n", "output");
407     }
408     }
409     if (args_info->step_given) {
410     if (args_info->step_orig) {
411     fprintf(outfile, "%s=\"%s\"\n", "step", args_info->step_orig);
412     } else {
413     fprintf(outfile, "%s\n", "step");
414     }
415     }
416 gezelter 3009 if (args_info->nbins_given) {
417     if (args_info->nbins_orig) {
418     fprintf(outfile, "%s=\"%s\"\n", "nbins", args_info->nbins_orig);
419 gezelter 2701 } else {
420 gezelter 3009 fprintf(outfile, "%s\n", "nbins");
421 gezelter 2701 }
422     }
423 xsun 2751 if (args_info->nbins_x_given) {
424     if (args_info->nbins_x_orig) {
425     fprintf(outfile, "%s=\"%s\"\n", "nbins_x", args_info->nbins_x_orig);
426     } else {
427     fprintf(outfile, "%s\n", "nbins_x");
428     }
429     }
430     if (args_info->nbins_y_given) {
431     if (args_info->nbins_y_orig) {
432     fprintf(outfile, "%s=\"%s\"\n", "nbins_y", args_info->nbins_y_orig);
433     } else {
434     fprintf(outfile, "%s\n", "nbins_y");
435     }
436     }
437 gezelter 2701 if (args_info->nanglebins_given) {
438     if (args_info->nanglebins_orig) {
439     fprintf(outfile, "%s=\"%s\"\n", "nanglebins", args_info->nanglebins_orig);
440     } else {
441     fprintf(outfile, "%s\n", "nanglebins");
442     }
443     }
444     if (args_info->length_given) {
445     if (args_info->length_orig) {
446     fprintf(outfile, "%s=\"%s\"\n", "length", args_info->length_orig);
447     } else {
448     fprintf(outfile, "%s\n", "length");
449     }
450     }
451 gezelter 3007 if (args_info->rcut_given) {
452     if (args_info->rcut_orig) {
453     fprintf(outfile, "%s=\"%s\"\n", "rcut", args_info->rcut_orig);
454     } else {
455     fprintf(outfile, "%s\n", "rcut");
456     }
457     }
458 gezelter 2701 if (args_info->zoffset_given) {
459     if (args_info->zoffset_orig) {
460     fprintf(outfile, "%s=\"%s\"\n", "zoffset", args_info->zoffset_orig);
461     } else {
462     fprintf(outfile, "%s\n", "zoffset");
463     }
464     }
465     if (args_info->sele1_given) {
466     if (args_info->sele1_orig) {
467     fprintf(outfile, "%s=\"%s\"\n", "sele1", args_info->sele1_orig);
468     } else {
469     fprintf(outfile, "%s\n", "sele1");
470     }
471     }
472     if (args_info->sele2_given) {
473     if (args_info->sele2_orig) {
474     fprintf(outfile, "%s=\"%s\"\n", "sele2", args_info->sele2_orig);
475     } else {
476     fprintf(outfile, "%s\n", "sele2");
477     }
478     }
479     if (args_info->sele3_given) {
480     if (args_info->sele3_orig) {
481     fprintf(outfile, "%s=\"%s\"\n", "sele3", args_info->sele3_orig);
482     } else {
483     fprintf(outfile, "%s\n", "sele3");
484     }
485     }
486     if (args_info->refsele_given) {
487     if (args_info->refsele_orig) {
488     fprintf(outfile, "%s=\"%s\"\n", "refsele", args_info->refsele_orig);
489     } else {
490     fprintf(outfile, "%s\n", "refsele");
491     }
492     }
493     if (args_info->molname_given) {
494     if (args_info->molname_orig) {
495     fprintf(outfile, "%s=\"%s\"\n", "molname", args_info->molname_orig);
496     } else {
497     fprintf(outfile, "%s\n", "molname");
498     }
499     }
500     if (args_info->begin_given) {
501     if (args_info->begin_orig) {
502     fprintf(outfile, "%s=\"%s\"\n", "begin", args_info->begin_orig);
503     } else {
504     fprintf(outfile, "%s\n", "begin");
505     }
506     }
507     if (args_info->end_given) {
508     if (args_info->end_orig) {
509     fprintf(outfile, "%s=\"%s\"\n", "end", args_info->end_orig);
510     } else {
511     fprintf(outfile, "%s\n", "end");
512     }
513     }
514 chuckv 3076 if (args_info->radius_given) {
515     if (args_info->radius_orig) {
516     fprintf(outfile, "%s=\"%s\"\n", "radius", args_info->radius_orig);
517     } else {
518     fprintf(outfile, "%s\n", "radius");
519     }
520     }
521 gezelter 3007 if (args_info->bo_given) {
522     fprintf(outfile, "%s\n", "bo");
523     }
524 chuckv 3128 if (args_info->bor_given) {
525     fprintf(outfile, "%s\n", "bor");
526     }
527 gezelter 2701 if (args_info->gofr_given) {
528     fprintf(outfile, "%s\n", "gofr");
529     }
530     if (args_info->r_theta_given) {
531     fprintf(outfile, "%s\n", "r_theta");
532     }
533     if (args_info->r_omega_given) {
534     fprintf(outfile, "%s\n", "r_omega");
535     }
536     if (args_info->theta_omega_given) {
537     fprintf(outfile, "%s\n", "theta_omega");
538     }
539     if (args_info->gxyz_given) {
540     fprintf(outfile, "%s\n", "gxyz");
541     }
542     if (args_info->p2_given) {
543     fprintf(outfile, "%s\n", "p2");
544     }
545 xsun 2783 if (args_info->rp2_given) {
546     fprintf(outfile, "%s\n", "rp2");
547     }
548 gezelter 2701 if (args_info->scd_given) {
549     fprintf(outfile, "%s\n", "scd");
550     }
551     if (args_info->density_given) {
552     fprintf(outfile, "%s\n", "density");
553     }
554     if (args_info->slab_density_given) {
555     fprintf(outfile, "%s\n", "slab_density");
556     }
557 xsun 2751 if (args_info->hxy_given) {
558     fprintf(outfile, "%s\n", "hxy");
559     }
560 chuckv 3076 if (args_info->rho_r_given) {
561     fprintf(outfile, "%s\n", "rho_r");
562     }
563 xsun 2763
564 gezelter 2701 fclose (outfile);
565    
566     i = EXIT_SUCCESS;
567     return i;
568     }
569    
570     void
571     cmdline_parser_free (struct gengetopt_args_info *args_info)
572     {
573     cmdline_parser_release (args_info);
574     }
575    
576    
577 tim 1994 /* gengetopt_strdup() */
578     /* strdup.c replacement of strdup, which is not standard */
579     char *
580     gengetopt_strdup (const char *s)
581     {
582 gezelter 2701 char *result = NULL;
583     if (!s)
584     return result;
585    
586     result = (char*)malloc(strlen(s) + 1);
587 tim 1994 if (result == (char*)0)
588     return (char*)0;
589     strcpy(result, s);
590     return result;
591     }
592    
593 gezelter 2701 static void
594     reset_group_staticProps(struct gengetopt_args_info *args_info);
595    
596     static void
597     reset_group_staticProps(struct gengetopt_args_info *args_info)
598 tim 1994 {
599 gezelter 2701 if (! args_info->staticProps_group_counter)
600     return;
601 tim 1994
602 gezelter 3007 args_info->bo_given = 0 ;
603 chuckv 3128 args_info->bor_given = 0 ;
604 tim 1994 args_info->gofr_given = 0 ;
605     args_info->r_theta_given = 0 ;
606     args_info->r_omega_given = 0 ;
607     args_info->theta_omega_given = 0 ;
608 tim 2053 args_info->gxyz_given = 0 ;
609 tim 2240 args_info->p2_given = 0 ;
610 xsun 2783 args_info->rp2_given = 0 ;
611 tim 2241 args_info->scd_given = 0 ;
612 tim 2242 args_info->density_given = 0 ;
613 tim 2539 args_info->slab_density_given = 0 ;
614 xsun 2763 args_info->hxy_given = 0 ;
615 chuckv 3076 args_info->rho_r_given = 0 ;
616 gezelter 2701
617     args_info->staticProps_group_counter = 0;
618 tim 2240 }
619 tim 1994
620 gezelter 2701 int
621     cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
622     {
623     return cmdline_parser2 (argc, argv, args_info, 0, 1, 1);
624     }
625 tim 1994
626 gezelter 2701 int
627     cmdline_parser2 (int argc, char * const *argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required)
628     {
629     int result;
630    
631     result = cmdline_parser_internal (argc, argv, args_info, override, initialize, check_required, NULL);
632    
633     if (result == EXIT_FAILURE)
634     {
635     cmdline_parser_free (args_info);
636     exit (EXIT_FAILURE);
637     }
638    
639     return result;
640     }
641    
642     int
643     cmdline_parser_required (struct gengetopt_args_info *args_info, const char *prog_name)
644     {
645     int result = EXIT_SUCCESS;
646    
647     if (cmdline_parser_required2(args_info, prog_name, NULL) > 0)
648     result = EXIT_FAILURE;
649    
650     if (result == EXIT_FAILURE)
651     {
652     cmdline_parser_free (args_info);
653     exit (EXIT_FAILURE);
654     }
655    
656     return result;
657     }
658    
659     int
660     cmdline_parser_required2 (struct gengetopt_args_info *args_info, const char *prog_name, const char *additional_error)
661     {
662     int error = 0;
663    
664 chuckv 3128 /* checks for required options */
665 gezelter 2701 if (! args_info->input_given)
666     {
667     fprintf (stderr, "%s: '--input' ('-i') option required%s\n", prog_name, (additional_error ? additional_error : ""));
668     error = 1;
669     }
670 chuckv 3128
671 gezelter 2701 if (args_info->staticProps_group_counter == 0)
672     {
673     fprintf (stderr, "%s: %d options of group staticProps were given. One is required.%s\n", prog_name, args_info->staticProps_group_counter, (additional_error ? additional_error : ""));
674     error = 1;
675     }
676    
677    
678 chuckv 3128 /* checks for dependences among options */
679    
680 gezelter 2701 return error;
681     }
682    
683     int
684     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)
685     {
686     int c; /* Character of the parsed option. */
687    
688     int error = 0;
689     struct gengetopt_args_info local_args_info;
690    
691     if (initialize)
692     cmdline_parser_init (args_info);
693    
694     cmdline_parser_init (&local_args_info);
695    
696 tim 1994 optarg = 0;
697 chuckv 3128 optind = 0;
698 tim 1994 opterr = 1;
699     optopt = '?';
700    
701     while (1)
702     {
703     int option_index = 0;
704     char *stop_char;
705    
706     static struct option long_options[] = {
707     { "help", 0, NULL, 'h' },
708     { "version", 0, NULL, 'V' },
709     { "input", 1, NULL, 'i' },
710     { "output", 1, NULL, 'o' },
711 tim 1995 { "step", 1, NULL, 'n' },
712 gezelter 3009 { "nbins", 1, NULL, 'b' },
713 xsun 2763 { "nbins_x", 1, NULL, 'x' },
714     { "nbins_y", 1, NULL, 'y' },
715 tim 1994 { "nanglebins", 1, NULL, 'a' },
716 gezelter 3007 { "length", 1, NULL, 0 },
717     { "rcut", 1, NULL, 'c' },
718 gezelter 2701 { "zoffset", 1, NULL, 'z' },
719 tim 1994 { "sele1", 1, NULL, 0 },
720     { "sele2", 1, NULL, 0 },
721 tim 2241 { "sele3", 1, NULL, 0 },
722 tim 2053 { "refsele", 1, NULL, 0 },
723 tim 2241 { "molname", 1, NULL, 0 },
724     { "begin", 1, NULL, 0 },
725     { "end", 1, NULL, 0 },
726 chuckv 3076 { "radius", 1, NULL, 0 },
727 gezelter 3009 { "bo", 0, NULL, 0 },
728 chuckv 3128 { "bor", 0, NULL, 0 },
729 gezelter 3007 { "gofr", 0, NULL, 'g' },
730 tim 1994 { "r_theta", 0, NULL, 0 },
731     { "r_omega", 0, NULL, 0 },
732     { "theta_omega", 0, NULL, 0 },
733 tim 2053 { "gxyz", 0, NULL, 0 },
734 gezelter 3007 { "p2", 0, NULL, 'p' },
735 xsun 2783 { "rp2", 0, NULL, 0 },
736 gezelter 3007 { "scd", 0, NULL, 's' },
737     { "density", 0, NULL, 'd' },
738 tim 2539 { "slab_density", 0, NULL, 0 },
739 xsun 2751 { "hxy", 0, NULL, 0 },
740 chuckv 3076 { "rho_r", 0, NULL, 0 },
741 tim 1994 { NULL, 0, NULL, 0 }
742     };
743    
744     stop_char = 0;
745 gezelter 3022 c = getopt_long (argc, argv, "hVi:o:n:b:x:y:a:c:z:gpsd", long_options, &option_index);
746 tim 1994
747     if (c == -1) break; /* Exit from `while (1)' loop. */
748    
749     switch (c)
750     {
751     case 'h': /* Print help and exit. */
752     cmdline_parser_print_help ();
753 gezelter 2701 cmdline_parser_free (&local_args_info);
754 tim 1994 exit (EXIT_SUCCESS);
755    
756     case 'V': /* Print version and exit. */
757     cmdline_parser_print_version ();
758 gezelter 2701 cmdline_parser_free (&local_args_info);
759 tim 1994 exit (EXIT_SUCCESS);
760    
761     case 'i': /* input dump file. */
762 gezelter 2701 if (local_args_info.input_given)
763 tim 1994 {
764 gezelter 2701 fprintf (stderr, "%s: `--input' (`-i') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
765     goto failure;
766 tim 1994 }
767 gezelter 2701 if (args_info->input_given && ! override)
768     continue;
769     local_args_info.input_given = 1;
770 tim 1994 args_info->input_given = 1;
771 gezelter 2701 if (args_info->input_arg)
772     free (args_info->input_arg); /* free previous string */
773 tim 1994 args_info->input_arg = gengetopt_strdup (optarg);
774 gezelter 2701 if (args_info->input_orig)
775     free (args_info->input_orig); /* free previous string */
776     args_info->input_orig = gengetopt_strdup (optarg);
777 tim 1994 break;
778    
779     case 'o': /* output file name. */
780 gezelter 2701 if (local_args_info.output_given)
781 tim 1994 {
782 gezelter 2701 fprintf (stderr, "%s: `--output' (`-o') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
783     goto failure;
784 tim 1994 }
785 gezelter 2701 if (args_info->output_given && ! override)
786     continue;
787     local_args_info.output_given = 1;
788 tim 1994 args_info->output_given = 1;
789 gezelter 2701 if (args_info->output_arg)
790     free (args_info->output_arg); /* free previous string */
791 tim 1994 args_info->output_arg = gengetopt_strdup (optarg);
792 gezelter 2701 if (args_info->output_orig)
793     free (args_info->output_orig); /* free previous string */
794     args_info->output_orig = gengetopt_strdup (optarg);
795 tim 1994 break;
796    
797 tim 1995 case 'n': /* process every n frame. */
798 gezelter 2701 if (local_args_info.step_given)
799 tim 1994 {
800 gezelter 2701 fprintf (stderr, "%s: `--step' (`-n') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
801     goto failure;
802 tim 1994 }
803 gezelter 2701 if (args_info->step_given && ! override)
804     continue;
805     local_args_info.step_given = 1;
806 tim 1995 args_info->step_given = 1;
807 gezelter 2701 args_info->step_arg = strtol (optarg, &stop_char, 0);
808     if (!(stop_char && *stop_char == '\0')) {
809     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
810     goto failure;
811     }
812     if (args_info->step_orig)
813     free (args_info->step_orig); /* free previous string */
814     args_info->step_orig = gengetopt_strdup (optarg);
815 tim 1994 break;
816    
817 gezelter 3009 case 'b': /* number of bins (general purpose). */
818     if (local_args_info.nbins_given)
819 tim 1994 {
820 gezelter 3009 fprintf (stderr, "%s: `--nbins' (`-b') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
821 gezelter 2701 goto failure;
822 tim 1994 }
823 gezelter 3009 if (args_info->nbins_given && ! override)
824 gezelter 2701 continue;
825 gezelter 3009 local_args_info.nbins_given = 1;
826     args_info->nbins_given = 1;
827     args_info->nbins_arg = strtol (optarg, &stop_char, 0);
828 gezelter 2701 if (!(stop_char && *stop_char == '\0')) {
829     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
830     goto failure;
831     }
832 gezelter 3009 if (args_info->nbins_orig)
833     free (args_info->nbins_orig); /* free previous string */
834     args_info->nbins_orig = gengetopt_strdup (optarg);
835 tim 1994 break;
836    
837 xsun 2751 case 'x': /* number of bins in x axis. */
838     if (local_args_info.nbins_x_given)
839     {
840 xsun 2763 fprintf (stderr, "%s: `--nbins_x' (`-x') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
841 xsun 2751 goto failure;
842     }
843     if (args_info->nbins_x_given && ! override)
844     continue;
845     local_args_info.nbins_x_given = 1;
846     args_info->nbins_x_given = 1;
847     args_info->nbins_x_arg = strtol (optarg, &stop_char, 0);
848     if (!(stop_char && *stop_char == '\0')) {
849     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
850     goto failure;
851     }
852     if (args_info->nbins_x_orig)
853     free (args_info->nbins_x_orig); /* free previous string */
854     args_info->nbins_x_orig = gengetopt_strdup (optarg);
855     break;
856    
857     case 'y': /* number of bins in y axis. */
858     if (local_args_info.nbins_y_given)
859     {
860 xsun 2763 fprintf (stderr, "%s: `--nbins_y' (`-y') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
861 xsun 2751 goto failure;
862     }
863     if (args_info->nbins_y_given && ! override)
864     continue;
865     local_args_info.nbins_y_given = 1;
866     args_info->nbins_y_given = 1;
867     args_info->nbins_y_arg = strtol (optarg, &stop_char, 0);
868     if (!(stop_char && *stop_char == '\0')) {
869     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
870     goto failure;
871     }
872     if (args_info->nbins_y_orig)
873     free (args_info->nbins_y_orig); /* free previous string */
874     args_info->nbins_y_orig = gengetopt_strdup (optarg);
875     break;
876    
877 tim 1994 case 'a': /* number of bins for cos(angle). */
878 gezelter 2701 if (local_args_info.nanglebins_given)
879 tim 1994 {
880 gezelter 2701 fprintf (stderr, "%s: `--nanglebins' (`-a') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
881     goto failure;
882 tim 1994 }
883 gezelter 2701 if (args_info->nanglebins_given && ! override)
884     continue;
885     local_args_info.nanglebins_given = 1;
886 tim 1994 args_info->nanglebins_given = 1;
887 gezelter 2701 args_info->nanglebins_arg = strtol (optarg, &stop_char, 0);
888     if (!(stop_char && *stop_char == '\0')) {
889     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
890     goto failure;
891     }
892     if (args_info->nanglebins_orig)
893     free (args_info->nanglebins_orig); /* free previous string */
894     args_info->nanglebins_orig = gengetopt_strdup (optarg);
895 tim 1994 break;
896    
897 gezelter 3007 case 'c': /* cutoff radius (rcut). */
898     if (local_args_info.rcut_given)
899     {
900     fprintf (stderr, "%s: `--rcut' (`-c') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
901     goto failure;
902     }
903     if (args_info->rcut_given && ! override)
904     continue;
905     local_args_info.rcut_given = 1;
906     args_info->rcut_given = 1;
907     args_info->rcut_arg = strtod (optarg, &stop_char);
908     if (!(stop_char && *stop_char == '\0')) {
909     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
910     goto failure;
911     }
912     if (args_info->rcut_orig)
913     free (args_info->rcut_orig); /* free previous string */
914     args_info->rcut_orig = gengetopt_strdup (optarg);
915     break;
916    
917 gezelter 2701 case 'z': /* Where to set the zero for the slab_density calculation. */
918     if (local_args_info.zoffset_given)
919     {
920     fprintf (stderr, "%s: `--zoffset' (`-z') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
921     goto failure;
922     }
923     if (args_info->zoffset_given && ! override)
924     continue;
925     local_args_info.zoffset_given = 1;
926     args_info->zoffset_given = 1;
927     args_info->zoffset_arg = strtod (optarg, &stop_char);
928     if (!(stop_char && *stop_char == '\0')) {
929     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
930     goto failure;
931     }
932     if (args_info->zoffset_orig)
933     free (args_info->zoffset_orig); /* free previous string */
934     args_info->zoffset_orig = gengetopt_strdup (optarg);
935     break;
936 tim 1994
937 gezelter 3007 case 'g': /* g(r). */
938     if (local_args_info.gofr_given)
939     {
940     fprintf (stderr, "%s: `--gofr' (`-g') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
941     goto failure;
942     }
943     if (args_info->gofr_given && ! override)
944     continue;
945     local_args_info.gofr_given = 1;
946     args_info->gofr_given = 1;
947     if (args_info->staticProps_group_counter && override)
948     reset_group_staticProps (args_info);
949     args_info->staticProps_group_counter += 1;
950     break;
951    
952     case 'p': /* p2 order parameter (--sele1 and --sele2 must be specified). */
953     if (local_args_info.p2_given)
954     {
955     fprintf (stderr, "%s: `--p2' (`-p') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
956     goto failure;
957     }
958     if (args_info->p2_given && ! override)
959     continue;
960     local_args_info.p2_given = 1;
961     args_info->p2_given = 1;
962     if (args_info->staticProps_group_counter && override)
963     reset_group_staticProps (args_info);
964     args_info->staticProps_group_counter += 1;
965     break;
966    
967     case 's': /* scd order parameter (either --sele1, --sele2, --sele3 are specified or --molname, --begin, --end are specified). */
968     if (local_args_info.scd_given)
969     {
970     fprintf (stderr, "%s: `--scd' (`-s') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
971     goto failure;
972     }
973     if (args_info->scd_given && ! override)
974     continue;
975     local_args_info.scd_given = 1;
976     args_info->scd_given = 1;
977     if (args_info->staticProps_group_counter && override)
978     reset_group_staticProps (args_info);
979     args_info->staticProps_group_counter += 1;
980     break;
981    
982     case 'd': /* density plot. */
983     if (local_args_info.density_given)
984     {
985     fprintf (stderr, "%s: `--density' (`-d') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
986     goto failure;
987     }
988     if (args_info->density_given && ! override)
989     continue;
990     local_args_info.density_given = 1;
991     args_info->density_given = 1;
992     if (args_info->staticProps_group_counter && override)
993     reset_group_staticProps (args_info);
994     args_info->staticProps_group_counter += 1;
995     break;
996    
997    
998 tim 1994 case 0: /* Long option with no short option */
999 gezelter 3007 /* maximum length (Defaults to 1/2 smallest length of first frame). */
1000     if (strcmp (long_options[option_index].name, "length") == 0)
1001     {
1002     if (local_args_info.length_given)
1003     {
1004     fprintf (stderr, "%s: `--length' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1005     goto failure;
1006     }
1007     if (args_info->length_given && ! override)
1008     continue;
1009     local_args_info.length_given = 1;
1010     args_info->length_given = 1;
1011     args_info->length_arg = strtod (optarg, &stop_char);
1012     if (!(stop_char && *stop_char == '\0')) {
1013     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
1014     goto failure;
1015     }
1016     if (args_info->length_orig)
1017     free (args_info->length_orig); /* free previous string */
1018     args_info->length_orig = gengetopt_strdup (optarg);
1019     }
1020 tim 2241 /* select the first stuntdouble set. */
1021 gezelter 3007 else if (strcmp (long_options[option_index].name, "sele1") == 0)
1022 tim 2240 {
1023 gezelter 2701 if (local_args_info.sele1_given)
1024 tim 2240 {
1025 gezelter 2701 fprintf (stderr, "%s: `--sele1' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1026     goto failure;
1027 tim 2240 }
1028 gezelter 2701 if (args_info->sele1_given && ! override)
1029     continue;
1030     local_args_info.sele1_given = 1;
1031 tim 2240 args_info->sele1_given = 1;
1032 gezelter 2701 if (args_info->sele1_arg)
1033     free (args_info->sele1_arg); /* free previous string */
1034 tim 2240 args_info->sele1_arg = gengetopt_strdup (optarg);
1035 gezelter 2701 if (args_info->sele1_orig)
1036     free (args_info->sele1_orig); /* free previous string */
1037     args_info->sele1_orig = gengetopt_strdup (optarg);
1038 tim 2240 }
1039 tim 2241 /* select the second stuntdouble set. */
1040 tim 1994 else if (strcmp (long_options[option_index].name, "sele2") == 0)
1041 tim 2240 {
1042 gezelter 2701 if (local_args_info.sele2_given)
1043 tim 2240 {
1044 gezelter 2701 fprintf (stderr, "%s: `--sele2' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1045     goto failure;
1046 tim 2240 }
1047 gezelter 2701 if (args_info->sele2_given && ! override)
1048     continue;
1049     local_args_info.sele2_given = 1;
1050 tim 2240 args_info->sele2_given = 1;
1051 gezelter 2701 if (args_info->sele2_arg)
1052     free (args_info->sele2_arg); /* free previous string */
1053 tim 2240 args_info->sele2_arg = gengetopt_strdup (optarg);
1054 gezelter 2701 if (args_info->sele2_orig)
1055     free (args_info->sele2_orig); /* free previous string */
1056     args_info->sele2_orig = gengetopt_strdup (optarg);
1057 tim 2240 }
1058 tim 2241 /* select the third stuntdouble set. */
1059     else if (strcmp (long_options[option_index].name, "sele3") == 0)
1060     {
1061 gezelter 2701 if (local_args_info.sele3_given)
1062 tim 2241 {
1063 gezelter 2701 fprintf (stderr, "%s: `--sele3' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1064     goto failure;
1065 tim 2241 }
1066 gezelter 2701 if (args_info->sele3_given && ! override)
1067     continue;
1068     local_args_info.sele3_given = 1;
1069 tim 2241 args_info->sele3_given = 1;
1070 gezelter 2701 if (args_info->sele3_arg)
1071     free (args_info->sele3_arg); /* free previous string */
1072 tim 2241 args_info->sele3_arg = gengetopt_strdup (optarg);
1073 gezelter 2701 if (args_info->sele3_orig)
1074     free (args_info->sele3_orig); /* free previous string */
1075     args_info->sele3_orig = gengetopt_strdup (optarg);
1076 tim 2241 }
1077 tim 2053 /* select reference (use and only use with --gxyz). */
1078     else if (strcmp (long_options[option_index].name, "refsele") == 0)
1079 tim 2240 {
1080 gezelter 2701 if (local_args_info.refsele_given)
1081 tim 2240 {
1082 gezelter 2701 fprintf (stderr, "%s: `--refsele' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1083     goto failure;
1084 tim 2240 }
1085 gezelter 2701 if (args_info->refsele_given && ! override)
1086     continue;
1087     local_args_info.refsele_given = 1;
1088 tim 2240 args_info->refsele_given = 1;
1089 gezelter 2701 if (args_info->refsele_arg)
1090     free (args_info->refsele_arg); /* free previous string */
1091 tim 2240 args_info->refsele_arg = gengetopt_strdup (optarg);
1092 gezelter 2701 if (args_info->refsele_orig)
1093     free (args_info->refsele_orig); /* free previous string */
1094     args_info->refsele_orig = gengetopt_strdup (optarg);
1095 tim 2240 }
1096 tim 2241 /* molecule name. */
1097     else if (strcmp (long_options[option_index].name, "molname") == 0)
1098     {
1099 gezelter 2701 if (local_args_info.molname_given)
1100 tim 2241 {
1101 gezelter 2701 fprintf (stderr, "%s: `--molname' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1102     goto failure;
1103 tim 2241 }
1104 gezelter 2701 if (args_info->molname_given && ! override)
1105     continue;
1106     local_args_info.molname_given = 1;
1107 tim 2241 args_info->molname_given = 1;
1108 gezelter 2701 if (args_info->molname_arg)
1109     free (args_info->molname_arg); /* free previous string */
1110 tim 2241 args_info->molname_arg = gengetopt_strdup (optarg);
1111 gezelter 2701 if (args_info->molname_orig)
1112     free (args_info->molname_orig); /* free previous string */
1113     args_info->molname_orig = gengetopt_strdup (optarg);
1114 tim 2241 }
1115 gezelter 3007 /* begin internal index. */
1116 tim 2241 else if (strcmp (long_options[option_index].name, "begin") == 0)
1117     {
1118 gezelter 2701 if (local_args_info.begin_given)
1119 tim 2241 {
1120 gezelter 2701 fprintf (stderr, "%s: `--begin' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1121     goto failure;
1122 tim 2241 }
1123 gezelter 2701 if (args_info->begin_given && ! override)
1124     continue;
1125     local_args_info.begin_given = 1;
1126 tim 2241 args_info->begin_given = 1;
1127 gezelter 2701 args_info->begin_arg = strtol (optarg, &stop_char, 0);
1128     if (!(stop_char && *stop_char == '\0')) {
1129     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
1130     goto failure;
1131     }
1132     if (args_info->begin_orig)
1133     free (args_info->begin_orig); /* free previous string */
1134     args_info->begin_orig = gengetopt_strdup (optarg);
1135 tim 2241 }
1136     /* end internal index. */
1137     else if (strcmp (long_options[option_index].name, "end") == 0)
1138     {
1139 gezelter 2701 if (local_args_info.end_given)
1140 tim 2241 {
1141 gezelter 2701 fprintf (stderr, "%s: `--end' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1142     goto failure;
1143 tim 2241 }
1144 gezelter 2701 if (args_info->end_given && ! override)
1145     continue;
1146     local_args_info.end_given = 1;
1147 tim 2241 args_info->end_given = 1;
1148 gezelter 2701 args_info->end_arg = strtol (optarg, &stop_char, 0);
1149     if (!(stop_char && *stop_char == '\0')) {
1150     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
1151     goto failure;
1152     }
1153     if (args_info->end_orig)
1154     free (args_info->end_orig); /* free previous string */
1155     args_info->end_orig = gengetopt_strdup (optarg);
1156 tim 2241 }
1157 chuckv 3076 /* nanoparticle radius. */
1158     else if (strcmp (long_options[option_index].name, "radius") == 0)
1159     {
1160     if (local_args_info.radius_given)
1161     {
1162     fprintf (stderr, "%s: `--radius' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1163     goto failure;
1164     }
1165     if (args_info->radius_given && ! override)
1166     continue;
1167     local_args_info.radius_given = 1;
1168     args_info->radius_given = 1;
1169     args_info->radius_arg = strtod (optarg, &stop_char);
1170     if (!(stop_char && *stop_char == '\0')) {
1171     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
1172     goto failure;
1173     }
1174     if (args_info->radius_orig)
1175     free (args_info->radius_orig); /* free previous string */
1176     args_info->radius_orig = gengetopt_strdup (optarg);
1177     }
1178 chuckv 3128 /* bond order parameter (--rcut must be specified). */
1179 gezelter 3009 else if (strcmp (long_options[option_index].name, "bo") == 0)
1180     {
1181     if (local_args_info.bo_given)
1182     {
1183     fprintf (stderr, "%s: `--bo' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1184     goto failure;
1185     }
1186     if (args_info->bo_given && ! override)
1187     continue;
1188     local_args_info.bo_given = 1;
1189     args_info->bo_given = 1;
1190     if (args_info->staticProps_group_counter && override)
1191     reset_group_staticProps (args_info);
1192     args_info->staticProps_group_counter += 1;
1193     break;
1194     }
1195 chuckv 3128 /* bond order parameter as a function of radius (--rcut must be specified). */
1196     else if (strcmp (long_options[option_index].name, "bor") == 0)
1197     {
1198     if (local_args_info.bor_given)
1199     {
1200     fprintf (stderr, "%s: `--bor' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1201     goto failure;
1202     }
1203     if (args_info->bor_given && ! override)
1204     continue;
1205     local_args_info.bor_given = 1;
1206     args_info->bor_given = 1;
1207     if (args_info->staticProps_group_counter && override)
1208     reset_group_staticProps (args_info);
1209     args_info->staticProps_group_counter += 1;
1210     break;
1211     }
1212 tim 1994 /* g(r, cos(theta)). */
1213     else if (strcmp (long_options[option_index].name, "r_theta") == 0)
1214 tim 2240 {
1215 gezelter 2701 if (local_args_info.r_theta_given)
1216 tim 2240 {
1217 gezelter 2701 fprintf (stderr, "%s: `--r_theta' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1218     goto failure;
1219 tim 2240 }
1220 gezelter 2701 if (args_info->r_theta_given && ! override)
1221     continue;
1222     local_args_info.r_theta_given = 1;
1223     args_info->r_theta_given = 1;
1224     if (args_info->staticProps_group_counter && override)
1225     reset_group_staticProps (args_info);
1226     args_info->staticProps_group_counter += 1;
1227 tim 2240 break;
1228     }
1229 tim 1994 /* g(r, cos(omega)). */
1230     else if (strcmp (long_options[option_index].name, "r_omega") == 0)
1231 tim 2240 {
1232 gezelter 2701 if (local_args_info.r_omega_given)
1233 tim 2240 {
1234 gezelter 2701 fprintf (stderr, "%s: `--r_omega' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1235     goto failure;
1236 tim 2240 }
1237 gezelter 2701 if (args_info->r_omega_given && ! override)
1238     continue;
1239     local_args_info.r_omega_given = 1;
1240     args_info->r_omega_given = 1;
1241     if (args_info->staticProps_group_counter && override)
1242     reset_group_staticProps (args_info);
1243     args_info->staticProps_group_counter += 1;
1244 tim 2240 break;
1245     }
1246 tim 1994 /* g(cos(theta), cos(omega)). */
1247     else if (strcmp (long_options[option_index].name, "theta_omega") == 0)
1248 tim 2240 {
1249 gezelter 2701 if (local_args_info.theta_omega_given)
1250 tim 2240 {
1251 gezelter 2701 fprintf (stderr, "%s: `--theta_omega' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1252     goto failure;
1253 tim 2240 }
1254 gezelter 2701 if (args_info->theta_omega_given && ! override)
1255     continue;
1256     local_args_info.theta_omega_given = 1;
1257     args_info->theta_omega_given = 1;
1258     if (args_info->staticProps_group_counter && override)
1259     reset_group_staticProps (args_info);
1260     args_info->staticProps_group_counter += 1;
1261 tim 2240 break;
1262     }
1263 tim 1994 /* g(x, y, z). */
1264 tim 2053 else if (strcmp (long_options[option_index].name, "gxyz") == 0)
1265 tim 2240 {
1266 gezelter 2701 if (local_args_info.gxyz_given)
1267 tim 2240 {
1268 gezelter 2701 fprintf (stderr, "%s: `--gxyz' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1269     goto failure;
1270 tim 2240 }
1271 gezelter 2701 if (args_info->gxyz_given && ! override)
1272     continue;
1273     local_args_info.gxyz_given = 1;
1274     args_info->gxyz_given = 1;
1275     if (args_info->staticProps_group_counter && override)
1276     reset_group_staticProps (args_info);
1277     args_info->staticProps_group_counter += 1;
1278 tim 2240 break;
1279     }
1280 xsun 2783 /* rp2 order parameter (--sele1 and --sele2 must be specified). */
1281     else if (strcmp (long_options[option_index].name, "rp2") == 0)
1282     {
1283     if (local_args_info.rp2_given)
1284     {
1285     fprintf (stderr, "%s: `--rp2' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1286     goto failure;
1287     }
1288     if (args_info->rp2_given && ! override)
1289     continue;
1290     local_args_info.rp2_given = 1;
1291     args_info->rp2_given = 1;
1292     if (args_info->staticProps_group_counter && override)
1293     reset_group_staticProps (args_info);
1294     args_info->staticProps_group_counter += 1;
1295     break;
1296     }
1297 gezelter 3007 /* slab density. */
1298 tim 2539 else if (strcmp (long_options[option_index].name, "slab_density") == 0)
1299     {
1300 gezelter 2701 if (local_args_info.slab_density_given)
1301 tim 2539 {
1302 gezelter 2701 fprintf (stderr, "%s: `--slab_density' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1303     goto failure;
1304 tim 2539 }
1305 gezelter 2701 if (args_info->slab_density_given && ! override)
1306     continue;
1307     local_args_info.slab_density_given = 1;
1308     args_info->slab_density_given = 1;
1309     if (args_info->staticProps_group_counter && override)
1310     reset_group_staticProps (args_info);
1311     args_info->staticProps_group_counter += 1;
1312 tim 2539 break;
1313     }
1314 gezelter 3007 /* hxy. */
1315 xsun 2751 else if (strcmp (long_options[option_index].name, "hxy") == 0)
1316     {
1317     if (local_args_info.hxy_given)
1318     {
1319     fprintf (stderr, "%s: `--hxy' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1320     goto failure;
1321     }
1322     if (args_info->hxy_given && ! override)
1323     continue;
1324     local_args_info.hxy_given = 1;
1325     args_info->hxy_given = 1;
1326     if (args_info->staticProps_group_counter && override)
1327     reset_group_staticProps (args_info);
1328     args_info->staticProps_group_counter += 1;
1329     break;
1330     }
1331 chuckv 3076 /* rho of R. */
1332     else if (strcmp (long_options[option_index].name, "rho_r") == 0)
1333     {
1334     if (local_args_info.rho_r_given)
1335     {
1336     fprintf (stderr, "%s: `--rho_r' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1337     goto failure;
1338     }
1339     if (args_info->rho_r_given && ! override)
1340     continue;
1341     local_args_info.rho_r_given = 1;
1342     args_info->rho_r_given = 1;
1343     if (args_info->staticProps_group_counter && override)
1344     reset_group_staticProps (args_info);
1345     args_info->staticProps_group_counter += 1;
1346     break;
1347     }
1348 tim 2539
1349 gezelter 2701 break;
1350 tim 1994 case '?': /* Invalid option. */
1351     /* `getopt_long' already printed an error message. */
1352 gezelter 2701 goto failure;
1353 tim 1994
1354     default: /* bug: option not considered. */
1355 gezelter 2701 fprintf (stderr, "%s: option unknown: %c%s\n", CMDLINE_PARSER_PACKAGE, c, (additional_error ? additional_error : ""));
1356 tim 1994 abort ();
1357     } /* switch */
1358     } /* while */
1359    
1360 gezelter 2701 if (args_info->staticProps_group_counter > 1)
1361 tim 1994 {
1362 gezelter 2701 fprintf (stderr, "%s: %d options of group staticProps were given. One is required.%s\n", argv[0], args_info->staticProps_group_counter, (additional_error ? additional_error : ""));
1363     error = 1;
1364 tim 1994 }
1365    
1366    
1367 gezelter 2701
1368     if (check_required)
1369 tim 1994 {
1370 gezelter 2701 error += cmdline_parser_required2 (args_info, argv[0], additional_error);
1371 tim 1994 }
1372    
1373 gezelter 2701 cmdline_parser_release (&local_args_info);
1374    
1375     if ( error )
1376     return (EXIT_FAILURE);
1377    
1378 chuckv 3128 if (optind < argc)
1379     {
1380     int i = 0 ;
1381     int found_prog_name = 0;
1382     /* whether program name, i.e., argv[0], is in the remaining args
1383     (this may happen with some implementations of getopt,
1384     but surely not with the one included by gengetopt) */
1385    
1386     i = optind;
1387     while (i < argc)
1388     if (argv[i++] == argv[0]) {
1389     found_prog_name = 1;
1390     break;
1391     }
1392     i = 0;
1393    
1394     args_info->inputs_num = argc - optind - found_prog_name;
1395     args_info->inputs =
1396     (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
1397     while (optind < argc)
1398     if (argv[optind++] != argv[0])
1399     args_info->inputs[ i++ ] = gengetopt_strdup (argv[optind-1]) ;
1400     }
1401    
1402 tim 1994 return 0;
1403 gezelter 2701
1404     failure:
1405    
1406     cmdline_parser_release (&local_args_info);
1407     return (EXIT_FAILURE);
1408 tim 1994 }