possibly something in the data?


I did simple driver oprogram and changes the 'x' values and had no run time errors


Option Explicit
Sub drv()
    Dim y() As Double, dydx() As Double
    
    ReDim y(1)
    ReDim dydx(1)
    
    y(0) = 12.3
    y(1) = 23.4
    
    Call Derivs(0, y, dydx)
    
    MsgBox dydx(0)
    MsgBox dydx(1)
    
End Sub
 
Sub Derivs(x As Double, y() As Double, dydx() As Double)
    Const g As Double = 32.1740485564
    Const Hr As Double = 100
    Const h0 As Double = 80
    Const fm As Double = 0.024
    Const L As Double = 1500
    Const dp As Double = 2
    Const tc As Double = 5
    Const k As Double = 25.7
    Const Di As Double = 5
    
    Dim u0 As Double
    Dim Qv As Double
    Dim Qv0 As Double
    Dim hstar As Double
    
    u0 = ((g * h0 / ((1 / 2) * fm * (L / dp))) * ((Hr / h0) - 1)) ^ (1 / 2)
    
    Qv0 = (u0 * 3.14 * Di ^ 2) / 4
    
    hstar = h0 - (Qv0 / k) ^ 2
    
    If x >= 1 Then
        Qv = 0
    Else
        Qv = k * (h0 ^ 0.5) * (1 - x) * (y(1) - hstar / h0) ^ 0.5
    End If
    
    dydx(0) = ((tc * g * h0) / (L * u0)) * (((Hr / h0) - y(1)) - ((Hr / h0) - 1) * y(0) * Abs(y(0)))
    dydx(1) = ((dp / Di) ^ 2) * (u0 * tc / h0) * y(0) - ((4 * Qv * tc) / (3.14 * h0 * Di ^ 2))
End Sub
Sorry,

Paul