# File lib/numru/nusdas.rb, line 855
    def parse_subc(str,meta)
      name = str[0,4]
      str = str[4..-1]
      hash = Hash.new
      case name
      when "ETA "
        hash[:nplane] = (n=str[0,4].unpack("N")[0])
        str = str[4..-1]
        hash[:a] = endian( NArray.to_na(str[0,4*(n+1)], NArray::SFLOAT) )
        str = str[4*(n+1)..-1]
        hash[:b] = endian( NArray.to_na(str[0,4*(n+1)], NArray::SFLOAT) )
        str = str[4*(n+1)..-1]
        hash[:c] = str[0,2].unpack("g")[0]
      when "TDIF"
        hash[:tdif] = endian( NArray.to_na(str[0,4*@nmember*@nvalidtime], NArray::INT, @nvalidtime, @nmember) )
        str = str[4*@nmember*@nvalidtime..-1]
        hash[:tint] = endian( NArray.to_na(str[0,4*@nmember*@nvalidtime], NArray::INT, @nvalidtime, @nmember) )
      when "DELT"
        hash[:delta] = get_sint4(str[0,4])
      when "ZHYB"
        hash[:nz] = (n=get_sint4(str[0,4]))
        hash[:ptrf] = str[4,4].unpack("g")[0]
        hash[:presrf] = str[8,4].unpack("g")[0]
        hash[:zrp] = endian( NArray.to_na(str[12,4*n], NArray::SFLOAT) )
        str = str[12+4*n..-1]
        hash[:zrw] = endian( NArray.to_na(str[0,4*n], NArray::SFLOAT) )
        str = str[4*n..-1]
        hash[:vctrans_p] = endian( NArray.to_na(str[0,4*n], NArray::SFLOAT) )
        str = str[4*n..-1]
        hash[:vctrans_w] = endian( NArray.to_na(str[0,4*n], NArray::SFLOAT) )
        str = str[4*n..-1]
        hash[:dvtrans_p] = endian( NArray.to_na(str[0,4*n], NArray::SFLOAT) )
        str = str[4*n..-1]
        hash[:dvtrans_w] = endian( NArray.to_na(str[0,4*n], NArray::SFLOAT) )
      when "RGAU"
        hash[:j] = get_sint4(str[0,4])
        hash[:j_start] = get_sint4(str[4,4])
        hash[:j_n] = (n=get_sint4(str[8,4]))
        hash[:i] = endian( NArray.to_na(str[12,4*n], NArray::INT) )
        str = str[12+4*n..-1]
        hash[:i_start] = endian( NArray.to_na(str[0,4*n], NArray::INT) )
        str = str[4*n..-1]
        hash[:i_n] = endian( NArray.to_na(str[0,4*n], NArray::INT) )
        str = str[4*n..-1]
        hash[:lat] = endian( NArray.to_na(str[0,4*n], NArray::SFLOAT) )
      when "RADR"
        hash[:info] ||= Array.new
        hash[:info].push endian( NArray.to_na(str[0,4*@nmember*@nvalidtime*@nplane*@nelement], NArray::INT, @nelement, @nplane, @nvalidtime, @nmember) )
      when "ISPC"
      when "RADS"
        hash[:mode] = endian( NArray.to_na(str[0,4*@nmember*@nvalidtime*@nplane*@nelementw], NArray::INT, @nelement, @nplane, @nvalidtime, @nmember) )
        str = str[4*@nmember*@nvalidtime*@nplane*@nelementw..-1]
        hash[:flag] = endian( NArray.to_na(str[0,4*@nmember*@nvalidtime*@nplane*@nelementw], NArray::INT, @nelement, @nplane, @nvalidtime, @nmember) )
        str = str[4*@nmember*@nvalidtime*@nplane*@nelementw..-1]
        hash[:n10] = endian( NArray.to_na(str[0,4*@nmember*@nvalidtime*@nplane*@nelementw], NArray::INT, @nelement, @nplane, @nvalidtime, @nmember) )
        str = str[4*@nmember*@nvalidtime*@nplane*@nelementw..-1]
        hash[:b] = endian( NArray.to_na(str[0,4*@nmember*@nvalidtime*@nplane*@nelementw], NArray::INT, @nelement, @nplane, @nvalidtime, @nmember) )
        str = str[4*@nmember*@nvalidtime*@nplane*@nelementw..-1]
        hash[:beta] = endian( NArray.to_na(str[0,4*@nmember*@nvalidtime*@nplane*@nelementw], NArray::INT, @nelement, @nplane, @nvalidtime, @nmember) )

      end
      return {name => hash}
    end