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, 2 months ago) by xsun
Content type: text/plain
File size: 41413 byte(s)
Log Message:
Changes to calculate undulation spectrum

File Contents

# Content
1 /*
2 File autogenerated by gengetopt version 2.16
3 generated with the following command:
4 gengetopt -F StaticPropsCmd
5
6 The developers of gengetopt consider the fixed text that goes in all
7 gengetopt output files to be in the public domain:
8 we make no copyright claims on it.
9 */
10
11 /* If we use autoconf. */
12 #ifdef HAVE_CONFIG_H
13 #include "config.h"
14 #endif
15
16 #include <stdio.h>
17 #include <stdlib.h>
18 #include <string.h>
19
20 #include "getopt.h"
21
22 #include "StaticPropsCmd.h"
23
24 static
25 void clear_given (struct gengetopt_args_info *args_info);
26 static
27 void clear_args (struct gengetopt_args_info *args_info);
28
29 static int
30 cmdline_parser_internal (int argc, char * const *argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required, const char *additional_error);
31
32 static 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 args_info->nbins_x_given = 0 ;
48 args_info->nbins_y_given = 0 ;
49 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 args_info->hxy_given = 0 ;
69 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 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 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 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 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 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 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 printf("%s\n"," --hxy hxy (--sele1 must be specified)");
147
148 }
149
150 void
151 cmdline_parser_init (struct gengetopt_args_info *args_info)
152 {
153 clear_given (args_info);
154 clear_args (args_info);
155 }
156
157 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 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 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
281 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 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 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 if (args_info->hxy_given) {
441 fprintf(outfile, "%s\n", "hxy");
442 }
443 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 /* gengetopt_strdup() */
457 /* strdup.c replacement of strdup, which is not standard */
458 char *
459 gengetopt_strdup (const char *s)
460 {
461 char *result = NULL;
462 if (!s)
463 return result;
464
465 result = (char*)malloc(strlen(s) + 1);
466 if (result == (char*)0)
467 return (char*)0;
468 strcpy(result, s);
469 return result;
470 }
471
472 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 {
478 if (! args_info->staticProps_group_counter)
479 return;
480
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 args_info->gxyz_given = 0 ;
486 args_info->p2_given = 0 ;
487 args_info->scd_given = 0 ;
488 args_info->density_given = 0 ;
489 args_info->slab_density_given = 0 ;
490 args_info->hxy_given= 0 ;
491
492 args_info->staticProps_group_counter = 0;
493 }
494
495 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
501 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 optarg = 0;
568 optind = 0;
569 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 { "step", 1, NULL, 'n' },
583 { "nrbins", 1, NULL, 'r' },
584 { "nanglebins", 1, NULL, 'a' },
585 { "length", 1, NULL, 'l' },
586 { "zoffset", 1, NULL, 'z' },
587 { "sele1", 1, NULL, 0 },
588 { "sele2", 1, NULL, 0 },
589 { "sele3", 1, NULL, 0 },
590 { "refsele", 1, NULL, 0 },
591 { "molname", 1, NULL, 0 },
592 { "begin", 1, NULL, 0 },
593 { "end", 1, NULL, 0 },
594 { "gofr", 0, NULL, 0 },
595 { "r_theta", 0, NULL, 0 },
596 { "r_omega", 0, NULL, 0 },
597 { "theta_omega", 0, NULL, 0 },
598 { "gxyz", 0, NULL, 0 },
599 { "p2", 0, NULL, 0 },
600 { "scd", 0, NULL, 0 },
601 { "density", 0, NULL, 0 },
602 { "slab_density", 0, NULL, 0 },
603 { "hxy", 0, NULL, 0 },
604 { NULL, 0, NULL, 0 }
605 };
606
607 stop_char = 0;
608 c = getopt_long (argc, argv, "hVi:o:n:r:a:l:z:", long_options, &option_index);
609
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 cmdline_parser_free (&local_args_info);
617 exit (EXIT_SUCCESS);
618
619 case 'V': /* Print version and exit. */
620 cmdline_parser_print_version ();
621 cmdline_parser_free (&local_args_info);
622 exit (EXIT_SUCCESS);
623
624 case 'i': /* input dump file. */
625 if (local_args_info.input_given)
626 {
627 fprintf (stderr, "%s: `--input' (`-i') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
628 goto failure;
629 }
630 if (args_info->input_given && ! override)
631 continue;
632 local_args_info.input_given = 1;
633 args_info->input_given = 1;
634 if (args_info->input_arg)
635 free (args_info->input_arg); /* free previous string */
636 args_info->input_arg = gengetopt_strdup (optarg);
637 if (args_info->input_orig)
638 free (args_info->input_orig); /* free previous string */
639 args_info->input_orig = gengetopt_strdup (optarg);
640 break;
641
642 case 'o': /* output file name. */
643 if (local_args_info.output_given)
644 {
645 fprintf (stderr, "%s: `--output' (`-o') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
646 goto failure;
647 }
648 if (args_info->output_given && ! override)
649 continue;
650 local_args_info.output_given = 1;
651 args_info->output_given = 1;
652 if (args_info->output_arg)
653 free (args_info->output_arg); /* free previous string */
654 args_info->output_arg = gengetopt_strdup (optarg);
655 if (args_info->output_orig)
656 free (args_info->output_orig); /* free previous string */
657 args_info->output_orig = gengetopt_strdup (optarg);
658 break;
659
660 case 'n': /* process every n frame. */
661 if (local_args_info.step_given)
662 {
663 fprintf (stderr, "%s: `--step' (`-n') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
664 goto failure;
665 }
666 if (args_info->step_given && ! override)
667 continue;
668 local_args_info.step_given = 1;
669 args_info->step_given = 1;
670 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 break;
679
680 case 'r': /* number of bins for distance. */
681 if (local_args_info.nrbins_given)
682 {
683 fprintf (stderr, "%s: `--nrbins' (`-r') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
684 goto failure;
685 }
686 if (args_info->nrbins_given && ! override)
687 continue;
688 local_args_info.nrbins_given = 1;
689 args_info->nrbins_given = 1;
690 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 break;
699
700 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 case 'a': /* number of bins for cos(angle). */
741 if (local_args_info.nanglebins_given)
742 {
743 fprintf (stderr, "%s: `--nanglebins' (`-a') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
744 goto failure;
745 }
746 if (args_info->nanglebins_given && ! override)
747 continue;
748 local_args_info.nanglebins_given = 1;
749 args_info->nanglebins_given = 1;
750 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 break;
759
760 case 'l': /* maximum length (Defaults to 1/2 smallest length of first frame). */
761 if (local_args_info.length_given)
762 {
763 fprintf (stderr, "%s: `--length' (`-l') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
764 goto failure;
765 }
766 if (args_info->length_given && ! override)
767 continue;
768 local_args_info.length_given = 1;
769 args_info->length_given = 1;
770 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 break;
779
780 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
800
801 case 0: /* Long option with no short option */
802 /* select the first stuntdouble set. */
803 if (strcmp (long_options[option_index].name, "sele1") == 0)
804 {
805 if (local_args_info.sele1_given)
806 {
807 fprintf (stderr, "%s: `--sele1' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
808 goto failure;
809 }
810 if (args_info->sele1_given && ! override)
811 continue;
812 local_args_info.sele1_given = 1;
813 args_info->sele1_given = 1;
814 if (args_info->sele1_arg)
815 free (args_info->sele1_arg); /* free previous string */
816 args_info->sele1_arg = gengetopt_strdup (optarg);
817 if (args_info->sele1_orig)
818 free (args_info->sele1_orig); /* free previous string */
819 args_info->sele1_orig = gengetopt_strdup (optarg);
820 }
821 /* select the second stuntdouble set. */
822 else if (strcmp (long_options[option_index].name, "sele2") == 0)
823 {
824 if (local_args_info.sele2_given)
825 {
826 fprintf (stderr, "%s: `--sele2' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
827 goto failure;
828 }
829 if (args_info->sele2_given && ! override)
830 continue;
831 local_args_info.sele2_given = 1;
832 args_info->sele2_given = 1;
833 if (args_info->sele2_arg)
834 free (args_info->sele2_arg); /* free previous string */
835 args_info->sele2_arg = gengetopt_strdup (optarg);
836 if (args_info->sele2_orig)
837 free (args_info->sele2_orig); /* free previous string */
838 args_info->sele2_orig = gengetopt_strdup (optarg);
839 }
840 /* select the third stuntdouble set. */
841 else if (strcmp (long_options[option_index].name, "sele3") == 0)
842 {
843 if (local_args_info.sele3_given)
844 {
845 fprintf (stderr, "%s: `--sele3' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
846 goto failure;
847 }
848 if (args_info->sele3_given && ! override)
849 continue;
850 local_args_info.sele3_given = 1;
851 args_info->sele3_given = 1;
852 if (args_info->sele3_arg)
853 free (args_info->sele3_arg); /* free previous string */
854 args_info->sele3_arg = gengetopt_strdup (optarg);
855 if (args_info->sele3_orig)
856 free (args_info->sele3_orig); /* free previous string */
857 args_info->sele3_orig = gengetopt_strdup (optarg);
858 }
859 /* select reference (use and only use with --gxyz). */
860 else if (strcmp (long_options[option_index].name, "refsele") == 0)
861 {
862 if (local_args_info.refsele_given)
863 {
864 fprintf (stderr, "%s: `--refsele' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
865 goto failure;
866 }
867 if (args_info->refsele_given && ! override)
868 continue;
869 local_args_info.refsele_given = 1;
870 args_info->refsele_given = 1;
871 if (args_info->refsele_arg)
872 free (args_info->refsele_arg); /* free previous string */
873 args_info->refsele_arg = gengetopt_strdup (optarg);
874 if (args_info->refsele_orig)
875 free (args_info->refsele_orig); /* free previous string */
876 args_info->refsele_orig = gengetopt_strdup (optarg);
877 }
878 /* molecule name. */
879 else if (strcmp (long_options[option_index].name, "molname") == 0)
880 {
881 if (local_args_info.molname_given)
882 {
883 fprintf (stderr, "%s: `--molname' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
884 goto failure;
885 }
886 if (args_info->molname_given && ! override)
887 continue;
888 local_args_info.molname_given = 1;
889 args_info->molname_given = 1;
890 if (args_info->molname_arg)
891 free (args_info->molname_arg); /* free previous string */
892 args_info->molname_arg = gengetopt_strdup (optarg);
893 if (args_info->molname_orig)
894 free (args_info->molname_orig); /* free previous string */
895 args_info->molname_orig = gengetopt_strdup (optarg);
896 }
897 /* begin interanl index. */
898 else if (strcmp (long_options[option_index].name, "begin") == 0)
899 {
900 if (local_args_info.begin_given)
901 {
902 fprintf (stderr, "%s: `--begin' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
903 goto failure;
904 }
905 if (args_info->begin_given && ! override)
906 continue;
907 local_args_info.begin_given = 1;
908 args_info->begin_given = 1;
909 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 }
918 /* end internal index. */
919 else if (strcmp (long_options[option_index].name, "end") == 0)
920 {
921 if (local_args_info.end_given)
922 {
923 fprintf (stderr, "%s: `--end' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
924 goto failure;
925 }
926 if (args_info->end_given && ! override)
927 continue;
928 local_args_info.end_given = 1;
929 args_info->end_given = 1;
930 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 }
939 /* g(r). */
940 else if (strcmp (long_options[option_index].name, "gofr") == 0)
941 {
942 if (local_args_info.gofr_given)
943 {
944 fprintf (stderr, "%s: `--gofr' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
945 goto failure;
946 }
947 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 break;
955 }
956 /* g(r, cos(theta)). */
957 else if (strcmp (long_options[option_index].name, "r_theta") == 0)
958 {
959 if (local_args_info.r_theta_given)
960 {
961 fprintf (stderr, "%s: `--r_theta' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
962 goto failure;
963 }
964 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 break;
972 }
973 /* g(r, cos(omega)). */
974 else if (strcmp (long_options[option_index].name, "r_omega") == 0)
975 {
976 if (local_args_info.r_omega_given)
977 {
978 fprintf (stderr, "%s: `--r_omega' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
979 goto failure;
980 }
981 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 break;
989 }
990 /* g(cos(theta), cos(omega)). */
991 else if (strcmp (long_options[option_index].name, "theta_omega") == 0)
992 {
993 if (local_args_info.theta_omega_given)
994 {
995 fprintf (stderr, "%s: `--theta_omega' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
996 goto failure;
997 }
998 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 break;
1006 }
1007 /* g(x, y, z). */
1008 else if (strcmp (long_options[option_index].name, "gxyz") == 0)
1009 {
1010 if (local_args_info.gxyz_given)
1011 {
1012 fprintf (stderr, "%s: `--gxyz' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1013 goto failure;
1014 }
1015 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 break;
1023 }
1024 /* p2 order parameter (--sele1 and --sele2 must be specified). */
1025 else if (strcmp (long_options[option_index].name, "p2") == 0)
1026 {
1027 if (local_args_info.p2_given)
1028 {
1029 fprintf (stderr, "%s: `--p2' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1030 goto failure;
1031 }
1032 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 break;
1040 }
1041 /* 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 if (local_args_info.scd_given)
1045 {
1046 fprintf (stderr, "%s: `--scd' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1047 goto failure;
1048 }
1049 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 break;
1057 }
1058 /* density plot (--sele1 must be specified). */
1059 else if (strcmp (long_options[option_index].name, "density") == 0)
1060 {
1061 if (local_args_info.density_given)
1062 {
1063 fprintf (stderr, "%s: `--density' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1064 goto failure;
1065 }
1066 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 break;
1074 }
1075 /* slab density (--sele1 must be specified). */
1076 else if (strcmp (long_options[option_index].name, "slab_density") == 0)
1077 {
1078 if (local_args_info.slab_density_given)
1079 {
1080 fprintf (stderr, "%s: `--slab_density' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1081 goto failure;
1082 }
1083 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 break;
1091 }
1092 /* 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
1110 break;
1111 case '?': /* Invalid option. */
1112 /* `getopt_long' already printed an error message. */
1113 goto failure;
1114
1115 default: /* bug: option not considered. */
1116 fprintf (stderr, "%s: option unknown: %c%s\n", CMDLINE_PARSER_PACKAGE, c, (additional_error ? additional_error : ""));
1117 abort ();
1118 } /* switch */
1119 } /* while */
1120
1121 if (args_info->staticProps_group_counter > 1)
1122 {
1123 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 }
1126
1127
1128
1129 if (check_required)
1130 {
1131 error += cmdline_parser_required2 (args_info, argv[0], additional_error);
1132 }
1133
1134 cmdline_parser_release (&local_args_info);
1135
1136 if ( error )
1137 return (EXIT_FAILURE);
1138
1139 return 0;
1140
1141 failure:
1142
1143 cmdline_parser_release (&local_args_info);
1144 return (EXIT_FAILURE);
1145 }