5 &(xconv,yconv,zconv,shp,shz,elt,eta,x,y,ikle,npoin,nelem,nelmax,
6 & ng,ngauss,ielm,nplan,zstar)
46 INTEGER,
INTENT(IN) :: NELEM,NELMAX,NPOIN,NG,IELM
47 INTEGER,
INTENT(IN) :: NPLAN,NGAUSS
49 INTEGER,
INTENT(IN) :: IKLE(nelmax,3)
50 INTEGER,
INTENT(INOUT) :: ELT(ng),ETA(ng)
51 DOUBLE PRECISION,
INTENT(IN) :: X(npoin*nplan)
52 DOUBLE PRECISION,
INTENT(IN) :: Y(npoin*nplan)
53 DOUBLE PRECISION,
INTENT(IN) :: ZSTAR(nplan)
54 DOUBLE PRECISION,
INTENT(INOUT) :: XCONV(ng),YCONV(ng),ZCONV(*)
55 DOUBLE PRECISION,
INTENT(INOUT) :: SHP(3,ng)
56 DOUBLE PRECISION,
INTENT(INOUT) :: SHZ(*)
60 INTEGER IELEM,I1,I2,I3,IG,IPLAN
61 DOUBLE PRECISION TIERS,A,B,C,D
66 IF(ng.NE.nelem*ngauss.AND.ielm.EQ.11)
THEN 67 WRITE(
lu,*)
'CHAR_GAUSS: BAD NUMBER OF POINTS' 68 WRITE(
lu,*)
'NG=',ng,
' NELEM=',nelem,
' NGAUSS=',ngauss
71 ELSEIF(ng.NE.nelem*(nplan-1)*ngauss.AND.ielm.EQ.41)
THEN 72 WRITE(
lu,*)
'CHAR_GAUSS: BAD NUMBER OF POINTS' 73 WRITE(
lu,*)
'NG=',ng,
' NELEM=',nelem,
' NGAUSS=',ngauss
74 WRITE(
lu,*)
'NPLAN=',nplan
81 IF(ngauss.EQ.1.AND.ielm.EQ.11)
THEN 87 xconv(ielem)=(x(i1)+x(i2)+x(i3))*tiers
88 yconv(ielem)=(y(i1)+y(i2)+y(i3))*tiers
95 ELSEIF(ngauss.EQ.3.AND.ielm.EQ.11)
THEN 103 shp(1,ig)=1.d0-1.d0/6.d0-1.d0/6.d0
106 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
107 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
110 shp(1,ig)=1.d0-2.d0/3.d0-1.d0/6.d0
113 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
114 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
117 shp(1,ig)=1.d0-1.d0/6.d0-2.d0/3.d0
120 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
121 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
125 ELSEIF(ngauss.EQ.4.AND.ielm.EQ.11)
THEN 133 shp(1,ig)=1.d0-1.d0/3.d0-1.d0/3.d0
136 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
137 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
140 shp(1,ig)=1.d0-1.d0/5.d0-1.d0/5.d0
143 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
144 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
147 shp(1,ig)=1.d0-3.d0/5.d0-1.d0/5.d0
150 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
151 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
154 shp(1,ig)=1.d0-1.d0/5.d0-3.d0/5.d0
157 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
158 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
162 ELSEIF(ngauss.EQ.6.AND.ielm.EQ.11)
THEN 164 a=0.445948490915965d0
165 b=0.091576213509771d0
176 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
177 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
183 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
184 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
190 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
191 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
197 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
198 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
204 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
205 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
211 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
212 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
216 ELSEIF(ngauss.EQ.7.AND.ielm.EQ.11)
THEN 218 a=(6.d0+sqrt(15.d0))/21.d0
230 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
231 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
237 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
238 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
244 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
245 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
251 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
252 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
258 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
259 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
265 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
266 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
272 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
273 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
277 ELSEIF(ngauss.EQ.12.AND.ielm.EQ.11)
THEN 279 a=0.063089014491502d0
280 b=0.249286745170910d0
281 c=0.310352451033785d0
282 d=0.053145049844816d0
293 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
294 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
300 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
301 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
307 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
308 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
314 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
315 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
321 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
322 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
328 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
329 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
335 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
336 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
342 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
343 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
349 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
350 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
356 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
357 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
363 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
364 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
370 xconv(ig)=shp(1,ig)*x(i1)+shp(2,ig)*x(i2)+shp(3,ig)*x(i3)
371 yconv(ig)=shp(1,ig)*y(i1)+shp(2,ig)*y(i2)+shp(3,ig)*y(i3)
375 ELSEIF(ngauss.EQ.6.AND.ielm.EQ.41)
THEN 377 IF(ng.NE.6*nelem*(nplan-1))
THEN 378 WRITE(
lu,*)
'CHAR_GAUSS: BAD NUMBER OF POINTS' 380 WRITE(
lu,*)
'6*NELEM*(NPLAN-1)=',6*nelem*nplan
389 c=0.5d0*(1.d0-1.d0/sqrt(3.d0))
390 d=0.5d0*(1.d0+1.d0/sqrt(3.d0))
403 xconv(ig)=(1.d0-shz(ig))*( shp(1,ig)*x(i1)
406 & +shz(ig) *( shp(1,ig)*x(i1)
409 yconv(ig)=(1.d0-shz(ig))*( shp(1,ig)*y(i1)
412 & +shz(ig) *( shp(1,ig)*y(i1)
415 zconv(ig)=(1.d0-shz(ig))*zstar(iplan)
416 & +shz(ig) *zstar(iplan+1)
425 xconv(ig)=(1.d0-shz(ig))*( shp(1,ig)*x(i1)
428 & +shz(ig) *( shp(1,ig)*x(i1)
431 yconv(ig)=(1.d0-shz(ig))*( shp(1,ig)*y(i1)
434 & +shz(ig) *( shp(1,ig)*y(i1)
437 zconv(ig)=(1.d0-shz(ig))*zstar(iplan)
438 & +shz(ig) *zstar(iplan+1)
447 xconv(ig)=(1.d0-shz(ig))*( shp(1,ig)*x(i1)
450 & +shz(ig) *( shp(1,ig)*x(i1)
453 yconv(ig)=(1.d0-shz(ig))*( shp(1,ig)*y(i1)
456 & +shz(ig) *( shp(1,ig)*y(i1)
459 zconv(ig)=(1.d0-shz(ig))*zstar(iplan)
460 & +shz(ig) *zstar(iplan+1)
469 xconv(ig)=(1.d0-shz(ig))*( shp(1,ig)*x(i1)
472 & +shz(ig) *( shp(1,ig)*x(i1)
475 yconv(ig)=(1.d0-shz(ig))*( shp(1,ig)*y(i1)
478 & +shz(ig) *( shp(1,ig)*y(i1)
481 zconv(ig)=(1.d0-shz(ig))*zstar(iplan)
482 & +shz(ig) *zstar(iplan+1)
491 xconv(ig)=(1.d0-shz(ig))*( shp(1,ig)*x(i1)
494 & +shz(ig) *( shp(1,ig)*x(i1)
497 yconv(ig)=(1.d0-shz(ig))*( shp(1,ig)*y(i1)
500 & +shz(ig) *( shp(1,ig)*y(i1)
503 zconv(ig)=(1.d0-shz(ig))*zstar(iplan)
504 & +shz(ig) *zstar(iplan+1)
513 xconv(ig)=(1.d0-shz(ig))*( shp(1,ig)*x(i1)
516 & +shz(ig) *( shp(1,ig)*x(i1)
519 yconv(ig)=(1.d0-shz(ig))*( shp(1,ig)*y(i1)
522 & +shz(ig) *( shp(1,ig)*y(i1)
525 zconv(ig)=(1.d0-shz(ig))*zstar(iplan)
526 & +shz(ig) *zstar(iplan+1)
535 WRITE(
lu,11) ngauss,ielm
536 11
FORMAT(1x,
'CHAR_GAUSS: OPTION NOT IMPLEMENTED:',i6,
subroutine char_gauss(XCONV, YCONV, ZCONV, SHP, SHZ, ELT, ETA, X, Y, IKLE, NPOIN, NELEM, NELMAX, NG, NGAUSS, IELM, NPLAN, ZSTAR)