public void sequence(DapSequence seq) throws DapException { List<DapVariable> fields = seq.getFields(); Odometer odom = null; if (seq.getRank() == 0) { // scalar odom = new ScalarOdometer(); } else { // dimensioned List<Slice> slices = ce.getConstrainedSlices(seq); odom = Odometer.factory(slices, seq.getDimensions(), false); } try { while (odom.hasNext()) { // Decide how many rows for this sequence int nrows = (rowcount == 0 ? this.values.nextCount(MAXROWS) : rowcount); writer.writeObject(DapType.INT64, (long) nrows); for (int i = 0; i < nrows; i++) { for (int j = 0; j < fields.size(); j++) { DapVariable field = fields.get(j); variable(field); } } odom.next(); } } catch (IOException ioe) { throw new DapException(ioe); } }