1 SUBROUTINE getspline(amat, splnots, hk, delse, hs, indexs, isort,
4 USE vparams,
ONLY: zero, epstan
11 INTEGER,
DIMENSION(ndata0) :: indexs, isort
12 REAL(rprec),
DIMENSION(nots,ndata0) :: amat
13 REAL(rprec),
DIMENSION(nots) :: splnots, hk
14 REAL(rprec),
DIMENSION(ndata0) :: delse
18 INTEGER,
DIMENSION(nots) :: nk
19 INTEGER :: i, js, ia, k, k1, ib, j, nb
20 REAL(rprec),
DIMENSION(ndata0) :: w, w1, u, u1, snodes
21 REAL(rprec),
DIMENSION(nots,ndata0) :: bmat
40 snodes(i) = sqrt(hs*((js - 1) + delse(i)))
45 IF( snodes(ndata0) .gt. splnots(nots) )
46 1 snodes(ndata0) = splnots(nots)
48 CALL sort_data (snodes, isort, ndata0)
54 amat(:nots,:ndata0) = zero
55 bmat(:nots,:ndata0) = zero
61 CALL setup_int(splnots,snodes,hk,w,w1,u,u1,nk,nots,ndata0)
65 IF (nk(k) .gt. 0)
THEN
68 amat(k,ia:ib) = amat(k,ia:ib) + w(ia:ib)
69 bmat(k,ia:ib) = bmat(k,ia:ib) + u(ia:ib)
70 amat(k1,ia:ib) = amat(k1,ia:ib) + w1(ia:ib)
71 bmat(k1,ia:ib) = bmat(k1,ia:ib) + u1(ia:ib)
76 IF (ib .ne. ndata0) stop
'ib!=ndat'
81 CALL jacprod (bmat(1,j), hk, nots, nb)
82 amat(:nots,j) = amat(:nots,j) + bmat(:nots,j)
85 END SUBROUTINE getspline