NUMFL: Localizing Faults in Numerical Software Using a Value-Based Causal Model