ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/applications/staticProps/StaticPropsCmd.c
Revision: 3007
Committed: Tue Sep 19 21:14:11 2006 UTC (17 years, 11 months ago) by gezelter
Content type: text/plain
File size: 45967 byte(s)
Log Message:
Working on BondOrderParameter

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