code: private IAtomContainer readCoordinates(IAtomContainer molecule, boolean coordinatesUnits) throws IOException {
  
          /*
           * Coordinates must all be given in angstr???ms.
           */
          double unitScaling = GamessReader.scalesCoordinatesUnits(coordinatesUnits);
  
          String retrievedLineFromFile;
  
          while (this.input.ready() == true) {
              retrievedLineFromFile = this.input.readLine();
              /*
               * A coordinate set is followed by an empty line, so when this line
               * is reached, there are no more coordinates to add to the current
               * set.
               */
              if ((retrievedLineFromFile == null) || (retrievedLineFromFile.trim().length() == 0)) {
                  break;
              }
  
              int atomicNumber;
              String atomicSymbol;
  
              //StringReader sr = new StringReader(retrievedLineFromFile);
              StreamTokenizer token = new StreamTokenizer(new StringReader(retrievedLineFromFile));
  
              /*
               * The first token is ignored. It contains the atomic symbol and may
               * be concatenated with a number.
               */
              token.nextToken();
  
              if (token.nextToken() == StreamTokenizer.TT_NUMBER) {
                  atomicNumber = (int) token.nval;
                  atomicSymbol = this.identifyAtomicSymbol(atomicNumber);
                  /*
                   * Dummy atoms are assumed to be given with an atomic number set
                   * to zero. We will do not add them to the molecule.
                   */
                  if (atomicNumber == 0) {
                      continue;
                  }
              } else {
                  throw new IOException("Error reading coordinates");
              }
  
              /*
               * Atom's coordinates are stored in an array.
               */
              double[] coordinates = new double[3];
              for (int i = 0; i < coordinates.length; i++) {
                  if (token.nextToken() == StreamTokenizer.TT_NUMBER) {
                      coordinates[i] = token.nval * unitScaling;
                  } else {
                      throw new IOException("Error reading coordinates");
                  }
              }
              IAtom atom = molecule.getBuilder().newInstance(IAtom.class, atomicSymbol,
                      new Point3d(coordinates[0], coordinates[1], coordinates[2]));
              molecule.addAtom(atom);
          }
          return molecule;
      }
docs: TODO Update method comments with appropriate information.