Interpolate_cubic1DFd1d2 (real, intent (in) :: a (1:4), real, intent (in) :: x)
Calculates the function value and the rescaled 1st and 2nd derivative value for a single [x] rescaled [0,1] coordinate and the 4 monocubic expansion coefficients. The monocubic expansion reads, for one line, in terms of the rescaled [0,1] x coordinate: 3 i F (x) = sum a (i) x i=0 The location index of the a (i) inside the 4-dimensional vector is: location index of a (i) = 1 + i The rescaled derivatives are given by the general formula: r r 3 i-r d / dx = sum (i) * a (i) * x i=r r where the Pochhammer symbols are defined as: (i) = i * (i-1) * (i-2) * ... * (i-r+1) r From the derivative formula we see, that the highest non-zero derivative is of 3-rd order.
a (i) : the i-th monocubic expansion coefficient x : rescaled [0,1] x coordinate
1) The function is defined as a real array of size 3: Interpolate_cubic1DFd1d2 (1) = the function value Interpolate_cubic1DFd1d2 (2) = the rescaled d/dx value Interpolate_cubic1DFd1d2 (3) = the rescaled d2/dx2 value 2) The code checks, if the supplied coordinate [x] is rescaled.