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, IDZ, 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, J, K, NA, , NC
107 . DRDXI(NCTRL,3),SUMTOT, DETDXDXI, FN(NCTRL),
108 . DNDXI(), (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(1))*gaussy + (knotlocely(2)+(knotlocely(1))))/two
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))
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,1)
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(3,2))/detdxdxi
219 dxidx(3,3)=(dxdxi(1,1)*dxdxi(2,2)-dxdxi(1,2)*dxdxi(2,1))/detdxdxi
225 dxidtildexi(1,1)=(knotlocelx(2)-knotlocelx(1))/two
226 dxidtildexi(2,2)=(knotlocely(2)-knotlocely(1))/two
227 dxidtildexi(3,3)=(knotlocelz(2)-knotlocelz(1))/two
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,nb)
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)