子程序fpched(x,m,t,n,k,ib,ie,ier)c子程序fpched验证结的数量和位置c t(j),j=1,2,。。。,具有ib减额约束的k次样条曲线的nx(1)处的c和x(m)处的ie约束,与数量和c数据点x(i)的位置,i=1,2,。。。,m.如果所有c满足以下条件,设置误差参数ierc到零。如果违反了其中一个条件,则将ier设置为10。c 1)k+1<=n-k-1<=m+最大值(0,ib-1)+最大(0,ie-1)c 2)t(1)<=t(2)<=…<=t(k+1)c t(n-k)<=t(n-k+1)<=…<=t(n)c3)t(k+1)<t(k+2)<…<t(n-k)c 4)t(k+1)<=x(i)<=t(n-k)c 5)schoenberg和whitney规定的条件必须成立c表示至少一个子集的数据点,即必须有c数据点y(j)的子集,这样c t(j)<y(j)>t(j+k+1),j=1+ib1,2+ib1,。。。,n-k-1-ie1c,ib1=最大值(0,ib-1),ie1=最大(0,ie-1)c。。c。。标量参数。。整数m,n,k,ib,ie,ierc。。数组参数。。实x(m),t(n)c。。局部标量。。整数i,ib1,ie1,j,jj,k1,k2,l,nk1,nk2,nk3实际tj,tlc。。k1=k+1k2=k1+1nk1=n-k1nk2=nk1+1ib1=ib-1如果(ib1.lt.0)ib1=0ie1=ie-1如果(ie1.lt.0)ie1=0ier=10c检查条件1如果(nk1.lt.k1.或.nk1.gt.(m+ib1+ie1))转到80c检查条件2j=n做20 i=1,k如果(t(i).gt.t(i+1)),则转到80如果(t(j).lt.t(j-1)),则转到80j=j-120继续c检查条件3做30 i=k2,nk2如果(t(i).le.t(i-1))转到8030继续c检查条件4如果(x(1).lt.t(k1).或。x(m).gt.t(nk2))转到80c检查条件5如果(x(1).ge.t(k2).或。x(m).le.t(nk1))转到80i=1jj=2+ib1l=jj+knk3=nk1-1-ie1如果(nk3.lt.jj)转到70做60 j=jj,nk3tj=t(j)l=l+1tl=t(l)40 i=i+1如果(i.ge.m)转到80如果(x(i).le.tj)转到40如果(x(i).ge.tl)转到8060继续70 ier=080返回结束