<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def decay(self, mass_frac):
 """ this module simply calculate abundances of isotopes after decay. It requires that before it is used a call is made to _read_iso_abund_marco and _stable_species. Parameters mass_frac : list alist of mass_frac dicts. See Also -------- _read_iso_abund_marco(), nuutils.Utils._stable_species() """


        import nuutils as u

        global decayed_multi_d
        decayed_multi_d=[]
        #print len(mass_frac)
        #print len(decay_raw)
        for iii in range(len(mass_frac)):
            jj=-1
            decayed=[]
            for i in range(len(u.decay_raw)):
                if u.jdum[i] > 0.5:
                    jj=jj+1
                    dummy=0.
                    for j in range(len(u.decay_raw[i])):
                        try:
                            dum_str = u.decay_raw[i][j]
                            dummy = dummy + float(self.mass_frac[iii][u.cl[dum_str.lower().capitalize()]])
                            #print cl[dum_str.lower().capitalize()]
                            #print dum_str, mass_frac[iii][cl[dum_str.capitalize()]]
                        except KeyError:
                            None
                            #print 'I am not in the network:',decay_raw[i][j]
                        except IndexError:
                            None
                            #print 'I am not read',cl[decay_raw[i][j].lower().capitalize()],decay_raw[i][j]
                    decayed.append(dummy)
            decayed_multi_d.append(decayed)