FMS 2025.01-dev
Flexible Modeling System
Loading...
Searching...
No Matches
grid_utils.c File Reference

(9c24e8bf1b1e155b757115d031fe5e4dabb6d6a9)

Error handling and other general utilities for mosaic_mod. More...

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include "grid_utils.h"
#include "tree_utils.h"
#include "constant.h"
Include dependency graph for grid_utils.c:

Go to the source code of this file.

Functions

double avgval_double (int size, const double *data)
 
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[])
 
int clip_2dx2d (const double lon1_in[], const double lat1_in[], int n1_in, const double lon2_in[], const double lat2_in[], int n2_in, double lon_out[], double lat_out[])
 
int clip_2dx2d_great_circle (const double x1_in[], const double y1_in[], const double z1_in[], int n1_in, const double x2_in[], const double y2_in[], const double z2_in[], int n2_in, double x_out[], double y_out[], double z_out[])
 
int delete_vtx (double x[], double y[], int n, int n_del)
 
double dot (const double *p1, const double *p2)
 
void error_handler (const char *msg)
 
int fix_lon (double x[], double y[], int n, double tlon)
 
double get_global_area (void)
 
double get_global_area_ (void)
 
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_area_dimensionless (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_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 (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_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)
 
double great_circle_area (int n, const double *x, const double *y, const double *z)
 
double great_circle_distance (double *p1, double *p2)
 
int insert_vtx (double x[], double y[], int n, int n_ins, double lon_in, double lat_in)
 
int inside_a_polygon (double *lon1, double *lat1, int *npts, double *lon2, double *lat2)
 
int inside_a_polygon_ (double *lon1, double *lat1, int *npts, double *lon2, double *lat2)
 
int inside_edge (double x0, double y0, double x1, double y1, double x, double y)
 
int intersect_tri_with_line (const double *plane, const double *l1, const double *l2, double *p, double *t)
 
int invert_matrix_3x3 (long double m[], long double m_inv[])
 
void latlon2xyz (int size, const double *lon, const double *lat, double *x, double *y, double *z)
 
int line_intersect_2D_3D (double *a1, double *a2, double *q1, double *q2, double *q3, double *intersect, double *u_a, double *u_q, int *inbound)
 
double maxval_double (int size, const double *data)
 
double metric (const double *p)
 
double minval_double (int size, const double *data)
 
void mult (long double m[], long double v[], long double out_v[])
 
void normalize_vect (double *e)
 
double poly_area (const double x[], const double y[], int n)
 
double poly_area_dimensionless (const double x[], const double y[], int n)
 
double poly_area_no_adjust (const double x[], const double y[], int n)
 
double poly_ctrlat (const double x[], const double y[], int n)
 
double poly_ctrlon (const double x[], const double y[], int n, double clon)
 
double spherical_angle (const double *v1, const double *v2, const double *v3)
 
double spherical_excess_area (const double *p_ll, const double *p_ul, const double *p_lr, const double *p_ur, double radius)
 
void unit_vect_latlon (int size, const double *lon, const double *lat, double *vlon, double *vlat)
 
void v_print (double x[], double y[], int n)
 
void vect_cross (const double *p1, const double *p2, double *e)
 
void xyz2latlon (int np, const double *x, const double *y, const double *z, double *lon, double *lat)
 

Detailed Description

Error handling and other general utilities for mosaic_mod.

Definition in file grid_utils.c.

Function Documentation

◆ avgval_double()

double avgval_double ( int  size,
const double *  data 
)

Definition at line 93 of file grid_utils.c.

◆ clip()

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[] 
)

Definition at line 929 of file grid_utils.c.

◆ clip_2dx2d()

int clip_2dx2d ( const double  lon1_in[],
const double  lat1_in[],
int  n1_in,
const double  lon2_in[],
const double  lat2_in[],
int  n2_in,
double  lon_out[],
double  lat_out[] 
)

Definition at line 1036 of file grid_utils.c.

◆ clip_2dx2d_great_circle()

int clip_2dx2d_great_circle ( const double  x1_in[],
const double  y1_in[],
const double  z1_in[],
int  n1_in,
const double  x2_in[],
const double  y2_in[],
const double  z2_in[],
int  n2_in,
double  x_out[],
double  y_out[],
double  z_out[] 
)

Definition at line 1115 of file grid_utils.c.

◆ delete_vtx()

int delete_vtx ( double  x[],
double  y[],
int  n,
int  n_del 
)

Definition at line 154 of file grid_utils.c.

◆ dot()

double dot ( const double *  p1,
const double *  p2 
)

Definition at line 346 of file grid_utils.c.

◆ error_handler()

void error_handler ( const char *  msg)

Definition at line 41 of file grid_utils.c.

◆ fix_lon()

int fix_lon ( double  x[],
double  y[],
int  n,
double  tlon 
)

Definition at line 187 of file grid_utils.c.

◆ get_global_area()

double get_global_area ( void  )

Definition at line 536 of file grid_utils.c.

◆ get_global_area_()

double get_global_area_ ( void  )

Definition at line 544 of file grid_utils.c.

◆ get_grid_area()

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

Definition at line 727 of file grid_utils.c.

◆ get_grid_area_()

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

Definition at line 722 of file grid_utils.c.

◆ get_grid_area_dimensionless()

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

Definition at line 874 of file grid_utils.c.

◆ get_grid_area_no_adjust()

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

Definition at line 900 of file grid_utils.c.

◆ get_grid_area_ug()

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

Definition at line 761 of file grid_utils.c.

◆ get_grid_area_ug_()

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

Definition at line 756 of file grid_utils.c.

◆ get_grid_great_circle_area()

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

Definition at line 791 of file grid_utils.c.

◆ get_grid_great_circle_area_()

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

Definition at line 785 of file grid_utils.c.

◆ get_grid_great_circle_area_ug()

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

Definition at line 837 of file grid_utils.c.

◆ get_grid_great_circle_area_ug_()

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

Definition at line 831 of file grid_utils.c.

◆ great_circle_area()

double great_circle_area ( int  n,
const double *  x,
const double *  y,
const double *  z 
)

Definition at line 649 of file grid_utils.c.

◆ great_circle_distance()

double great_circle_distance ( double *  p1,
double *  p2 
)

Definition at line 266 of file grid_utils.c.

◆ insert_vtx()

int insert_vtx ( double  x[],
double  y[],
int  n,
int  n_ins,
double  lon_in,
double  lat_in 
)

Definition at line 164 of file grid_utils.c.

◆ inside_a_polygon()

int inside_a_polygon ( double *  lon1,
double *  lat1,
int *  npts,
double *  lon2,
double *  lat2 
)

Definition at line 481 of file grid_utils.c.

◆ inside_a_polygon_()

int inside_a_polygon_ ( double *  lon1,
double *  lat1,
int *  npts,
double *  lon2,
double *  lat2 
)

Definition at line 525 of file grid_utils.c.

◆ inside_edge()

int inside_edge ( double  x0,
double  y0,
double  x1,
double  y1,
double  x,
double  y 
)

Definition at line 1729 of file grid_utils.c.

◆ intersect_tri_with_line()

int intersect_tri_with_line ( const double *  plane,
const double *  l1,
const double *  l2,
double *  p,
double *  t 
)

Definition at line 404 of file grid_utils.c.

◆ invert_matrix_3x3()

int invert_matrix_3x3 ( long double  m[],
long double  m_inv[] 
)

Definition at line 455 of file grid_utils.c.

◆ latlon2xyz()

void latlon2xyz ( int  size,
const double *  lon,
const double *  lat,
double *  x,
double *  y,
double *  z 
)

Definition at line 111 of file grid_utils.c.

◆ line_intersect_2D_3D()

int line_intersect_2D_3D ( double *  a1,
double *  a2,
double *  q1,
double *  q2,
double *  q3,
double *  intersect,
double *  u_a,
double *  u_q,
int *  inbound 
)

Definition at line 1494 of file grid_utils.c.

◆ maxval_double()

double maxval_double ( int  size,
const double *  data 
)

Definition at line 56 of file grid_utils.c.

◆ metric()

double metric ( const double *  p)

Definition at line 354 of file grid_utils.c.

◆ minval_double()

double minval_double ( int  size,
const double *  data 
)

Definition at line 75 of file grid_utils.c.

◆ mult()

void mult ( long double  m[],
long double  v[],
long double  out_v[] 
)

Definition at line 445 of file grid_utils.c.

◆ normalize_vect()

void normalize_vect ( double *  e)

Definition at line 358 of file grid_utils.c.

◆ poly_area()

double poly_area ( const double  x[],
const double  y[],
int  n 
)

Definition at line 552 of file grid_utils.c.

◆ poly_area_dimensionless()

double poly_area_dimensionless ( const double  x[],
const double  y[],
int  n 
)

Definition at line 616 of file grid_utils.c.

◆ poly_area_no_adjust()

double poly_area_no_adjust ( const double  x[],
const double  y[],
int  n 
)

Definition at line 584 of file grid_utils.c.

◆ poly_ctrlat()

double poly_ctrlat ( const double  x[],
const double  y[],
int  n 
)

Definition at line 1641 of file grid_utils.c.

◆ poly_ctrlon()

double poly_ctrlon ( const double  x[],
const double  y[],
int  n,
double  clon 
)

Definition at line 1672 of file grid_utils.c.

◆ spherical_angle()

double spherical_angle ( const double *  v1,
const double *  v2,
const double *  v3 
)

Definition at line 290 of file grid_utils.c.

◆ spherical_excess_area()

double spherical_excess_area ( const double *  p_ll,
const double *  p_ul,
const double *  p_lr,
const double *  p_ur,
double  radius 
)

Definition at line 682 of file grid_utils.c.

◆ unit_vect_latlon()

void unit_vect_latlon ( int  size,
const double *  lon,
const double *  lat,
double *  vlon,
double *  vlat 
)

Definition at line 374 of file grid_utils.c.

◆ v_print()

void v_print ( double  x[],
double  y[],
int  n 
)

Definition at line 178 of file grid_utils.c.

◆ vect_cross()

void vect_cross ( const double *  p1,
const double *  p2,
double *  e 
)

Definition at line 331 of file grid_utils.c.

◆ xyz2latlon()

void xyz2latlon ( int  np,
const double *  x,
const double *  y,
const double *  z,
double *  lon,
double *  lat 
)

Definition at line 127 of file grid_utils.c.