ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/applications/staticProps/StaticPropsCmd.c
Revision: 3076
Committed: Fri Nov 10 18:45:29 2006 UTC (17 years, 9 months ago) by chuckv
Content type: text/plain
File size: 46910 byte(s)
Log Message:
Added support for nanoparticle density profile.

File Contents

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