def reduce_aet_if_dry(aet, wat_lev, fc):
    """ Reduce actual evapotranspiration if the soil is dry. If the water level 
        in a cell is less than 0.7*fc, the rate of evapo-transpiration is 
        reduced by a factor. This factor is 1 when wat_lev = 0.7*fc and 
        decreases linearly to reach 0 when wat_lev = 0 i.e. where 
        wat_lev < 0.7*fc, apply a correction factor of
        wat_lev/(0.7*fc) to the aet grid.
    
    Args:
        aet:     "Raw" actual evapotranspiration grid.     
        wat_lev: Water level grid
        fc:      Soil field capacity grid.
        
    Returns:
        Array (modified AET grid with AET reduced where necessary).
    """
    # Get a boolean array showing which cells need correcting
    bool_array = wat_lev < (0.7*fc)

    # Calculate a correction factor for all cells, but subtract 1 from answer
    cor_facts_minus1 = (wat_lev / (0.7*fc)) - 1

    # Multiplying bool_array by cor_facts_minus1 gives a grid with values of
    # (cor_fact - 1) for cells which need correcting and zero otherwise. Add 1
    # to this to get a grid of cor_facts and ones
    cor_facts = (bool_array * cor_facts_minus1) + 1

    return aet*cor_facts