FV3 Bundle
gradient_c2l.h
Go to the documentation of this file.
1 /***********************************************************************
2  * GNU Lesser General Public License
3  *
4  * This file is part of the GFDL Flexible Modeling System (FMS).
5  *
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.
10  *
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
14  * for more details.
15  *
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  **********************************************************************/
19 #ifndef GRADIENT_H_
20 #define GRADIENT_H_
21 
22 void 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);
25 
26 void 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);
31 
32 void 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);
37 
38 void 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);
42 
43 void 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);
47 
48 void 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 );
51 
52 void mid_pt_sphere(const double *p1, const double *p2, double *pm);
53 
54 void mid_pt3_cart(const double *p1, const double *p2, double *e);
55 
56 #endif
void get_edge(int nx, int ny, const double *lont, const double *latt, const double *lonc, const double *latc, double *edge_w, double *edge_e, double *edge_s, double *edge_n, int on_west_edge, int on_east_edge, int on_south_edge, int on_north_edge)
Definition: gradient_c2l.c:209
void grad_c2l_(const int *nlon, const int *nlat, const double *pin, const double *dx, const double *dy, const double *area, const double *edge_w, const double *edge_e, const double *edge_s, const double *edge_n, const double *en_n, const double *en_e, const double *vlon, const double *vlat, double *grad_x, double *grad_y, const int *on_west_edge, const int *on_east_edge, const int *on_south_edge, const int *on_north_edge)
Definition: gradient_c2l.c:43
integer, parameter nx
integer, parameter ny
integer nlon
No description.
real(fp), parameter, public e
void calc_c2l_grid_info(int *nx_pt, int *ny_pt, const double *xt, const double *yt, const double *xc, const double *yc, double *dx, double *dy, double *area, double *edge_w, double *edge_e, double *edge_s, double *edge_n, double *en_n, double *en_e, double *vlon, double *vlat, int *on_west_edge, int *on_east_edge, int *on_south_edge, int *on_north_edge)
Definition: gradient_c2l.c:379
real, dimension(:,:), allocatable area
void calc_c2l_grid_info_(int *nx_pt, int *ny_pt, const double *xt, const double *yt, const double *xc, const double *yc, double *dx, double *dy, double *area, double *edge_w, double *edge_e, double *edge_s, double *edge_n, double *en_n, double *en_e, double *vlon, double *vlat, int *on_west_edge, int *on_east_edge, int *on_south_edge, int *on_north_edge)
Definition: gradient_c2l.c:369
void a2b_ord2(int nx, int ny, const double *qin, const double *edge_w, const double *edge_e, const double *edge_s, const double *edge_n, double *qout, int on_west_edge, int on_east_edge, int on_south_edge, int on_north_edge)
Definition: gradient_c2l.c:119
real, dimension(9) pm
real, parameter p2
Definition: sw_core_nlm.F90:47
real, parameter p1
Definition: sw_core_nlm.F90:46
void grad_c2l(const int *nlon, const int *nlat, const double *pin, const double *dx, const double *dy, const double *area, const double *edge_w, const double *edge_e, const double *edge_s, const double *edge_n, const double *en_n, const double *en_e, const double *vlon, const double *vlat, double *grad_x, double *grad_y, const int *on_west_edge, const int *on_east_edge, const int *on_south_edge, const int *on_north_edge)
Definition: gradient_c2l.c:53
void mid_pt3_cart(const double *p1, const double *p2, double *e)
Definition: gradient_c2l.c:337
void mid_pt_sphere(const double *p1, const double *p2, double *pm)
Definition: gradient_c2l.c:326
integer nlat
No description.