Initialize a bspline_5d type with multiple outputs directly from its
knots and b-spline coefficients. The last dimension of bcoef is the
output index.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bspline_5d), | intent(inout) | :: | me |
the spline |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(in), | dimension(:) | :: | ty |
The |
|
| real(kind=wp), | intent(in), | dimension(:) | :: | tz |
The |
|
| real(kind=wp), | intent(in), | dimension(:) | :: | tq |
The |
|
| real(kind=wp), | intent(in), | dimension(:) | :: | tr |
The |
|
| real(kind=wp), | intent(in), | dimension(:,:,:,:,:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(in) | :: | kx |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | ky |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | kz |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | kq |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | kr |
The order of spline pieces in |
||
| integer(kind=ip), | intent(out) | :: | iflag |
status flag (see initialize_from_coefficients_5d),
or 6005 if |
||
| logical, | intent(in), | optional | :: | extrap |
if true, then extrapolation is allowed (default is false) |
pure subroutine initialize_from_coefficients_5d_multi(me,tx,ty,tz,tq,tr,bcoef,kx,ky,kz,kq,kr,iflag,extrap) implicit none class(bspline_5d),intent(inout) :: me !! the spline real(wp),dimension(:),intent(in) :: tx !! The `(nx+kx)` knots in the \(x\) direction. real(wp),dimension(:),intent(in) :: ty !! The `(ny+ky)` knots in the \(y\) direction. real(wp),dimension(:),intent(in) :: tz !! The `(nz+kz)` knots in the \(z\) direction. real(wp),dimension(:),intent(in) :: tq !! The `(nq+kq)` knots in the \(q\) direction. real(wp),dimension(:),intent(in) :: tr !! The `(nr+kr)` knots in the \(r\) direction. real(wp),dimension(:,:,:,:,:,:),intent(in) :: bcoef !! `(nx,ny,nz,nq,nr,nf)` array of b-spline coefficients integer(ip),intent(in) :: kx !! The order of spline pieces in \(x\) integer(ip),intent(in) :: ky !! The order of spline pieces in \(y\) integer(ip),intent(in) :: kz !! The order of spline pieces in \(z\) integer(ip),intent(in) :: kq !! The order of spline pieces in \(q\) integer(ip),intent(in) :: kr !! The order of spline pieces in \(r\) integer(ip),intent(out) :: iflag !! status flag (see [[initialize_from_coefficients_5d]]), !! or 6005 if `bcoef` has no outputs logical,intent(in),optional :: extrap !! if true, then extrapolation is allowed !! (default is false) if (size(bcoef,6,kind=ip)<1_ip) then ! no outputs call me%destroy() iflag = 6005_ip me%iflag = iflag return end if call me%initialize_from_coefficients(tx,ty,tz,tq,tr,bcoef(:,:,:,:,:,1),kx,ky,kz,kq,kr,iflag,extrap) if (iflag==0_ip) then me%bcoef = bcoef me%nf = size(bcoef,6,kind=ip) end if end subroutine initialize_from_coefficients_5d_multi