TSG includes a FORTRAN90 library which demonstrates how a FORTRAN program can interface with the C++ TasmanianSparseGrid (TSG) package, which implements routines for working with sparse grids, to efficiently estimate integrals or compute interpolants of scalar functions of multidimensional arguments.
Note that the FORTRAN interface is incomplete and experimental.
TSG can create three kinds of rules:
TSG is a family of algorithms for constructing multidimensional quadrature and interpolation rules from tensor products of 1-dimensional versions of such rules.
TSG includes a large variety of 1-dimensional rules, which are generally defined, by default, over the interval [-1,+1]. In that case, the multidimensional quadrature and interpolation rules will be defined over the hypercube [-1,+1]^d, but a simple linear transformation can be carried out by TSG to redefine the linearly redefine the region.
The one-dimensional rules that can be used include:
The TasmanianSparseGrid library is available for download from http://tasmanian.ornl.gov/ .
The computer code and data files made available on this web page are distributed under the GNU GPL license.
TSG is available in a C++ version and a FORTRAN90 version and a MATLAB version.
SGMG, a FORTRAN90 library which creates a sparse grid dataset based on a mixed set of 1D factor rules, and experiments with the use of a linear growth rate for the quadrature rules.
SGMGA, a FORTRAN90 library which creates sparse grids based on a mixture of 1D quadrature rules, allowing anisotropic weights for each dimension.
SPARSE_GRID_CC, a FORTRAN90 library which creates sparse grids based on Clenshaw-Curtis rules.
SPARSE_GRID_HW, a FORTRAN90 library which creates sparse grids based on Gauss-Legendre, Gauss-Hermite, Gauss-Patterson, or a nested variation of Gauss-Hermite rules, by Florian Heiss and Viktor Winschel.
Miroslav Stoyanov, Oak Ridge National Laboratory, email@example.com.
TSG_PRB is a very simple program which calls a few of the TasmanianSparseGrids software library.
A number of support files are needed.
You can go up one level to the C++ source codes.