7 subroutine r8bpsplinb(x,inx,th,inth,fspl,inf3,
8 > ibcxmin,bcxmin,ibcxmax,bcxmax,
9 > wk,nwk,ilinx,ilinth,ier)
12 INTEGER,
PARAMETER :: R8=selected_real_kind(12,100)
13 integer inx,inth,inf3,nwk
14 real*8 x(inx),th(inth),fspl(4,4,inf3,inth),wk(nwk)
15 integer ibcxmin,ibcxmax
16 real*8 bcxmin(inth),bcxmax(inth)
47 integer ilinx,ilinth,ier
81 if(nwk.lt.5*max(inx,inth))
then
82 write(6,
'('' ?bpsplinb: workspace too small.'')')
86 write(6,
'('' ?bpsplinb: at least 2 x points required.'')')
90 write(6,
'('' ?bpsplinb: need at least 2 theta points.'')')
94 call ibc_ck(ibcxmin,
'bcspline',
'xmin',0,7,ier)
95 call ibc_ck(ibcxmax,
'bcspline',
'xmax',0,7,ier)
99 call r8splinck(x,inx,ilinx,1.0e-3_r8,ierx)
103 write(6,
'('' ?bpsplinb: x axis not strict ascending'')')
108 call r8splinck(th,inth,ilinth,1.0e-3_r8,ierth)
112 write(6,
'('' ?bpsplinb: th axis not strict ascending'')')
120 call r8bcspline(x,inx,th,inth,fspl,inf3,
121 > ibcxmin,bcxmin,ibcxmax,bcxmax,
123 > wk,nwk,ilinx,ilinth,ier)