Example #1
0
static void g2_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;

    *fi = x2fi_irreg(nodes->nx, nodes->x, nodes->xc, x, nodes->periodic_x, lonbase);
    *fj = x2fi_irreg(nodes->ny, nodes->y, nodes->yc, y, nodes->periodic_y, NaN);
}
Example #2
0
File: grid.c Project: sakov/enkf-c
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);
}