void readFrequencies() throws Exception {
    int totalFrequencyCount = 0;
    int atomCountInFirstModel = atomSetCollection.atomCount;
    float[] xComponents = new float[5];
    float[] yComponents = new float[5];
    float[] zComponents = new float[5];

    discardLinesUntilContains("FREQUENCY:");
    while (line != null && line.indexOf("FREQUENCY:") >= 0) {
      int lineBaseFreqCount = totalFrequencyCount;
      ichNextParse = 17;
      int lineFreqCount;
      for (lineFreqCount = 0; lineFreqCount < 5; ++lineFreqCount) {
        float frequency = parseFloat(line, ichNextParse);
        //Logger.debug("frequency=" + frequency);
        if (Float.isNaN(frequency))
          break;
        ++totalFrequencyCount;
        if (totalFrequencyCount > 1)
          atomSetCollection.cloneFirstAtomSet();
      }
      Atom[] atoms = atomSetCollection.atoms;
      discardLinesUntilBlank();
      for (int i = 0; i < atomCountInFirstModel; ++i) {
        readLine();
        readComponents(lineFreqCount, xComponents);
        readLine();
        readComponents(lineFreqCount, yComponents);
        readLine();
        readComponents(lineFreqCount, zComponents);
        for (int j = 0; j < lineFreqCount; ++j) {
          int atomIndex = (lineBaseFreqCount + j) * atomCountInFirstModel + i;
          Atom atom = atoms[atomIndex];
          atom.vectorX = xComponents[j];
          atom.vectorY = yComponents[j];
          atom.vectorZ = zComponents[j];
        }
      }
      discardLines(12);
      readLine();
    }
  }