35 2 ZZI ,WWI ,IDX ,IDY ,
36 3 IDZ ,KNOTLOCX ,KNOTLOCY ,KNOTLOCZ ,
37 4 DRDX ,R ,DETJAC,NCTRL ,
38 5 GAUSSX,GAUSSY,GAUSSZ,KX ,
42 9 KNOTLOCELX,KNOTLOCELY,KNOTLOCELZ)
91#include "implicit_f.inc"
95 INTEGER IDX, IDY, , NCTRL, PX, PY, PZ, ITEL, N, BOOLG,IDX2, IDY2, IDZ2
97 . gaussx, gaussy, gaussz, detjac,
98 . r(*),drdx(nctrl,3),xxi(*),yyi(*),zzi(*),
99 . wwi(*),kx(*), ky(*), kz(*), knotlocx(px+2,nctrl),
100 . knotlocy(py+2,nctrl),knotlocz(pz+2,nctrl),knotlocelx(2),
101 . knotlocely(2),knotlocelz(2)
105 INTEGER NUMLOC, I, NA, NB, NC
107 . DRDXI(NCTRL,3),SUMTOT, DETDXDXI, (NCTRL),
108 . DNDXI(NCTRL), FM(NCTRL), DMDXI(NCTRL), FL(NCTRL),
109 . DLDXI(NCTRL), XI(3), SUMXI(3), AJMAT(3,3),
110 . DXIDTILDEXI(3,3), DXIDX(3,3), DXDXI(3,3)
118 dxidtildexi(:,:)=zero
124 xi(1) = ((knotlocelx(2)-knotlocelx(1))*gaussx + (knotlocelx(2)+(knotlocelx(1))))/two
125 xi(2) = ((knotlocely(2)-knotlocely
126 xi(3) = ((knotlocelz(2)-knotlocelz(1))*gaussz + (knotlocelz(2)+(knotlocelz(1))))/two
140 CALL dersonebasisfun(1, px, xi(1), knotlocx(:,numloc), fn(numloc), dndxi(numloc))
141 CALL dersonebasisfun(1, py, xi(2), knotlocy(:,numloc), fm(numloc), dmdxi(numloc))
142 CALL dersonebasisfun(1, pz, xi(3), knotlocz(:,numloc), fl(numloc), dldxi(numloc))
165 r(numloc)=fn(numloc)*fm(numloc)*fl(numloc)*wwi(numloc)
166 sumtot=sumtot+r(numloc)
168 drdxi(numloc,1)=dndxi(numloc)*fm(numloc)*fl(numloc)*
170 sumxi(1)=sumxi(1)+drdxi(numloc,1)
171 drdxi(numloc,2)=fn(numloc)*dmdxi(numloc)*fl(numloc)*
173 sumxi(2)=sumxi(2)+drdxi(numloc,2)
174 drdxi(numloc,3)=fn(numloc)*fm(numloc)*dldxi(numloc)*
176 sumxi(3)=sumxi(3)+drdxi(numloc,3)
182 r(numloc)=r(numloc)/sumtot
187 drdxi(numloc,i)=(drdxi(numloc,i)-r(numloc)*sumxi(i))/sumtot
195 dxdxi(1,nb)=dxdxi(1,nb)+xxi(numloc)*drdxi(numloc,nb)
196 dxdxi(2,nb)=dxdxi(2,nb)+yyi(numloc)*drdxi(numloc,nb)
197 dxdxi(3,nb)=dxdxi(3,nb)+zzi(numloc)*drdxi(numloc,nb)
203 detdxdxi=dxdxi(1,2)*dxdxi(2,3)*dxdxi(3,1)
204 . -dxdxi(1,3)*dxdxi(2,2)*dxdxi(3,
205 . +dxdxi(1,3)*dxdxi(2,1)*dxdxi(3,2)
206 . -dxdxi(1,1)*dxdxi(2,3)*dxdxi(3,2)
207 . +dxdxi(1,1)*dxdxi(2,2)*dxdxi(3,3)
208 . -dxdxi(1,2)*dxdxi(2,1)*dxdxi(3,3)
211 dxidx(1,1)=(dxdxi(2,2)*dxdxi(3,3)-dxdxi(2,3)*dxdxi(3,2))/detdxdxi
212 dxidx(1,2)=(dxdxi(1,3)*dxdxi(3,2)-dxdxi(1,2)*dxdxi(3,3))/detdxdxi
213 dxidx(1,3)=(dxdxi(1,2)*dxdxi(2,3)-dxdxi(1,3)*dxdxi(2,2))/detdxdxi
214 dxidx(2,1)=(dxdxi(2,3)*dxdxi(3,1)-dxdxi(2,1)*dxdxi(3,3))/detdxdxi
215 dxidx(2,2)=(dxdxi(1,1)*dxdxi(3,3)-dxdxi(1,3)*dxdxi(3,1))/detdxdxi
216 dxidx(2,3)=(dxdxi(1,3)*dxdxi(2,1)-dxdxi(1,1)*dxdxi(2,3))/detdxdxi
217 dxidx(3,1)=(dxdxi(2,1)*dxdxi(3,2)-dxdxi(2,2)*dxdxi(3,1))/detdxdxi
218 dxidx(3,2)=(dxdxi(1,2)*dxdxi(3,1)-dxdxi(1,1)*dxdxi
219 dxidx(3,3)=(dxdxi(1,1)*dxdxi(2,2)-dxdxi(1,2)*dxdxi(2,1))/detdxdxi
225 dxidtildexi(1,1)=(knotlocelx(2)-knotlocelx
226 dxidtildexi(2,2)=(knotlocely(2)-knotlocely(1))/two
227 dxidtildexi(3,3)=(knotlocelz(2)-knotlocelz(1))
240 drdx(numloc,na)=drdx(numloc,na)+(drdxi(numloc,nb)*dxidx(nb,na))
243 ajmat(na,nb)=ajmat(na,nb)+dxdxi(na,nc)*dxidtildexi(nc
251 detjac=(ajmat(1,1)*ajmat(2,2)*ajmat(3,3))
252 . +(ajmat(1,2)*ajmat(2,3)*ajmat(3,1))
253 . +(ajmat(2,1)*ajmat(3,2)*ajmat(1,3))
254 . -(ajmat(1,3)*ajmat(2,2)*ajmat(3,1))
255 . -(ajmat(1,2)*ajmat(2,1)*ajmat(3,3))
256 . -(ajmat(2,3)*ajmat(3,2)*ajmat(1,1))
subroutine ig3donederiv(itel, n, xxi, yyi, zzi, wwi, idx, idy, idz, knotlocx, knotlocy, knotlocz, drdx, r, detjac, nctrl, gaussx, gaussy, gaussz, kx, ky, kz, px, py, pz, boolg, idx2, idy2, idz2, knotlocelx, knotlocely, knotlocelz)