| 98 | 
  | 
        break; | 
| 99 | 
  | 
 | 
| 100 | 
  | 
      case ATOM_HEAD: | 
| 101 | 
< | 
        if( the_namespc.type != MOLECULE_HEAD && the_namespc.type != RIGIDBODY_HEAD ){ | 
| 101 | 
> | 
        if( the_namespc.type != MOLECULE_HEAD ){ | 
| 102 | 
  | 
             print_tree_error( the_node, | 
| 103 | 
< | 
                            "The atom block is not in a molecule or rigidBody namespace" ); | 
| 103 | 
> | 
                            "The atom block is not in a molecule namespace" ); | 
| 104 | 
  | 
        } | 
| 105 | 
  | 
        else{ | 
| 106 | 
  | 
          init_atom( the_node->index ); | 
| 113 | 
  | 
      case RIGIDBODY_HEAD: | 
| 114 | 
  | 
        if( the_namespc.type != MOLECULE_HEAD ){ | 
| 115 | 
  | 
          print_tree_error( the_node, | 
| 116 | 
< | 
                            "The rigid body block is not in a molecule namespace" ); | 
| 116 | 
> | 
                            "The RigidBody block is not in a Molecule namespace" ); | 
| 117 | 
  | 
        } | 
| 118 | 
  | 
        else{ | 
| 119 | 
  | 
          init_rigidbody( the_node->index ); | 
| 122 | 
  | 
          walk_down( the_node->stmt_list, current_namespc ); | 
| 123 | 
  | 
        } | 
| 124 | 
  | 
        break; | 
| 125 | 
+ | 
 | 
| 126 | 
+ | 
      case CUTOFFGROUP_HEAD: | 
| 127 | 
+ | 
        if( the_namespc.type != CUTOFFGROUP_HEAD ){ | 
| 128 | 
+ | 
          print_tree_error( the_node, | 
| 129 | 
+ | 
                            "The CutoffGroup block is not in a Molecule namespace" ); | 
| 130 | 
+ | 
        } | 
| 131 | 
+ | 
        else{ | 
| 132 | 
+ | 
          init_cutoffgroup( the_node->index ); | 
| 133 | 
+ | 
          current_namespc.index = the_node->index; | 
| 134 | 
+ | 
          current_namespc.type = the_node->type; | 
| 135 | 
+ | 
          walk_down( the_node->stmt_list, current_namespc ); | 
| 136 | 
+ | 
        } | 
| 137 | 
+ | 
        break; | 
| 138 | 
  | 
         | 
| 139 | 
  | 
      case BOND_HEAD: | 
| 140 | 
  | 
        if( the_namespc.type != MOLECULE_HEAD ){ | 
| 201 | 
  | 
 | 
| 202 | 
  | 
      switch( the_node->type ){ | 
| 203 | 
  | 
 | 
| 204 | 
< | 
      case MEMBER_STMT: | 
| 204 | 
> | 
      case MEMBERS_STMT: | 
| 205 | 
  | 
        switch( the_namespc.type ){ | 
| 206 | 
  | 
        case BOND_HEAD: // fall through | 
| 207 | 
  | 
        case BEND_HEAD: // fall through | 
| 208 | 
< | 
        case TORSION_HEAD: // same for the first three | 
| 208 | 
> | 
        case TORSION_HEAD:  | 
| 209 | 
> | 
        case RIGIDBODY_HEAD: | 
| 210 | 
> | 
        case CUTOFFGROUP_HEAD: // same for the first four | 
| 211 | 
  | 
          init_members( the_node, the_namespc ); | 
| 212 | 
  | 
          break; | 
| 213 | 
  | 
 | 
| 214 | 
  | 
        default: | 
| 215 | 
  | 
          print_tree_error( the_node,  | 
| 216 | 
< | 
                            "Member statement not in a bond, bend, " | 
| 217 | 
< | 
                            "or torsion" ); | 
| 216 | 
> | 
                            "Members statement not in a bond, bend, " | 
| 217 | 
> | 
                            "torsion, RigidBody, or CutoffGroup" ); | 
| 218 | 
  | 
          break; | 
| 219 | 
  | 
        } | 
| 220 | 
  | 
        break; | 
| 240 | 
  | 
        break; | 
| 241 | 
  | 
 | 
| 242 | 
  | 
      case POSITION_STMT: | 
| 243 | 
< | 
        if( the_namespc.type != ATOM_HEAD && the_namespc.type != RIGIDBODY_HEAD){ | 
| 243 | 
> | 
        if( the_namespc.type != ATOM_HEAD ){ | 
| 244 | 
  | 
          print_tree_error( the_node, | 
| 245 | 
  | 
                            "position statement is not located in an " | 
| 246 | 
< | 
                            "atom or rigidBody block" ); | 
| 246 | 
> | 
                            "atom block" ); | 
| 247 | 
  | 
        } | 
| 248 | 
  | 
         | 
| 249 | 
  | 
        init_position( the_node, the_namespc ); | 
| 250 | 
  | 
        break; | 
| 251 | 
  | 
 | 
| 252 | 
  | 
      case ORIENTATION_STMT: | 
| 253 | 
< | 
        if( the_namespc.type != ATOM_HEAD && the_namespc.type != RIGIDBODY_HEAD){ | 
| 253 | 
> | 
        if( the_namespc.type != ATOM_HEAD ){ | 
| 254 | 
  | 
          print_tree_error( the_node, | 
| 255 | 
  | 
                            "orientation statement is not located in an " | 
| 256 | 
< | 
                            "atom or rigidBody block" ); | 
| 256 | 
> | 
                            "atom block" ); | 
| 257 | 
  | 
        } | 
| 258 | 
  | 
         | 
| 259 | 
  | 
        init_orientation( the_node, the_namespc ); | 
| 310 | 
  | 
             "Parse tree error: rigidBody head node error -> %s\n", | 
| 311 | 
  | 
             err_msg ); | 
| 312 | 
  | 
    break; | 
| 313 | 
+ | 
     | 
| 314 | 
+ | 
  case CUTOFFGROUP_HEAD: | 
| 315 | 
+ | 
    sprintf( painCave.errMsg, | 
| 316 | 
+ | 
             "Parse tree error: CutoffGroup head node error -> %s\n", | 
| 317 | 
+ | 
             err_msg ); | 
| 318 | 
+ | 
    break; | 
| 319 | 
  | 
 | 
| 320 | 
  | 
  case ATOM_HEAD: | 
| 321 | 
  | 
    sprintf( painCave.errMsg, | 
| 337 | 
  | 
             err_node->index, | 
| 338 | 
  | 
             err_msg ); | 
| 339 | 
  | 
    break; | 
| 340 | 
< | 
     | 
| 320 | 
< | 
  case TORSION_HEAD: | 
| 321 | 
< | 
    sprintf( painCave.errMsg, | 
| 322 | 
< | 
             "Parse tree error: torsion head node error [%d] -> %s\n", | 
| 323 | 
< | 
             err_node->index, | 
| 324 | 
< | 
             err_msg ); | 
| 325 | 
< | 
    break; | 
| 326 | 
< | 
   | 
| 340 | 
> | 
       | 
| 341 | 
  | 
  case ZCONSTRAINT_HEAD: | 
| 342 | 
  | 
    sprintf( painCave.errMsg, | 
| 343 | 
  | 
             "Parse tree error: Zconstraint head node error [%d] -> %s\n", | 
| 345 | 
  | 
             err_msg ); | 
| 346 | 
  | 
    break; | 
| 347 | 
  | 
 | 
| 348 | 
< | 
  case MEMBER_STMT: | 
| 348 | 
> | 
  case MEMBERS_STMT: | 
| 349 | 
  | 
    sprintf( painCave.errMsg, | 
| 350 | 
< | 
             "Parse tree error: member node error => ( %d, %d, %d, %d )\n" | 
| 350 | 
> | 
             "Parse tree error: members node error (nMembers = %d)\n" | 
| 351 | 
  | 
             "                  -> %s\n", | 
| 352 | 
< | 
             err_node->the_data.mbr.a, | 
| 339 | 
< | 
             err_node->the_data.mbr.b, | 
| 340 | 
< | 
             err_node->the_data.mbr.c, | 
| 341 | 
< | 
             err_node->the_data.mbr.d, | 
| 352 | 
> | 
             err_node->the_data.mbrs.nMembers, | 
| 353 | 
  | 
             err_msg ); | 
| 354 | 
  | 
    break; | 
| 355 | 
  | 
 | 
| 408 | 
  | 
    sprintf( painCave.errMsg, | 
| 409 | 
  | 
             "Parse tree error: orientation node error => ( %lf, %lf, %lf )\n" | 
| 410 | 
  | 
             "                  -> %s\n", | 
| 411 | 
< | 
             err_node->the_data.ort.x,  | 
| 412 | 
< | 
             err_node->the_data.ort.y,  | 
| 413 | 
< | 
             err_node->the_data.ort.z,  | 
| 411 | 
> | 
             err_node->the_data.ort.phi,  | 
| 412 | 
> | 
             err_node->the_data.ort.theta,  | 
| 413 | 
> | 
             err_node->the_data.ort.psi,  | 
| 414 | 
  | 
             err_msg ); | 
| 415 | 
  | 
    break; | 
| 416 | 
  | 
 |