Close, but your code has a problem: it retrieves source data multiple times, which might impact performance.
A better approach is to get it in a buffer, assign it to a variable, then reuse the variable. In this way, we pull data in memory from the database only once.
' retrieve source data and assign to variable, so we do it only once
Dim sourcePov As String = "E#A:O#Import:F#EndBal_Load:A#100001:UD5#ADJ"
Dim sourceBuf As DataBuffer = api.Data.GetDataBufferUsingFormula("RemoveNoData(" & sourcePov & ")")
api.Data.FormulaVariables.SetDataBufferVariable("source", sourceBuf, False)
' do your calculations.
api.Data.Calculate("E#B:O#Forms:A#100001:UD5#ADJ:F#SomeFlow = $source * 0.5", False)
api.Data.Calculate("E#C:O#Forms:A#100001:UD5#ADJ:F#SomeFlow = $source * 0.4", False)
api.Data.Calculate("E#C:O#Forms:A#100001:UD5#ADJ:F#SomeFlow = $source * -0.9", False)
' optional: delete source data by overwriting intersections with calculated data which is then cleared
api.data.calculate(sourcePov & " = 0 * $source")
api.data.clearcalculateddata(sourcePov, True, True)