ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/applications/staticProps/StaticPropsCmd.cpp
Revision: 2015
Committed: Wed Aug 13 20:42:43 2014 UTC (10 years, 8 months ago) by gezelter
File size: 70286 byte(s)
Log Message:
Changes to include the volume-resolved tetrahedrality parameter.

File Contents

# User Rev Content
1 tim 310 /*
2 gezelter 1629 File autogenerated by gengetopt version 2.22.4
3 tim 310 generated with the following command:
4 gezelter 1819 gengetopt --file-name=StaticPropsCmd --unamed-opts
5 tim 310
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 929 /* If we use autoconf. */
12     #ifdef HAVE_CONFIG_H
13     #include "config.h"
14     #endif
15 tim 310
16     #include <stdio.h>
17     #include <stdlib.h>
18     #include <string.h>
19    
20 gezelter 1629 #ifndef FIX_UNUSED
21     #define FIX_UNUSED(X) (void) (X) /* avoid warnings for unused params */
22     #endif
23 tim 310
24 gezelter 1879 #ifdef WIN32
25     #include "utils/wingetopt.h"
26     #else
27 gezelter 1629 #include <getopt.h>
28 gezelter 1879 #endif
29 gezelter 1629
30 tim 311 #include "StaticPropsCmd.h"
31 tim 310
32 chuckv 1128 const char *gengetopt_args_info_purpose = "";
33    
34 gezelter 1454 const char *gengetopt_args_info_usage = "Usage: StaticProps [OPTIONS]... [FILES]...";
35 chuckv 1128
36     const char *gengetopt_args_info_description = "";
37    
38     const char *gengetopt_args_info_help[] = {
39     " -h, --help Print help and exit",
40     " -V, --version Print version and exit",
41     " -i, --input=filename input dump file",
42     " -o, --output=filename output file name",
43     " -n, --step=INT process every n frame (default=`1')",
44     " -b, --nbins=INT number of bins (general purpose) \n (default=`100')",
45     " -x, --nbins_x=INT number of bins in x axis (default=`100')",
46     " -y, --nbins_y=INT number of bins in y axis (default=`100')",
47 gezelter 1440 " --nbins_z=INT number of bins in z axis (default=`100')",
48 chuckv 1128 " -a, --nanglebins=INT number of bins for cos(angle) (default=`50')",
49 chuckv 1445 " -c, --rcut=DOUBLE cutoff radius (rcut)",
50 gezelter 1454 " --dz=DOUBLE slab width (dz)",
51 chuckv 1128 " --length=DOUBLE maximum length (Defaults to 1/2 smallest length \n of first frame)",
52 chuckv 1445 " --zlength=DOUBLE maximum length (Defaults to 1/2 smallest length \n of first frame)",
53 chuckv 1128 " -z, --zoffset=DOUBLE Where to set the zero for the slab_density \n calculation (default=`0')",
54     " --sele1=selection script select the first stuntdouble set",
55     " --sele2=selection script select the second stuntdouble set",
56     " --sele3=selection script select the third stuntdouble set",
57     " --refsele=selection script\n select reference (use and only use with --gxyz)",
58 gezelter 1390 " --comsele=selection script\n select stunt doubles for center-of-mass \n reference point",
59 gezelter 1819 " --seleoffset=INT global index offset for a second object (used \n to define a vector between sites in molecule)",
60 gezelter 1991 " --seleoffset2=INT global index offset for a third object (used to \n define a vector between sites in molecule)",
61 chuckv 1128 " --molname=STRING molecule name",
62     " --begin=INT begin internal index",
63     " --end=INT end internal index",
64     " --radius=DOUBLE nanoparticle radius",
65 gezelter 2015 " -v, --voxelSize=DOUBLE voxel size (angstroms)",
66     " --gaussWidth=DOUBLE Gaussian width (angstroms)",
67 chuckv 1128 "\n Group: staticProps\n an option of this group is required",
68     " --bo bond order parameter (--rcut must be specified)",
69 gezelter 1992 " --ior icosahedral bond order parameter as a function \n of radius (--rcut must be specified)",
70     " --for FCC bond order parameter as a function of \n radius (--rcut must be specified)",
71 chuckv 1180 " --bad N(theta) bond angle density within (--rcut must \n be specified)",
72 gezelter 1629 " --count count of molecules matching selection criteria \n (and associated statistics)",
73 chuckv 1128 " -g, --gofr g(r)",
74 xsun 1213 " --gofz g(z)",
75 chuckv 1128 " --r_theta g(r, cos(theta))",
76     " --r_omega g(r, cos(omega))",
77 gezelter 1440 " --r_z g(r, z)",
78 chuckv 1128 " --theta_omega g(cos(theta), cos(omega))",
79     " --gxyz g(x, y, z)",
80 gezelter 1454 " --twodgofr 2D g(r) (Slab width --dz must be specified)",
81 gezelter 1629 " -p, --p2 p2 order parameter (--sele1 must be specified, \n --sele2 is optional)",
82 chuckv 1128 " --rp2 rp2 order parameter (--sele1 and --sele2 must \n be specified)",
83     " -s, --scd scd order parameter (either --sele1, --sele2, \n --sele3 are specified or --molname, --begin, \n --end are specified)",
84     " -d, --density density plot",
85     " --slab_density slab density",
86 gezelter 1979 " --p_angle p(cos(theta)) (--sele1 must be specified, \n --sele2 is optional)",
87 chuckv 1128 " --hxy hxy",
88     " --rho_r rho of R",
89 gezelter 1629 " --angle_r angle of R",
90 chuckv 1180 " --hullvol hull volume of nanoparticle",
91 gezelter 1629 " --rodlength length of nanorod",
92 gezelter 1843 " -Q, --tet_param tetrahedrality order parameter (Qk)",
93     " --tet_param_z spatially-resolved tetrahedrality order \n parameter Qk(z)",
94 gezelter 2015 " --tet_param_xyz volume-resolved tetrahedrality order parameter \n Qk(x,y,z). (voxelSize, rcut, and gaussWidth \n must be specified)",
95 gezelter 1879 " --rnemdz slab-resolved RNEMD statistics (temperature, \n density, velocity)",
96     " --rnemdr shell-resolved RNEMD statistics (temperature, \n density, angular velocity)",
97 gezelter 1953 " --rnemdrt shell and angle-resolved RNEMD statistics \n (temperature, density, angular velocity)",
98 gezelter 1994 " --nitrile electrostatic potential to frequency map based \n on the Cho nitrile fits",
99 gezelter 1999 " -m, --multipole average multipole moments contained within \n cutoff spheres as a function of radius",
100 chuckv 1128 0
101     };
102    
103 gezelter 1390 typedef enum {ARG_NO
104     , ARG_STRING
105     , ARG_INT
106     , ARG_DOUBLE
107     } cmdline_parser_arg_type;
108    
109 gezelter 929 static
110     void clear_given (struct gengetopt_args_info *args_info);
111     static
112     void clear_args (struct gengetopt_args_info *args_info);
113    
114     static int
115 gezelter 1629 cmdline_parser_internal (int argc, char **argv, struct gengetopt_args_info *args_info,
116 gezelter 1390 struct cmdline_parser_params *params, const char *additional_error);
117 gezelter 929
118     static int
119     cmdline_parser_required2 (struct gengetopt_args_info *args_info, const char *prog_name, const char *additional_error);
120    
121     static char *
122     gengetopt_strdup (const char *s);
123    
124     static
125     void clear_given (struct gengetopt_args_info *args_info)
126     {
127     args_info->help_given = 0 ;
128     args_info->version_given = 0 ;
129     args_info->input_given = 0 ;
130     args_info->output_given = 0 ;
131     args_info->step_given = 0 ;
132 gezelter 1041 args_info->nbins_given = 0 ;
133 xsun 955 args_info->nbins_x_given = 0 ;
134     args_info->nbins_y_given = 0 ;
135 gezelter 1440 args_info->nbins_z_given = 0 ;
136 gezelter 929 args_info->nanglebins_given = 0 ;
137 chuckv 1445 args_info->rcut_given = 0 ;
138 gezelter 1454 args_info->dz_given = 0 ;
139 gezelter 929 args_info->length_given = 0 ;
140 chuckv 1445 args_info->zlength_given = 0 ;
141 gezelter 929 args_info->zoffset_given = 0 ;
142     args_info->sele1_given = 0 ;
143     args_info->sele2_given = 0 ;
144     args_info->sele3_given = 0 ;
145     args_info->refsele_given = 0 ;
146 gezelter 1390 args_info->comsele_given = 0 ;
147 gezelter 1819 args_info->seleoffset_given = 0 ;
148 gezelter 1991 args_info->seleoffset2_given = 0 ;
149 gezelter 929 args_info->molname_given = 0 ;
150     args_info->begin_given = 0 ;
151     args_info->end_given = 0 ;
152 chuckv 1091 args_info->radius_given = 0 ;
153 gezelter 2015 args_info->voxelSize_given = 0 ;
154     args_info->gaussWidth_given = 0 ;
155 gezelter 1039 args_info->bo_given = 0 ;
156 gezelter 1992 args_info->ior_given = 0 ;
157     args_info->for_given = 0 ;
158 chuckv 1180 args_info->bad_given = 0 ;
159 gezelter 1629 args_info->count_given = 0 ;
160 gezelter 929 args_info->gofr_given = 0 ;
161 xsun 1213 args_info->gofz_given = 0 ;
162 gezelter 929 args_info->r_theta_given = 0 ;
163     args_info->r_omega_given = 0 ;
164 gezelter 1440 args_info->r_z_given = 0 ;
165 gezelter 929 args_info->theta_omega_given = 0 ;
166     args_info->gxyz_given = 0 ;
167 gezelter 1454 args_info->twodgofr_given = 0 ;
168 gezelter 929 args_info->p2_given = 0 ;
169 xsun 980 args_info->rp2_given = 0 ;
170 gezelter 929 args_info->scd_given = 0 ;
171     args_info->density_given = 0 ;
172     args_info->slab_density_given = 0 ;
173 gezelter 1413 args_info->p_angle_given = 0 ;
174 xsun 955 args_info->hxy_given = 0 ;
175 chuckv 1091 args_info->rho_r_given = 0 ;
176 gezelter 1629 args_info->angle_r_given = 0 ;
177 chuckv 1180 args_info->hullvol_given = 0 ;
178 gezelter 1629 args_info->rodlength_given = 0 ;
179     args_info->tet_param_given = 0 ;
180 plouden 1762 args_info->tet_param_z_given = 0 ;
181 gezelter 2015 args_info->tet_param_xyz_given = 0 ;
182 gezelter 1879 args_info->rnemdz_given = 0 ;
183     args_info->rnemdr_given = 0 ;
184 gezelter 1953 args_info->rnemdrt_given = 0 ;
185 gezelter 1994 args_info->nitrile_given = 0 ;
186 gezelter 1998 args_info->multipole_given = 0 ;
187 gezelter 929 args_info->staticProps_group_counter = 0 ;
188     }
189    
190     static
191     void clear_args (struct gengetopt_args_info *args_info)
192     {
193 gezelter 1629 FIX_UNUSED (args_info);
194 gezelter 929 args_info->input_arg = NULL;
195     args_info->input_orig = NULL;
196     args_info->output_arg = NULL;
197     args_info->output_orig = NULL;
198     args_info->step_arg = 1;
199     args_info->step_orig = NULL;
200 gezelter 1041 args_info->nbins_arg = 100;
201     args_info->nbins_orig = NULL;
202 xsun 955 args_info->nbins_x_arg = 100;
203     args_info->nbins_x_orig = NULL;
204     args_info->nbins_y_arg = 100;
205     args_info->nbins_y_orig = NULL;
206 gezelter 1440 args_info->nbins_z_arg = 100;
207     args_info->nbins_z_orig = NULL;
208 gezelter 929 args_info->nanglebins_arg = 50;
209     args_info->nanglebins_orig = NULL;
210 chuckv 1445 args_info->rcut_orig = NULL;
211 gezelter 1454 args_info->dz_orig = NULL;
212 gezelter 929 args_info->length_orig = NULL;
213 chuckv 1445 args_info->zlength_orig = NULL;
214 gezelter 929 args_info->zoffset_arg = 0;
215     args_info->zoffset_orig = NULL;
216     args_info->sele1_arg = NULL;
217     args_info->sele1_orig = NULL;
218     args_info->sele2_arg = NULL;
219     args_info->sele2_orig = NULL;
220     args_info->sele3_arg = NULL;
221     args_info->sele3_orig = NULL;
222     args_info->refsele_arg = NULL;
223     args_info->refsele_orig = NULL;
224 gezelter 1390 args_info->comsele_arg = NULL;
225     args_info->comsele_orig = NULL;
226 gezelter 1819 args_info->seleoffset_orig = NULL;
227 gezelter 1991 args_info->seleoffset2_orig = NULL;
228 gezelter 929 args_info->molname_arg = NULL;
229     args_info->molname_orig = NULL;
230     args_info->begin_orig = NULL;
231     args_info->end_orig = NULL;
232 chuckv 1091 args_info->radius_orig = NULL;
233 gezelter 2015 args_info->voxelSize_orig = NULL;
234     args_info->gaussWidth_orig = NULL;
235 gezelter 929
236     }
237    
238 chuckv 1128 static
239     void init_args_info(struct gengetopt_args_info *args_info)
240     {
241 gezelter 1390
242    
243 chuckv 1128 args_info->help_help = gengetopt_args_info_help[0] ;
244     args_info->version_help = gengetopt_args_info_help[1] ;
245     args_info->input_help = gengetopt_args_info_help[2] ;
246     args_info->output_help = gengetopt_args_info_help[3] ;
247     args_info->step_help = gengetopt_args_info_help[4] ;
248     args_info->nbins_help = gengetopt_args_info_help[5] ;
249     args_info->nbins_x_help = gengetopt_args_info_help[6] ;
250     args_info->nbins_y_help = gengetopt_args_info_help[7] ;
251 gezelter 1440 args_info->nbins_z_help = gengetopt_args_info_help[8] ;
252     args_info->nanglebins_help = gengetopt_args_info_help[9] ;
253 chuckv 1445 args_info->rcut_help = gengetopt_args_info_help[10] ;
254 gezelter 1454 args_info->dz_help = gengetopt_args_info_help[11] ;
255     args_info->length_help = gengetopt_args_info_help[12] ;
256     args_info->zlength_help = gengetopt_args_info_help[13] ;
257     args_info->zoffset_help = gengetopt_args_info_help[14] ;
258     args_info->sele1_help = gengetopt_args_info_help[15] ;
259     args_info->sele2_help = gengetopt_args_info_help[16] ;
260     args_info->sele3_help = gengetopt_args_info_help[17] ;
261     args_info->refsele_help = gengetopt_args_info_help[18] ;
262     args_info->comsele_help = gengetopt_args_info_help[19] ;
263 gezelter 1819 args_info->seleoffset_help = gengetopt_args_info_help[20] ;
264 gezelter 1991 args_info->seleoffset2_help = gengetopt_args_info_help[21] ;
265     args_info->molname_help = gengetopt_args_info_help[22] ;
266     args_info->begin_help = gengetopt_args_info_help[23] ;
267     args_info->end_help = gengetopt_args_info_help[24] ;
268     args_info->radius_help = gengetopt_args_info_help[25] ;
269 gezelter 2015 args_info->voxelSize_help = gengetopt_args_info_help[26] ;
270     args_info->gaussWidth_help = gengetopt_args_info_help[27] ;
271     args_info->bo_help = gengetopt_args_info_help[29] ;
272     args_info->ior_help = gengetopt_args_info_help[30] ;
273     args_info->for_help = gengetopt_args_info_help[31] ;
274     args_info->bad_help = gengetopt_args_info_help[32] ;
275     args_info->count_help = gengetopt_args_info_help[33] ;
276     args_info->gofr_help = gengetopt_args_info_help[34] ;
277     args_info->gofz_help = gengetopt_args_info_help[35] ;
278     args_info->r_theta_help = gengetopt_args_info_help[36] ;
279     args_info->r_omega_help = gengetopt_args_info_help[37] ;
280     args_info->r_z_help = gengetopt_args_info_help[38] ;
281     args_info->theta_omega_help = gengetopt_args_info_help[39] ;
282     args_info->gxyz_help = gengetopt_args_info_help[40] ;
283     args_info->twodgofr_help = gengetopt_args_info_help[41] ;
284     args_info->p2_help = gengetopt_args_info_help[42] ;
285     args_info->rp2_help = gengetopt_args_info_help[43] ;
286     args_info->scd_help = gengetopt_args_info_help[44] ;
287     args_info->density_help = gengetopt_args_info_help[45] ;
288     args_info->slab_density_help = gengetopt_args_info_help[46] ;
289     args_info->p_angle_help = gengetopt_args_info_help[47] ;
290     args_info->hxy_help = gengetopt_args_info_help[48] ;
291     args_info->rho_r_help = gengetopt_args_info_help[49] ;
292     args_info->angle_r_help = gengetopt_args_info_help[50] ;
293     args_info->hullvol_help = gengetopt_args_info_help[51] ;
294     args_info->rodlength_help = gengetopt_args_info_help[52] ;
295     args_info->tet_param_help = gengetopt_args_info_help[53] ;
296     args_info->tet_param_z_help = gengetopt_args_info_help[54] ;
297     args_info->tet_param_xyz_help = gengetopt_args_info_help[55] ;
298     args_info->rnemdz_help = gengetopt_args_info_help[56] ;
299     args_info->rnemdr_help = gengetopt_args_info_help[57] ;
300     args_info->rnemdrt_help = gengetopt_args_info_help[58] ;
301     args_info->nitrile_help = gengetopt_args_info_help[59] ;
302     args_info->multipole_help = gengetopt_args_info_help[60] ;
303 chuckv 1128
304     }
305    
306 tim 310 void
307     cmdline_parser_print_version (void)
308     {
309 gezelter 1629 printf ("%s %s\n",
310     (strlen(CMDLINE_PARSER_PACKAGE_NAME) ? CMDLINE_PARSER_PACKAGE_NAME : CMDLINE_PARSER_PACKAGE),
311     CMDLINE_PARSER_VERSION);
312 tim 310 }
313    
314 gezelter 1390 static void print_help_common(void) {
315 tim 310 cmdline_parser_print_version ();
316 chuckv 1128
317     if (strlen(gengetopt_args_info_purpose) > 0)
318     printf("\n%s\n", gengetopt_args_info_purpose);
319    
320 gezelter 1390 if (strlen(gengetopt_args_info_usage) > 0)
321     printf("\n%s\n", gengetopt_args_info_usage);
322 chuckv 1128
323 gezelter 1390 printf("\n");
324    
325 chuckv 1128 if (strlen(gengetopt_args_info_description) > 0)
326 gezelter 1629 printf("%s\n\n", gengetopt_args_info_description);
327 gezelter 1390 }
328 chuckv 1128
329 gezelter 1390 void
330     cmdline_parser_print_help (void)
331     {
332     int i = 0;
333     print_help_common();
334 chuckv 1128 while (gengetopt_args_info_help[i])
335     printf("%s\n", gengetopt_args_info_help[i++]);
336 tim 310 }
337    
338 gezelter 929 void
339     cmdline_parser_init (struct gengetopt_args_info *args_info)
340     {
341     clear_given (args_info);
342     clear_args (args_info);
343 chuckv 1128 init_args_info (args_info);
344 gezelter 1454
345 gezelter 1629 args_info->inputs = 0;
346 gezelter 1454 args_info->inputs_num = 0;
347 gezelter 1390 }
348 chuckv 1128
349 gezelter 1390 void
350     cmdline_parser_params_init(struct cmdline_parser_params *params)
351     {
352     if (params)
353     {
354     params->override = 0;
355     params->initialize = 1;
356     params->check_required = 1;
357     params->check_ambiguity = 0;
358     params->print_errors = 1;
359     }
360 gezelter 929 }
361 tim 310
362 gezelter 1390 struct cmdline_parser_params *
363     cmdline_parser_params_create(void)
364     {
365     struct cmdline_parser_params *params =
366     (struct cmdline_parser_params *)malloc(sizeof(struct cmdline_parser_params));
367     cmdline_parser_params_init(params);
368     return params;
369     }
370    
371 gezelter 929 static void
372 gezelter 1390 free_string_field (char **s)
373 gezelter 929 {
374 gezelter 1390 if (*s)
375 gezelter 929 {
376 gezelter 1390 free (*s);
377     *s = 0;
378 gezelter 929 }
379 gezelter 1390 }
380    
381    
382     static void
383     cmdline_parser_release (struct gengetopt_args_info *args_info)
384     {
385 gezelter 1454 unsigned int i;
386 gezelter 1390 free_string_field (&(args_info->input_arg));
387     free_string_field (&(args_info->input_orig));
388     free_string_field (&(args_info->output_arg));
389     free_string_field (&(args_info->output_orig));
390     free_string_field (&(args_info->step_orig));
391     free_string_field (&(args_info->nbins_orig));
392     free_string_field (&(args_info->nbins_x_orig));
393     free_string_field (&(args_info->nbins_y_orig));
394 gezelter 1440 free_string_field (&(args_info->nbins_z_orig));
395 gezelter 1390 free_string_field (&(args_info->nanglebins_orig));
396 chuckv 1445 free_string_field (&(args_info->rcut_orig));
397 gezelter 1454 free_string_field (&(args_info->dz_orig));
398 gezelter 1390 free_string_field (&(args_info->length_orig));
399 chuckv 1445 free_string_field (&(args_info->zlength_orig));
400 gezelter 1390 free_string_field (&(args_info->zoffset_orig));
401     free_string_field (&(args_info->sele1_arg));
402     free_string_field (&(args_info->sele1_orig));
403     free_string_field (&(args_info->sele2_arg));
404     free_string_field (&(args_info->sele2_orig));
405     free_string_field (&(args_info->sele3_arg));
406     free_string_field (&(args_info->sele3_orig));
407     free_string_field (&(args_info->refsele_arg));
408     free_string_field (&(args_info->refsele_orig));
409     free_string_field (&(args_info->comsele_arg));
410     free_string_field (&(args_info->comsele_orig));
411 gezelter 1819 free_string_field (&(args_info->seleoffset_orig));
412 gezelter 1991 free_string_field (&(args_info->seleoffset2_orig));
413 gezelter 1390 free_string_field (&(args_info->molname_arg));
414     free_string_field (&(args_info->molname_orig));
415     free_string_field (&(args_info->begin_orig));
416     free_string_field (&(args_info->end_orig));
417     free_string_field (&(args_info->radius_orig));
418 gezelter 2015 free_string_field (&(args_info->voxelSize_orig));
419     free_string_field (&(args_info->gaussWidth_orig));
420 gezelter 929
421 chuckv 1128
422 gezelter 1454 for (i = 0; i < args_info->inputs_num; ++i)
423     free (args_info->inputs [i]);
424 gezelter 1390
425 gezelter 1454 if (args_info->inputs_num)
426     free (args_info->inputs);
427    
428 gezelter 929 clear_given (args_info);
429     }
430 tim 310
431 gezelter 1390
432     static void
433 gezelter 1629 write_into_file(FILE *outfile, const char *opt, const char *arg, const char *values[])
434 gezelter 1390 {
435 gezelter 1629 FIX_UNUSED (values);
436 gezelter 1390 if (arg) {
437     fprintf(outfile, "%s=\"%s\"\n", opt, arg);
438     } else {
439     fprintf(outfile, "%s\n", opt);
440     }
441     }
442    
443    
444 gezelter 929 int
445 gezelter 1390 cmdline_parser_dump(FILE *outfile, struct gengetopt_args_info *args_info)
446     {
447     int i = 0;
448    
449     if (!outfile)
450     {
451     fprintf (stderr, "%s: cannot dump options to stream\n", CMDLINE_PARSER_PACKAGE);
452     return EXIT_FAILURE;
453     }
454    
455     if (args_info->help_given)
456     write_into_file(outfile, "help", 0, 0 );
457     if (args_info->version_given)
458     write_into_file(outfile, "version", 0, 0 );
459     if (args_info->input_given)
460     write_into_file(outfile, "input", args_info->input_orig, 0);
461     if (args_info->output_given)
462     write_into_file(outfile, "output", args_info->output_orig, 0);
463     if (args_info->step_given)
464     write_into_file(outfile, "step", args_info->step_orig, 0);
465     if (args_info->nbins_given)
466     write_into_file(outfile, "nbins", args_info->nbins_orig, 0);
467     if (args_info->nbins_x_given)
468     write_into_file(outfile, "nbins_x", args_info->nbins_x_orig, 0);
469     if (args_info->nbins_y_given)
470     write_into_file(outfile, "nbins_y", args_info->nbins_y_orig, 0);
471 gezelter 1440 if (args_info->nbins_z_given)
472     write_into_file(outfile, "nbins_z", args_info->nbins_z_orig, 0);
473 gezelter 1390 if (args_info->nanglebins_given)
474     write_into_file(outfile, "nanglebins", args_info->nanglebins_orig, 0);
475 chuckv 1445 if (args_info->rcut_given)
476     write_into_file(outfile, "rcut", args_info->rcut_orig, 0);
477 gezelter 1454 if (args_info->dz_given)
478     write_into_file(outfile, "dz", args_info->dz_orig, 0);
479 gezelter 1390 if (args_info->length_given)
480     write_into_file(outfile, "length", args_info->length_orig, 0);
481 chuckv 1445 if (args_info->zlength_given)
482     write_into_file(outfile, "zlength", args_info->zlength_orig, 0);
483 gezelter 1390 if (args_info->zoffset_given)
484     write_into_file(outfile, "zoffset", args_info->zoffset_orig, 0);
485     if (args_info->sele1_given)
486     write_into_file(outfile, "sele1", args_info->sele1_orig, 0);
487     if (args_info->sele2_given)
488     write_into_file(outfile, "sele2", args_info->sele2_orig, 0);
489     if (args_info->sele3_given)
490     write_into_file(outfile, "sele3", args_info->sele3_orig, 0);
491     if (args_info->refsele_given)
492     write_into_file(outfile, "refsele", args_info->refsele_orig, 0);
493     if (args_info->comsele_given)
494     write_into_file(outfile, "comsele", args_info->comsele_orig, 0);
495 gezelter 1819 if (args_info->seleoffset_given)
496     write_into_file(outfile, "seleoffset", args_info->seleoffset_orig, 0);
497 gezelter 1991 if (args_info->seleoffset2_given)
498     write_into_file(outfile, "seleoffset2", args_info->seleoffset2_orig, 0);
499 gezelter 1390 if (args_info->molname_given)
500     write_into_file(outfile, "molname", args_info->molname_orig, 0);
501     if (args_info->begin_given)
502     write_into_file(outfile, "begin", args_info->begin_orig, 0);
503     if (args_info->end_given)
504     write_into_file(outfile, "end", args_info->end_orig, 0);
505     if (args_info->radius_given)
506     write_into_file(outfile, "radius", args_info->radius_orig, 0);
507 gezelter 2015 if (args_info->voxelSize_given)
508     write_into_file(outfile, "voxelSize", args_info->voxelSize_orig, 0);
509     if (args_info->gaussWidth_given)
510     write_into_file(outfile, "gaussWidth", args_info->gaussWidth_orig, 0);
511 gezelter 1390 if (args_info->bo_given)
512     write_into_file(outfile, "bo", 0, 0 );
513 gezelter 1992 if (args_info->ior_given)
514     write_into_file(outfile, "ior", 0, 0 );
515     if (args_info->for_given)
516     write_into_file(outfile, "for", 0, 0 );
517 gezelter 1390 if (args_info->bad_given)
518     write_into_file(outfile, "bad", 0, 0 );
519 gezelter 1629 if (args_info->count_given)
520     write_into_file(outfile, "count", 0, 0 );
521 gezelter 1390 if (args_info->gofr_given)
522     write_into_file(outfile, "gofr", 0, 0 );
523     if (args_info->gofz_given)
524     write_into_file(outfile, "gofz", 0, 0 );
525     if (args_info->r_theta_given)
526     write_into_file(outfile, "r_theta", 0, 0 );
527     if (args_info->r_omega_given)
528     write_into_file(outfile, "r_omega", 0, 0 );
529 gezelter 1440 if (args_info->r_z_given)
530     write_into_file(outfile, "r_z", 0, 0 );
531 gezelter 1390 if (args_info->theta_omega_given)
532     write_into_file(outfile, "theta_omega", 0, 0 );
533     if (args_info->gxyz_given)
534     write_into_file(outfile, "gxyz", 0, 0 );
535 gezelter 1454 if (args_info->twodgofr_given)
536     write_into_file(outfile, "twodgofr", 0, 0 );
537 gezelter 1390 if (args_info->p2_given)
538     write_into_file(outfile, "p2", 0, 0 );
539     if (args_info->rp2_given)
540     write_into_file(outfile, "rp2", 0, 0 );
541     if (args_info->scd_given)
542     write_into_file(outfile, "scd", 0, 0 );
543     if (args_info->density_given)
544     write_into_file(outfile, "density", 0, 0 );
545     if (args_info->slab_density_given)
546     write_into_file(outfile, "slab_density", 0, 0 );
547 gezelter 1413 if (args_info->p_angle_given)
548     write_into_file(outfile, "p_angle", 0, 0 );
549 gezelter 1390 if (args_info->hxy_given)
550     write_into_file(outfile, "hxy", 0, 0 );
551     if (args_info->rho_r_given)
552     write_into_file(outfile, "rho_r", 0, 0 );
553 gezelter 1629 if (args_info->angle_r_given)
554     write_into_file(outfile, "angle_r", 0, 0 );
555 gezelter 1390 if (args_info->hullvol_given)
556     write_into_file(outfile, "hullvol", 0, 0 );
557 gezelter 1629 if (args_info->rodlength_given)
558     write_into_file(outfile, "rodlength", 0, 0 );
559     if (args_info->tet_param_given)
560     write_into_file(outfile, "tet_param", 0, 0 );
561 plouden 1762 if (args_info->tet_param_z_given)
562     write_into_file(outfile, "tet_param_z", 0, 0 );
563 gezelter 2015 if (args_info->tet_param_xyz_given)
564     write_into_file(outfile, "tet_param_xyz", 0, 0 );
565 gezelter 1879 if (args_info->rnemdz_given)
566     write_into_file(outfile, "rnemdz", 0, 0 );
567     if (args_info->rnemdr_given)
568     write_into_file(outfile, "rnemdr", 0, 0 );
569 gezelter 1953 if (args_info->rnemdrt_given)
570     write_into_file(outfile, "rnemdrt", 0, 0 );
571 gezelter 1994 if (args_info->nitrile_given)
572     write_into_file(outfile, "nitrile", 0, 0 );
573 gezelter 1998 if (args_info->multipole_given)
574     write_into_file(outfile, "multipole", 0, 0 );
575 gezelter 1390
576    
577     i = EXIT_SUCCESS;
578     return i;
579     }
580    
581     int
582 gezelter 929 cmdline_parser_file_save(const char *filename, struct gengetopt_args_info *args_info)
583     {
584     FILE *outfile;
585     int i = 0;
586    
587     outfile = fopen(filename, "w");
588    
589     if (!outfile)
590     {
591     fprintf (stderr, "%s: cannot open file for writing: %s\n", CMDLINE_PARSER_PACKAGE, filename);
592     return EXIT_FAILURE;
593     }
594    
595 gezelter 1390 i = cmdline_parser_dump(outfile, args_info);
596 gezelter 929 fclose (outfile);
597    
598     return i;
599     }
600    
601     void
602     cmdline_parser_free (struct gengetopt_args_info *args_info)
603     {
604     cmdline_parser_release (args_info);
605     }
606    
607 gezelter 1390 /** @brief replacement of strdup, which is not standard */
608 tim 310 char *
609     gengetopt_strdup (const char *s)
610     {
611 gezelter 1629 char *result = 0;
612 gezelter 929 if (!s)
613     return result;
614    
615     result = (char*)malloc(strlen(s) + 1);
616 tim 310 if (result == (char*)0)
617     return (char*)0;
618     strcpy(result, s);
619     return result;
620     }
621    
622 gezelter 929 static void
623     reset_group_staticProps(struct gengetopt_args_info *args_info)
624 tim 310 {
625 gezelter 929 if (! args_info->staticProps_group_counter)
626     return;
627 tim 310
628 gezelter 1039 args_info->bo_given = 0 ;
629 gezelter 1992 args_info->ior_given = 0 ;
630     args_info->for_given = 0 ;
631 chuckv 1180 args_info->bad_given = 0 ;
632 gezelter 1629 args_info->count_given = 0 ;
633 tim 310 args_info->gofr_given = 0 ;
634 xsun 1213 args_info->gofz_given = 0 ;
635 tim 310 args_info->r_theta_given = 0 ;
636     args_info->r_omega_given = 0 ;
637 gezelter 1440 args_info->r_z_given = 0 ;
638 tim 310 args_info->theta_omega_given = 0 ;
639 tim 369 args_info->gxyz_given = 0 ;
640 gezelter 1454 args_info->twodgofr_given = 0 ;
641 tim 543 args_info->p2_given = 0 ;
642 xsun 980 args_info->rp2_given = 0 ;
643 tim 544 args_info->scd_given = 0 ;
644 tim 545 args_info->density_given = 0 ;
645 tim 840 args_info->slab_density_given = 0 ;
646 gezelter 1413 args_info->p_angle_given = 0 ;
647 xsun 967 args_info->hxy_given = 0 ;
648 chuckv 1091 args_info->rho_r_given = 0 ;
649 gezelter 1629 args_info->angle_r_given = 0 ;
650 chuckv 1180 args_info->hullvol_given = 0 ;
651 gezelter 1629 args_info->rodlength_given = 0 ;
652     args_info->tet_param_given = 0 ;
653 plouden 1762 args_info->tet_param_z_given = 0 ;
654 gezelter 2015 args_info->tet_param_xyz_given = 0 ;
655 gezelter 1879 args_info->rnemdz_given = 0 ;
656     args_info->rnemdr_given = 0 ;
657 gezelter 1953 args_info->rnemdrt_given = 0 ;
658 gezelter 1994 args_info->nitrile_given = 0 ;
659 gezelter 1998 args_info->multipole_given = 0 ;
660 gezelter 929
661     args_info->staticProps_group_counter = 0;
662 tim 543 }
663 tim 310
664 gezelter 929 int
665 gezelter 1629 cmdline_parser (int argc, char **argv, struct gengetopt_args_info *args_info)
666 gezelter 929 {
667     return cmdline_parser2 (argc, argv, args_info, 0, 1, 1);
668     }
669 tim 310
670 gezelter 929 int
671 gezelter 1629 cmdline_parser_ext (int argc, char **argv, struct gengetopt_args_info *args_info,
672 gezelter 1390 struct cmdline_parser_params *params)
673     {
674     int result;
675 gezelter 1629 result = cmdline_parser_internal (argc, argv, args_info, params, 0);
676 gezelter 1390
677     if (result == EXIT_FAILURE)
678     {
679     cmdline_parser_free (args_info);
680     exit (EXIT_FAILURE);
681     }
682    
683     return result;
684     }
685    
686     int
687 gezelter 1629 cmdline_parser2 (int argc, char **argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required)
688 gezelter 929 {
689     int result;
690 gezelter 1390 struct cmdline_parser_params params;
691    
692     params.override = override;
693     params.initialize = initialize;
694     params.check_required = check_required;
695     params.check_ambiguity = 0;
696     params.print_errors = 1;
697 gezelter 929
698 gezelter 1629 result = cmdline_parser_internal (argc, argv, args_info, &params, 0);
699 gezelter 929
700     if (result == EXIT_FAILURE)
701     {
702     cmdline_parser_free (args_info);
703     exit (EXIT_FAILURE);
704     }
705    
706     return result;
707     }
708    
709     int
710     cmdline_parser_required (struct gengetopt_args_info *args_info, const char *prog_name)
711     {
712     int result = EXIT_SUCCESS;
713    
714 gezelter 1629 if (cmdline_parser_required2(args_info, prog_name, 0) > 0)
715 gezelter 929 result = EXIT_FAILURE;
716    
717     if (result == EXIT_FAILURE)
718     {
719     cmdline_parser_free (args_info);
720     exit (EXIT_FAILURE);
721     }
722    
723     return result;
724     }
725    
726     int
727     cmdline_parser_required2 (struct gengetopt_args_info *args_info, const char *prog_name, const char *additional_error)
728     {
729     int error = 0;
730 gezelter 1629 FIX_UNUSED (additional_error);
731 gezelter 929
732 chuckv 1128 /* checks for required options */
733 gezelter 929 if (! args_info->input_given)
734     {
735     fprintf (stderr, "%s: '--input' ('-i') option required%s\n", prog_name, (additional_error ? additional_error : ""));
736     error = 1;
737     }
738 chuckv 1128
739 gezelter 929 if (args_info->staticProps_group_counter == 0)
740     {
741 gezelter 1629 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 : ""));
742 gezelter 929 error = 1;
743     }
744    
745    
746 chuckv 1128 /* checks for dependences among options */
747    
748 gezelter 929 return error;
749     }
750    
751 gezelter 1390
752     static char *package_name = 0;
753    
754     /**
755     * @brief updates an option
756     * @param field the generic pointer to the field to update
757     * @param orig_field the pointer to the orig field
758     * @param field_given the pointer to the number of occurrence of this option
759     * @param prev_given the pointer to the number of occurrence already seen
760     * @param value the argument for this option (if null no arg was specified)
761     * @param possible_values the possible values for this option (if specified)
762     * @param default_value the default value (in case the option only accepts fixed values)
763     * @param arg_type the type of this option
764     * @param check_ambiguity @see cmdline_parser_params.check_ambiguity
765     * @param override @see cmdline_parser_params.override
766     * @param no_free whether to free a possible previous value
767     * @param multiple_option whether this is a multiple option
768     * @param long_opt the corresponding long option
769     * @param short_opt the corresponding short option (or '-' if none)
770     * @param additional_error possible further error specification
771     */
772     static
773     int update_arg(void *field, char **orig_field,
774     unsigned int *field_given, unsigned int *prev_given,
775 gezelter 1629 char *value, const char *possible_values[],
776     const char *default_value,
777 gezelter 1390 cmdline_parser_arg_type arg_type,
778     int check_ambiguity, int override,
779     int no_free, int multiple_option,
780     const char *long_opt, char short_opt,
781     const char *additional_error)
782     {
783     char *stop_char = 0;
784     const char *val = value;
785     int found;
786     char **string_field;
787 gezelter 1629 FIX_UNUSED (field);
788 gezelter 1390
789     stop_char = 0;
790     found = 0;
791    
792     if (!multiple_option && prev_given && (*prev_given || (check_ambiguity && *field_given)))
793     {
794     if (short_opt != '-')
795     fprintf (stderr, "%s: `--%s' (`-%c') option given more than once%s\n",
796     package_name, long_opt, short_opt,
797     (additional_error ? additional_error : ""));
798     else
799     fprintf (stderr, "%s: `--%s' option given more than once%s\n",
800     package_name, long_opt,
801     (additional_error ? additional_error : ""));
802     return 1; /* failure */
803     }
804    
805 gezelter 1629 FIX_UNUSED (default_value);
806 gezelter 1390
807     if (field_given && *field_given && ! override)
808     return 0;
809     if (prev_given)
810     (*prev_given)++;
811     if (field_given)
812     (*field_given)++;
813     if (possible_values)
814     val = possible_values[found];
815    
816     switch(arg_type) {
817     case ARG_INT:
818     if (val) *((int *)field) = strtol (val, &stop_char, 0);
819     break;
820     case ARG_DOUBLE:
821     if (val) *((double *)field) = strtod (val, &stop_char);
822     break;
823     case ARG_STRING:
824     if (val) {
825     string_field = (char **)field;
826     if (!no_free && *string_field)
827     free (*string_field); /* free previous string */
828     *string_field = gengetopt_strdup (val);
829     }
830     break;
831     default:
832     break;
833     };
834    
835     /* check numeric conversion */
836     switch(arg_type) {
837     case ARG_INT:
838     case ARG_DOUBLE:
839     if (val && !(stop_char && *stop_char == '\0')) {
840     fprintf(stderr, "%s: invalid numeric value: %s\n", package_name, val);
841     return 1; /* failure */
842     }
843     break;
844     default:
845     ;
846     };
847    
848     /* store the original value */
849     switch(arg_type) {
850     case ARG_NO:
851     break;
852     default:
853     if (value && orig_field) {
854     if (no_free) {
855     *orig_field = value;
856     } else {
857     if (*orig_field)
858     free (*orig_field); /* free previous string */
859     *orig_field = gengetopt_strdup (value);
860     }
861     }
862     };
863    
864     return 0; /* OK */
865     }
866    
867    
868 gezelter 929 int
869 gezelter 1629 cmdline_parser_internal (
870     int argc, char **argv, struct gengetopt_args_info *args_info,
871 gezelter 1390 struct cmdline_parser_params *params, const char *additional_error)
872 gezelter 929 {
873     int c; /* Character of the parsed option. */
874    
875     int error = 0;
876     struct gengetopt_args_info local_args_info;
877 gezelter 1390
878     int override;
879     int initialize;
880     int check_required;
881     int check_ambiguity;
882    
883     package_name = argv[0];
884    
885     override = params->override;
886     initialize = params->initialize;
887     check_required = params->check_required;
888     check_ambiguity = params->check_ambiguity;
889 gezelter 929
890     if (initialize)
891     cmdline_parser_init (args_info);
892    
893     cmdline_parser_init (&local_args_info);
894    
895 tim 310 optarg = 0;
896 chuckv 1128 optind = 0;
897 gezelter 1390 opterr = params->print_errors;
898 tim 310 optopt = '?';
899    
900     while (1)
901     {
902     int option_index = 0;
903    
904     static struct option long_options[] = {
905     { "help", 0, NULL, 'h' },
906     { "version", 0, NULL, 'V' },
907     { "input", 1, NULL, 'i' },
908     { "output", 1, NULL, 'o' },
909 tim 311 { "step", 1, NULL, 'n' },
910 gezelter 1041 { "nbins", 1, NULL, 'b' },
911 xsun 967 { "nbins_x", 1, NULL, 'x' },
912     { "nbins_y", 1, NULL, 'y' },
913 gezelter 1440 { "nbins_z", 1, NULL, 0 },
914 tim 310 { "nanglebins", 1, NULL, 'a' },
915 chuckv 1445 { "rcut", 1, NULL, 'c' },
916 gezelter 1454 { "dz", 1, NULL, 0 },
917 gezelter 1039 { "length", 1, NULL, 0 },
918 chuckv 1445 { "zlength", 1, NULL, 0 },
919 gezelter 929 { "zoffset", 1, NULL, 'z' },
920 tim 310 { "sele1", 1, NULL, 0 },
921     { "sele2", 1, NULL, 0 },
922 tim 544 { "sele3", 1, NULL, 0 },
923 tim 369 { "refsele", 1, NULL, 0 },
924 gezelter 1390 { "comsele", 1, NULL, 0 },
925 gezelter 1819 { "seleoffset", 1, NULL, 0 },
926 gezelter 1991 { "seleoffset2", 1, NULL, 0 },
927 tim 544 { "molname", 1, NULL, 0 },
928     { "begin", 1, NULL, 0 },
929     { "end", 1, NULL, 0 },
930 chuckv 1091 { "radius", 1, NULL, 0 },
931 gezelter 2015 { "voxelSize", 1, NULL, 'v' },
932     { "gaussWidth", 1, NULL, 0 },
933 gezelter 1041 { "bo", 0, NULL, 0 },
934 gezelter 1992 { "ior", 0, NULL, 0 },
935     { "for", 0, NULL, 0 },
936 chuckv 1180 { "bad", 0, NULL, 0 },
937 gezelter 1629 { "count", 0, NULL, 0 },
938 gezelter 1039 { "gofr", 0, NULL, 'g' },
939 xsun 1213 { "gofz", 0, NULL, 0 },
940 tim 310 { "r_theta", 0, NULL, 0 },
941     { "r_omega", 0, NULL, 0 },
942 gezelter 1440 { "r_z", 0, NULL, 0 },
943 tim 310 { "theta_omega", 0, NULL, 0 },
944 tim 369 { "gxyz", 0, NULL, 0 },
945 gezelter 1454 { "twodgofr", 0, NULL, 0 },
946 gezelter 1039 { "p2", 0, NULL, 'p' },
947 xsun 980 { "rp2", 0, NULL, 0 },
948 gezelter 1039 { "scd", 0, NULL, 's' },
949     { "density", 0, NULL, 'd' },
950 tim 840 { "slab_density", 0, NULL, 0 },
951 gezelter 1413 { "p_angle", 0, NULL, 0 },
952 xsun 955 { "hxy", 0, NULL, 0 },
953 chuckv 1091 { "rho_r", 0, NULL, 0 },
954 gezelter 1629 { "angle_r", 0, NULL, 0 },
955 chuckv 1180 { "hullvol", 0, NULL, 0 },
956 gezelter 1629 { "rodlength", 0, NULL, 0 },
957     { "tet_param", 0, NULL, 'Q' },
958 plouden 1762 { "tet_param_z", 0, NULL, 0 },
959 gezelter 2015 { "tet_param_xyz", 0, NULL, 0 },
960 gezelter 1879 { "rnemdz", 0, NULL, 0 },
961     { "rnemdr", 0, NULL, 0 },
962 gezelter 1953 { "rnemdrt", 0, NULL, 0 },
963 gezelter 1994 { "nitrile", 0, NULL, 0 },
964 gezelter 1998 { "multipole", 0, NULL, 'm' },
965 gezelter 1629 { 0, 0, 0, 0 }
966 tim 310 };
967    
968 gezelter 2015 c = getopt_long (argc, argv, "hVi:o:n:b:x:y:a:c:z:v:gpsdQm", long_options, &option_index);
969 tim 310
970     if (c == -1) break; /* Exit from `while (1)' loop. */
971    
972     switch (c)
973     {
974     case 'h': /* Print help and exit. */
975     cmdline_parser_print_help ();
976 gezelter 929 cmdline_parser_free (&local_args_info);
977 tim 310 exit (EXIT_SUCCESS);
978    
979     case 'V': /* Print version and exit. */
980     cmdline_parser_print_version ();
981 gezelter 929 cmdline_parser_free (&local_args_info);
982 tim 310 exit (EXIT_SUCCESS);
983    
984     case 'i': /* input dump file. */
985 gezelter 1390
986    
987     if (update_arg( (void *)&(args_info->input_arg),
988     &(args_info->input_orig), &(args_info->input_given),
989     &(local_args_info.input_given), optarg, 0, 0, ARG_STRING,
990     check_ambiguity, override, 0, 0,
991     "input", 'i',
992     additional_error))
993     goto failure;
994    
995 tim 310 break;
996     case 'o': /* output file name. */
997 gezelter 1390
998    
999     if (update_arg( (void *)&(args_info->output_arg),
1000     &(args_info->output_orig), &(args_info->output_given),
1001     &(local_args_info.output_given), optarg, 0, 0, ARG_STRING,
1002     check_ambiguity, override, 0, 0,
1003     "output", 'o',
1004     additional_error))
1005     goto failure;
1006    
1007 tim 310 break;
1008 tim 311 case 'n': /* process every n frame. */
1009 gezelter 1390
1010    
1011     if (update_arg( (void *)&(args_info->step_arg),
1012     &(args_info->step_orig), &(args_info->step_given),
1013     &(local_args_info.step_given), optarg, 0, "1", ARG_INT,
1014     check_ambiguity, override, 0, 0,
1015     "step", 'n',
1016     additional_error))
1017 gezelter 929 goto failure;
1018 gezelter 1390
1019 tim 310 break;
1020 gezelter 1041 case 'b': /* number of bins (general purpose). */
1021 gezelter 1390
1022    
1023     if (update_arg( (void *)&(args_info->nbins_arg),
1024     &(args_info->nbins_orig), &(args_info->nbins_given),
1025     &(local_args_info.nbins_given), optarg, 0, "100", ARG_INT,
1026     check_ambiguity, override, 0, 0,
1027     "nbins", 'b',
1028     additional_error))
1029 gezelter 929 goto failure;
1030 gezelter 1390
1031 tim 310 break;
1032 xsun 955 case 'x': /* number of bins in x axis. */
1033 gezelter 1390
1034    
1035     if (update_arg( (void *)&(args_info->nbins_x_arg),
1036     &(args_info->nbins_x_orig), &(args_info->nbins_x_given),
1037     &(local_args_info.nbins_x_given), optarg, 0, "100", ARG_INT,
1038     check_ambiguity, override, 0, 0,
1039     "nbins_x", 'x',
1040     additional_error))
1041 xsun 955 goto failure;
1042 gezelter 1390
1043 xsun 955 break;
1044     case 'y': /* number of bins in y axis. */
1045 gezelter 1390
1046    
1047     if (update_arg( (void *)&(args_info->nbins_y_arg),
1048     &(args_info->nbins_y_orig), &(args_info->nbins_y_given),
1049     &(local_args_info.nbins_y_given), optarg, 0, "100", ARG_INT,
1050     check_ambiguity, override, 0, 0,
1051     "nbins_y", 'y',
1052     additional_error))
1053 xsun 955 goto failure;
1054 gezelter 1390
1055 xsun 955 break;
1056 tim 310 case 'a': /* number of bins for cos(angle). */
1057 gezelter 1390
1058    
1059     if (update_arg( (void *)&(args_info->nanglebins_arg),
1060     &(args_info->nanglebins_orig), &(args_info->nanglebins_given),
1061     &(local_args_info.nanglebins_given), optarg, 0, "50", ARG_INT,
1062     check_ambiguity, override, 0, 0,
1063     "nanglebins", 'a',
1064     additional_error))
1065 gezelter 929 goto failure;
1066 gezelter 1390
1067 tim 310 break;
1068 gezelter 1039 case 'c': /* cutoff radius (rcut). */
1069 gezelter 1390
1070    
1071     if (update_arg( (void *)&(args_info->rcut_arg),
1072     &(args_info->rcut_orig), &(args_info->rcut_given),
1073     &(local_args_info.rcut_given), optarg, 0, 0, ARG_DOUBLE,
1074     check_ambiguity, override, 0, 0,
1075     "rcut", 'c',
1076     additional_error))
1077 gezelter 1039 goto failure;
1078 gezelter 1390
1079 gezelter 1039 break;
1080 gezelter 929 case 'z': /* Where to set the zero for the slab_density calculation. */
1081 gezelter 1390
1082    
1083     if (update_arg( (void *)&(args_info->zoffset_arg),
1084     &(args_info->zoffset_orig), &(args_info->zoffset_given),
1085     &(local_args_info.zoffset_given), optarg, 0, "0", ARG_DOUBLE,
1086     check_ambiguity, override, 0, 0,
1087     "zoffset", 'z',
1088     additional_error))
1089 gezelter 929 goto failure;
1090 gezelter 1390
1091 gezelter 929 break;
1092 gezelter 2015 case 'v': /* voxel size (angstroms). */
1093    
1094    
1095     if (update_arg( (void *)&(args_info->voxelSize_arg),
1096     &(args_info->voxelSize_orig), &(args_info->voxelSize_given),
1097     &(local_args_info.voxelSize_given), optarg, 0, 0, ARG_DOUBLE,
1098     check_ambiguity, override, 0, 0,
1099     "voxelSize", 'v',
1100     additional_error))
1101     goto failure;
1102    
1103     break;
1104 gezelter 1039 case 'g': /* g(r). */
1105 gezelter 1390
1106 gezelter 1039 if (args_info->staticProps_group_counter && override)
1107     reset_group_staticProps (args_info);
1108     args_info->staticProps_group_counter += 1;
1109 gezelter 1390
1110     if (update_arg( 0 ,
1111     0 , &(args_info->gofr_given),
1112     &(local_args_info.gofr_given), optarg, 0, 0, ARG_NO,
1113     check_ambiguity, override, 0, 0,
1114     "gofr", 'g',
1115     additional_error))
1116     goto failure;
1117    
1118 gezelter 1039 break;
1119 gezelter 1629 case 'p': /* p2 order parameter (--sele1 must be specified, --sele2 is optional). */
1120 gezelter 1390
1121 gezelter 1039 if (args_info->staticProps_group_counter && override)
1122     reset_group_staticProps (args_info);
1123     args_info->staticProps_group_counter += 1;
1124 gezelter 1390
1125     if (update_arg( 0 ,
1126     0 , &(args_info->p2_given),
1127     &(local_args_info.p2_given), optarg, 0, 0, ARG_NO,
1128     check_ambiguity, override, 0, 0,
1129     "p2", 'p',
1130     additional_error))
1131     goto failure;
1132    
1133 gezelter 1039 break;
1134     case 's': /* scd order parameter (either --sele1, --sele2, --sele3 are specified or --molname, --begin, --end are specified). */
1135 gezelter 1390
1136 gezelter 1039 if (args_info->staticProps_group_counter && override)
1137     reset_group_staticProps (args_info);
1138     args_info->staticProps_group_counter += 1;
1139 gezelter 1390
1140     if (update_arg( 0 ,
1141     0 , &(args_info->scd_given),
1142     &(local_args_info.scd_given), optarg, 0, 0, ARG_NO,
1143     check_ambiguity, override, 0, 0,
1144     "scd", 's',
1145     additional_error))
1146     goto failure;
1147    
1148 gezelter 1039 break;
1149     case 'd': /* density plot. */
1150 gezelter 1390
1151 gezelter 1039 if (args_info->staticProps_group_counter && override)
1152     reset_group_staticProps (args_info);
1153     args_info->staticProps_group_counter += 1;
1154 gezelter 1390
1155     if (update_arg( 0 ,
1156     0 , &(args_info->density_given),
1157     &(local_args_info.density_given), optarg, 0, 0, ARG_NO,
1158     check_ambiguity, override, 0, 0,
1159     "density", 'd',
1160     additional_error))
1161     goto failure;
1162    
1163 gezelter 1039 break;
1164 gezelter 1843 case 'Q': /* tetrahedrality order parameter (Qk). */
1165 gezelter 1629
1166     if (args_info->staticProps_group_counter && override)
1167     reset_group_staticProps (args_info);
1168     args_info->staticProps_group_counter += 1;
1169    
1170     if (update_arg( 0 ,
1171     0 , &(args_info->tet_param_given),
1172     &(local_args_info.tet_param_given), optarg, 0, 0, ARG_NO,
1173     check_ambiguity, override, 0, 0,
1174     "tet_param", 'Q',
1175     additional_error))
1176     goto failure;
1177    
1178     break;
1179 gezelter 1999 case 'm': /* average multipole moments contained within cutoff spheres as a function of radius. */
1180 gezelter 1998
1181     if (args_info->staticProps_group_counter && override)
1182     reset_group_staticProps (args_info);
1183     args_info->staticProps_group_counter += 1;
1184    
1185     if (update_arg( 0 ,
1186     0 , &(args_info->multipole_given),
1187     &(local_args_info.multipole_given), optarg, 0, 0, ARG_NO,
1188     check_ambiguity, override, 0, 0,
1189     "multipole", 'm',
1190     additional_error))
1191     goto failure;
1192    
1193     break;
1194 gezelter 1039
1195 tim 310 case 0: /* Long option with no short option */
1196 gezelter 1440 /* number of bins in z axis. */
1197     if (strcmp (long_options[option_index].name, "nbins_z") == 0)
1198     {
1199    
1200    
1201     if (update_arg( (void *)&(args_info->nbins_z_arg),
1202     &(args_info->nbins_z_orig), &(args_info->nbins_z_given),
1203     &(local_args_info.nbins_z_given), optarg, 0, "100", ARG_INT,
1204     check_ambiguity, override, 0, 0,
1205     "nbins_z", '-',
1206     additional_error))
1207     goto failure;
1208    
1209     }
1210 gezelter 1454 /* slab width (dz). */
1211     else if (strcmp (long_options[option_index].name, "dz") == 0)
1212     {
1213    
1214    
1215     if (update_arg( (void *)&(args_info->dz_arg),
1216     &(args_info->dz_orig), &(args_info->dz_given),
1217     &(local_args_info.dz_given), optarg, 0, 0, ARG_DOUBLE,
1218     check_ambiguity, override, 0, 0,
1219     "dz", '-',
1220     additional_error))
1221     goto failure;
1222    
1223     }
1224 gezelter 1039 /* maximum length (Defaults to 1/2 smallest length of first frame). */
1225 gezelter 1440 else if (strcmp (long_options[option_index].name, "length") == 0)
1226 gezelter 1039 {
1227 gezelter 1390
1228    
1229     if (update_arg( (void *)&(args_info->length_arg),
1230     &(args_info->length_orig), &(args_info->length_given),
1231     &(local_args_info.length_given), optarg, 0, 0, ARG_DOUBLE,
1232     check_ambiguity, override, 0, 0,
1233     "length", '-',
1234     additional_error))
1235 gezelter 1039 goto failure;
1236 gezelter 1390
1237 gezelter 1039 }
1238 chuckv 1445 /* maximum length (Defaults to 1/2 smallest length of first frame). */
1239     else if (strcmp (long_options[option_index].name, "zlength") == 0)
1240     {
1241    
1242    
1243     if (update_arg( (void *)&(args_info->zlength_arg),
1244     &(args_info->zlength_orig), &(args_info->zlength_given),
1245     &(local_args_info.zlength_given), optarg, 0, 0, ARG_DOUBLE,
1246     check_ambiguity, override, 0, 0,
1247     "zlength", '-',
1248     additional_error))
1249     goto failure;
1250    
1251     }
1252 tim 544 /* select the first stuntdouble set. */
1253 gezelter 1039 else if (strcmp (long_options[option_index].name, "sele1") == 0)
1254 tim 543 {
1255 gezelter 1390
1256    
1257     if (update_arg( (void *)&(args_info->sele1_arg),
1258     &(args_info->sele1_orig), &(args_info->sele1_given),
1259     &(local_args_info.sele1_given), optarg, 0, 0, ARG_STRING,
1260     check_ambiguity, override, 0, 0,
1261     "sele1", '-',
1262     additional_error))
1263     goto failure;
1264    
1265 tim 543 }
1266 tim 544 /* select the second stuntdouble set. */
1267 tim 310 else if (strcmp (long_options[option_index].name, "sele2") == 0)
1268 tim 543 {
1269 gezelter 1390
1270    
1271     if (update_arg( (void *)&(args_info->sele2_arg),
1272     &(args_info->sele2_orig), &(args_info->sele2_given),
1273     &(local_args_info.sele2_given), optarg, 0, 0, ARG_STRING,
1274     check_ambiguity, override, 0, 0,
1275     "sele2", '-',
1276     additional_error))
1277     goto failure;
1278    
1279 tim 543 }
1280 tim 544 /* select the third stuntdouble set. */
1281     else if (strcmp (long_options[option_index].name, "sele3") == 0)
1282     {
1283 gezelter 1390
1284    
1285     if (update_arg( (void *)&(args_info->sele3_arg),
1286     &(args_info->sele3_orig), &(args_info->sele3_given),
1287     &(local_args_info.sele3_given), optarg, 0, 0, ARG_STRING,
1288     check_ambiguity, override, 0, 0,
1289     "sele3", '-',
1290     additional_error))
1291     goto failure;
1292    
1293 tim 544 }
1294 tim 369 /* select reference (use and only use with --gxyz). */
1295     else if (strcmp (long_options[option_index].name, "refsele") == 0)
1296 tim 543 {
1297 gezelter 1390
1298    
1299     if (update_arg( (void *)&(args_info->refsele_arg),
1300     &(args_info->refsele_orig), &(args_info->refsele_given),
1301     &(local_args_info.refsele_given), optarg, 0, 0, ARG_STRING,
1302     check_ambiguity, override, 0, 0,
1303     "refsele", '-',
1304     additional_error))
1305     goto failure;
1306    
1307 tim 543 }
1308 gezelter 1390 /* select stunt doubles for center-of-mass reference point. */
1309     else if (strcmp (long_options[option_index].name, "comsele") == 0)
1310     {
1311    
1312    
1313     if (update_arg( (void *)&(args_info->comsele_arg),
1314     &(args_info->comsele_orig), &(args_info->comsele_given),
1315     &(local_args_info.comsele_given), optarg, 0, 0, ARG_STRING,
1316     check_ambiguity, override, 0, 0,
1317     "comsele", '-',
1318     additional_error))
1319     goto failure;
1320    
1321     }
1322 gezelter 1819 /* global index offset for a second object (used to define a vector between sites in molecule). */
1323     else if (strcmp (long_options[option_index].name, "seleoffset") == 0)
1324     {
1325    
1326    
1327     if (update_arg( (void *)&(args_info->seleoffset_arg),
1328     &(args_info->seleoffset_orig), &(args_info->seleoffset_given),
1329     &(local_args_info.seleoffset_given), optarg, 0, 0, ARG_INT,
1330     check_ambiguity, override, 0, 0,
1331     "seleoffset", '-',
1332     additional_error))
1333     goto failure;
1334    
1335     }
1336 gezelter 1991 /* global index offset for a third object (used to define a vector between sites in molecule). */
1337     else if (strcmp (long_options[option_index].name, "seleoffset2") == 0)
1338     {
1339    
1340    
1341     if (update_arg( (void *)&(args_info->seleoffset2_arg),
1342     &(args_info->seleoffset2_orig), &(args_info->seleoffset2_given),
1343     &(local_args_info.seleoffset2_given), optarg, 0, 0, ARG_INT,
1344     check_ambiguity, override, 0, 0,
1345     "seleoffset2", '-',
1346     additional_error))
1347     goto failure;
1348    
1349     }
1350 tim 544 /* molecule name. */
1351     else if (strcmp (long_options[option_index].name, "molname") == 0)
1352     {
1353 gezelter 1390
1354    
1355     if (update_arg( (void *)&(args_info->molname_arg),
1356     &(args_info->molname_orig), &(args_info->molname_given),
1357     &(local_args_info.molname_given), optarg, 0, 0, ARG_STRING,
1358     check_ambiguity, override, 0, 0,
1359     "molname", '-',
1360     additional_error))
1361     goto failure;
1362    
1363 tim 544 }
1364 gezelter 1039 /* begin internal index. */
1365 tim 544 else if (strcmp (long_options[option_index].name, "begin") == 0)
1366     {
1367 gezelter 1390
1368    
1369     if (update_arg( (void *)&(args_info->begin_arg),
1370     &(args_info->begin_orig), &(args_info->begin_given),
1371     &(local_args_info.begin_given), optarg, 0, 0, ARG_INT,
1372     check_ambiguity, override, 0, 0,
1373     "begin", '-',
1374     additional_error))
1375 gezelter 929 goto failure;
1376 gezelter 1390
1377 tim 544 }
1378     /* end internal index. */
1379     else if (strcmp (long_options[option_index].name, "end") == 0)
1380     {
1381 gezelter 1390
1382    
1383     if (update_arg( (void *)&(args_info->end_arg),
1384     &(args_info->end_orig), &(args_info->end_given),
1385     &(local_args_info.end_given), optarg, 0, 0, ARG_INT,
1386     check_ambiguity, override, 0, 0,
1387     "end", '-',
1388     additional_error))
1389 gezelter 929 goto failure;
1390 gezelter 1390
1391 tim 544 }
1392 chuckv 1091 /* nanoparticle radius. */
1393     else if (strcmp (long_options[option_index].name, "radius") == 0)
1394     {
1395 gezelter 1390
1396    
1397     if (update_arg( (void *)&(args_info->radius_arg),
1398     &(args_info->radius_orig), &(args_info->radius_given),
1399     &(local_args_info.radius_given), optarg, 0, 0, ARG_DOUBLE,
1400     check_ambiguity, override, 0, 0,
1401     "radius", '-',
1402     additional_error))
1403 chuckv 1091 goto failure;
1404 gezelter 1390
1405 chuckv 1091 }
1406 gezelter 2015 /* Gaussian width (angstroms). */
1407     else if (strcmp (long_options[option_index].name, "gaussWidth") == 0)
1408     {
1409    
1410    
1411     if (update_arg( (void *)&(args_info->gaussWidth_arg),
1412     &(args_info->gaussWidth_orig), &(args_info->gaussWidth_given),
1413     &(local_args_info.gaussWidth_given), optarg, 0, 0, ARG_DOUBLE,
1414     check_ambiguity, override, 0, 0,
1415     "gaussWidth", '-',
1416     additional_error))
1417     goto failure;
1418    
1419     }
1420 chuckv 1128 /* bond order parameter (--rcut must be specified). */
1421 gezelter 1041 else if (strcmp (long_options[option_index].name, "bo") == 0)
1422     {
1423 gezelter 1390
1424 gezelter 1041 if (args_info->staticProps_group_counter && override)
1425     reset_group_staticProps (args_info);
1426     args_info->staticProps_group_counter += 1;
1427 gezelter 1390
1428     if (update_arg( 0 ,
1429     0 , &(args_info->bo_given),
1430     &(local_args_info.bo_given), optarg, 0, 0, ARG_NO,
1431     check_ambiguity, override, 0, 0,
1432     "bo", '-',
1433     additional_error))
1434     goto failure;
1435    
1436 gezelter 1041 }
1437 gezelter 1992 /* icosahedral bond order parameter as a function of radius (--rcut must be specified). */
1438     else if (strcmp (long_options[option_index].name, "ior") == 0)
1439 chuckv 1128 {
1440 gezelter 1390
1441 chuckv 1128 if (args_info->staticProps_group_counter && override)
1442     reset_group_staticProps (args_info);
1443     args_info->staticProps_group_counter += 1;
1444 gezelter 1390
1445     if (update_arg( 0 ,
1446 gezelter 1992 0 , &(args_info->ior_given),
1447     &(local_args_info.ior_given), optarg, 0, 0, ARG_NO,
1448 gezelter 1390 check_ambiguity, override, 0, 0,
1449 gezelter 1992 "ior", '-',
1450 gezelter 1390 additional_error))
1451     goto failure;
1452    
1453 chuckv 1128 }
1454 gezelter 1992 /* FCC bond order parameter as a function of radius (--rcut must be specified). */
1455     else if (strcmp (long_options[option_index].name, "for") == 0)
1456     {
1457    
1458     if (args_info->staticProps_group_counter && override)
1459     reset_group_staticProps (args_info);
1460     args_info->staticProps_group_counter += 1;
1461    
1462     if (update_arg( 0 ,
1463     0 , &(args_info->for_given),
1464     &(local_args_info.for_given), optarg, 0, 0, ARG_NO,
1465     check_ambiguity, override, 0, 0,
1466     "for", '-',
1467     additional_error))
1468     goto failure;
1469    
1470     }
1471 chuckv 1180 /* N(theta) bond angle density within (--rcut must be specified). */
1472     else if (strcmp (long_options[option_index].name, "bad") == 0)
1473     {
1474 gezelter 1390
1475 chuckv 1180 if (args_info->staticProps_group_counter && override)
1476     reset_group_staticProps (args_info);
1477     args_info->staticProps_group_counter += 1;
1478 gezelter 1390
1479     if (update_arg( 0 ,
1480     0 , &(args_info->bad_given),
1481     &(local_args_info.bad_given), optarg, 0, 0, ARG_NO,
1482     check_ambiguity, override, 0, 0,
1483     "bad", '-',
1484     additional_error))
1485     goto failure;
1486    
1487 chuckv 1180 }
1488 gezelter 1629 /* count of molecules matching selection criteria (and associated statistics). */
1489     else if (strcmp (long_options[option_index].name, "count") == 0)
1490     {
1491    
1492     if (args_info->staticProps_group_counter && override)
1493     reset_group_staticProps (args_info);
1494     args_info->staticProps_group_counter += 1;
1495    
1496     if (update_arg( 0 ,
1497     0 , &(args_info->count_given),
1498     &(local_args_info.count_given), optarg, 0, 0, ARG_NO,
1499     check_ambiguity, override, 0, 0,
1500     "count", '-',
1501     additional_error))
1502     goto failure;
1503    
1504     }
1505 xsun 1213 /* g(z). */
1506     else if (strcmp (long_options[option_index].name, "gofz") == 0)
1507     {
1508 gezelter 1390
1509 xsun 1213 if (args_info->staticProps_group_counter && override)
1510     reset_group_staticProps (args_info);
1511     args_info->staticProps_group_counter += 1;
1512 gezelter 1390
1513     if (update_arg( 0 ,
1514     0 , &(args_info->gofz_given),
1515     &(local_args_info.gofz_given), optarg, 0, 0, ARG_NO,
1516     check_ambiguity, override, 0, 0,
1517     "gofz", '-',
1518     additional_error))
1519     goto failure;
1520    
1521 xsun 1213 }
1522 tim 310 /* g(r, cos(theta)). */
1523     else if (strcmp (long_options[option_index].name, "r_theta") == 0)
1524 tim 543 {
1525 gezelter 1390
1526 gezelter 929 if (args_info->staticProps_group_counter && override)
1527     reset_group_staticProps (args_info);
1528     args_info->staticProps_group_counter += 1;
1529 gezelter 1390
1530     if (update_arg( 0 ,
1531     0 , &(args_info->r_theta_given),
1532     &(local_args_info.r_theta_given), optarg, 0, 0, ARG_NO,
1533     check_ambiguity, override, 0, 0,
1534     "r_theta", '-',
1535     additional_error))
1536     goto failure;
1537    
1538 tim 543 }
1539 tim 310 /* g(r, cos(omega)). */
1540     else if (strcmp (long_options[option_index].name, "r_omega") == 0)
1541 tim 543 {
1542 gezelter 1390
1543 gezelter 929 if (args_info->staticProps_group_counter && override)
1544     reset_group_staticProps (args_info);
1545     args_info->staticProps_group_counter += 1;
1546 gezelter 1390
1547     if (update_arg( 0 ,
1548     0 , &(args_info->r_omega_given),
1549     &(local_args_info.r_omega_given), optarg, 0, 0, ARG_NO,
1550     check_ambiguity, override, 0, 0,
1551     "r_omega", '-',
1552     additional_error))
1553     goto failure;
1554    
1555 tim 543 }
1556 gezelter 1440 /* g(r, z). */
1557     else if (strcmp (long_options[option_index].name, "r_z") == 0)
1558     {
1559    
1560     if (args_info->staticProps_group_counter && override)
1561     reset_group_staticProps (args_info);
1562     args_info->staticProps_group_counter += 1;
1563    
1564     if (update_arg( 0 ,
1565     0 , &(args_info->r_z_given),
1566     &(local_args_info.r_z_given), optarg, 0, 0, ARG_NO,
1567     check_ambiguity, override, 0, 0,
1568     "r_z", '-',
1569     additional_error))
1570     goto failure;
1571    
1572     }
1573 tim 310 /* g(cos(theta), cos(omega)). */
1574     else if (strcmp (long_options[option_index].name, "theta_omega") == 0)
1575 tim 543 {
1576 gezelter 1390
1577 gezelter 929 if (args_info->staticProps_group_counter && override)
1578     reset_group_staticProps (args_info);
1579     args_info->staticProps_group_counter += 1;
1580 gezelter 1390
1581     if (update_arg( 0 ,
1582     0 , &(args_info->theta_omega_given),
1583     &(local_args_info.theta_omega_given), optarg, 0, 0, ARG_NO,
1584     check_ambiguity, override, 0, 0,
1585     "theta_omega", '-',
1586     additional_error))
1587     goto failure;
1588    
1589 tim 543 }
1590 tim 310 /* g(x, y, z). */
1591 tim 369 else if (strcmp (long_options[option_index].name, "gxyz") == 0)
1592 tim 543 {
1593 gezelter 1390
1594 gezelter 929 if (args_info->staticProps_group_counter && override)
1595     reset_group_staticProps (args_info);
1596     args_info->staticProps_group_counter += 1;
1597 gezelter 1390
1598     if (update_arg( 0 ,
1599     0 , &(args_info->gxyz_given),
1600     &(local_args_info.gxyz_given), optarg, 0, 0, ARG_NO,
1601     check_ambiguity, override, 0, 0,
1602     "gxyz", '-',
1603     additional_error))
1604     goto failure;
1605    
1606 tim 543 }
1607 gezelter 1454 /* 2D g(r) (Slab width --dz must be specified). */
1608     else if (strcmp (long_options[option_index].name, "twodgofr") == 0)
1609     {
1610    
1611     if (args_info->staticProps_group_counter && override)
1612     reset_group_staticProps (args_info);
1613     args_info->staticProps_group_counter += 1;
1614    
1615     if (update_arg( 0 ,
1616     0 , &(args_info->twodgofr_given),
1617     &(local_args_info.twodgofr_given), optarg, 0, 0, ARG_NO,
1618     check_ambiguity, override, 0, 0,
1619     "twodgofr", '-',
1620     additional_error))
1621     goto failure;
1622    
1623     }
1624 xsun 980 /* rp2 order parameter (--sele1 and --sele2 must be specified). */
1625     else if (strcmp (long_options[option_index].name, "rp2") == 0)
1626     {
1627 gezelter 1390
1628 xsun 980 if (args_info->staticProps_group_counter && override)
1629     reset_group_staticProps (args_info);
1630     args_info->staticProps_group_counter += 1;
1631 gezelter 1390
1632     if (update_arg( 0 ,
1633     0 , &(args_info->rp2_given),
1634     &(local_args_info.rp2_given), optarg, 0, 0, ARG_NO,
1635     check_ambiguity, override, 0, 0,
1636     "rp2", '-',
1637     additional_error))
1638     goto failure;
1639    
1640 xsun 980 }
1641 gezelter 1039 /* slab density. */
1642 tim 840 else if (strcmp (long_options[option_index].name, "slab_density") == 0)
1643     {
1644 gezelter 1390
1645 gezelter 929 if (args_info->staticProps_group_counter && override)
1646     reset_group_staticProps (args_info);
1647     args_info->staticProps_group_counter += 1;
1648 gezelter 1390
1649     if (update_arg( 0 ,
1650     0 , &(args_info->slab_density_given),
1651     &(local_args_info.slab_density_given), optarg, 0, 0, ARG_NO,
1652     check_ambiguity, override, 0, 0,
1653     "slab_density", '-',
1654     additional_error))
1655     goto failure;
1656    
1657 tim 840 }
1658 gezelter 1979 /* p(cos(theta)) (--sele1 must be specified, --sele2 is optional). */
1659 gezelter 1413 else if (strcmp (long_options[option_index].name, "p_angle") == 0)
1660     {
1661    
1662     if (args_info->staticProps_group_counter && override)
1663     reset_group_staticProps (args_info);
1664     args_info->staticProps_group_counter += 1;
1665    
1666     if (update_arg( 0 ,
1667     0 , &(args_info->p_angle_given),
1668     &(local_args_info.p_angle_given), optarg, 0, 0, ARG_NO,
1669     check_ambiguity, override, 0, 0,
1670     "p_angle", '-',
1671     additional_error))
1672     goto failure;
1673    
1674     }
1675 gezelter 1039 /* hxy. */
1676 xsun 955 else if (strcmp (long_options[option_index].name, "hxy") == 0)
1677     {
1678 gezelter 1390
1679 xsun 955 if (args_info->staticProps_group_counter && override)
1680     reset_group_staticProps (args_info);
1681     args_info->staticProps_group_counter += 1;
1682 gezelter 1390
1683     if (update_arg( 0 ,
1684     0 , &(args_info->hxy_given),
1685     &(local_args_info.hxy_given), optarg, 0, 0, ARG_NO,
1686     check_ambiguity, override, 0, 0,
1687     "hxy", '-',
1688     additional_error))
1689     goto failure;
1690    
1691 xsun 955 }
1692 chuckv 1091 /* rho of R. */
1693     else if (strcmp (long_options[option_index].name, "rho_r") == 0)
1694     {
1695 gezelter 1390
1696 chuckv 1091 if (args_info->staticProps_group_counter && override)
1697     reset_group_staticProps (args_info);
1698     args_info->staticProps_group_counter += 1;
1699 gezelter 1390
1700     if (update_arg( 0 ,
1701     0 , &(args_info->rho_r_given),
1702     &(local_args_info.rho_r_given), optarg, 0, 0, ARG_NO,
1703     check_ambiguity, override, 0, 0,
1704     "rho_r", '-',
1705     additional_error))
1706     goto failure;
1707    
1708 chuckv 1091 }
1709 gezelter 1629 /* angle of R. */
1710     else if (strcmp (long_options[option_index].name, "angle_r") == 0)
1711     {
1712    
1713     if (args_info->staticProps_group_counter && override)
1714     reset_group_staticProps (args_info);
1715     args_info->staticProps_group_counter += 1;
1716    
1717     if (update_arg( 0 ,
1718     0 , &(args_info->angle_r_given),
1719     &(local_args_info.angle_r_given), optarg, 0, 0, ARG_NO,
1720     check_ambiguity, override, 0, 0,
1721     "angle_r", '-',
1722     additional_error))
1723     goto failure;
1724    
1725     }
1726 chuckv 1180 /* hull volume of nanoparticle. */
1727     else if (strcmp (long_options[option_index].name, "hullvol") == 0)
1728     {
1729 gezelter 1390
1730 chuckv 1180 if (args_info->staticProps_group_counter && override)
1731     reset_group_staticProps (args_info);
1732     args_info->staticProps_group_counter += 1;
1733 gezelter 1390
1734     if (update_arg( 0 ,
1735     0 , &(args_info->hullvol_given),
1736     &(local_args_info.hullvol_given), optarg, 0, 0, ARG_NO,
1737     check_ambiguity, override, 0, 0,
1738     "hullvol", '-',
1739     additional_error))
1740     goto failure;
1741    
1742 chuckv 1180 }
1743 gezelter 1629 /* length of nanorod. */
1744     else if (strcmp (long_options[option_index].name, "rodlength") == 0)
1745     {
1746 tim 840
1747 gezelter 1629 if (args_info->staticProps_group_counter && override)
1748     reset_group_staticProps (args_info);
1749     args_info->staticProps_group_counter += 1;
1750    
1751     if (update_arg( 0 ,
1752     0 , &(args_info->rodlength_given),
1753     &(local_args_info.rodlength_given), optarg, 0, 0, ARG_NO,
1754     check_ambiguity, override, 0, 0,
1755     "rodlength", '-',
1756     additional_error))
1757     goto failure;
1758    
1759     }
1760 gezelter 1843 /* spatially-resolved tetrahedrality order parameter Qk(z). */
1761 plouden 1762 else if (strcmp (long_options[option_index].name, "tet_param_z") == 0)
1762     {
1763 gezelter 1629
1764 plouden 1762 if (args_info->staticProps_group_counter && override)
1765     reset_group_staticProps (args_info);
1766     args_info->staticProps_group_counter += 1;
1767    
1768     if (update_arg( 0 ,
1769     0 , &(args_info->tet_param_z_given),
1770     &(local_args_info.tet_param_z_given), optarg, 0, 0, ARG_NO,
1771     check_ambiguity, override, 0, 0,
1772     "tet_param_z", '-',
1773     additional_error))
1774     goto failure;
1775    
1776     }
1777 gezelter 2015 /* volume-resolved tetrahedrality order parameter Qk(x,y,z). (voxelSize, rcut, and gaussWidth must be specified). */
1778     else if (strcmp (long_options[option_index].name, "tet_param_xyz") == 0)
1779     {
1780    
1781     if (args_info->staticProps_group_counter && override)
1782     reset_group_staticProps (args_info);
1783     args_info->staticProps_group_counter += 1;
1784    
1785     if (update_arg( 0 ,
1786     0 , &(args_info->tet_param_xyz_given),
1787     &(local_args_info.tet_param_xyz_given), optarg, 0, 0, ARG_NO,
1788     check_ambiguity, override, 0, 0,
1789     "tet_param_xyz", '-',
1790     additional_error))
1791     goto failure;
1792    
1793     }
1794 gezelter 1879 /* slab-resolved RNEMD statistics (temperature, density, velocity). */
1795     else if (strcmp (long_options[option_index].name, "rnemdz") == 0)
1796     {
1797 plouden 1762
1798 gezelter 1879 if (args_info->staticProps_group_counter && override)
1799     reset_group_staticProps (args_info);
1800     args_info->staticProps_group_counter += 1;
1801    
1802     if (update_arg( 0 ,
1803     0 , &(args_info->rnemdz_given),
1804     &(local_args_info.rnemdz_given), optarg, 0, 0, ARG_NO,
1805     check_ambiguity, override, 0, 0,
1806     "rnemdz", '-',
1807     additional_error))
1808     goto failure;
1809    
1810     }
1811     /* shell-resolved RNEMD statistics (temperature, density, angular velocity). */
1812     else if (strcmp (long_options[option_index].name, "rnemdr") == 0)
1813     {
1814    
1815     if (args_info->staticProps_group_counter && override)
1816     reset_group_staticProps (args_info);
1817     args_info->staticProps_group_counter += 1;
1818    
1819     if (update_arg( 0 ,
1820     0 , &(args_info->rnemdr_given),
1821     &(local_args_info.rnemdr_given), optarg, 0, 0, ARG_NO,
1822     check_ambiguity, override, 0, 0,
1823     "rnemdr", '-',
1824     additional_error))
1825     goto failure;
1826    
1827     }
1828 gezelter 1953 /* shell and angle-resolved RNEMD statistics (temperature, density, angular velocity). */
1829     else if (strcmp (long_options[option_index].name, "rnemdrt") == 0)
1830     {
1831 gezelter 1879
1832 gezelter 1953 if (args_info->staticProps_group_counter && override)
1833     reset_group_staticProps (args_info);
1834     args_info->staticProps_group_counter += 1;
1835    
1836     if (update_arg( 0 ,
1837     0 , &(args_info->rnemdrt_given),
1838     &(local_args_info.rnemdrt_given), optarg, 0, 0, ARG_NO,
1839     check_ambiguity, override, 0, 0,
1840     "rnemdrt", '-',
1841     additional_error))
1842     goto failure;
1843    
1844     }
1845 gezelter 1993 /* electrostatic potential to frequency map based on the Cho nitrile fits. */
1846 gezelter 1994 else if (strcmp (long_options[option_index].name, "nitrile") == 0)
1847 gezelter 1993 {
1848 gezelter 1953
1849 gezelter 1993 if (args_info->staticProps_group_counter && override)
1850     reset_group_staticProps (args_info);
1851     args_info->staticProps_group_counter += 1;
1852    
1853     if (update_arg( 0 ,
1854 gezelter 1994 0 , &(args_info->nitrile_given),
1855     &(local_args_info.nitrile_given), optarg, 0, 0, ARG_NO,
1856 gezelter 1993 check_ambiguity, override, 0, 0,
1857 gezelter 1994 "nitrile", '-',
1858 gezelter 1993 additional_error))
1859     goto failure;
1860    
1861     }
1862    
1863 gezelter 929 break;
1864 tim 310 case '?': /* Invalid option. */
1865     /* `getopt_long' already printed an error message. */
1866 gezelter 929 goto failure;
1867 tim 310
1868     default: /* bug: option not considered. */
1869 gezelter 929 fprintf (stderr, "%s: option unknown: %c%s\n", CMDLINE_PARSER_PACKAGE, c, (additional_error ? additional_error : ""));
1870 tim 310 abort ();
1871     } /* switch */
1872     } /* while */
1873    
1874 gezelter 929 if (args_info->staticProps_group_counter > 1)
1875 tim 310 {
1876 gezelter 1629 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 : ""));
1877 gezelter 929 error = 1;
1878 tim 310 }
1879    
1880    
1881 gezelter 929
1882     if (check_required)
1883 tim 310 {
1884 gezelter 929 error += cmdline_parser_required2 (args_info, argv[0], additional_error);
1885 tim 310 }
1886    
1887 gezelter 929 cmdline_parser_release (&local_args_info);
1888    
1889     if ( error )
1890     return (EXIT_FAILURE);
1891    
1892 gezelter 1454 if (optind < argc)
1893     {
1894     int i = 0 ;
1895     int found_prog_name = 0;
1896     /* whether program name, i.e., argv[0], is in the remaining args
1897     (this may happen with some implementations of getopt,
1898     but surely not with the one included by gengetopt) */
1899    
1900     i = optind;
1901     while (i < argc)
1902     if (argv[i++] == argv[0]) {
1903     found_prog_name = 1;
1904     break;
1905     }
1906     i = 0;
1907    
1908     args_info->inputs_num = argc - optind - found_prog_name;
1909     args_info->inputs =
1910     (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
1911     while (optind < argc)
1912     if (argv[optind++] != argv[0])
1913     args_info->inputs[ i++ ] = gengetopt_strdup (argv[optind-1]) ;
1914     }
1915    
1916 tim 310 return 0;
1917 gezelter 929
1918     failure:
1919    
1920     cmdline_parser_release (&local_args_info);
1921     return (EXIT_FAILURE);
1922 tim 310 }

Properties

Name Value
svn:keywords Author Id Revision Date