7 subroutine tpsplinb(x,inx,th,inth,ph,inph,fspl,inf4,inf5,
8 > ibcxmin,bcxmin,ibcxmax,bcxmax,inb1,
9 > wk,nwk,ilinx,ilinth,ilinph,ier)
12 integer inx,inth,inph,inf4,inf5,nwk,inb1
13 real x(inx),th(inth),ph(inph)
14 real fspl(4,4,4,inf4,inf5,inph),wk(nwk)
15 integer ibcxmin,ibcxmax
16 real bcxmin(inb1,inph),bcxmax(inb1,inph)
17 integer ilinx,ilinth,ilinph,ier
95 integer ierx,ierth,ierph
100 if(nwk.lt.5*max(inx,inth,inph))
then
101 write(6,
'('' ?tpsplinb: workspace too small.'')')
105 write(6,
'('' ?tpsplinb: at least 2 x points required.'')')
109 write(6,
'('' ?tpsplinb: need at least 2 theta points.'')')
113 write(6,
'('' ?tpsplinb: need at least 2 phi points.'')')
117 if((ibcxmin.eq.1).or.(ibcxmax.eq.1).or.(ibcxmin.eq.2).or.
118 > (ibcxmax.eq.2))
then
119 if(inb1.lt.inth)
then
122 >
'('.lt.
' ?tpsplinb: 1st dim of bcxmin/max arrays inth'')')
126 call ibc_ck(ibcxmin,
'tpsplinb',
'xmin',0,7,ier)
127 call ibc_ck(ibcxmax,
'tpsplinb',
'xmax',0,7,ier)
131 call splinck(x,inx,ilinx,1.0e-3,ierx)
135 write(6,
'('' ?tpsplinb: x axis not strict ascending'')')
140 call splinck(th,inth,ilinth,1.0e-3,ierth)
144 write(6,
'('' ?tpsplinb: theta axis not strict ascending'')')
149 call splinck(ph,inph,ilinph,1.0e-3,ierph)
153 write(6,
'('' ?tpsplinb: phi axis not strict ascending'')')
160 call tcspline(x,inx,th,inth,ph,inph,fspl,inf4,inf5,
161 > ibcxmin,bcxmin,ibcxmax,bcxmax,inb1,
162 > -1,zdumx,-1,zdumx,inx,
163 > -1,zdumx,-1,zdumx,inx,
164 > wk,nwk,ilinx,ilinth,ilinph,ier)