Skip to content
Draft
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 22 additions & 20 deletions grid_utils/grid_utils.c
Original file line number Diff line number Diff line change
Expand Up @@ -718,18 +718,18 @@ double spherical_excess_area(const double* p_ll, const double* p_ul,
void get_grid_area(const int *nlon, const int *nlat, const double *lon, const double *lat, const double *area)
return the grid area.
*******************************************************************************/
void get_grid_area_(const int *nlon, const int *nlat, const double *lon, const double *lat, double *area)
void get_grid_area_(const int nlon, const int nlat, const double *lon, const double *lat, double *area)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does the pass in by value work when fortran calls function_?

{
get_grid_area(nlon, nlat, lon, lat, area);
}

void get_grid_area(const int *nlon, const int *nlat, const double *lon, const double *lat, double *area)
void get_grid_area(const int nlon, const int nlat, const double *lon, const double *lat, double *area)
{
int nx, ny, nxp, i, j, n_in;
double x_in[20], y_in[20];

nx = *nlon;
ny = *nlat;
nx = nlon;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's going to be a pain to fix, but nx and ny are not needed anymore

ny = nlat;
nxp = nx + 1;

for(j=0; j<ny; j++) for(i=0; i < nx; i++) {
Expand All @@ -752,17 +752,17 @@ void get_grid_area(const int *nlon, const int *nlat, const double *lon, const do
void get_grid_area_ug(const int *npts, const double *lon, const double *lat, const double *area)
return the grid area.
*******************************************************************************/
void get_grid_area_ug_(const int *npts, const double *lon, const double *lat, double *area)
void get_grid_area_ug_(const int npts, const double *lon, const double *lat, double *area)
{
get_grid_area_ug(npts, lon, lat, area);
}

void get_grid_area_ug(const int *npts, const double *lon, const double *lat, double *area)
void get_grid_area_ug(const int npts, const double *lon, const double *lat, double *area)
{
int nl, l, n_in, nv;
double x_in[20], y_in[20];

nl = *npts;
nl = npts;
nv = 4;

for(l=0; l<nl; l++) {
Expand All @@ -781,22 +781,22 @@ void get_grid_area_ug(const int *npts, const double *lon, const double *lat, dou
} /* get_grid_area_ug */


void get_grid_great_circle_area_(const int *nlon, const int *nlat, const double *lon, const double *lat, double *area)
void get_grid_great_circle_area_(const int nlon, const int nlat, const double *lon, const double *lat, double *area)
{
get_grid_great_circle_area(nlon, nlat, lon, lat, area);

}

void get_grid_great_circle_area(const int *nlon, const int *nlat, const double *lon, const double *lat, double *area)
void get_grid_great_circle_area(const int nlon, const int nlat, const double *lon, const double *lat, double *area)
{
int nx, ny, nxp, nyp, i, j;
int n0, n1, n2, n3;
struct Node *grid=NULL;
double *x=NULL, *y=NULL, *z=NULL;


nx = *nlon;
ny = *nlat;
nx = nlon;
ny = nlat;
nxp = nx + 1;
nyp = ny + 1;

Expand Down Expand Up @@ -827,20 +827,20 @@ void get_grid_great_circle_area(const int *nlon, const int *nlat, const double *

} /* get_grid_great_circle_area */

void get_grid_great_circle_area_ug_(const int *npts, const double *lon, const double *lat, double *area)
void get_grid_great_circle_area_ug_(const int npts, const double *lon, const double *lat, double *area)
{
get_grid_great_circle_area_ug(npts, lon, lat, area);

}

void get_grid_great_circle_area_ug(const int *npts, const double *lon, const double *lat, double *area)
void get_grid_great_circle_area_ug(const int npts, const double *lon, const double *lat, double *area)
{
int l, nl, nv;
int n0, n1, n2, n3;
struct Node *grid=NULL;
double *x=NULL, *y=NULL, *z=NULL;

nl = *npts;
nl = npts;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

likewise, n1 is not needed

nv = 4;

x = (double *)malloc(nl*nv*sizeof(double));
Expand Down Expand Up @@ -870,13 +870,13 @@ void get_grid_great_circle_area_ug(const int *npts, const double *lon, const dou

} /* get_grid_great_circle_area_ug */

void get_grid_area_dimensionless(const int *nlon, const int *nlat, const double *lon, const double *lat, double *area)
void get_grid_area_dimensionless(const int nlon, const int nlat, const double *lon, const double *lat, double *area)
{
int nx, ny, nxp, i, j, n_in;
double x_in[20], y_in[20];

nx = *nlon;
ny = *nlat;
nx = nlon;
ny = nlat;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nx, ny here too, not needed

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and for all the following functions :)

nxp = nx + 1;

for(j=0; j<ny; j++) for(i=0; i < nx; i++) {
Expand All @@ -896,13 +896,13 @@ void get_grid_area_dimensionless(const int *nlon, const int *nlat, const double



void get_grid_area_no_adjust(const int *nlon, const int *nlat, const double *lon, const double *lat, double *area)
void get_grid_area_no_adjust(const int nlon, const int nlat, const double *lon, const double *lat, double *area)
{
int nx, ny, nxp, i, j, n_in;
double x_in[20], y_in[20];

nx = *nlon;
ny = *nlat;
nx = nlon;
ny = nlat;
nxp = nx + 1;

for(j=0; j<ny; j++) for(i=0; i < nx; i++) {
Expand Down Expand Up @@ -1734,3 +1734,5 @@ int inside_edge(double x0, double y0, double x1, double y1, double x, double y)
return (product<=SMALL) ? 1:0;

} /* inside_edge */

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

extra lines


18 changes: 9 additions & 9 deletions grid_utils/grid_utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -110,11 +110,11 @@ double poly_area_dimensionless(const double x[], const double y[], int n);
double spherical_excess_area(const double* p_ll, const double* p_ul,
const double* p_lr, const double* p_ur, double radius);

void get_grid_area(const int *nlon, const int *nlat, const double *lon, const double *lat, double *area);
void get_grid_area(const int nlon, const int nlat, const double *lon, const double *lat, double *area);

void get_grid_great_circle_area(const int *nlon, const int *nlat, const double *lon, const double *lat, double *area);
void get_grid_great_circle_area(const int nlon, const int nlat, const double *lon, const double *lat, double *area);

void get_grid_area_no_adjust(const int *nlon, const int *nlat, const double *lon, const double *lat, double *area);
void get_grid_area_no_adjust(const int nlon, const int nlat, const double *lon, const double *lat, double *area);

int clip(const double lon_in[], const double lat_in[], int n_in, double ll_lon, double ll_lat,
double ur_lon, double ur_lat, double lon_out[], double lat_out[]);
Expand All @@ -127,16 +127,16 @@ int clip_2dx2d_great_circle(const double x1_in[], const double y1_in[], const do
const double x2_in[], const double y2_in[], const double z2_in [], int n2_in,
double x_out[], double y_out[], double z_out[]);

void get_grid_area_ug(const int *npts, const double *lon, const double *lat, double *area);
void get_grid_area_ug(const int npts, const double *lon, const double *lat, double *area);

void get_grid_great_circle_area_ug(const int *npts, const double *lon, const double *lat, double *area);
void get_grid_great_circle_area_ug(const int npts, const double *lon, const double *lat, double *area);

void get_grid_area_(const int *nlon, const int *nlat, const double *lon, const double *lat, double *area);
void get_grid_area_(const int nlon, const int nlat, const double *lon, const double *lat, double *area);

void get_grid_great_circle_area_(const int *nlon, const int *nlat, const double *lon, const double *lat, double *area);
void get_grid_great_circle_area_(const int nlon, const int nlat, const double *lon, const double *lat, double *area);

void get_grid_area_ug_(const int *npts, const double *lon, const double *lat, double *area);
void get_grid_area_ug_(const int npts, const double *lon, const double *lat, double *area);

void get_grid_great_circle_area_ug_(const int *npts, const double *lon, const double *lat, double *area);
void get_grid_great_circle_area_ug_(const int npts, const double *lon, const double *lat, double *area);

#endif
5 changes: 3 additions & 2 deletions horiz_interp/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,15 @@ libhoriz_interp_la_SOURCES = \
horiz_interp.F90 \
horiz_interp_spherical.F90 \
horiz_interp_type.F90 \
create_xgrid_utils.c \
include/horiz_interp_bicubic.inc \
include/horiz_interp_bilinear.inc \
include/horiz_interp_conserve.inc \
include/horiz_interp.inc \
include/horiz_interp_spherical.inc \
include/horiz_interp_type.inc \
include/horiz_interp_bicubic_r4.fh \
include/horiz_interp_conserve_xgrid.h \
include/horiz_interp_conserve_xgrid.c \
include/create_xgrid.h \
include/horiz_interp_bilinear_r4.fh \
include/horiz_interp_conserve_r4.fh \
include/horiz_interp_r4.fh \
Expand Down Expand Up @@ -74,6 +74,7 @@ MODFILES = \
horiz_interp_bilinear_mod.$(FC_MODEXT) \
horiz_interp_conserve_mod.$(FC_MODEXT) \
horiz_interp_spherical_mod.$(FC_MODEXT) \
create_xgrid.$(FC_MODEXT) \
horiz_interp_mod.$(FC_MODEXT)
nodist_include_HEADERS = $(MODFILES)
BUILT_SOURCES = $(MODFILES)
Expand Down
Loading
Loading