Since you are going backwards, you probably need to change the - sign to +:
... + (nu./v_neg).*(f_s_neg[length(df.s)+1-is] - local_F_s_neg)*(df.ds[is]))
Since you are going backwards, you probably need to change the - sign to +:
... + (nu./v_neg).*(f_s_neg[length(df.s)+1-is] - local_F_s_neg)*(df.ds[is]))