I don't think there is a direct way to do this. One thing that comes to mind is the following. Assign a continuous variable wij with domain [0,1] to the point in R2 formed by the combination of the i-th grid value for ReservoirLevel and the j-th value of ReservoirInFlow. Constrain the w variables to sum to 1, so that you are taking a convex combination of grid points. Approximate ReleaseFromReservoir with the sum of wij times the function value at the point.
Now comes the tricky part. To make the approximation as accurate as possible, you really want to assign nonzero weights only to points that are corners of a minimal rectangle (i.e., formed from adjacent grid values on each axis). To do this, add binary variables xi for each grid value of ReservoirLevel and yj for each value of ReservoirInflow. They will signal which values form the lower left corner of the rectangle being used. The x variables should sum to 1, and so should the y variables. Finally, constrain wij to be <= xi-1+xi and also <= yj-1+yj.
#CPLEXOptimizers#DecisionOptimization