24 lines
735 B
Fortran
24 lines
735 B
Fortran
SUBROUTINE bcuint(y,y1,y2,y12,x1l,x1u,x2l,x2u,x1,x2,ansy,ansy1,
|
|
*ansy2)
|
|
REAL ansy,ansy1,ansy2,x1,x1l,x1u,x2,x2l,x2u,y(4),y1(4),y12(4),
|
|
*y2(4)
|
|
CU USES bcucof
|
|
INTEGER i
|
|
REAL t,u,c(4,4)
|
|
call bcucof(y,y1,y2,y12,x1u-x1l,x2u-x2l,c)
|
|
if(x1u.eq.x1l.or.x2u.eq.x2l)pause 'bad input in bcuint'
|
|
t=(x1-x1l)/(x1u-x1l)
|
|
u=(x2-x2l)/(x2u-x2l)
|
|
ansy=0.
|
|
ansy2=0.
|
|
ansy1=0.
|
|
do 11 i=4,1,-1
|
|
ansy=t*ansy+((c(i,4)*u+c(i,3))*u+c(i,2))*u+c(i,1)
|
|
ansy2=t*ansy2+(3.*c(i,4)*u+2.*c(i,3))*u+c(i,2)
|
|
ansy1=u*ansy1+(3.*c(4,i)*t+2.*c(3,i))*t+c(2,i)
|
|
11 continue
|
|
ansy1=ansy1/(x1u-x1l)
|
|
ansy2=ansy2/(x2u-x2l)
|
|
return
|
|
END
|