34 #include "sll_working_precision.h"
55 sll_int32,
intent(in) :: nin, maxorder
56 sll_real64,
intent(in) :: xdata(0:nin - 1), ydata(0:nin - 1), xtgt
57 sll_real64,
intent(out) :: out(0:maxorder)
60 sll_real64 :: c(0:nin - 1, 0:maxorder)
63 forall (j=0:maxorder) out(j) = sum(c(0:, j)*ydata)
82 sll_real64,
intent(in) :: z
83 sll_int32,
intent(in) :: nd, m
84 sll_real64,
intent(in) :: x(0:nd)
85 sll_real64,
intent(out) :: c(0:nd, 0:m)
87 sll_int32 :: i, j, k, mn
88 sll_real64 :: c1, c2, c3, c4, c5
104 c(i, k) = c1*(real(k, kind=8)*c(i - 1, k - 1) - c5*c(i - 1, k))/c2
106 c(i, 0) = -c1*c5*c(i - 1, 0)/c2
109 c(j, k) = (c4*c(j, k) - real(k, kind=8)*c(j, k - 1))/c3
111 c(j, 0) = c4*c(j, 0)/c3
subroutine, public sll_s_apply_fd(nin, maxorder, xdata, ydata, xtgt, out)
Apply finite difference formula to compute derivative.
subroutine, public sll_s_populate_weights(z, x, nd, m, c)