| 40 |  | printf("  -i, --input=filename               input dump file\n"); | 
| 41 |  | printf("  -o, --output=filename              output file name\n"); | 
| 42 |  | printf("  -n, --frame=INT                    print every n frame  (default=`1')\n"); | 
| 43 | – | printf("  -d, --dipole                       print the dipole moments  (default=off)\n"); | 
| 43 |  | printf("  -w, --water                        skip the the waters  (default=off)\n"); | 
| 44 |  | printf("  -m, --periodicBox                  map to the periodic box  (default=off)\n"); | 
| 45 |  | printf("  -z, --zconstraint                  replace the atom types of zconstraint \n                                       molecules  (default=off)\n"); | 
| 46 |  | printf("  -r, --rigidbody                    add a pseudo COM atom to rigidbody  \n                                       (default=off)\n"); | 
| 47 |  | printf("  -t, --watertype                    replace the atom type of water model  \n                                       (default=on)\n"); | 
| 48 | < | printf("  -g, --ignore=atomtype              ignore the atom types\n"); | 
| 50 | < | printf("  -s, --selection=selection script  selection syntax:\n" | 
| 51 | < | "                                    select DMPC -- select DMPC molecule\n" | 
| 52 | < | "                                    select DMPC.* -- select all atoms and all rigidbodies belong to DMPC molecule(same as above)\n" | 
| 53 | < | "                                    select not DMPC -- select all atoms and all rigidbodies do not belong to DMPC molecule\n" | 
| 54 | < | "                                    select C* and 4 to 7 -- select stuntdoubles which match C* and which index is between [4, 7)\n" | 
| 55 | < | "                                    select 5 -- select stuntdobule whose global index is 5\n" | 
| 56 | < | "                                    select within (5.0, HDP or PO4) -- select stuntdoubles which is within 5 A to HDP or PO4\n" | 
| 57 | < | "                                    select DMPC.3 -- select stuntdouble which internal index is 3\n" | 
| 58 | < | "                                    select DMPC.DMPC_RB_*.* --select atoms belong to rigid body inside DMPC molecule \n"); | 
| 48 | > | printf("  -s, --selection=selection script   general selection syntax(now only support \n                                       select atoms within a specified range)\n"); | 
| 49 |  | printf("      --originsele=selection script  select origin\n"); | 
| 50 |  | printf("      --refsele=selection script     select reference\n"); | 
| 51 |  | printf("      --repeatX=INT                  The number of images to repeat in the x \n                                       direction  (default=`0')\n"); | 
| 72 |  | cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info) | 
| 73 |  | { | 
| 74 |  | int c;        /* Character of the parsed option.  */ | 
| 85 | – | int i;        /* Counter */ | 
| 86 | – | struct ignore_list | 
| 87 | – | { | 
| 88 | – | char * ignore_arg; | 
| 89 | – | struct ignore_list * next; | 
| 90 | – | }; | 
| 91 | – | struct ignore_list * ignore_list = NULL,* ignore_new = NULL; | 
| 92 | – |  | 
| 75 |  | int missing_required_options = 0; | 
| 76 |  |  | 
| 77 |  | args_info->help_given = 0 ; | 
| 79 |  | args_info->input_given = 0 ; | 
| 80 |  | args_info->output_given = 0 ; | 
| 81 |  | args_info->frame_given = 0 ; | 
| 100 | – | args_info->dipole_given = 0 ; | 
| 82 |  | args_info->water_given = 0 ; | 
| 83 |  | args_info->periodicBox_given = 0 ; | 
| 84 |  | args_info->zconstraint_given = 0 ; | 
| 85 |  | args_info->rigidbody_given = 0 ; | 
| 86 |  | args_info->watertype_given = 0 ; | 
| 106 | – | args_info->ignore_given = 0 ; | 
| 87 |  | args_info->selection_given = 0 ; | 
| 88 |  | args_info->originsele_given = 0 ; | 
| 89 |  | args_info->refsele_given = 0 ; | 
| 94 |  | args_info->input_arg = NULL; \ | 
| 95 |  | args_info->output_arg = NULL; \ | 
| 96 |  | args_info->frame_arg = 1 ;\ | 
| 117 | – | args_info->dipole_flag = 0;\ | 
| 97 |  | args_info->water_flag = 0;\ | 
| 98 |  | args_info->periodicBox_flag = 0;\ | 
| 99 |  | args_info->zconstraint_flag = 0;\ | 
| 100 |  | args_info->rigidbody_flag = 0;\ | 
| 101 |  | args_info->watertype_flag = 1;\ | 
| 123 | – | args_info->ignore_arg = NULL; \ | 
| 102 |  | args_info->selection_arg = NULL; \ | 
| 103 |  | args_info->originsele_arg = NULL; \ | 
| 104 |  | args_info->refsele_arg = NULL; \ | 
| 125 |  | { "input",      1, NULL, 'i' }, | 
| 126 |  | { "output",     1, NULL, 'o' }, | 
| 127 |  | { "frame",      1, NULL, 'n' }, | 
| 150 | – | { "dipole",     0, NULL, 'd' }, | 
| 128 |  | { "water",      0, NULL, 'w' }, | 
| 129 |  | { "periodicBox",        0, NULL, 'm' }, | 
| 130 |  | { "zconstraint",        0, NULL, 'z' }, | 
| 131 |  | { "rigidbody",  0, NULL, 'r' }, | 
| 132 |  | { "watertype",  0, NULL, 't' }, | 
| 156 | – | { "ignore",     1, NULL, 'g' }, | 
| 133 |  | { "selection",  1, NULL, 's' }, | 
| 134 |  | { "originsele", 1, NULL, 0 }, | 
| 135 |  | { "refsele",    1, NULL, 0 }, | 
| 140 |  | }; | 
| 141 |  |  | 
| 142 |  | stop_char = 0; | 
| 143 | < | c = getopt_long (argc, argv, "hVi:o:n:dwmzrtg:s:", long_options, &option_index); | 
| 143 | > | c = getopt_long (argc, argv, "hVi:o:n:wmzrts:", long_options, &option_index); | 
| 144 |  |  | 
| 145 |  | if (c == -1) break;       /* Exit from `while (1)' loop.  */ | 
| 146 |  |  | 
| 189 |  | args_info->frame_arg = strtol (optarg,&stop_char,0); | 
| 190 |  | break; | 
| 191 |  |  | 
| 216 | – | case 'd':       /* print the dipole moments.  */ | 
| 217 | – | if (args_info->dipole_given) | 
| 218 | – | { | 
| 219 | – | fprintf (stderr, "%s: `--dipole' (`-d') option given more than once\n", CMDLINE_PARSER_PACKAGE); | 
| 220 | – | clear_args (); | 
| 221 | – | exit (EXIT_FAILURE); | 
| 222 | – | } | 
| 223 | – | args_info->dipole_given = 1; | 
| 224 | – | args_info->dipole_flag = !(args_info->dipole_flag); | 
| 225 | – | break; | 
| 226 | – |  | 
| 192 |  | case 'w':       /* skip the the waters.  */ | 
| 193 |  | if (args_info->water_given) | 
| 194 |  | { | 
| 244 |  | args_info->watertype_flag = !(args_info->watertype_flag); | 
| 245 |  | break; | 
| 246 |  |  | 
| 282 | – | case 'g':       /* ignore the atom types.  */ | 
| 283 | – | args_info->ignore_given++; | 
| 284 | – | ignore_new = (struct ignore_list *) malloc (sizeof (struct ignore_list)); | 
| 285 | – | ignore_new->next = ignore_list; | 
| 286 | – | ignore_list = ignore_new; | 
| 287 | – | ignore_new->ignore_arg = gengetopt_strdup (optarg); | 
| 288 | – | break; | 
| 289 | – |  | 
| 247 |  | case 's':       /* general selection syntax(now only support select atoms within a specified range).  */ | 
| 248 |  | if (args_info->selection_given) | 
| 249 |  | { | 
| 347 |  | if ( missing_required_options ) | 
| 348 |  | exit (EXIT_FAILURE); | 
| 349 |  |  | 
| 393 | – | if (args_info->ignore_given) | 
| 394 | – | { | 
| 395 | – | args_info->ignore_arg = (char * *) malloc (args_info->ignore_given * sizeof (char *)); | 
| 396 | – | for (i = 0; i < args_info->ignore_given; i++) | 
| 397 | – | { | 
| 398 | – | args_info->ignore_arg [i] = ignore_list->ignore_arg; | 
| 399 | – | ignore_list = ignore_list->next; | 
| 400 | – | } | 
| 401 | – | } | 
| 402 | – |  | 
| 350 |  | return 0; | 
| 351 |  | } |