static void g1_xy2fij(void* p, double x, double y, double* fi, double* fj) { gnxy_simple* nodes = (gnxy_simple*) ((grid*) p)->gridnodes_xy; *fi = x2fi_reg(nodes->nx, nodes->x, x, nodes->periodic_x); *fj = x2fi_reg(nodes->ny, nodes->y, y, nodes->periodic_y); }
static void gs_xy2fij(void* p, double x, double y, double* fi, double* fj) { gnxy_simple* nodes = (gnxy_simple*) ((grid*) p)->gridnodes_xy; double lonbase = ((grid*) p)->lonbase; if (nodes->regular_x) *fi = x2fi_reg(nodes->nx, nodes->x, x, nodes->periodic_x); else *fi = x2fi_irreg(nodes->nx, nodes->x, nodes->xc, x, nodes->periodic_x, lonbase); if (nodes->regular_y) *fj = x2fi_reg(nodes->ny, nodes->y, y, 0); else *fj = x2fi_irreg(nodes->ny, nodes->y, nodes->yc, y, 0, NaN); }