3 subroutine cspeval(xget,iselect,fval,x,nx,ilinx,f,ier)
70 integer :: ia(1) = (/ 0 /)
75 call cspevx(xget,x,nx,ilinx,ia(1),dxa(1),ier)
78 call cspevfn(iselect,1,1,fval,ia,dxa,f,nx)
88 subroutine cspevx(xget,x,nx,ilinx,i,dx,ier)
114 if((xget.lt.x(1)).or.(xget.gt.x(nx)))
then
115 zxtol=4.0e-7*max(abs(x(1)),abs(x(nx)))
116 if((xget.lt.x(1)-zxtol).or.(xget.gt.x(nx)+zxtol))
then
118 write(6,1001) xget,x(1),x(nx)
119 1001
format(
' ?cspeval: xget=',1pe11.4,
' out of range ',
120 > 1pe11.4,
' to ',1pe11.4)
122 if((xget.lt.x(1)-0.5*zxtol).or.
123 > (xget.gt.x(nx)+0.5*zxtol))
124 >
write(6,1011) xget,x(1),x(nx)
125 1011
format(
' %cspeval: xget=',1pe15.8,
' beyond range ',
126 > 1pe15.8,
' to ',1pe15.8,
' (fixup applied)')
127 if(xget.lt.x(1))
then
141 ii=1+nxm*(zxget-x(1))/(x(nx)-x(1))
143 if(zxget.lt.x(i))
then
145 else if(zxget.gt.x(i+1))
then
149 if((1.le.i).and.(i.lt.nxm))
then
150 if((x(i).le.zxget).and.(zxget.le.x(i+1)))
then
153 call zonfind(x,nx,zxget,i)
157 call zonfind(x,nx,zxget,i)
168 subroutine cspevfn(ict,ivec,ivd,fval,iv,dxv,f,nx)
238 fval(v,iaval)=6.0*f(4,i)
250 fval(v,iaval)=f(1,i)+dx*(f(2,i)+dx*(f(3,i)+dx*f(4,i)))
260 fval(v,iaval)=f(2,i)+dx*(2.0*f(3,i)+dx*3.0*f(4,i))
270 fval(v,iaval)=2.0*f(3,i)+dx*6.0*f(4,i)