I tried this but I don't know if it is right, and to calculate the time of execution sometimes it gives me 0 in the code.
I firstly created a structure to stock all the coordinates of the point to be interpolated I have a table of points to be interpolated, so I used pragma parallel for
to execute the for section to interpolate all the points. The variables R1, R2, and P are doubles, and shared among threads.
#pragma omp parallel for
for(i=0;i<N ; i++)
{
R1 = BilinearInterpolation(Table[i].x1, Table[i].Q11,Table[i].x2, Table[i].Q21,Table[i].x);
R2 = BilinearInterpolation(Table[i].x1, Table[i].Q12, Table[i].x2, Table[i].Q22,Table[i].x);
P = BilinearInterpolation(Table[i].y1, R1, Table[i].y2, R2, Table[i].y);
TableInter[i] = P;
}