SPHERE_TRIANGLE_QUAD
Estimate Integrals over Spherical Triangles
SPHERE_TRIANGLE_QUAD
is a FORTRAN90 library which
estimates the integral of a scalar function
F(X,Y,Z) over a spherical triangle on the unit sphere.
Three methods of estimation are very crude and cannot be improved:

the centroid rule, based on a single function value.

the vertex rule, which averages the vertex values.

the midside rule, which averages the midside values.
One method of estimation uses random sampling, the Monte Carlo method,
whose accuracy can be improved by increasing the number of sample points.
Another method is based on the centroid rule, but allows the
user to decompose the original spherical triangle into collection
of smaller triangles. The accuracy of the estimate should improve
as the size of these triangles decreases.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
SPHERE_TRIANGLE_QUAD is available in
a C version and
a C++ version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
SPHERE_QUAD,
a FORTRAN90 library which
approximates an integral over the surface of the unit sphere
by applying a triangulation to the surface;
SPHERE_TRIANGLE_MONTE_CARLO,
a FORTRAN90 library which
estimates the integral of a function over a spherical triangle using the Monte Carlo method.
STRIPACK,
a FORTRAN90 library which
computes the Voronoi diagram or Delaunay
triangulation of pointsets on a sphere.
STROUD,
a FORTRAN90 library which
approximates the integral of a function on the surface or in the interior
of a variety of geometric shapes.
Reference:

Jacob Goodman, Joseph ORourke, editors,
Handbook of Discrete and Computational Geometry,
Second Edition,
CRC/Chapman and Hall, 2004,
ISBN: 1584883014,
LC: QA167.H36.
Source Code:
Examples and Tests:
List of Routines:

R8_ACOS computes the arc cosine function, with argument truncation.

R8_ASIN computes the arc sine function, with argument truncation.

R8_ATAN computes the inverse tangent of the ratio Y / X.

R8_UNIFORM_01 returns a unit pseudorandom R8.

R8VEC_NORM returns the L2 norm of an R8VEC.

R8VEC_POLARIZE decomposes an R8VEC into normal and parallel components.

R8VEC_TRANSPOSE_PRINT prints an R8VEC "transposed".

S_CAT concatenates two strings to make a third string.

SPHERE01_DISTANCE_XYZ computes great circle distances on a unit sphere.

SPHERE01_SAMPLE picks random points on the unit sphere in 3D.

SPHERE01_TRIANGLE_ANGLES_TO_AREA: area of a triangle on the unit sphere.

SPHERE01_TRIANGLE_PROJECT projects from plane to spherical triangle.

SPHERE01_TRIANGLE_PROJECT2 projects from plane to spherical triangle.

SPHERE01_TRIANGLE_QUAD_00: quadrature over a triangle on the unit sphere.

SPHERE01_TRIANGLE_QUAD_01: quadrature over a triangle on the unit sphere.

SPHERE01_TRIANGLE_QUAD_02: quadrature over a triangle on the unit sphere.

SPHERE01_TRIANGLE_QUAD_03: quadrature over a triangle on the unit sphere.

SPHERE01_TRIANGLE_QUAD_ICOS1C: centroid rule, subdivide then project.

SPHERE01_TRIANGLE_QUAD_ICOS1M: midpoint rule, subdivide then project.

SPHERE01_TRIANGLE_QUAD_ICOS1V: vertex rule, subdivide then project.

SPHERE01_TRIANGLE_QUAD_ICOS2V: vertex rule, subdivide then project.

SPHERE01_TRIANGLE_SAMPLE: sample spherical triangle on unit sphere.

SPHERE01_TRIANGLE_SIDES_TO_ANGLES: angles of triangle on unit sphere.

SPHERE01_TRIANGLE_VERTICES_TO_AREA: area of triangle on unit sphere.

SPHERE01_TRIANGLE_VERTICES_TO_CENTROID: centroid of triangle on unit sphere.

SPHERE01_TRIANGLE_VERTICES_TO_MIDPOINTS: midsides of triangle on unit sphere.

SPHERE01_TRIANGLE_VERTICES_TO_SIDES: sides of triangle on unit sphere.

TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the FORTRAN90 source codes.
Last revised on 23 April 2014.