8 #include "sll_assert.h"
36 real(
wp),
allocatable :: knots(:)
39 procedure(i_fun_find_cell),
deferred :: find_cell
40 procedure(i_sub_eval_basis),
deferred :: eval_basis
41 procedure(i_sub_eval_deriv),
deferred :: eval_deriv
42 procedure(i_sub_eval_basis_and_n_derivs),
deferred :: eval_basis_and_n_derivs
55 sll_pure
function i_fun_find_cell(self, x)
result(icell)
58 real(
wp),
intent(in) :: x
60 end function i_fun_find_cell
71 sll_pure
subroutine i_sub_eval_basis(self, x, values, jmin)
74 real(
wp),
intent(in) :: x
75 real(
wp),
intent(out) :: values(:)
76 integer,
intent(out) :: jmin
77 end subroutine i_sub_eval_basis
88 sll_pure
subroutine i_sub_eval_deriv(self, x, derivs, jmin)
91 real(
wp),
intent(in) :: x
92 real(
wp),
intent(out) :: derivs(:)
93 integer,
intent(out) :: jmin
94 end subroutine i_sub_eval_deriv
106 sll_pure
subroutine i_sub_eval_basis_and_n_derivs(self, x, n, derivs, jmin)
109 real(
wp),
intent(in) :: x
110 integer,
intent(in) :: n
111 real(
wp),
intent(out) :: derivs(:, :)
112 integer,
intent(out) :: jmin
113 end subroutine i_sub_eval_basis_and_n_derivs
Find which grid cell contains the given point.
Abstract class for B-splines of arbitrary degree.
integer, parameter wp
Working precision.
Module to select the kind parameter.
integer, parameter, public f64
f64 is the kind type for 64-bit reals (double precision)
Abstract type, B-splines.