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(3,nctrl),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, NB, NC
107 . DRDXI(NCTRL,3),SUMTOT, DETDXDXI, FN(),
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)))
125 xi(2) = ((knotlocely(2)-knotlocely(1))*gaussy + (knotlocely(2)+(knotlocely(1))))/two
126 xi(3) = ((knotlocelz(2)-knotlocelz(1))*gaussz + (knotlocelz
139 CALL dersonebasisfun(1, px, xi(1), knotlocx(:,numloc), fn(numloc), dndxi(numloc))
140 CALL dersonebasisfun(1, py, xi(2), knotlocy(:,numloc), fm(numloc), dmdxi(numloc))
141 CALL dersonebasisfun(1, pz, xi(3), knotlocz(:,numloc), fl(numloc), dldxi(numloc))
152 r(numloc)=fn(numloc)*fm(numloc)*fl(numloc)*wwi(numloc)
153 sumtot=sumtot+r(numloc)
155 drdxi(numloc,1)=dndxi(numloc)*fm(numloc)*fl(numloc)*
157 sumxi(1)=sumxi(1)+drdxi(numloc,1)
158 drdxi(numloc,2)=fn(numloc)*dmdxi(numloc)*fl(numloc)*
160 sumxi(2)=sumxi(2)+drdxi(numloc,2)
161 drdxi(numloc,3)=fn(numloc)*fm(numloc)*dldxi(numloc)*
163 sumxi(3)=sumxi(3)+drdxi(numloc,3)
169 r(numloc)=r(numloc)/sumtot
174 drdxi(numloc,i)=(drdxi(numloc,i)-r(numloc)*sumxi(i))/sumtot
182 dxdxi(1,nb)=dxdxi(1,nb)+xxi(numloc)*drdxi(numloc,nb)
183 dxdxi(2,nb)=dxdxi(2,nb)+yyi(numloc)*drdxi(numloc,nb)
184 dxdxi(3,nb)=dxdxi(3,nb)+zzi(numloc)*drdxi(numloc,nb)
190 detdxdxi=dxdxi(1,2)*dxdxi(2,3)*dxdxi(3,1)
191 . -dxdxi(1,3)*dxdxi(2,2)*dxdxi(3,1)
192 . +dxdxi(1,3)*dxdxi(2,1)*dxdxi(3,2)
193 . -dxdxi(1,1)*dxdxi(2,3)*dxdxi(3,2)
194 . +dxdxi(1,1)*dxdxi(2,2)*dxdxi(3,3)
195 . -dxdxi(1,2)*dxdxi(2,1)*dxdxi(3,3)
197 IF (abs(detdxdxi)<em20)
THEN
199 . msgtype=msgwarning,
205 dxidx(1,1)=(dxdxi(2,2)*dxdxi(3,3)-dxdxi(2,3)*dxdxi(3,2))/detdxdxi
206 dxidx(1,2)=(dxdxi(1,3)*dxdxi(3,2)-dxdxi(1,2)*dxdxi(3,3))/detdxdxi
207 dxidx(1,3)=(dxdxi(1,2)*dxdxi(2,3)-dxdxi(1,3)*dxdxi(2,2))/detdxdxi
208 dxidx(2,1)=(dxdxi(2,3)*dxdxi(3,1)-dxdxi(2,1)*dxdxi(3,3))/detdxdxi
209 dxidx(2,2)=(dxdxi(1,1)*dxdxi(3,3)-dxdxi(1,3)*dxdxi(3,1))/detdxdxi
210 dxidx(2,3)=(dxdxi(1,3)*dxdxi(2,1)-dxdxi(1,1)*dxdxi(2,3))/detdxdxi
211 dxidx(3,1)=(dxdxi(2,1)*dxdxi(3,2)-dxdxi(2,2)*dxdxi(3,1))/detdxdxi
212 dxidx(3,2)=(dxdxi(1,2)*dxdxi(3,1)-dxdxi(1,1)*dxdxi(3,2))/detdxdxi
213 dxidx(3,3)=(dxdxi(1,1)*dxdxi(2,2)-dxdxi(1,2)*dxdxi(2,1))/detdxdxi
217 dxidtildexi(1,1)=(knotlocelx(2)-knotlocelx(1))/two
218 dxidtildexi(2,2)=(knotlocely(2)-knotlocely(1))/two
219 dxidtildexi(3,3)=(knotlocelz(2)-knotlocelz(1))/two
229 drdx(na,numloc)=drdx(na,numloc)+(drdxi(numloc,nb)*dxidx(nb,na))
232 ajmat(na,nb)=ajmat(na,nb)+dxdxi(na,nc)*dxidtildexi(nc,nb)
239 detjac=(ajmat(1,1)*ajmat(2,2)*ajmat(3,3))
240 . +(ajmat(1,2)*ajmat(2,3)*ajmat(3,1))
241 . +(ajmat(2,1)*ajmat(3,2)*ajmat(1,3))
242 . -(ajmat(1,3)*ajmat(2,2)*ajmat(3,1))
243 . -(ajmat(1,2)*ajmat(2,1)*ajmat(3,3))
244 . -(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)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)