ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/applications/staticProps/StaticPropsCmd.c
Revision: 2751
Committed: Fri May 12 21:34:43 2006 UTC (18 years, 3 months ago) by xsun
Content type: text/plain
File size: 41413 byte(s)
Log Message:
Changes to calculate undulation spectrum

File Contents

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