def METHOD_NAME(self) -> ndarray:
    """
    Ascends through the pressure levels (decreasing pressure) calculating the saturated
    ascent from the cloud condensation level until a level is reached where the
    atmosphere profile is warmer than the ascending parcel, signifying that buoyancy
    is negative and cloud growth has ceased.
    CCT is the saturated adiabatic temperature at the last atmosphere pressure level where
    the profile is buoyant.
    Temperature data are in Kelvin, Pressure data are in pascals, humidity data are in kg/kg.
    A mask is used to keep track of which columns have already been solved, so that they
    are not included in future iterations (x3 speed-up).
    """
    cct = np.ma.masked_array(self.t_at_ccl.data.copy())
    q_at_ccl = saturated_humidity(self.t_at_ccl.data, self.p_at_ccl.data)
    ccl_with_mask = np.ma.masked_array(self.t_at_ccl.data, False)
    mask = ~ccl_with_mask.mask
    for t in self.temperature.slices_over("pressure"):
        t_environment = np.full_like(t.data, np.nan)
        t_environment[mask] = t.data[mask]
        (pressure,) = t.coord("pressure").points
        t_dry_parcel = dry_adiabatic_temperature(
            self.t_at_ccl.data[mask], self.p_at_ccl.data[mask], pressure,
        )
        t_parcel = np.full_like(t.data, np.nan)
        t_parcel[mask], _ = adjust_for_latent_heat(
            t_dry_parcel, q_at_ccl[mask], pressure
        )
        # Mask out points where parcel temperature, t_parcel, is less than atmosphere
        # temperature, t, but only after the parcel pressure, becomes lower than the
        # cloud base pressure.
        ccl_with_mask[mask] = np.ma.masked_where(
            (t_parcel[mask] < t_environment[mask])
            & (pressure < self.p_at_ccl.data[mask]),
            ccl_with_mask[mask],
        )
        # Find mask with CCL points that are still not masked.
        mask = ~ccl_with_mask.mask
        cct[mask] = t_parcel[mask]
        del t
        if mask.sum() == 0:
            break
    cct = np.ma.masked_where(self.t_at_ccl.data - cct < self.minimum_t_diff, cct)
    return cct