Evaluate all the outputs of a bspline_3d with multiple outputs. This is a wrapper for db3val (multiple-output version).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bspline_3d), | 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. |
||
| 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. |
||
| real(kind=wp), | intent(out), | dimension(:) | :: | f |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag (see db3val) |
pure subroutine evaluate_3d_multi(me,xval,yval,zval,idx,idy,idz,f,iflag) implicit none class(bspline_3d),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. 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. real(wp),dimension(:),intent(out) :: f !! `(nf)` interpolated values of the outputs !! (see [[number_of_outputs]]) integer(ip),intent(out) :: iflag !! status flag (see [[db3val]]) if (me%initialized) then call db3val(xval,yval,zval,idx,idy,idz,me%tx,me%ty,me%tz,& me%nx,me%ny,me%nz,me%kx,me%ky,me%kz,& me%bcoef,f,iflag,me%inbvx,me%iloy,me%iloz,& me%work_val_1,me%work_val_2,extrap=me%extrap) else f = 0.0_wp iflag = 1_ip end if me%iflag = iflag end subroutine evaluate_3d_multi