28 integer i,j,nope,mint3d,indexe,ielem,kon(*),ipkon(*),
29 & iterms,k,iflag,nrhs,info,node,ipnt,
30 & mi(*),irow,ipoints,members(*),linpatch,ielidx,iavflag
32 real*8 xl(3,20),co(3,*),shp(4,20),
33 & pgauss(3),pol(20),pntdist,w,scpav(6,*),xsj,
34 & sti(6,mi(1),*),xi,et,ze,rv1(ipoints),pp(ipoints,iterms),
35 & pdat(ipoints,6),pfit(6),pwrk(iterms),pre(ipoints,iterms),
38 real*8 tmpstr(6),gauss3d5e(3,4)
67 if(lakon(ielem)(1:5).eq.
'C3D20')
then 72 if(lakon(ielem)(6:6).eq.
'R')
then 77 elseif(lakon(ielem)(1:4).eq.
'C3D8')
then 79 if(lakon(ielem)(5:5).eq.
'R')
then 84 elseif(lakon(ielem)(1:5).eq.
'C3D10')
then 95 xl(k,j)=co(k,kon(indexe+j))
108 elseif(nope.eq.20)
then 113 elseif(mint3d.eq.27)
then 118 call shape20h(xi,et,ze,xl,xsj,shp,iflag)
119 elseif(nope.eq.8)
then 124 elseif(mint3d.eq.8)
then 129 call shape8h(xi,et,ze,xl,xsj,shp,iflag)
138 pgauss(j)=pgauss(j)+shp(4,k)*xl(j,k)
144 pgauss(j)=pgauss(j)-co(j,node)
153 pol(5)=pgauss(1)*pgauss(2)
154 pol(6)=pgauss(1)*pgauss(3)
155 pol(7)=pgauss(2)*pgauss(3)
156 pol(8)=pgauss(1)*pgauss(1)
157 pol(9)=pgauss(2)*pgauss(2)
158 pol(10)=pgauss(3)*pgauss(3)
159 pol(11)=pgauss(1)*pgauss(2)*pgauss(3)
160 if(iterms.gt.11)
then 161 pol(12)=pgauss(1)*pgauss(1)*pgauss(2)
162 pol(13)=pgauss(1)*pgauss(2)*pgauss(2)
163 pol(14)=pgauss(1)*pgauss(1)*pgauss(3)
164 pol(15)=pgauss(1)*pgauss(3)*pgauss(3)
165 pol(16)=pgauss(2)*pgauss(2)*pgauss(3)
166 pol(17)=pgauss(2)*pgauss(3)*pgauss(3)
167 if(iterms.gt.17)
then 168 pol(18)=pgauss(1)*pgauss(1)*pgauss(1)
169 pol(19)=pgauss(2)*pgauss(2)*pgauss(2)
170 pol(20)=pgauss(3)*pgauss(3)*pgauss(3)
176 pntdist=dsqrt(pgauss(1)*pgauss(1)
177 & +pgauss(2)*pgauss(2)
178 & +pgauss(3)*pgauss(3))
182 pdat(irow,j)=sti(j,ipnt,ielem)*w
197 call hybsvd(ipoints,ipoints,ipoints,ipoints,ipoints,
198 & ipoints,iterms,pp,pwrk,matu,pp,matv,
199 & pre,z,pdat,nrhs,info,rv1)
201 write(*,*)
'*ERROR in patch: Bad conditioned matrix,',
202 &
' using average of sampling point values.' 211 if(iavflag.eq.0)
then 213 if(pwrk(j).lt.1.e-22)
then 220 pre(1,j)=pre(1,j)*pwrk(j)
224 pfit(j)=pfit(j)+pre(1,k)*pdat(k,j)
234 scpav(j,node)=scpav(j,node)+pfit(j)
241 if(iavflag.eq.1)
then 247 ielem=members(ielidx)
248 if(lakon(ielem)(1:5).eq.
'C3D20')
then 249 if(lakon(ielem)(6:6).eq.
'R')
then 254 elseif(lakon(ielem)(1:5).eq.
'C3D10')
then 256 elseif(lakon(ielem)(1:4).eq.
'C3D8')
then 257 if(lakon(ielem)(5:5).eq.
'R')
then 266 tmpstr(j)=tmpstr(j)+sti(j,ipnt,ielem)
271 scpav(j,node)=scpav(j,node)+tmpstr(j)/irow
subroutine hybsvd(NA, NU, NV, NZ, NB, M, N, A, W, MATU, U, MATV, V, Z, B, IRHS, IERR, RV1)
Definition: hybsvd.f:3
subroutine shape10tet(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape10tet.f:20
subroutine shape8h(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape8h.f:20
subroutine shape20h(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape20h.f:20