#def interpolate_on_structured_grid(x, y, ox, oy, dx, dy, nx, ny, timej, data):
# if ((x < ox).any() or (x > ox + (nx-1)*dx).any()) and (dx > 0) :
# print('Fatal. (x,y) is outside the grid 1!!')
# exit(-1)
# if ((x > ox).any() or (x < ox + (nx-1)*dx).any()) and (dx < 0):
# print('Fatal. (x,y) is outside the grid 2!!')
# exit(-1)
# if ((y < oy).any() or (y > oy + (ny-1)*dy).any()) and (dy > 0):
# print('Fatal. (x,y) is outside the grid 3!!')
# exit(-1)
# if ((y > oy).any() or (y < oy + (ny-1)*dy).any()) and (dy < 0):
# print('Fatal. (x,y) is outside the grid 4!!')
# exit(-1)
# rx = x - ox
# ry = y - oy
# ix = (rx / dx).astype(int)
# iy = (ry / dy).astype(int)
# xsi = (rx - ix*dx) / dx
# eta = (ry - iy*dy) / dy
# val = (1-xsi)*(1-eta)*data[timej,iy,ix]+xsi*(1-eta)*data[timej,iy,(ix+1)%nx]+xsi*eta*data[timej,(iy+1)%ny,(ix+1)%nx]+(1-xsi)*eta*data[timej,(iy+1)%ny,ix]