def METHOD_NAME(self, pcliq, pcice):
    if pcice <= max(pcliq, 0.):
        # unfrozen
        si = 0.
        sl = self.wrm.saturation(pcliq)
        sg = 1. - sl
    else:
        # frozen
        sstar_ice = self.wrm.saturation(pcice)
        sstar_liq = self.wrm.saturation(pcliq)
        sr = self.wrm._sr
        if pcliq <= 0.:
            # saturated            
            sl_sm = (sstar_liq - sr)*(sstar_ice - sr)/(1-sr) + sr
            sl = sl_sm
            si = 1. - sl
            sg = 0.
        else:
            sl_sm = (sstar_liq - sr)*(sstar_ice - sr)/(1-sr) + sr
            sl = sl_sm
            si = 1. - sl / sstar_liq
            sg = 1. - sl - si
    return sg, sl, si