evaluate_6d_multi Subroutine

private pure subroutine evaluate_6d_multi(me, xval, yval, zval, qval, rval, sval, idx, idy, idz, idq, idr, ids, f, iflag)

Evaluate all the outputs of a bspline_6d with multiple outputs. This is a wrapper for db6val (multiple-output version).

Type Bound

bspline_6d

Arguments

Type IntentOptional Attributes Name
class(bspline_6d), intent(inout) :: me

the spline

real(kind=wp), intent(in) :: xval

coordinate of evaluation point.

real(kind=wp), intent(in) :: yval

coordinate of evaluation point.

real(kind=wp), intent(in) :: zval

coordinate of evaluation point.

real(kind=wp), intent(in) :: qval

coordinate of evaluation point.

real(kind=wp), intent(in) :: rval

coordinate of evaluation point.

real(kind=wp), intent(in) :: sval

coordinate of evaluation point.

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

derivative of piecewise polynomial to evaluate.

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

derivative of piecewise polynomial to evaluate.

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

derivative of piecewise polynomial to evaluate.

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

derivative of piecewise polynomial to evaluate.

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

derivative of piecewise polynomial to evaluate.

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

derivative of piecewise polynomial to evaluate.

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

(nf) interpolated values of the outputs (see number_of_outputs)

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

status flag (see db6val)


Calls

proc~~evaluate_6d_multi~~CallsGraph proc~evaluate_6d_multi bspline_6d%evaluate_6d_multi interface~db6val db6val proc~evaluate_6d_multi->interface~db6val proc~db6val_default db6val_default interface~db6val->proc~db6val_default proc~db6val_multi db6val_multi interface~db6val->proc~db6val_multi proc~check_value check_value proc~db6val_default->proc~check_value proc~dbvalu_weights dbvalu_weights proc~db6val_default->proc~dbvalu_weights proc~db6val_multi->proc~check_value proc~db6val_multi->proc~dbvalu_weights proc~dintrv dintrv proc~dbvalu_weights->proc~dintrv proc~get_temp_x_for_extrap get_temp_x_for_extrap proc~dintrv->proc~get_temp_x_for_extrap

Source Code

    pure subroutine evaluate_6d_multi(me,xval,yval,zval,qval,rval,sval,idx,idy,idz,idq,idr,ids,f,iflag)

    implicit none

    class(bspline_6d),intent(inout) :: me  !! the spline
    real(wp),intent(in) :: xval  !! \(x\) coordinate of evaluation point.
    real(wp),intent(in) :: yval  !! \(y\) coordinate of evaluation point.
    real(wp),intent(in) :: zval  !! \(z\) coordinate of evaluation point.
    real(wp),intent(in) :: qval  !! \(q\) coordinate of evaluation point.
    real(wp),intent(in) :: rval  !! \(r\) coordinate of evaluation point.
    real(wp),intent(in) :: sval  !! \(s\) coordinate of evaluation point.
    integer(ip),intent(in) :: idx  !! \(x\) derivative of piecewise polynomial to evaluate.
    integer(ip),intent(in) :: idy  !! \(y\) derivative of piecewise polynomial to evaluate.
    integer(ip),intent(in) :: idz  !! \(z\) derivative of piecewise polynomial to evaluate.
    integer(ip),intent(in) :: idq  !! \(q\) derivative of piecewise polynomial to evaluate.
    integer(ip),intent(in) :: idr  !! \(r\) derivative of piecewise polynomial to evaluate.
    integer(ip),intent(in) :: ids  !! \(s\) derivative of piecewise polynomial to evaluate.
    real(wp),dimension(:),intent(out) :: f  !! `(nf)` interpolated values of the outputs
                                            !! (see [[number_of_outputs]])
    integer(ip),intent(out) :: iflag  !! status flag (see [[db6val]])

    if (me%initialized) then
        call db6val(xval,yval,zval,qval,rval,sval,idx,idy,idz,idq,idr,ids,me%tx,me%ty,me%tz,me%tq,me%tr,me%ts,&
                    me%nx,me%ny,me%nz,me%nq,me%nr,me%ns,me%kx,me%ky,me%kz,me%kq,me%kr,me%ks,&
                    me%bcoef,f,iflag,me%inbvx,me%iloy,me%iloz,me%iloq,me%ilor,me%ilos,&
                    me%work_val_1,me%work_val_2,me%work_val_3,me%work_val_4,me%work_val_5,extrap=me%extrap)
    else
        f = 0.0_wp
        iflag = 1_ip
    end if
    me%iflag = iflag

    end subroutine evaluate_6d_multi