grib/src/main/java/ucar/nc2/grib/collection/GribCollectionWriter.java
GribCollectionProto.Coord writeCoordProto(CoordinateRuntime coord) {
    GribCollectionProto.Coord.Builder b = GribCollectionProto.Coord.newBuilder();
    b.setAxisType( convertAxisType (coord.getType()));
    b.setCode(coord.getCode());
    if (coord.getUnit() != null)
      b.setUnit(coord.getUnit());

    for (int idx=0; idx<coord.getSize(); idx++) {
      long runtime = coord.getRuntime(idx);
      b.addMsecs(runtime);
    }
    return b.build();
  }
GribCollectionProto.Coord writeCoordProto(CoordinateRuntime coord) {
    GribCollectionProto.Coord.Builder b = GribCollectionProto.Coord.newBuilder();
    b.setAxisType( convertAxisType (coord.getType()));
    b.setCode(coord.getCode());
    if (coord.getUnit() != null)
      b.setUnit(coord.getUnit());

    for (int idx=0; idx<coord.getSize(); idx++) {
      long runtime = coord.getRuntime(idx);
      b.addMsecs(runtime);
    }
    return b.build();
  }
GribCollectionProto . Coord writeCoordProto ( CoordinateRuntime coord ) { GribCollectionProto . Coord . Builder b = GribCollectionProto . Coord . newBuilder ( ) ; b . setAxisType ( convertAxisType ( coord . getType ( ) ) ) ; b . setCode ( coord . getCode ( ) ) ; if ( coord . getUnit ( ) != null ) b . setUnit ( coord . getUnit ( ) ) ; for ( int idx = 0 ; idx < coord . getSize ( ) ; idx ++ ) { long runtime = coord . getRuntime ( idx ) ; b . addMsecs ( runtime ) ; } return b . build ( ) ; }
/*
message Coord {
GribAxisType axisType = 1;
int32 code = 2;   // time unit; level type
string unit = 3;
repeated float values = 4;
repeated float bound = 5; // only used if interval, then = (value, bound)
repeated int64 msecs = 6; // calendar date
/ * message Coord { GribAxisType axisType = 1 ; int32 code = 2 ; // time unit ; level type string unit = 3 ; repeated float values = 4 ; repeated float bound = 5 ; // only used if interval then = ( value bound ) repeated int64 msecs = 6 ; // calendar date