1 subroutine difequ ( mode, xx, v )
25 integer mode, i,iside,itermx,k,kmax,kpm,l,m,ncoef,npiece
26 parameter(npiece=100, kmax=20, ncoef=npiece*kmax)
27 double precision v(kmax),xx,
28 & break,coef,eps,ep1,ep2,error,factor,
ppvalu,rho,solutn
30 common /approx/ break(npiece),coef(ncoef),l,kpm
31 common /side/ m,iside,xside(10)
32 common /other/ itermx,k,rho(kmax-1)
33 save eps,factor,s2ovep
38 go to (10,20,30,40),mode
48 499
format(
' carrier,s nonlinear perturb. problem')
51 610
format(
' eps ',e20.10)
53 factor = (dsqrt(2.0d+00) + dsqrt(3.0d+00))**2
54 s2ovep = dsqrt(2.0d+00/eps)
72 un =
ppvalu(break,coef,l,kpm,xx,0)
74 v(4) = un**2 + 1.0d+00
82 go to (31,32,39),iside
96 640
format(
' x, g(x) and g(x)-f(x) at selected points')
99 ep1 = exp(s2ovep*(1.0d+00-
x))*factor
100 ep2 = exp(s2ovep*(1.0d+00+
x))*factor
101 solutn = 12.0d+00/(1.0d+00+ep1)**2*ep1
102 & + 12.0d+00/(1.0d+00+ep2)**2*ep2 - 1.0d+00
103 error = solutn -
ppvalu(break,coef,l,kpm,
x,0)
104 print 641,
x,solutn,error
106 41
x =
x + 0.03125d+00
double precision function ppvalu(break, coef, l, k, x, jderiv)
subroutine difequ(mode, xx, v)