cdm/src/main/java/ucar/nc2/iosp/hdf4/H4type.java
static DataType setDataType(short type, Variable v) {
    DataType dt;
    switch (type) {
      case 3:
        dt = DataType.UBYTE;
        break;
      case 4:
        dt =  DataType.CHAR;
        break;
      case 5:
        dt =  DataType.FLOAT;
        break;
      case 6:
        dt =  DataType.DOUBLE;
        break;
      case 20:
        dt =  DataType.BYTE;
        break;
      case 21:
        dt =  DataType.UBYTE;
        break;
      case 22:
        dt =  DataType.SHORT;
        break;
      case 23:
        dt =  DataType.USHORT;
        break;
      case 24:
        dt =  DataType.INT;
        break;
      case 25:
        dt =  DataType.UINT;
        break;
      case 26:
        dt =  DataType.LONG;
        break;
      case 27:
        dt =  DataType.ULONG;
        break;
      default:
        throw new IllegalStateException("unknown type= " + type);
    }

    if (v != null) {
      v.setDataType(dt);
    }

    return dt;
  }
static DataType setDataType(short type, Variable v) {
    DataType dt;
    switch (type) {
      case 3:
        dt = DataType.UBYTE;
        break;
      case 4:
        dt =  DataType.CHAR;
        break;
      case 5:
        dt =  DataType.FLOAT;
        break;
      case 6:
        dt =  DataType.DOUBLE;
        break;
      case 20:
        dt =  DataType.BYTE;
        break;
      case 21:
        dt =  DataType.UBYTE;
        break;
      case 22:
        dt =  DataType.SHORT;
        break;
      case 23:
        dt =  DataType.USHORT;
        break;
      case 24:
        dt =  DataType.INT;
        break;
      case 25:
        dt =  DataType.UINT;
        break;
      case 26:
        dt =  DataType.LONG;
        break;
      case 27:
        dt =  DataType.ULONG;
        break;
      default:
        throw new IllegalStateException("unknown type= " + type);
    }

    if (v != null) {
      v.setDataType(dt);
    }

    return dt;
  }
/* type info codes from hntdefs.h
#define DFNT_UCHAR8      3
#define DFNT_CHAR8       4
#define DFNT_FLOAT32     5
#define DFNT_FLOAT64     6

#define DFNT_INT8       20
#define DFNT_UINT8      21
#define DFNT_INT16      22
#define DFNT_UINT16     23
#define DFNT_INT32      24
#define DFNT_UINT32     25
#define DFNT_INT64      26
#define DFNT_UINT64     27