opendap/src/main/java/ucar/nc2/dods/DODSNetcdfFile.java
public Array readWithCE(ucar.nc2.Variable v, String CE) throws IOException
  {

    Array dataArray;
    try {

      DataDDS dataDDS = readDataDDSfromServer(CE);
      DodsV root = DodsV.parseDataDDS(dataDDS);
      DodsV want = root.children.get(0); // can only be one

      if (v.isMemberOfStructure())
        dataArray = convertD2N.convertNestedVariable(v, null, want, true);
      else
        dataArray = convertD2N.convertTopVariable(v, null, want);
    } catch (DAP2Exception ex) {
      ex.printStackTrace();
      throw new IOException(ex.getMessage());
    } catch (ParseException ex) {
      ex.printStackTrace();
      throw new IOException(ex.getMessage());
    }

    return dataArray;
  }
public Array readWithCE(ucar.nc2.Variable v, String CE) throws IOException
  {

    Array dataArray;
    try {

      DataDDS dataDDS = readDataDDSfromServer(CE);
      DodsV root = DodsV.parseDataDDS(dataDDS);
      DodsV want = root.children.get(0); // can only be one

      if (v.isMemberOfStructure())
        dataArray = convertD2N.convertNestedVariable(v, null, want, true);
      else
        dataArray = convertD2N.convertTopVariable(v, null, want);
    } catch (DAP2Exception ex) {
      ex.printStackTrace();
      throw new IOException(ex.getMessage());
    } catch (ParseException ex) {
      ex.printStackTrace();
      throw new IOException(ex.getMessage());
    }

    return dataArray;
  }
/* this is for reading variables that are members of structures
protected Array readMemberData(ucar.nc2.Variable v, Section section, boolean flatten) throws IOException, InvalidRangeException {
StringBuffer buff = new StringBuffer(100);
buff.setLength(0);

List<Range> ranges = section.getRanges();

add the selector
addParents(buff, v, ranges, 0);

Array dataArray;
try {
DodsV root = DodsV.parseDDS( readDataDDSfromServer(buff.toString()));
data = convertD2N((DodsV) root.children.get(0), v, section, flatten); // can only be one

DataDDS dataDDS = readDataDDSfromServer(buff.toString());
DodsV root = DodsV.parseDataDDS(dataDDS);
DodsV want = root.children.get(0); // can only be one
dataArray = convertD2N.convertNestedVariable(v, ranges, want, flatten);
}
catch (DAP2Exception ex) {
ex.printStackTrace();
throw new IOException(ex.getMessage());
}
catch (ParseException ex) {
ex.printStackTrace();
throw new IOException(ex.getMessage());
}

return dataArray;
}