evaluate_1d Subroutine

private pure subroutine evaluate_1d(me, xval, idx, f, iflag)

Evaluate a bspline_1d interpolate. This is a wrapper for db1val.

Type Bound

bspline_1d

Arguments

Type IntentOptional Attributes Name
class(bspline_1d), intent(inout) :: me
real(kind=wp), intent(in) :: xval

coordinate of evaluation point.

integer(kind=ip), intent(in) :: idx

derivative of piecewise polynomial to evaluate.

real(kind=wp), intent(out) :: f

interpolated value

integer(kind=ip), intent(out) :: iflag

status flag (see db1val)


Calls

proc~~evaluate_1d~~CallsGraph proc~evaluate_1d bspline_oo_module::bspline_1d%evaluate_1d interface~db1val bspline_sub_module::db1val proc~evaluate_1d->interface~db1val proc~db1val_alt bspline_sub_module::db1val_alt interface~db1val->proc~db1val_alt proc~db1val_default bspline_sub_module::db1val_default interface~db1val->proc~db1val_default proc~check_value bspline_sub_module::check_value proc~db1val_alt->proc~check_value proc~dbvalu bspline_sub_module::dbvalu proc~db1val_alt->proc~dbvalu proc~db1val_default->proc~check_value proc~db1val_default->proc~dbvalu proc~dintrv bspline_sub_module::dintrv proc~dbvalu->proc~dintrv proc~get_temp_x_for_extrap bspline_sub_module::get_temp_x_for_extrap proc~dintrv->proc~get_temp_x_for_extrap

Source Code

    pure subroutine evaluate_1d(me,xval,idx,f,iflag)

    implicit none

    class(bspline_1d),intent(inout) :: me
    real(wp),intent(in)             :: xval  !! \(x\) coordinate of evaluation point.
    integer(ip),intent(in)          :: idx   !! \(x\) derivative of piecewise polynomial to evaluate.
    real(wp),intent(out)            :: f     !! interpolated value
    integer(ip),intent(out)         :: iflag !! status flag (see [[db1val]])

    if (me%initialized) then
        call db1val(xval,idx,me%tx,me%nx,me%kx,me%bcoef,f,iflag,&
                    me%inbvx,me%work_val_1,extrap=me%extrap)
    else
        iflag = 1_ip
    end if
    me%iflag = iflag

    end subroutine evaluate_1d