static void readAllRuntimes(Coverage cover, GridDatatype dt, CoordinateAxis1DTime runtimeAxis, CoordinateAxis1D ensAxis, CoordinateAxis1D vertAxis) {
GridCoordSystem csys = dt.getCoordinateSystem();
CoordinateAxis1DTime timeAxis1D = csys.getTimeAxis1D();
CoordinateAxis timeAxis = csys.getTimeAxis();
CoordinateAxis2D timeAxis2D = (timeAxis instanceof CoordinateAxis2D) ? (CoordinateAxis2D) timeAxis : null;
if (runtimeAxis == null)
readAllTimes1D(cover, dt, null, -1, timeAxis1D, ensAxis, vertAxis);
else if (timeAxis2D == null) {
for (int i = 0; i < runtimeAxis.getSize(); i++)
readAllTimes1D(cover, dt, runtimeAxis.getCalendarDate(i), i, timeAxis1D, ensAxis, vertAxis);
} else {
TimeHelper helper = TimeHelper.factory(timeAxis.getUnitsString(), timeAxis.getAttributeContainer());
if (timeAxis2D.isInterval()) {
ArrayDouble.D3 bounds = timeAxis2D.getCoordBoundsArray();
for (int i = 0; i < runtimeAxis.getSize(); i++)
readAllTimes2D(cover, dt, runtimeAxis.getCalendarDate(i), i, helper, bounds.slice(0, i), ensAxis, vertAxis);
} else {
ArrayDouble.D2 coords = timeAxis2D.getCoordValuesArray();
for (int i = 0; i < runtimeAxis.getSize(); i++)
readAllTimes2D(cover, dt, runtimeAxis.getCalendarDate(i), i, helper, coords.slice(0, i), ensAxis, vertAxis);
}
}
}