@SuppressWarnings("unchecked")
void readMolecularOrbitals() throws Exception {
    Hashtable[] mos = new Hashtable[5];
    Vector[] data = new Vector[5];
    int nThisLine = 0;
    while (readLine() != null
        && line.toUpperCase().indexOf("DENS") < 0) {
      String[] tokens = getTokens(line);
      int ptData = (line.charAt(5) == ' ' ? 2 : 4);
      if (line.indexOf("                    ") == 0) {
        addMOData(nThisLine, data, mos);
        nThisLine = tokens.length;
        tokens = getTokens(readLine());
        for (int i = 0; i < nThisLine; i++) {
          mos[i] = new Hashtable();
          data[i] = new Vector();
          mos[i].put("symmetry", tokens[i]);
        }
        tokens = getStrings(readLine().substring(21), nThisLine, 10);
        for (int i = 0; i < nThisLine; i++)
          mos[i].put("energy", new Float(tokens[i]));
        continue;
      }
      try {
        for (int i = 0; i < nThisLine; i++)
          data[i].add(tokens[i + ptData]);
      } catch (Exception e) {
        Logger.error("Error reading Gaussian file Molecular Orbitals at line: "
            + line);
        break;
      }
    }
    addMOData(nThisLine, data, mos);
  }