def microbe_mortality_prob(basal_death_prob,death_rate,Tax_tolerance,Psi_fc,Psi):
    """
    Derive taxon-specific mortality probability.
    
    This function as a function of water potential and drought tolerance.

    Paramters:
        basal_death_prob: 1D array; taxon-specific basal mortality prob
        death_rate:       1D array; taxon-specific mortality change rate
        Tax_tolerance:    series;   taxon-specific drought tolerance
        Psi_fc:           scalar;   water potential at field capacity
        Psi:              scalar;   daily water potential
    Returns:
        mortality_rate:   1D array; taxon-specific mortality probability
    Reference:
        Allison and Goulden, 2017, Soil Biology and Biochemistry
    """
    
    if Psi >= Psi_fc:
        mortality_rate = basal_death_prob
    else:
        tolerance = Tax_tolerance.to_numpy(copy=False)
        # option 1
        mortality_rate = basal_death_prob * (1 - (1-tolerance)*(Psi-Psi_fc)*death_rate)
        # option 2
        #mortality_rate = basal_death_prob * (1 - (1/np.exp(tolerance))*(Psi-Psi_fc)*death_rate)
        # option 3
        #mortality_rate = basal_death_prob * (1/np.exp(tolerance)) * (1 - death_rate*(Psi-Psi_fc))
    
    return mortality_rate.astype('float32')