public int[] Array_GetLength (long id, out int rank, out int[] lower_bounds) {
var r = SendReceive (CommandSet.ARRAY_REF, (int)CmdArrayRef.GET_LENGTH, new PacketWriter ().WriteId (id));
rank = r.ReadInt ();
int[] res = new int [rank];
lower_bounds = new int [rank];
for (int i = 0; i < rank; ++i) {
res [i] = r.ReadInt ();
lower_bounds [i] = r.ReadInt ();
}
return res;
}