cdm/src/main/java/ucar/nc2/Variable.java
public long readToByteChannel(Section section, WritableByteChannel wbc) throws IOException, InvalidRangeException {
    if ((ncfile == null) || hasCachedData())
      return IospHelper.copyToByteChannel(read(section), wbc);

    return ncfile.readToByteChannel(this, section, wbc);
  }
public long readToByteChannel(Section section, WritableByteChannel wbc) throws IOException, InvalidRangeException {
    if ((ncfile == null) || hasCachedData())
      return IospHelper.copyToByteChannel(read(section), wbc);

    return ncfile.readToByteChannel(this, section, wbc);
  }
/* structure-member Variable;  section has a Range for each array in the parent
stuctures(s) and for the Variable.
private Array _readMemberData(List<Range> section, boolean flatten) throws IOException, InvalidRangeException {
/*Variable useVar = (ioVar != null) ? ioVar : this;
NetcdfFile useFile = (ncfileIO != null) ? ncfileIO : ncfile;
return useFile.readMemberData(useVar, section, flatten);
}