@Override
  public Array readData(ucar.nc2.Variable v2, Section section) throws IOException, InvalidRangeException {
    /* if (debugRead) {
      System.out.printf("debugRead %s %s%n", v2.toStringDebug(), section);
      if (v2.getShortName().equals("cref"))
        System.out.println("HEY");
    } */
    if (v2 instanceof Structure)
      return readRecordData((Structure) v2, section);

    N3header.Vinfo vinfo = (N3header.Vinfo) v2.getSPobject();
    DataType dataType = v2.getDataType();

    Layout layout = (!v2.isUnlimited()) ? new LayoutRegular(vinfo.begin, v2.getElementSize(), v2.getShape(), section) :
      new LayoutRegularSegmented(vinfo.begin, v2.getElementSize(), header.recsize, v2.getShape(), section);

    if (layout.getTotalNelems() == 0) {
      return Array.factory(dataType, section.getShape());
    }

    Object data = readData(layout, dataType);
    return Array.factory(dataType, section.getShape(), data);
  }
@Override
  public Array readData(ucar.nc2.Variable v2, Section section) throws IOException, InvalidRangeException {
    
    if (v2 instanceof Structure)
      return readRecordData((Structure) v2, section);

    N3header.Vinfo vinfo = (N3header.Vinfo) v2.getSPobject();
    DataType dataType = v2.getDataType();

    Layout layout = (!v2.isUnlimited()) ? new LayoutRegular(vinfo.begin, v2.getElementSize(), v2.getShape(), section) :
      new LayoutRegularSegmented(vinfo.begin, v2.getElementSize(), header.recsize, v2.getShape(), section);

    if (layout.getTotalNelems() == 0) {
      return Array.factory(dataType, section.getShape());
    }

    Object data = readData(layout, dataType);
    return Array.factory(dataType, section.getShape(), data);
  }
@ Override public Array readData ( ucar . nc2 . Variable v2 , Section section ) throws IOException , InvalidRangeException { /* if (debugRead) {
      System.out.printf("debugRead %s %s%n", v2.toStringDebug(), section);
      if (v2.getShortName().equals("cref"))
        System.out.println("HEY");
    } */ if ( v2 instanceof Structure ) return readRecordData ( ( Structure ) v2 , section ) ; N3header . Vinfo vinfo = ( N3header . Vinfo ) v2 . getSPobject ( ) ; DataType dataType = v2 . getDataType ( ) ; Layout layout = ( ! v2 . isUnlimited ( ) ) ? new LayoutRegular ( vinfo . begin , v2 . getElementSize ( ) , v2 . getShape ( ) , section ) : new LayoutRegularSegmented ( vinfo . begin , v2 . getElementSize ( ) , header . recsize , v2 . getShape ( ) , section ) ; if ( layout . getTotalNelems ( ) == 0 ) { return Array . factory ( dataType , section . getShape ( ) ) ; } Object data = readData ( layout , dataType ) ; return Array . factory ( dataType , section . getShape ( ) , data ) ; }
data reading
data reading