V3FIT
gety2.f
1  SUBROUTINE gety2(y, y2, h, nots, nb)
2  USE vspline
3  IMPLICIT NONE
4 C-----------------------------------------------
5 C D u m m y A r g u m e n t s
6 C-----------------------------------------------
7  INTEGER nots, nb
8  REAL(rprec), DIMENSION(*) :: y, y2, h
9 C-----------------------------------------------
10 C L o c a l V a r i a b l e s
11 C-----------------------------------------------
12  INTEGER jmax
13  REAL(rprec), DIMENSION(nots) :: aspline, bspline, dspline
14 C-----------------------------------------------
15 
16  jspmin(1) = 2
17  IF (nb .eq. ideriv) jspmin(1) = 1
18  jmax = nots - 1
19  aspline(1) = h(1)
20  dspline(1) = 2.0*h(1)
21  y2(1) = 0.
22  y2(nots) = 0.
23  IF (nb .eq. ideriv) y2(1) = 6.0*(y(2)-y(1))/h(1)
24  aspline(2:jmax) = h(2:jmax)
25  bspline(2:jmax) = h(:jmax-1)
26  dspline(2:jmax) = 2.0*(h(2:jmax)+h(:jmax-1))
27  y2(2:jmax) = 6.0*((y(3:jmax+1)-y(2:jmax))/h(2:jmax)
28  1 -(y(2:jmax)-y(:jmax-1))/h(:jmax-1))
29 
30  CALL tridslv(aspline,dspline,bspline,y2,jspmin,jmax,0,nots,1)
31 
32  END SUBROUTINE gety2