1      subroutine fprppo(nu,nv,if1,if2,cosi,ratio,c,f,ncoff)
2c  given the coefficients of a constrained bicubic spline, as determined
3c  in subroutine fppola, subroutine fprppo calculates the coefficients
4c  in the standard b-spline representation of bicubic splines.
5c  ..
6c  ..scalar arguments..
7      real*8 ratio
8      integer nu,nv,if1,if2,ncoff
9c  ..array arguments
10      real*8 c(ncoff),f(ncoff),cosi(5,nv)
11c  ..local scalars..
12      integer i,iopt,ii,j,k,l,nu4,nvv
13c  ..
14      nu4 = nu-4
15      nvv = nv-7
16      iopt = if1+1
17      do 10 i=1,ncoff
18         f(i) = 0.
19  10  continue
20      i = 0
21      do 120 l=1,nu4
22         ii = i
23         if(l.gt.iopt) go to 80
24         go to (20,40,60),l
25  20     do 30 k=1,nvv
26            i = i+1
27            f(i) = c(1)
28  30     continue
29         j = 1
30         go to 100
31  40     do 50 k=1,nvv
32            i = i+1
33            f(i) = c(1)+c(2)*cosi(1,k)+c(3)*cosi(2,k)
34  50     continue
35         j = 3
36         go to 100
37  60     do 70 k=1,nvv
38            i = i+1
39            f(i) = c(1)+ratio*(c(2)*cosi(1,k)+c(3)*cosi(2,k))+
40     *             c(4)*cosi(3,k)+c(5)*cosi(4,k)+c(6)*cosi(5,k)
41  70     continue
42         j = 6
43         go to 100
44  80     if(l.eq.nu4 .and. if2.ne.0) go to 120
45         do 90 k=1,nvv
46            i = i+1
47            j = j+1
48            f(i) = c(j)
49  90     continue
50 100     do 110 k=1,3
51            ii = ii+1
52            i = i+1
53            f(i) = f(ii)
54 110     continue
55 120  continue
56      do 130 i=1,ncoff
57         c(i) = f(i)
58 130  continue
59      return
60      end
61
62