1/***********************************************************************
2 * gnu lesser general
Public license
4 * this file is part of the gfdl flexible modeling system(fms).
6 * fms is free software: you can redistribute it and/or modify it under
7 * the terms of the gnu lesser general
Public license as published by
8 * the free software foundation, either version 3 of the license, or(at
9 * your option) any later version.
11 * fms is distributed in the hope that it will be useful, but without
12 * any warranty; without even the implied warranty of merchantability or
13 * fitness for a particular purpose. see the gnu general
Public license
16 * you should have received a copy of the gnu lesser general
Public
17 * license along with fms.
If not, see <http://www.gnu.org/licenses/>.
18 **********************************************************************/
22void a2b_ord2(int nx, int ny, const double *qin, const double *edge_w, const double *edge_e,
23 const double *edge_s, const double *edge_n, double *qout,
24 int on_west_edge, int on_east_edge, int on_south_edge, int on_north_edge);
26void grad_c2l(const int *nlon, const int *nlat, const double *pin, const double *dx, const double *dy, const double *area,
27 const double *edge_w, const double *edge_e, const double *edge_s, const double *edge_n,
28 const double *en_n, const double *en_e, const double *vlon, const double *vlat,
29 double *grad_x, double *grad_y, const int *on_west_edge, const int *on_east_edge,
30 const int *on_south_edge, const int *on_north_edge);
32void grad_c2l_(const int *nlon, const int *nlat, const double *pin, const double *dx, const double *dy, const double *area,
33 const double *edge_w, const double *edge_e, const double *edge_s, const double *edge_n,
34 const double *en_n, const double *en_e, const double *vlon, const double *vlat,
35 double *grad_x, double *grad_y, const int *on_west_edge, const int *on_east_edge,
36 const int *on_south_edge, const int *on_north_edge);
38void calc_c2l_grid_info(int *nx_pt, int *ny_pt, const double *xt, const double *yt, const double *xc, const double *yc,
39 double *dx, double *dy, double *area, double *edge_w, double *edge_e, double *edge_s,
40 double *edge_n, double *en_n, double *en_e, double *vlon, double *vlat,
41 int *on_west_edge, int *on_east_edge, int *on_south_edge, int *on_north_edge);
43void calc_c2l_grid_info_(int *nx_pt, int *ny_pt, const double *xt, const double *yt, const double *xc, const double *yc,
44 double *dx, double *dy, double *area, double *edge_w, double *edge_e, double *edge_s,
45 double *edge_n, double *en_n, double *en_e, double *vlon, double *vlat,
46 int *on_west_edge, int *on_east_edge, int *on_south_edge, int *on_north_edge);
48void get_edge(int nx, int ny, const double *lont, const double *latt,
49 const double *lonc, const double *latc, double *edge_w, double *edge_e, double *edge_s, double *edge_n,
50 int on_west_edge, int on_east_edge, int on_south_edge, int on_north_edge );
52void mid_pt_sphere(const double *p1, const double *p2, double *pm);
54void mid_pt3_cart(const double *p1, const double *p2, double *e);