""" :( """
function DryBubble_θ_liq_ice(::Type{FT}) where {FT}
    z_in = FT[
          25.,   75.,  125.,  175.,  225.,  275.,  325.,  375.,  425.,
         475.,  525.,  575.,  625.,  675.,  725.,  775.,  825.,  875.,
         925.,  975., 1025., 1075., 1125., 1175., 1225., 1275., 1325.,
        1375., 1425., 1475., 1525., 1575., 1625., 1675., 1725., 1775.,
        1825., 1875., 1925., 1975., 2025., 2075., 2125., 2175., 2225.,
        2275., 2325., 2375., 2425., 2475., 2525., 2575., 2625., 2675.,
        2725., 2775., 2825., 2875., 2925., 2975., 3025., 3075., 3125.,
        3175., 3225., 3275., 3325., 3375., 3425., 3475., 3525., 3575.,
        3625., 3675., 3725., 3775., 3825., 3875., 3925., 3975., 4025.,
        4075., 4125., 4175., 4225., 4275., 4325., 4375., 4425., 4475.,
        4525., 4575., 4625., 4675., 4725., 4775., 4825., 4875., 4925.,
        4975., 5025., 5075., 5125., 5175., 5225., 5275., 5325., 5375.,
        5425., 5475., 5525., 5575., 5625., 5675., 5725., 5775., 5825.,
        5875., 5925., 5975., 6025., 6075., 6125., 6175., 6225., 6275.,
        6325., 6375., 6425., 6475., 6525., 6575., 6625., 6675., 6725.,
        6775., 6825., 6875., 6925., 6975., 7025., 7075., 7125., 7175.,
        7225., 7275., 7325., 7375., 7425., 7475., 7525., 7575., 7625.,
        7675., 7725., 7775., 7825., 7875., 7925., 7975., 8025., 8075.,
        8125., 8175., 8225., 8275., 8325., 8375., 8425., 8475., 8525.,
        8575., 8625., 8675., 8725., 8775., 8825., 8875., 8925., 8975.,
        9025., 9075., 9125., 9175., 9225., 9275., 9325., 9375., 9425.,
        9475., 9525., 9575., 9625., 9675., 9725., 9775., 9825., 9875.,
        9925., 9975.
    ]
    θ_liq_ice_in = FT[
        299.9834, 299.9836, 299.9841, 299.985 , 299.9864, 299.9883,
        299.9907, 299.9936, 299.9972, 300.0012, 300.0058, 300.011 ,
        300.0166, 300.0228, 300.0293, 300.0363, 300.0436, 300.0512,
        300.0591, 300.0672, 300.0755, 300.0838, 300.0921, 300.1004,
        300.1086, 300.1167, 300.1245, 300.132 , 300.1393, 300.1461,
        300.1525, 300.1583, 300.1637, 300.1685, 300.1726, 300.1762,
        300.179 , 300.1812, 300.1826, 300.1833, 300.1833, 300.1826,
        300.1812, 300.179 , 300.1762, 300.1727, 300.1685, 300.1637,
        300.1584, 300.1525, 300.1461, 300.1393, 300.1321, 300.1245,
        300.1167, 300.1087, 300.1005, 300.0922, 300.0838, 300.0755,
        300.0673, 300.0592, 300.0513, 300.0437, 300.0364, 300.0294,
        300.0228, 300.0167, 300.0111, 300.0059, 300.0013, 299.9972,
        299.9937, 299.9908, 299.9884, 299.9865, 299.9851, 299.9842,
        299.9837, 299.9835, 299.9835, 299.9835, 299.9835, 299.9835,
        299.9835, 299.9835, 299.9835, 299.9835, 299.9835, 299.9835,
        299.9835, 299.9835, 299.9835, 299.9835, 299.9835, 299.9835,
        299.9835, 299.9835, 299.9835, 299.9835, 299.9835, 299.9835,
        299.9835, 299.9835, 299.9835, 299.9835, 299.9835, 299.9835,
        299.9835, 299.9835, 299.9835, 299.9835, 299.9835, 299.9835,
        299.9836, 299.9836, 299.9836, 299.9836, 299.9836, 299.9836,
        299.9836, 299.9836, 299.9836, 299.9836, 299.9836, 299.9836,
        299.9836, 299.9836, 299.9836, 299.9836, 299.9836, 299.9836,
        299.9836, 299.9836, 299.9836, 299.9836, 299.9836, 299.9836,
        299.9836, 299.9836, 299.9836, 299.9836, 299.9836, 299.9836,
        299.9836, 299.9836, 299.9836, 299.9836, 299.9836, 299.9836,
        299.9836, 299.9836, 299.9836, 299.9836, 299.9836, 299.9836,
        299.9836, 299.9836, 299.9836, 299.9836, 299.9836, 299.9836,
        299.9836, 299.9836, 299.9836, 299.9836, 299.9836, 299.9836,
        299.9836, 299.9836, 299.9836, 299.9836, 299.9836, 299.9836,
        299.9836, 299.9836, 299.9836, 299.9836, 299.9837, 299.9837,
        299.9837, 299.9837, 299.9837, 299.9837, 299.9837, 299.9837,
        299.9837, 299.9837, 299.9837, 299.9837, 299.9837, 299.9837,
        299.9837, 299.9837, 299.9837, 299.9837, 299.9837, 299.9837,
        299.9837, 299.9837
    ]
    profile = Dierckx.Spline1D(z_in, θ_liq_ice_in; k = 1)
    return profile
end

""" :( """
function DryBubble_updrafts_z(::Type{FT}) where {FT}
    z_in = FT[
          75.,  125.,  175.,  225.,  275.,  325.,  375.,  425.,  475.,
         525.,  575.,  625.,  675.,  725.,  775.,  825.,  875.,  925.,
         975., 1025., 1075., 1125., 1175., 1225., 1275., 1325., 1375.,
        1425., 1475., 1525., 1575., 1625., 1675., 1725., 1775., 1825.,
        1875., 1925., 1975., 2025., 2075., 2125., 2175., 2225., 2275.,
        2325., 2375., 2425., 2475., 2525., 2575., 2625., 2675., 2725.,
        2775., 2825., 2875., 2925., 2975., 3025., 3075., 3125., 3175.,
        3225., 3275., 3325., 3375., 3425., 3475., 3525., 3575., 3625.,
        3675., 3725., 3775., 3825., 3875., 3925.]
    return z_in
end

""" :( """
function DryBubble_updrafts_θ_liq_ice(::Type{FT}) where {FT}
    z_in = DryBubble_updrafts_z(FT)
    θ_liq_in = FT[
        299.9882, 299.996 , 300.0063, 300.0205, 300.04  , 300.0594,
        300.0848, 300.1131, 300.1438, 300.1766, 300.2198, 300.2567,
        300.2946, 300.3452, 300.3849, 300.4245, 300.4791, 300.5182,
        300.574 , 300.6305, 300.6668, 300.7222, 300.7771, 300.8074,
        300.8591, 300.9092, 300.9574, 300.9758, 301.0182, 301.0579,
        301.0944, 301.1276, 301.1572, 301.1515, 301.1729, 301.1902,
        301.2033, 301.2122, 301.2167, 301.2169, 301.2127, 301.2041,
        301.1913, 301.1743, 301.1533, 301.1593, 301.1299, 301.097 ,
        301.0606, 301.0212, 300.9788, 300.9607, 300.9125, 300.8625,
        300.8108, 300.7806, 300.7256, 300.6701, 300.6338, 300.5772,
        300.5212, 300.482 , 300.4272, 300.3875, 300.3354, 300.2968,
        300.2587, 300.2216, 300.1782, 300.1452, 300.1143, 300.0859,
        300.0603, 300.0408, 300.0211, 300.0067, 299.9963, 299.9884]
    profile = Dierckx.Spline1D(z_in, θ_liq_in; k = 1)
    return profile
end

""" :( """
function DryBubble_updrafts_area(::Type{FT}) where {FT}
    z_in = DryBubble_updrafts_z(FT)
    Area_in = FT[
        0.04 , 0.055, 0.07 , 0.08 , 0.085, 0.095, 0.1  , 0.105, 0.11 ,
        0.115, 0.115, 0.12 , 0.125, 0.125, 0.13 , 0.135, 0.135, 0.14 ,
        0.14 , 0.14 , 0.145, 0.145, 0.145, 0.15 , 0.15 , 0.15 , 0.15 ,
        0.155, 0.155, 0.155, 0.155, 0.155, 0.155, 0.16 , 0.16 , 0.16 ,
        0.16 , 0.16 , 0.16 , 0.16 , 0.16 , 0.16 , 0.16 , 0.16 , 0.16 ,
        0.155, 0.155, 0.155, 0.155, 0.155, 0.155, 0.15 , 0.15 , 0.15 ,
        0.15 , 0.145, 0.145, 0.145, 0.14 , 0.14 , 0.14 , 0.135, 0.135,
        0.13 , 0.13 , 0.125, 0.12 , 0.115, 0.115, 0.11 , 0.105, 0.1  ,
        0.095, 0.085, 0.08 , 0.07 , 0.055, 0.04]
    profile = Dierckx.Spline1D(z_in, Area_in; k = 1)
    return profile
end

""" :( """
function DryBubble_updrafts_w(::Type{FT}) where {FT}
    z_in = DryBubble_updrafts_z(FT)
    W_in = FT[
        0.017 , 0.0266, 0.0344, 0.0417, 0.0495, 0.0546, 0.061 , 0.0668,
        0.0721, 0.0768, 0.0849, 0.0887, 0.092 , 0.0996, 0.1019, 0.1037,
        0.1106, 0.1114, 0.1179, 0.1243, 0.1238, 0.1297, 0.1355, 0.1335,
        0.1387, 0.1437, 0.1485, 0.1448, 0.1489, 0.1527, 0.1564, 0.1597,
        0.1628, 0.1565, 0.1588, 0.1609, 0.1626, 0.1641, 0.1652, 0.166 ,
        0.1665, 0.1667, 0.1666, 0.1662, 0.1655, 0.1736, 0.1722, 0.1706,
        0.1686, 0.1664, 0.1639, 0.1698, 0.1667, 0.1634, 0.1599, 0.1641,
        0.1601, 0.1559, 0.1589, 0.1543, 0.1496, 0.1514, 0.1464, 0.1475,
        0.1422, 0.1425, 0.1424, 0.1419, 0.1361, 0.135 , 0.1335, 0.1316,
        0.1294, 0.1302, 0.1271, 0.1264, 0.1269, 0.1256]
    profile = Dierckx.Spline1D(z_in, W_in; k = 1)
    return profile
end

""" :( """
function DryBubble_updrafts_T(::Type{FT}) where {FT}
    z_in = DryBubble_updrafts_z(FT)
    T_in = FT[
        299.2557, 298.775 , 298.2969, 297.8227, 297.3536, 296.8843,
        296.421 , 295.9603, 295.502 , 295.0456, 294.5994, 294.1468,
        293.6951, 293.2556, 292.8054, 292.3549, 291.9188, 291.4677,
        291.0325, 290.5978, 290.1434, 289.7073, 289.2706, 288.81  ,
        288.3698, 287.928 , 287.4842, 287.0118, 286.5622, 286.1099,
        285.6544, 285.1957, 284.7335, 284.2379, 283.7677, 283.2937,
        282.8157, 282.3337, 281.8476, 281.3574, 280.8631, 280.3649,
        279.8626, 279.3565, 278.8467, 278.362 , 277.8447, 277.3241,
        276.8006, 276.2742, 275.7454, 275.2388, 274.705 , 274.1694,
        273.6327, 273.1155, 272.576 , 272.0363, 271.514 , 270.9736,
        270.4339, 269.9094, 269.3711, 268.8465, 268.311 , 267.7877,
        267.2649, 266.7432, 266.2159, 265.698 , 265.1821, 264.6685,
        264.1574, 263.6518, 263.1461, 262.6451, 262.1476, 261.6524]
    profile = Dierckx.Spline1D(z_in, T_in; k = 1)
    return profile
end
