1 double precision function smooth ( x, y, dy, npoint, s, v, a )
71 integer npoint, i,npm1
72 double precision a(npoint,4),dy(npoint),s,v(npoint,7),
74 & ,change,ooss,oosf,
p,prevsf,prevq,q,sfq,sixp,six1mp,utru
76 if (s .gt. 0.0d+00)
go to 20
78 call chol1d(
p,v,a(1,4),npoint,1,a(1,3),a(1,1))
82 call chol1d(
p,v,a(1,4),npoint,1,a(1,3),a(1,1))
85 21 sfq = sfq + (a(i,1)*dy(i))**2
87 if (sfq .le. s)
go to 60
90 25 utru = utru + v(i-1,4)*(a(i-1,3)*(a(i-1,3)+a(i,3))+a(i,3)**2)
91 ooss = 1.0d+00/dsqrt(s)
92 oosf = 1.0d+00/dsqrt(sfq)
93 q = -(oosf-ooss)*sfq/(6.0d+00*utru*oosf)
98 30
call chol1d(q/(1.0d+00+q),v,a(1,4),npoint,1,a(1,3),a(1,1))
101 35 sfq = sfq + (a(i,1)*dy(i))**2
102 sfq = sfq*36.0d+00/(1.0d+00+q)**2
103 if (dabs(sfq-s) .le. 0.01d+00*s)
go to 59
104 oosf = 1.0d+00/dsqrt(sfq)
105 change = (q-prevq)/(oosf-prevsf)*(oosf-ooss)
121 61 a(i,1) =
y(i) - 6.0d+00 * ( 1.0d+00 -
p ) *dy(i)**2*a(i,1)
124 62 a(i,3) = a(i,3)*sixp
127 a(i,4) = (a(i+1,3)-a(i,3))/v(i,4)
128 63 a(i,2) = (a(i+1,1)-a(i,1))/v(i,4)
129 & - (a(i,3)+a(i,4)/3.0d+00*v(i,4))/2.0d+00*v(i,4)
double precision function smooth(x, y, dy, npoint, s, v, a)
subroutine chol1d(p, v, qty, npoint, ncol, u, qu)
subroutine setupq(x, dx, y, npoint, v, qty)