1!$Id:$
2      subroutine pside1(nr,xs,tr,side,is,ns,ndm,shp,rt, x, styp)
3
4!      * * F E A P * * A Finite Element Analysis Program
5
6!....  Copyright (c) 1984-2017: Regents of the University of California
7!                               All rights reserved
8
9!-----[--.----+----.----+----.-----------------------------------------]
10
11!     Purpose: Construct one dimensional side interpolation for coords.
12
13!     Inputs:
14!       nr        - Number of increments on side
15!       xs(3,*)   - Nodal values of interpolation function
16!       side      - side number (check sign)
17!       is(*)     - List of side nodes
18!       ns        - Order of Lagrange polynomial for side
19!       ndm       - Spatial dimension of mesh
20!       shp(*)    - Shape functions for nodal values
21!       rt(3,*)   - Temporary storage for polar coordinates
22!       styp      - Type of edge: 0 = Lagrange interpolation
23!                                 1 = Radius/angle interpolation
24
25!     Outputs:
26!       x(ndm,ip) - Coordinates of points
27
28!-----[--.----+----.----+----.-----------------------------------------]
29
30      implicit  none
31
32      include  'cdata.h'
33      include  'pointer.h'
34      include  'comblk.h'
35
36      integer   k,n, nr,ns,side,ndm, styp
37
38      integer   is(*)
39      real*8    xs(3,*), shp(*), rt(3,*), x(ndm,*), xx(3), tr(3,4)
40
41      save
42
43!     Lagrange interpolation
44
45      if(styp.eq.0) then
46
47        call interp1(nr,xs,side,is,ns,ndm,shp, x)
48
49!     R/theta interpolation
50
51      elseif(styp.eq.1) then
52
53        call arcint1(nr,xs,side,is,ns,ndm,shp, x,rt)
54
55!     R/theta interpolation
56
57      elseif(styp.eq.2) then
58
59        call segint1(xs,side,is,ns,ndm,shp, x)
60
61!     Eliptical interpolation
62
63      elseif(styp.eq.3) then
64
65        call elpint1(nr,xs,side,is,ns,ndm,shp, x,rt)
66
67      endif
68
69!     Transform to current frame
70
71      do n = 1,nr+1
72        do k = 1,ndm
73          xx(k) = x(k,n)
74        end do ! k
75        do k = 1,ndm
76          x(k,n) = tr(k,4)+tr(k,1)*xx(1)+tr(k,2)*xx(2)+tr(k,3)*xx(3)
77        end do ! k
78      end do ! n
79
80      end
81