Module containing the implementation of BSG interpolations.
Evaluates the local starting point for equidistant grids
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bsg_interpolation_t), | intent(in) | :: | this |
Instanse of the type |
||
| real(kind=GP), | intent(in) | :: | x |
Location of interpolation |
||
| integer, | intent(in) | :: | xlb |
Lower bound of x array |
||
| real(kind=GP), | intent(in) | :: | x1 |
Value of x at lower bound |
||
| real(kind=GP), | intent(in) | :: | dx |
Grid spacing of the x array |
Initializes the interpolation class
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bsg_interpolation_t), | intent(inout) | :: | this |
Instance of the type |
||
| integer, | intent(in) | :: | interp_order |
Order of interpolation |
Evaluates the local start and end indices for interpolation
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bsg_interpolation_t), | intent(inout) | :: | this |
Instance of the type |
||
| real(kind=GP), | intent(in) | :: | x |
Location of interpolation point |
||
| real(kind=GP), | intent(in), | dimension(:) | :: | x_values |
Locations of data points |
|
| integer, | intent(out) | :: | start_idx |
Start index of xarray required for interpolation |
||
| integer, | intent(out) | :: | end_idx |
End index of xarray required for interpolation |
Performs interpolation
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bsg_interpolation_t), | intent(inout) | :: | this |
Instance of the type |
||
| real(kind=GP), | intent(in), | dimension(:) | :: | x_values |
Locations of data points |
|
| real(kind=GP), | intent(in), | dimension(:) | :: | y_values |
Values at the data points |
|
| real(kind=GP), | intent(in), | dimension(:) | :: | coeff |
Coefficients of the interpolation |
|
| real(kind=GP), | intent(in) | :: | x |
Location of interpolation point |
||
| real(kind=GP), | intent(out) | :: | y_interp |
Interpolated value at x |
Evaluates the coefficients for interpolation
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bsg_interpolation_t), | intent(inout) | :: | this |
Instance of the type |
||
| real(kind=GP), | intent(in), | dimension(:) | :: | x_values |
Locations of data points |
|
| real(kind=GP), | intent(out), | dimension(:) | :: | coeff |
Coefficients of the interpolation |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(equidistant_interpolation_t), | intent(inout) | :: | this | |||
| real(kind=GP), | intent(in) | :: | x | |||
| real(kind=GP), | intent(in), | dimension(:) | :: | x_values | ||
| integer, | intent(out) | :: | start_idx | |||
| integer, | intent(out) | :: | end_idx |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(equidistant_interpolation_t), | intent(inout) | :: | this | |||
| real(kind=GP), | intent(in), | dimension(:) | :: | x_values | ||
| real(kind=GP), | intent(in), | dimension(:) | :: | y_values | ||
| real(kind=GP), | intent(in), | dimension(:) | :: | coeff | ||
| real(kind=GP), | intent(in) | :: | x | |||
| real(kind=GP), | intent(out) | :: | y_interp |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(equidistant_interpolation_t), | intent(inout) | :: | this | |||
| real(kind=GP), | intent(in), | dimension(:) | :: | x_values | ||
| real(kind=GP), | intent(out), | dimension(:) | :: | coeff |
Abstract base type for the implementation of BSG interpolation.
| procedure, public :: initialize | |
| procedure, public :: eval_lsp_equidistant | |
| procedure(eval_local_index_interface), public, deferred :: eval_local_index | |
| procedure(eval_coeff_interface), public, deferred :: eval_coeff | |
| procedure(interpolate_interface), public, deferred :: interpolate | |
| procedure, public :: get_interpolation_order |
Type implementing the equidistant interpolation
| procedure, public :: initialize | |
| procedure, public :: eval_lsp_equidistant | |
| procedure, public :: get_interpolation_order | |
| procedure, public :: eval_local_index => eval_local_index_equidistant | |
| procedure, public :: interpolate => interpolate_equidistant | |
| procedure, public :: eval_coeff => eval_coeff_equidistant |
Returns the order of interpolation
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bsg_interpolation_t), | intent(in) | :: | this |
Instance of the type |