Blame view

fvn_fnlib/initds.f 911 Bytes
38581db0c   daniau   git-svn-id: https...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
        function initds (dos, nos, eta)
  c june 1977 edition.   w. fullerton, c3, los alamos scientific lab.
  c
  c initialize the double precision orthogonal series dos so that initds
  c is the number of terms needed to insure the error is no larger than
  c eta.  ordinarily eta will be chosen to be one-tenth machine precision.
  c
  c             input arguments --
  c dos    dble prec array of nos coefficients in an orthogonal series.
  c nos    number of coefficients in dos.
  c eta    requested accuracy of series.
  c
        double precision dos(nos)
  c
        if (nos.lt.1) call seteru (
       1  35hinitds  number of coefficients lt 1, 35, 2, 2)
  c
        err = 0.
        do 10 ii=1,nos
          i = nos + 1 - ii
          err = err + abs(sngl(dos(i)))
          if (err.gt.eta) go to 20
   10   continue
  c
   20   if (i.eq.nos) call seteru (28hinitds  eta may be too small, 28,
       1  1, 2)
        initds = i
  c
        return
        end