85 . X ,XREFC ,IX ,GEO ,PM ,
86 . MS ,TINER ,THKE ,IHBE ,PARTSAV ,
87 . V ,IPART ,MSC ,INC ,AREA ,
88 . I8MI ,IGEO ,ETNOD ,IMID ,IPROP ,
89 . NSHNOD ,STC ,SH4TREE ,MCP ,MCPS ,
90 . TEMP ,MS_LAYER,ZI_LAYER,MS_LAYERC,ZI_LAYERC,
91 . MSZ2C ,ZPLY ,ISUBSTACK,NLAY ,ELBUF_STR,
92 . STACK ,THKI ,RNOISE ,DRAPE ,NINTEMP ,
93 . PERTURB ,IX1 ,IX2 ,IX3 ,IX4 ,
108#include "implicit_f.inc"
112#include "mvsiz_p.inc"
116#include "com01_c.inc"
117#include "com04_c.inc"
118#include "remesh_c.inc"
119#include "param_c.inc"
120#include "scr03_c.inc"
121#include "scr12_c.inc"
122#include "scr17_c.inc"
123#include "scr22_c.inc"
124#include "vect01_c.inc"
125#include "drape_c.inc"
129 INTEGER IX(NIXC,*),IPART(*),IHBE,IMID,IPROP,
130 . IGEO(NPROPGI,*),NSHNOD(*), SH4TREE(KSH4TREE,*),
131 . ISUBSTACK,NLAY,PERTURB(),IDRAPE
132 INTEGER,
DIMENSION(MVSIZ),
INTENT(IN) :: IX1,IX2,IX3,IX4
133 INTEGER ,
INTENT(IN) :: NINTEMP
135 INTEGER,
DIMENSION(SCDRAPE) :: INDX
136 my_real,
DIMENSION(MVSIZ),
INTENT(IN) :: AREA
138 . X(3,*), GEO(NPROPG,*), PM(NPROPM,*), MS(*), TINER(*),THKE(*),
139 . v(3,*),partsav(20,*),msc(*),inc(*),
140 . etnod(*), stc(*),mcp(*),mcps(*),temp(*),
141 . ms_layer(numnod,*), zi_layer(numnod,*),xrefc(4,3,*),
142 . ms_layerc(numelc,*),zi_layerc(numelc,*),msz2c(*),zply(*),thki(*),
146 TYPE(elbuf_struct_),
TARGET :: ELBUF_STR
147 TYPE (STACK_PLY) :: STACK
148 TYPE (DRAPE_) ,
DIMENSION(NUMELC_DRAPE+NUMELTG_DRAPE),
TARGET :: DRAPE
152 INTEGER I,II,J,K,N,IP,I1,I2,I3,I4,MATLY,IPTHK,IPMAT,IPPOS,ID
155 . nslice,ipos,ipt,ipt_all,ie,nlay_max
156 CHARACTER(LEN=NCHARTITLE) :: TITR
158 . fac,mst,dms,thickt,thkly,laypos,mse,ins,mzi,ems_nptt,et,zj,
159 . xx,yy,zz,xy,yz,zx,msl,xil,ms_nptt,pos_0,thinning,f_offset,scale,
162 . ems_layer(mvsiz,nlay)
163 my_real,
DIMENSION(:),
ALLOCATABLE :: posly,ratio_thkly, thk_it,pos_it
164 my_real,
DIMENSION(MVSIZ) :: rho,rhocp,ems,emscp,xi,thk
167 TYPE (DRAPE_PLY_),
POINTER :: DRAPE_PLY
168 my_real A_GAUSS(9,9),W_GAUSS(9,9)
174 2 -.577350269189626,0.577350269189626,0. ,
177 3 -.774596669241483,0. ,0.774596669241483,
180 4 -.861136311594053,-.339981043584856,0.339981043584856,
181 4 0.861136311594053,0. ,0. ,
183 5 -.906179845938664,-.538469310105683,0. ,
184 5 0.538469310105683,0.906179845938664,0. ,
186 6 -.932469514203152,-.661209386466265,-.238619186083197,
187 6 0.238619186083197,0.661209386466265,0.932469514203152,
189 7 -.949107912342759,-.741531185599394,-.405845151377397,
190 7 0. ,0.405845151377397,0.741531185599394,
191 7 0.949107912342759,0. ,0. ,
192 8 -.960289856497536,-.796666477413627,-.525532409916329,
193 8 -.183434642495650,0.183434642495650,0.525532409916329,
194 8 0.796666477413627,0.960289856497536,0. ,
195 9 -.968160239507626,-.836031107326636,-.613371432700590,
196 9 -.324253423403809,0. ,0.324253423403809,
197 9 0.613371432700590,0.836031107326636,0.968160239507626/
205 3 0.555555555555556,0.888888888888889,0.555555555555556,
208 4 0.347854845137454,0.652145154862546,0.652145154862546,
209 4 0.347854845137454,0. ,0. ,
211 5 0.236926885056189,0.478628670499366,0.568888888888889,
212 5 0.478628670499366,0.236926885056189,0. ,
214 6 0.171324492379170,0.360761573048139,0.467913934572691,
215 6 0.467913934572691,0.360761573048139,0.171324492379170,
217 7 0.129484966168870,0.279705391489277,0.381830050505119,
218 7 0.417959183673469,0.381830050505119,0.279705391489277,
219 7 0.129484966168870,0. ,0. ,
220 8 0.101228536290376,0.222381034453374,0.313706645877887,
221 8 0.362683783378362,0.362683783378362,0.313706645877887,
222 8 0.222381034453374,0.101228536290376,0. ,
223 9 0.081274388361574,0.180648160694857,0.260610696402935,
224 9 0.312347077040003,0.330239355001260,0.312347077040003,
225 9 0.260610696402935,0.180648160694857,0.081274388361574/
227 igtyp=nint(geo(12,iprop))
228 igmat = igeo(98,iprop)
235 IF(igtyp == 51 .OR. igtyp == 52)
THEN
237 max_nptt =
max(max_nptt ,elbuf_str%BUFLY(ilay)%NPTT)
239 ALLOCATE(thk_it(max_nptt),pos_it(max_nptt))
241 ALLOCATE(thk_it(0),pos_it(0))
243 nlay_max =
max(nlay, npt)
244 ALLOCATE(posly(nlay_max*max_nptt),ratio_thkly(nlay_max*max_nptt))
246 IF ((igtyp == 17 .OR. igtyp == 51) .AND. igmat < 0 )
THEN
249 IF (ndrape == 0)
THEN
250 IF (thke(i)== zero)
THEN
251 thk(i) = stack%GEO(1,isubstack)
256 thki(i) = stack%GEO(1,isubstack)
257 ELSEIF (ndrape > 0)
THEN
262 IF (nperturb /= 0)
THEN
264 IF (perturb(j) == 1 .AND. rnoise(j,i+nft) /= zero)
THEN
265 thk(i) = thk(i) * rnoise(j,i+nft)
266 thke(i) = thke(i) * rnoise(j,i+nft)
267 thki(i) = thki(i) * rnoise(j,i+nft)
273 rhocp(i) = pm(69,imid)
274 IF(thk(i) == zero.AND.igtyp/=0)
THEN
277 . anmode=aninfo_blind_1,
282 ELSEIF (igtyp == 52 .OR.
283 . ((igtyp == 17 .OR. igtyp == 51) .AND. igmat > 0))
THEN
286 IF (ndrape == 0)
THEN
287 IF (thke(i)== zero)
THEN
288 thk(i) = stack%GEO(1,isubstack)
293 thki(i) = stack%GEO(1,isubstack)
294 ELSEIF (ndrape > 0)
THEN
298 rho(i) = stack%PM(1,isubstack)
299 rhocp(i) = stack%PM(15,isubstack)* rho(i)/stack%PM(14,isubstack)
301 IF (nperturb /= 0)
THEN
303 IF (perturb(j) == 1 .AND. rnoise(j,i+nft) /= zero)
THEN
304 thk(i) = thk(i) * rnoise(j,i+nft)
305 thke(i) = thke(i) * rnoise(j,i+nft)
306 thki(i) = thki(i) * rnoise(j,i+nft)
311 IF(thk(i) == zero.AND.igtyp/=0)
THEN
314 . anmode=aninfo_blind_1,
323 IF (thke(i) == zero)
THEN
330 thki(i) = geo(1,iprop)
332 IF (nperturb /= 0)
THEN
334 IF (perturb(j) == 1 .AND. rnoise(j,i+nft) /= zero)
THEN
335 thk(i) = thk(i) * rnoise(j,i+nft)
336 thke(i) = thke(i) * rnoise(j,i+nft)
337 thki(i) = thki(i) * rnoise(j,i+nft)
343 rhocp(i) = pm(69,imid)
344 IF(thk(i) == zero.AND.igtyp/=0)
THEN
347 . anmode=aninfo_blind_1,
355 IF (igtyp == 11 .OR. igtyp == 16)
THEN
364 thkly = geo(i1,iprop)*thk(i)
365 matly = igeo(i2,iprop)
366 ems(i) = ems(i) + pm(89,matly)*thkly
368 mst = rho(i)*thk(i)*area(i)*fourth
369 dms = abs(ems(i)-mst)/mst
374 IF (dms > em02) errm = 1
376 idprop = igeo(1,iprop)
378 . igeo(npropgi-ltitr+1,iprop),ltitr)
380 . msgtype=msgwarning,
381 . anmode=aninfo_blind_2,
383 . c1=titr,i2=ix(nixc,nft+i),
389 ELSEIF(igtyp == 17 )
THEN
407 thickt = stack%GEO(1 ,isubstack)
408 thkly = stack%GEO(i3 ,isubstack)*thk(i)
409 matly = stack%IGEO(i2,isubstack)
410 ems(i) = ems(i) + pm(89,matly)*thkly*area(i)*fourth
411 ems_layer(i,n) = pm(89,matly)*thkly*area(i)*fourth
412 mzi = mzi + ems_layer(i,n)*stack%GEO(i4 ,isubstack)
413 ipid = stack%IGEO(i1, isubstack)
414 istack(i,n) = igeo(102,ipid)
416 mst = rho(i)*thk(i)*area(i)*fourth
417 dms = abs(ems(i)-mst)/mst
418 IF(dms > em02) errm = 1
421 idprop = igeo(1,iprop)
423 . igeo(npropgi-ltitr+1,iprop),ltitr)
425 . msgtype=msgwarning,
426 . anmode=aninfo_blind_2,
428 . c1=titr,i2=ix(nixc,nft+i),
435 IF(abs(stack%GEO(i4 ,isubstack)) < em15)
436 . stack%GEO(i4 ,isubstack)=zero
438 IF(abs(mzi) > em02)
THEN
442 stack%GEO(i4 ,isubstack) = stack%GEO(i4 ,isubstack) - dms
457 thickt = stack%GEO(1 ,isubstack)
458 thkly = stack%GEO(i3 ,isubstack)*thk(i)
459 matly = stack%IGEO(i2,isubstack)
460 ems(i) = ems(i) + pm(89,matly)*thkly*area(i)*fourth
461 ems_layer(i,n) = pm(89,matly)*thkly*area(i)*fourth
462 mzi = mzi + ems_layer(i,n)*stack%GEO(i4 ,isubstack)
463 ipid = stack%IGEO(i1, isubstack)
464 istack(i,n) = igeo(102,ipid)
467 thick_drape = drape(ie)%THICK
468 scale = thk(i)/thick_drape
474 ip = drape(ie)%INDX_PLY(n)
476 drape_ply => drape(ie)%DRAPE_PLY(ip)
477 thinning = drape_ply%RDRAPE(1,1)
478 thickt = stack%GEO(1 ,isubstack)
479 thkly = stack%GEO(i3 ,isubstack)*thickt
480 thkly = thkly*thinning
482 matly = stack%IGEO(i2,isubstack)
483 ems(i) = ems(i) + pm(89,matly)*thkly*area(i)*fourth*scale
484 ems_layer(i,n) = pm(89,matly)*thkly*area(i)*fourth *scale
485 ratio_thkly(n) = thkly/thick_drape
487 posly(n) = -half + half*ratio_thkly(n)
489 posly(n) = posly(n-1)
490 . + half*(ratio_thkly(n)+ratio_thkly(n-1))
493 mzi = mzi + ems_layer(i,n)*posly(n)
494 ipid = stack%IGEO(i1, isubstack)
495 istack(i,n) = igeo(102,ipid)
497 thickt = stack%GEO(1 ,isubstack)
498 thkly = stack%GEO(i3 ,isubstack)*thickt
499 matly = stack%IGEO(i2,isubstack)
501 ems(i) = ems(i) + pm(89,matly)*thkly*area(i)*fourth*scale
502 ems_layer(i,n) = pm(89,matly)*thkly*area(i)*fourth*scale
503 ratio_thkly(n) = thkly/thick_drape
505 posly(n) = -half + half*ratio_thkly(n)
507 posly(n) = posly(n-1)
508 . + half*(ratio_thkly(n)+ratio_thkly(n-1))
510 mzi = mzi + ems_layer(i,n)*posly(n)
511 ipid = stack%IGEO(i1, isubstack)
512 istack(i,n) = igeo(102,ipid)
516 mst = rho(i)*thk(i)*area(i)*fourth
517 dms = abs(ems(i)-mst)/mst
518 IF(dms > em02) errm = 1
521 idprop = igeo(1,iprop)
523 . igeo(npropgi-ltitr+1,iprop),ltitr)
525 . msgtype=msgwarning,
526 . anmode=aninfo_blind_2,
528 . c1=titr,i2=ix(nixc,nft+i),
535 IF(abs(stack%GEO(i4 ,isubstack)) < em15)
536 . stack%GEO(i4 ,isubstack)=zero
538 IF(abs(mzi) > em02)
THEN
542 stack%GEO(i4 ,isubstack) = stack%GEO(i4 ,isubstack) - dms
548 ELSEIF (igtyp == 51 .OR. igtyp == 52 )
THEN
558 ipos = igeo(99,iprop)
559 thickt = stack%GEO(1,isubstack)
560 zshift = geo(199,iprop)
561 IF(ipos == 2 ) zshift = - zshift /
max(thickt,em20)
562 IF(idrape == 0 )
THEN
567 scale = thk(i)/thickt
569 nptt = elbuf_str%BUFLY(ilay)%NPTT
574 ipid = stack%IGEO(i1,isubstack) ! or ipid = ix(nixc-1,nft+i)
575 iint = igeo(47,iprop)
576 thickt = stack%GEO(1,isubstack)
578 thkly = stack%GEO(i3,isubstack)*thickt
579 laypos = stack%GEO(i4,isubstack)
580 ipid_ly = stack%IGEO(i1,isubstack)
581 matly = stack%IGEO(i2,isubstack)
584 thk_it(it) = thkly/nptt
587 posly(ipt) = zshift + half*ratio_thkly(ipt
589 posly(ipt) = posly(ipt-1)
590 . + half*(ratio_thkly(ipt) + ratio_thkly(ipt-1))
592 pos_it(it) = posly(ipt)*thk(i)
594 ELSEIF(iint == 2)
THEN
595 thkly = stack%GEO(i3,isubstack)*thickt
596 laypos = stack%GEO(i4,isubstack)
597 ipid_ly = stack%IGEO(i1,isubstack)
598 matly = stack%IGEO(i2,isubstack)
601 thk_it(it) = half*thkly*w_gauss(it,nptt)
602 ratio_thkly(ipt) = thk_it(it)/thickt
604 posly(ipt) = zshift + half*ratio_thkly(ipt)
606 posly(ipt) = posly(ipt-1)
607 . + half*(ratio_thkly(ipt) + ratio_thkly(ipt-1))
609 pos_it(it) = posly(ipt)*thk(i)
614 thk_it(it) = thk_it(it)*scale
615 ems_nptt = pm(89,matly)*thk_it(it)*area(i)*fourth
616 ems(i) = ems(i) + ems_nptt
617 mzi = mzi + ems_nptt * pos_it(it)/thk(i)
619 ipt_all = ipt_all + nptt
622 mst = rho(i)*thk(i)*area(i)*fourth
623 dms = abs(ems(i)-mst)/mst
624 IF (dms > em02) errm = 1
625 IF(igtyp == 51 .AND. igmat < 0)
THEN
627 idprop = igeo(1,iprop)
629 . igeo(npropgi-ltitr+1,iprop),ltitr)
631 . msgtype=msgwarning,
632 . anmode=aninfo_blind_2,
642 emscp(i)=rhocp(i)*thk(i)*area(i)*fourth
652 scale = thk(i)/thickt
654 nptt = elbuf_str%BUFLY(ilay)%NPTT
659 ipid = stack%IGEO(i1,isubstack)
660 iint = igeo(47,iprop)
661 thickt = stack%GEO(1,isubstack)
663 thkly = stack%GEO(i3,isubstack)*thickt
664 laypos = stack%GEO(i4,isubstack)
665 ipid_ly = stack%IGEO(i1,isubstack)
666 matly = stack%IGEO(i2,isubstack)
670 ratio_thkly(ipt) = thk_it(it)/thickt
672 posly(ipt) = zshift + half*ratio_thkly(ipt)
674 posly(ipt) = posly(ipt-1)
675 . + half*(ratio_thkly(ipt) + ratio_thkly(ipt-1))
677 pos_it(it) = posly(ipt)*thk(i)
679 ELSEIF(iint == 2)
THEN
681 laypos = stack%GEO(i4,isubstack)
682 ipid_ly = stack%IGEO(i1,isubstack)
683 matly = stack%IGEO(i2,isubstack)
686 thk_it(it) = half*thkly*w_gauss(it,nptt)
687 ratio_thkly(ipt) = thk_it(it)/thickt
689 posly(ipt) = zshift + half*ratio_thkly(ipt)
691 posly(ipt) = posly(ipt-1)
692 . + half*(ratio_thkly(ipt) + ratio_thkly(ipt-1))
694 pos_it(it) = posly(ipt)*thk(i)
699 thk_it(it) = scale*thk_it(it)
700 ems_nptt = pm(89,matly)*thk_it(it)*area(i
701 ems(i) = ems(i) + ems_nptt
702 mzi = mzi + ems_nptt * pos_it(it)/thk(i)
704 ipt_all = ipt_all + nptt
707 thick_drape = drape(ie)%THICK
708 scale = thk(i)/thick_drape
710 ip = drape(ie)%INDX_PLY(ilay)
711 nptt = elbuf_str%BUFLY(ilay)%NPTT
713 drape_ply => drape(ie)%DRAPE_PLY(ip)
714 nslice = drape_ply%NSLICE
719 ipid = stack%IGEO(i1,isubstack)
720 iint = igeo(47,iprop)
721 thickt = stack%GEO(1,isubstack)
723 thkly = stack%GEO(i3 ,isubstack)*thickt
724 ipid_ly = stack%IGEO(i1,isubstack)
725 matly = stack%IGEO(i2,isubstack)
728 thinning = drape_ply%RDRAPE(it,1)
729 thk_it(it) = thkly*thinning/nptt
730 ratio_thkly(ipt) = thk_it(it)/thick_drape
732 posly(ipt) = zshift + half*ratio_thkly(ipt)
734 posly(ipt) = posly(ipt-1)
735 . + half*(ratio_thkly(ipt)+ratio_thkly
737 pos_it(it) = posly(ipt)*thk(i)
739 ELSEIF(iint == 2)
THEN
740 thkly = stack%GEO(i3 ,isubstack)*thickt
741 ipid_ly = stack%IGEO(i1,isubstack)
742 matly = stack%IGEO(i2,isubstack)
745 thinning = drape_ply%RDRAPE(it
746 thk_it(it) = half*thkly*w_gauss(it,nptt)*thinning
747 ratio_thkly(ipt) = thk_it(it)/thick_drape
749 posly(ipt) = zshift + half*ratio_thkly(ipt)
751 posly(ipt) = posly(ipt-1)
752 . + half*(ratio_thkly(ipt)+ratio_thkly(ipt-1))
754 pos_it(it) = posly(ipt)*thk(i)
759 thk_it(it)= scale*thk_it(it)
760 ems_nptt = pm(89,matly)*thk_it(it)*area(i)*fourth
761 ems(i) = ems(i) + ems_nptt
762 mzi = mzi + ems_nptt * pos_it(it)/thk(i)
765 nptt = elbuf_str%BUFLY(ilay)%NPTT
770 ipid = stack%IGEO(i1,isubstack)
771 iint = igeo(47,iprop)
772 thickt = stack%GEO(1,isubstack)
774 thkly = stack%GEO(i3 ,isubstack)*thickt
775 ipid_ly = stack%IGEO(i1,isubstack)
776 matly = stack%IGEO(i2,isubstack)
779 thk_it(it) = thkly/nptt
780 ratio_thkly(ipt) = thk_it(it)/thick_drape
782 posly(ipt) = zshift + half*ratio_thkly(ipt)
784 posly(ipt) = posly(ipt-1)
785 . + half*(ratio_thkly(ipt)+ratio_thkly(ipt-1))
787 pos_it(it) = posly(ipt)*thk(i)
789 ELSEIF(iint == 2)
THEN
790 thkly = stack%GEO(i3 ,isubstack)*thickt
791 ipid_ly = stack%IGEO(i1,isubstack)
792 matly = stack%IGEO(i2,isubstack)
795 thk_it(it) = half*thkly*w_gauss(it,nptt)
796 ratio_thkly(ipt) = thk_it(it)/thk(i)/thick_drape
800 posly(ipt) = posly(ipt
801 . + half*(ratio_thkly(ipt)+ratio_thkly(ipt-1))
803 pos_it(it) = posly(ipt)*thk(i)
808 thk_it(it ) = scale*thk_it(it)
809 ems_nptt = pm(89,matly)*thk_it(it)*area(i)*fourth
810 ems(i) = ems(i) + ems_nptt
811 mzi = mzi + ems_nptt * pos_it(it)/thk(i)
814 ipt_all = ipt_all + nptt
818 mst = rho(i)*thk(i)*area(i)*fourth
819 dms = abs(ems(i)-mst)/mst
820 IF (dms > em02) errm = 1
821 IF(igtyp == 51 .AND. igmat < 0)
THEN
823 idprop = igeo(1,iprop)
825 . igeo(npropgi-ltitr+1,iprop),ltitr
827 . msgtype=msgwarning,
828 . anmode=aninfo_blind_2,
830 . c1=titr,i2=ix(nixc,nft+i),
839 emscp(i)=rhocp(i)*thk(i)*area(i
852 emscp(i) = rhocp(i)*thk(i)*area(i)*fourth
872 IF(ishxfem_ply > 0 )
THEN
883 ms_layerc(ii,ip)= ems_layer(i,j)
886 thickt = stack%GEO(1 ,isubstack)
887 islv = igeo(32,iprop)
889 zi_layerc(ii,ip) = thickt*stack%GEO(i4 ,isubstack)
890 zply(ip) = zi_layerc(ii,ip)
893 zj = thickt*stack%GEO(i4 ,isubstack)
894 msz2c(ii) = msz2c(ii) + ems_layer(i,j)*zj*zj
899 IF (jthe > 0 .or. nintemp > 0)
THEN
900 IF (nintemp > 0 )
THEN
902 IF(temp(ix1(i))== zero) temp(ix1(i)) = pm(79,imid)
903 IF(temp(ix2(i))== zero) temp(ix2(i)) = pm(79,imid)
904 IF(temp(ix3(i))== zero) temp(ix3(i)) = pm(79,imid)
905 IF(temp(ix4(i))== zero) temp(ix4(i)) = pm(79,imid)
909 temp(ix1(i))= pm(79,imid)
910 temp(ix2(i))= pm(79,imid)
911 temp(ix3(i))= pm(79,imid)
912 temp(ix4(i))= pm(79,imid)
919 IF(iner_9_12 /= zero)
THEN
926 IF (igtyp == 11 .OR. igtyp == 16)
THEN
934 thickt= geo(200,iprop)
935 thkly = geo(i1,iprop)*thk(i)
936 laypos = geo(i3,iprop)*thk(i)
938 matly = igeo(i2,iprop)
939 msl = pm(89,matly)*thkly*area
940 xil = msl*(area(i)/fac+thkly*thkly*one_over_12+laypos*laypos)
944 ELSEIF(igtyp == 17)
THEN
951 ipos = igeo(99,iprop)
952 thickt = stack%GEO(1,isubstack)
953 zshift = geo(199,iprop)
954 IF(ipos == 2 ) zshift = - zshift /
max(thickt,em20)
964 thickt= stack%GEO(1,isubstack)
965 thkly = stack%GEO(i3 ,isubstack )*thk(i)
966 laypos = stack%GEO(i4,isubstack)*thk(i)
967 matly = stack%IGEO(i2 ,isubstack)
968 msl = pm(89,matly)*thkly*area(i)*fourth
969 xil = msl*(area(i)/fac+thkly*thkly*one_over_12+laypos*laypos)
983 thickt= stack%GEO(1,isubstack)
984 thkly = stack%GEO(i3 ,isubstack )*thk(i)
985 laypos = stack%GEO(i4,isubstack)*thk(i)
986 matly = stack%IGEO(i2 ,isubstack)
987 msl = pm(89,matly)*thkly*area(i)*fourth
992 thick_drape = drape(ie)%THICK
993 scale = thk(i)/thick_drape
995 ip = drape(ie)%INDX_PLY(n)
997 drape_ply => drape(ie)%DRAPE_PLY(ip)
1002 thinning = drape_ply%RDRAPE(1,1)
1003 thickt= stack%GEO(1,isubstack)
1004 thkly = stack%GEO(i3 ,isubstack)*thickt
1005 thkly = thkly*thinning
1006 matly = stack%IGEO(i2,isubstack)
1007 ratio_thkly(n) = thkly/thick_drape
1009 posly(n) = zshift + half*ratio_thkly(n)
1011 posly(n) = posly(n-1)
1012 . + half*(ratio_thkly(n)+ratio_thkly(n-1))
1014 laypos = posly(n)*thk(i)
1016 msl = pm(89,matly)*thkly*area(i)*fourth
1017 xil = msl*(area(i)/fac+thkly*thkly*one_over_12+laypos*laypos)
1024 thickt= stack%GEO(1,isubstack)
1025 thkly = stack%GEO(i3 ,isubstack)*thickt
1026 matly = stack%IGEO(i2,isubstack)
1027 ratio_thkly(n) = thkly/thick_drape
1029 posly(n) = zshift + half*ratio_thkly(n)
1031 posly(n) = posly(n-1)
1032 . + half*(ratio_thkly(n)+ratio_thkly(n-1))
1034 laypos = posly(n)*thk(i)
1036 msl = pm(89,matly)*thkly*area(i)*fourth
1037 xil = msl*(area(i)/fac+thkly*thkly*one_over_12+laypos*laypos)
1044 ELSEIF (igtyp == 51 .OR. igtyp == 52)
THEN
1047 ipmat = ippid + nlay
1048 ipthk = ipang + nlay
1049 ippos = ipthk + nlay
1051 ipos = igeo(99,iprop)
1052 thickt = stack%GEO(1,isubstack)
1053 zshift = geo(199,iprop)
1054 IF(ipos == 2 ) zshift = - zshift /
max(thickt,em20)
1056 IF(idrape == 0)
THEN
1058 scale = thk(i)/thickt
1062 nptt = elbuf_str%BUFLY(ilay)%NPTT
1067 ipid_ly = stack%IGEO(i1,isubstack)
1068 matly = stack%IGEO(i2,isubstack
1069 iint = igeo(47,iprop)
1071 thickt = stack%GEO(1,isubstack)
1072 thkly = stack%GEO(i3,isubstack)*thickt
1073 laypos = stack%GEO(i4 ,isubstack)*thickt
1076 thk_it(it) = thkly/nptt
1077 ratio_thkly(ipt) = thk_it
1079 posly(ipt) = zshift + half*ratio_thkly(ipt)
1081 posly(ipt) = posly(ipt-1)
1082 . + half*(ratio_thkly(ipt) + ratio_thkly(ipt-1))
1084 pos_it(it) = posly(ipt)*thk(i)
1086 ELSEIF(iint == 2)
THEN
1087 thickt = stack%GEO(1,isubstack)
1088 thkly = stack%GEO(i3,isubstack)*thickt
1089 laypos = stack%GEO(i4 ,isubstack)*thickt
1095 posly(ipt) = zshift + half*ratio_thkly(ipt)
1097 posly(ipt) = posly(ipt-1)
1098 . + half*(ratio_thkly(ipt)+ratio_thkly(ipt-1))
1100 pos_it(it) = posly(ipt)*thk(i)
1106 thk_it(it) = scale*thk_it(it)
1107 ms_nptt = pm(89,matly)*thk_it(it)*area(i)*fourth
1109 . pos_it(it)*pos_it(it))
1112 ipt_all = ipt_all + nptt
1122 scale = thk(i)/thickt
1124 nptt = elbuf_str%BUFLY(ilay)%NPTT
1129 ipid_ly = stack%IGEO(i1,isubstack)
1130 matly = stack%IGEO(i2,isubstack)
1131 iint = igeo(47,iprop)
1133 thickt = stack%GEO(1,isubstack)
1134 thkly = stack%GEO(i3,isubstack)*thickt
1135 laypos = stack%GEO(i4 ,isubstack)*thickt
1138 thk_it(it) = thkly/nptt
1139 ratio_thkly(ipt) = thk_it(it)/thickt
1141 posly(ipt) = zshift + half*ratio_thkly(ipt)
1143 posly(ipt) = posly(ipt-1)
1144 . + half*(ratio_thkly(ipt) + ratio_thkly(ipt-1))
1146 pos_it(it) = posly(ipt)*thk(i)
1148 ELSEIF(iint == 2)
THEN
1149 thickt = stack%GEO(1,isubstack)
1150 thkly = stack%GEO(i3,isubstack)*thickt
1151 laypos = stack%GEO(i4 ,isubstack)*thickt
1155 ratio_thkly(ipt) = thk_it(it)/thickt
1157 posly(ipt) = zshift + half*ratio_thkly(ipt)
1159 posly(ipt) = posly(ipt-1)
1160 . + half*(ratio_thkly(ipt)+ratio_thkly(ipt-1))
1162 pos_it(it) = posly(ipt)*thk(i)
1168 thk_it(it) = scale*thk_it(it)
1169 ms_nptt = pm(89,matly)*thk_it(it)*area(i)*fourth
1170 xil = ms_nptt*(area(i)/fac+thk_it(it)*thk_it(it)*one_over_12+
1171 . pos_it(it)*pos_it(it))
1174 ipt_all = ipt_all + nptt
1177 thick_drape = drape(ie)%THICK
1178 scale = thk(i)/thick_drape
1180 nptt = elbuf_str%BUFLY(ilay)%NPTT
1181 ip = drape(ie)%INDX_PLY(ilay)
1183 drape_ply => drape(ie)%DRAPE_PLY(ip)
1184 nslice = drape_ply%NSLICE
1189 ipid_ly = stack%IGEO(i1,isubstack)
1190 matly = stack%IGEO(i2,isubstack)
1191 iint = igeo(47,iprop)
1193 thickt = stack%GEO(1,isubstack)
1194 thkly = stack%GEO(i3 ,isubstack)*thickt
1195 ipid_ly = stack%IGEO(i1,isubstack)
1196 matly = stack%IGEO(i2,isubstack)
1199 thinning = drape_ply%RDRAPE(it,1)
1200 thk_it(it) = thkly*thinning/nptt
1201 ratio_thkly(ipt) = thk_it(it)/thick_drape
1203 posly(ipt) = zshift + half*ratio_thkly(ipt)
1205 posly(ipt) = posly(ipt-1)
1206 . + half*(ratio_thkly(ipt)+ratio_thkly(ipt-1))
1208 pos_it(it) = posly(ipt)*thk(i)
1210 ELSEIF(iint == 2)
THEN
1211 thickt = stack%GEO(1,isubstack)
1212 thkly = stack%GEO(i3 ,isubstack)*thickt
1215 thinning = drape_ply%RDRAPE(it,1)
1216 thk_it(it) = half*thkly*w_gauss(it,nptt)*thinning
1219 posly(ipt) = zshift + half*ratio_thkly(ipt)
1221 posly(ipt) = posly(ipt-1)
1222 . + half*(ratio_thkly(ipt)+ratio_thkly(ipt-1))
1224 pos_it(it) = posly(ipt)*thk(i)
1229 thk_it(it) = scale * thk_it(it)
1230 ms_nptt = pm(89,matly)*thk_it(it)*area(i)*fourth
1231 xil = ms_nptt*(area(i)/fac+thk_it(it)*thk_it(it)*one_over_12+
1232 . pos_it(it)*pos_it(it))
1236 nptt = elbuf_str%BUFLY(ilay)%NPTT
1241 ipid_ly = stack%IGEO(i1,isubstack)
1242 matly = stack%IGEO(i2,isubstack)
1243 iint = igeo(47,iprop)
1246 thkly = stack%GEO(i3 ,isubstack)*thickt
1247 ipid_ly = stack%IGEO(i1,isubstack)
1248 matly = stack%IGEO(i2,isubstack)
1251 thk_it(it) = thkly/nptt
1252 ratio_thkly(ipt) = thk_it(it)/thick_drape
1254 posly(ipt) = zshift + half*ratio_thkly(ipt)
1256 posly(ipt) = posly(ipt-1)
1257 . + half*(ratio_thkly(ipt)+ratio_thkly(ipt-1))
1259 pos_it(it) = posly(ipt)*thk(i)
1261 ELSEIF(iint == 2)
THEN
1262 thickt = stack%GEO(1,isubstack)
1263 thkly = stack%GEO(i3 ,isubstack)*thickt
1266 thk_it(it) = half*thkly*w_gauss(it,nptt)
1267 ratio_thkly(ipt) = thk_it(it)/thick_drape
1269 posly(ipt) = zshift + half*ratio_thkly(ipt)
1271 posly(ipt) = posly(ipt-1)
1272 . + half*(ratio_thkly(ipt)+ratio_thkly(ipt-1))
1274 pos_it(it) = posly(ipt)*thk(i)
1279 thk_it(it) = scale*thk_it(it)
1280 ms_nptt = pm(89,matly)*thk_it(it)*area(i)*fourth
1281 xil = ms_nptt*(area(i)/fac+thk_it(it)*thk_it(it)*one_over_12+
1282 . pos_it(it)*pos_it(it))
1286 ipt_all = ipt_all + nptt
1292 zshift = geo(199,iprop)
1293 f_offset= zshift*zshift
1295 xi(i)=ems(i)*(area(i)/fac+thk(i)*thk(i)*(one_over_12+f_offset))
1299 IF (igtyp == 11 .OR. igtyp == 16 .OR. igtyp == 17
1300 . .OR. igtyp == 51)
THEN
1303 ins = ems(i)*(area(i)/fac+thk(i)*thk(i)*one_over_12)
1304 dms = abs(xi(i)-ins)/ins
1306 idprop = igeo(1,iprop)
1308 . igeo(npropgi-ltitr
1310 . msgtype=msgwarning,
1311 . anmode=aninfo_blind_2,
1313 . c1=titr,i2=ix(nixc,nft+i))
1325 IF (nxref == 0)
THEN
1334 partsav(1,ip)=partsav(1,ip) + four*ems(i)
1335 partsav(2,ip)=partsav(2,ip) + ems(i)*
1336 . (x(1,i1)+x(1,i2)+x(1,i3)+x(1,i4))
1337 partsav(3,ip)=partsav(3,ip) + ems(i)*
1338 . (x(2,i1)+x(2,i2)+x(2,i3)+x(2,i4))
1339 partsav(4,ip)=partsav
1340 . (x(3,i1)+x(3,i2)+x(3,i3)+x(3,i4))
1341 xx = (x(1,i1)*x(1,i1)+x(1,i2)*x(1,i2)
1342 . +x(1,i3)*x(1,i3)+x(1,i4)*x(1,i4))
1343 xy = (x(1,i1)*x(2,i1)+x(1,i2)*x(2,i2)
1344 . +x(1,i3)*x(2,i3)+x(1,i4)*x(2,i4))
1345 yy = (x(2,i1)*x(2,i1)+x(2,i2)*x(2,i2)
1346 . +x(2,i3)*x(2,i3)+x(2,i4)*x(2,i4))
1347 yz = (x(2,i1)*x(3,i1)+x(2,i2)*x(3,i2)
1348 . +x(2,i3)*x(3,i3)+x(2,i4)*x(3,i4))
1349 zz = (x(3,i1)*x(3,i1)+x(3,i2)*x(3,i2)
1350 . +x(3,i3)*x(3,i3)+x(3,i4
1351 zx = (x(3,i1)*x(1,i1)+x(3,i2)*x(1,i2)
1352 . +x(3,i3)*x(1,i3)+x(3,i4)*x(1,i4))
1354 partsav(5,ip) =partsav(5,ip) + four*xi(i) + ems(i) * (yy+zz)
1355 partsav(6,ip) =partsav(6,ip) + four*xi(i) + ems(i) * (zz+xx)
1356 partsav(7,ip) =partsav(7,ip) + four*xi(i) + ems(i) * (xx+yy)
1357 partsav(8,ip) =partsav(8,ip) - ems(i) * xy
1358 partsav(9,ip) =partsav(9,ip) - ems(i) * yz
1359 partsav(10,ip)=partsav(10,ip) - ems(i) * zx
1361 partsav(11,ip)=partsav(11,ip) + ems(i)*
1362 . (v(1,i1)+v(1,i2)+v(1,i3)+v(1,i4))
1363 partsav(12,ip)=partsav(12,ip) + ems(i)*
1364 . (v(2,i1)+v(2,i2)+v(2,i3)+v(2,i4))
1365 partsav(13,ip)=partsav(13,ip) + ems(i)*
1366 . (v(3,i1)+v(3,i2)+v(3,i3)+v(3,i4))
1368 partsav(14,ip)=partsav(14,ip) + half * ems(i) *
1369 . (v(1,i1)*v(1,i1)+v(2,i1)*v(2,i1)+v(3,i1)*v(3,i1)
1370 . +v(1,i2)*v(1,i2)+v(2,i2)*v(2,i2)+v(3,i2)*v(3,i2)
1371 . +v(1,i3)*v(1,i3)+v(2,i3)*v(2,i3)+v(3,i3)*v(3,i3)
1372 . +v(1,i4)*v(1,i4)+v(2,i4)*v(2,i4)+v(3,i4)*v(3,i4))
1382 partsav(1,ip)=partsav(1,ip) + four*ems(i)
1383 partsav(2,ip)=partsav(2,ip) + ems(i)*
1384 . (xrefc(1,1,i)+xrefc(2,1,i)+xrefc(3,1,i)+xrefc(4,1,i))
1385 partsav(3,ip)=partsav(3,ip) + ems(i)*
1386 . (xrefc(1,2,i)+xrefc(2,2,i)+xrefc(3,2,i)+xrefc(4,2,i))
1387 partsav(4,ip)=partsav(4,ip) + ems(i)*
1388 . (xrefc(1,3,i)+xrefc(2,3,i)+xrefc(3,3,i)+xrefc(4,3,i))
1389 xx = xrefc(1,1,i)**2 + xrefc(2,1,i)**2
1390 . + xrefc(3,1,i)**2 + xrefc(4,1,i)
1391 xy = xrefc(1,1,i)*xrefc(1,2,i) + xrefc(2,1,i)*xrefc(2,2,i)
1392 . + xrefc(3,1,i)*xrefc(3,2,i) + xrefc(4,1,i)*xrefc(4,2,i)
1393 yy = xrefc(1,2,i)**2 + xrefc(2,2,i)**2
1394 . + xrefc(3,2,i)**2 + xrefc(4,2,i)
1395 yz = xrefc(1,2,i)*xrefc(1,3,i) + xrefc(2,2,i)*xrefc(2,3,i)
1396 . + xrefc(3,2,i)*xrefc(3,3,i) + xrefc(4,2,i)*xrefc(4,3,i)
1397 zz = xrefc(1,3,i)**2 + xrefc(2,3,i)**2
1398 . + xrefc(3,3,i)**2 + xrefc(4,3,i)
1399 zx = xrefc(1,3,i)*xrefc(1,1,i) + xrefc(2,3,i)*xrefc(2,1,i)
1400 . + xrefc(3,3,i)*xrefc(3,1,i) + xrefc(4,3,i)*xrefc(4,1,i)
1402 partsav(5,ip) =partsav(5,ip) + four*xi(i) + ems(i)*(yy+zz)
1403 partsav(6,ip) =partsav(6,ip) + four*xi(i) + ems(i)*(zz+xx)
1404 partsav(7,ip) =partsav(7,ip) + four*xi(i) + ems(i)*(xx+yy)
1405 partsav(8,ip) =partsav(8,ip) - ems(i) * xy
1406 partsav(9,ip) =partsav(9,ip) - ems(i) * yz
1407 partsav(10,ip)=partsav(10,ip) - ems(i) * zx
1409 partsav(11,ip)=partsav(11,ip) + ems(i)*
1410 . (v(1,i1)+v(1,i2)+v(1,i3)+v(1,i4))
1411 partsav(12,ip)=partsav(12,ip) + ems(i)*
1412 . (v(2,i1)+v(2,i2)+v(2,i3)+v(2,i4))
1413 partsav(13,ip)=partsav(13,ip) + ems(i)*
1414 . (v(3,i1)+v(3,i2)+v(3,i3)+v(3,i4))
1416 partsav(14,ip)=partsav(14,ip) + half * ems(i) *
1417 . (v(1,i1)*v(1,i1)+v(2,i1)*v(2,i1)+v(3,i1)*v(3,i1)
1418 . +v(1,i2)*v(1,i2)+v(2,i2)*v(2,i2)+v(3,i2)*v(3,i2)
1419 . +v(1,i3)*v(1,i3)+v(2,i3)*v(2,i3)+v(3,i3)*v(3,i3)
1420 . +v(1,i4)*v(1,i4)+v(2,i4)*v(2,i4)+v(3,i4)*v(3,i4))
1423 ELSEIF(istatcnd==0)
THEN
1424 IF (nxref == 0)
THEN
1427 IF(sh4tree(3,n) >= 0)
THEN
1434 partsav(1,ip)=partsav(1,ip) + four*ems(i)
1435 partsav(2,ip)=partsav(2,ip) + ems(i)*
1436 . (x(1,i1)+x(1,i2)+x(1,i3)+x(1,i4))
1437 partsav(3,ip)=partsav(3,ip) + ems(i)*
1438 . (x(2,i1)+x(2,i2)+x(2,i3)+x(2,i4))
1439 partsav(4,ip)=partsav(4,ip) + ems(i)*
1440 . (x(3,i1)+x(3,i2)+x(3,i3)+x(3,i4))
1441 xx = (x(1,i1)*x(1,i1)+x(1,i2)*x(1,i2)
1442 . +x(1,i3)*x(1,i3)+x(1,i4)*x(1,i4))
1443 xy = (x(1,i1)*x(2,i1)+x(1,i2)*x(2,i2)
1444 . +x(1,i3)*x(2,i3)+x(1,i4)*x(2,i4))
1445 yy = (x(2,i1)*x(2,i1)+x(2,i2)*x(2,i2)
1446 . +x(2,i3)*x(2,i3)+x(2,i4)*x(2,i4))
1447 yz = (x(2,i1)*x(3,i1)+x(2,i2)*x(3,i2)
1448 . +x(2,i3)*x(3,i3)+x(2,i4)*x(3,i4))
1449 zz = (x(3,i1)*x(3,i1)+x(3,i2)*x(3,i2)
1450 . +x(3,i3)*x(3,i3)+x(3,i4)*x(3,i4))
1451 zx = (x(3,i1)*x(1,i1)+x(3,i2)*x(1,i2)
1452 . +x(3,i3)*x(1,i3)+x(3,i4)*x(1,i4))
1454 partsav(5,ip) =partsav(5,ip) + four*xi(i) + ems(i)*(yy+zz)
1455 partsav(6,ip) =partsav(6,ip) + four*xi(i) + ems(i)*(zz+xx)
1456 partsav(7,ip) =partsav(7,ip) + four*xi(i) + ems(i)*(xx+yy)
1457 partsav(8,ip) =partsav(8,ip) - ems(i) * xy
1458 partsav(9,ip) =partsav(9,ip) - ems(i) * yz
1459 partsav(10,ip)=partsav(10,ip) - ems(i) * zx
1461 partsav(11,ip)=partsav(11,ip) + ems(i)*
1462 . (v(1,i1)+v(1,i2)+v(1,i3)+v(1,i4))
1463 partsav(12,ip)=partsav(12,ip) + ems(i)*
1464 . (v(2,i1)+v(2,i2)+v(2,i3)+v(2,i4))
1465 partsav(13,ip)=partsav(13,ip) + ems(i)*
1466 . (v(3,i1)+v(3,i2)+v(3,i3)+v(3,i4))
1468 partsav(14,ip)=partsav(14,ip) + half * ems(i) *
1469 . (v(1,i1)*v(1,i1)+v(2,i1)*v(2,i1)+v(3,i1)*v(3,i1)
1470 . +v(1,i2)*v(1,i2)+v(2,i2)*v(2,i2)+v(3,i2)*v(3,i2)
1471 . +v(1,i3)*v(1,i3)+v(2,i3)*v(2,i3)+v(3,i3)*v(3,i3)
1472 . +v(1,i4)*v(1,i4)+v(2,i4)*v(2,i4)+v(3,i4)*v(3,i4))
1478 IF(sh4tree(3,n) >= 0)
THEN
1485 partsav(1,ip)=partsav(1,ip) + four*ems(i)
1486 partsav(2,ip)=partsav(2,ip) + ems(i)*
1487 . (xrefc(1,1,i)+xrefc(2,1,i)+xrefc(3,1,i)+xrefc(4,1,i))
1488 partsav(3,ip)=partsav(3,ip) + ems(i)*
1489 . (xrefc(1,2,i)+xrefc(2,2,i)+xrefc(3,2,i)+xrefc(4,2,i))
1490 partsav(4,ip)=partsav(4,ip) + ems(i)*
1491 . (xrefc(1,3,i)+xrefc(2,3,i)+xrefc(3,3,i)+xrefc(4,3,i))
1492 xx = xrefc(1,1,i)**2 + xrefc(2,1,i)**2
1493 . + xrefc(3,1,i)**2 + xrefc(4,1,i)
1494 xy = xrefc(1,1,i)*xrefc(1,2,i) + xrefc(2,1,i)*xrefc(2,2,i)
1495 . + xrefc(3,1,i)*xrefc(3,2,i) + xrefc(4,1,i)*xrefc(4,2,i)
1496 yy = xrefc(1,2,i)**2 + xrefc(2,2,i)**2
1497 . + xrefc(3,2,i)**2 + xrefc(4,2,i)
1498 yz = xrefc(1,2,i)*xrefc(1,3,i) + xrefc(2,2,i)*xrefc(2,3,i)
1499 . + xrefc(3,2,i)*xrefc(3,3,i) + xrefc(4,2,i)*xrefc(4,3,i)
1500 zz = xrefc(1,3,i)**2 + xrefc(2,3,i)**2
1502 zx = xrefc(1,3,i)*xrefc(1,1,i) + xrefc(2,3,i)*xrefc(2,1,i)
1503 . + xrefc(3,3,i)*xrefc(3,1,i) + xrefc(4,3,i)*xrefc(4,1,i)
1505 partsav(5,ip) =partsav(5,ip) + four*xi(i) + ems(i)*(yy+zz)
1506 partsav(6,ip) =partsav(6,ip) + four*xi(i) + ems(i)*(zz+xx)
1507 partsav(7,ip) =partsav(7,ip) + four*xi(i) + ems(i)*(xx+yy)
1508 partsav(8,ip) =partsav(8,ip) - ems(i) * xy
1509 partsav(9,ip) =partsav(9,ip) - ems(i) * yz
1510 partsav(10,ip)=partsav(10,ip) - ems(i) * zx
1512 partsav(11,ip)=partsav(11,ip) + ems(i)*
1513 . (v(1,i1)+v(1,i2)+v(1,i3)+v(1,i4))
1514 partsav(12,ip)=partsav(12,ip) + ems(i)*
1515 . (v(2,i1)+v(2,i2)+v(2,i3)+v(2,i4))
1516 partsav(13,ip)=partsav(13,ip) + ems(i)*
1517 . (v(3,i1)+v(3,i2)+v(3,i3)+v(3,i4))
1519 partsav(14,ip)=partsav(14,ip) + half * ems(i) *
1520 . (v(1,i1)*v(1,i1)+v(2,i1)*v(2,i1)+v(3,i1)*v(3,i1)
1521 . +v(1,i2)*v(1,i2)+v(2,i2)*v(2,i2)+v(3,i2)*v(3,i2)
1522 . +v(1,i3)*v(1,i3)+v(2,i3)*v(2,i3)+v(3,i3)*v(3,i3)
1523 . +v(1,i4)*v(1,i4)+v(2,i4)*v(2,i4)+v(3,i4)*v(3,i4))
1528 IF (nxref == 0)
THEN
1531 IF(sh4tree(3,n) == 0 .OR. sh4tree(3,n) == -1)
THEN
1538 partsav(1,ip)=partsav(1,ip) + four*ems(i)
1539 partsav(2,ip)=partsav(2,ip) + ems(i)*
1540 . (x(1,i1)+x(1,i2)+x(1,i3)+x(1,i4))
1541 partsav(3,ip)=partsav(3,ip) + ems(i)*
1542 . (x(2,i1)+x(2,i2)+x(2,i3)+x(2,i4))
1543 partsav(4,ip)=partsav(4,ip) + ems(i)*
1544 . (x(3,i1)+x(3,i2)+x(3,i3)+x(3,i4))
1545 xx = (x(1,i1)*x(1,i1)+x(1,i2)*x(1,i2)
1546 . +x(1,i3)*x(1,i3)+x(1,i4)*x(1,i4))
1547 xy = (x(1,i1)*x(2,i1)+x(1,i2)*x(2,i2)
1548 . +x(1,i3)*x(2,i3)+x(1,i4)*x(2,i4))
1549 yy = (x(2,i1)*x(2,i1)+x(2,i2)*x(2,i2)
1550 . +x(2,i3)*x(2,i3)+x(
1551 yz = (x(2,i1)*x(3,i1)+x(2,i2)*x
1552 . +x(2,i3)*x(3,i3)+x(2,i4)*x(3,i4))
1553 zz = (x(3,i1)*x(3,i1)+x(3,i2)*x(3,i2
1555 zx = (x(3,i1)*x(1,i1)+x(3,i2)*x(1,i2)
1556 . +x(3,i3)*x(1,i3)+x(3,i4)*x(1,i4))
1559 partsav(6,ip) =partsav(6,ip) + four*xi(i) + ems(i)*(zz+xx)
1560 partsav(7,ip) =partsav(7,ip) + four*xi(i) + ems(i)*(xx+yy)
1561 partsav(8,ip) =partsav(8,ip) - ems(i) * xy
1562 partsav(9,ip) =partsav(9,ip) - ems(i) * yz
1563 partsav(10,ip)=partsav(10,ip) - ems(i) * zx
1565 partsav(11,ip)=partsav(11,ip) + ems(i)*
1566 . (v(1,i1)+v(1,i2)+v(1,i3)+v(1,i4))
1567 partsav(12,ip)=partsav(12,ip) + ems(i)*
1568 . (v(2,i1)+v(2,i2)+v(2,i3)+v(2,i4))
1569 partsav(13,ip)=partsav(13,ip) + ems(i)*
1570 . (v(3,i1)+v(3,i2)+v(3,i3)+v(3,i4))
1572 partsav(14,ip)=partsav(14,ip) + half * ems(i) *
1573 . (v(1,i1)*v(1,i1)+v(2,i1)*v(2,i1)+v(3,i1)*v(3,i1)
1574 . +v(1,i2)*v(1,i2)+v(2,i2)*v(2,i2)+v(3,i2)*v(3,i2)
1575 . +v(1,i3)*v(1,i3)+v(2,i3)*v(2,i3)+v(3,i3)*v(3,i3)
1576 . +v(1,i4)*v(1,i4)+v(2,i4)*v(2,i4)+v(3,i4)*v(3,i4))
1582 IF(sh4tree(3,n) == 0 .OR. sh4tree(3,n) == -1)
THEN
1589 partsav(1,ip)=partsav(1,ip) + four*ems(i)
1590 partsav(2,ip)=partsav(2,ip) + ems(i)*
1591 . (xrefc(1,1,i)+xrefc(2,1,i)+xrefc(3,1,i)+xrefc(4,1,i))
1592 partsav(3,ip)=partsav(3,ip) + ems(i)*
1593 . (xrefc(1,2,i)+xrefc(2,2,i)+xrefc(3,2,i)+xrefc(4,2,i))
1594 partsav(4,ip)=partsav(4,ip) + ems(i)*
1595 . (xrefc(1,3,i)+xrefc(2,3,i)+xrefc(3,3,i)+xrefc(4,3,i))
1596 xx = xrefc(1,1,i)**2 + xrefc(2,1,i)**2
1597 . + xrefc(3,1,i)**2 + xrefc(4,1,i)
1598 xy = xrefc(1,1,i)*xrefc(1,2,i) + xrefc(2,1,i)*xrefc(2,2,i)
1599 . + xrefc(3,1,i)*xrefc(3,2,i) + xrefc(4,1,i)*xrefc(4,2,i)
1600 yy = xrefc(1,2,i)**2 + xrefc(2,2,i)**2
1601 . + xrefc(3,2,i)**2 + xrefc(4,2,i)
1602 yz = xrefc(1,2,i)*xrefc(1,3,i) + xrefc(2,2,i)*xrefc(2,3,i)
1603 . + xrefc(3,2,i)*xrefc(3,3,i) + xrefc(4,2,i)*xrefc(4,3,i)
1604 zz = xrefc(1,3,i)**2 + xrefc(2,3,i)**2
1605 . + xrefc(3,3,i)**2 + xrefc(4,3,i)
1606 zx = xrefc(1,3,i)*xrefc(1,1,i) + xrefc(2,3,i)*xrefc(2,1,i)
1607 . + xrefc(3,3,i)*xrefc(3,1,i) + xrefc(4,3,i)*xrefc(4,1,i)
1609 partsav(5,ip) =partsav(5,ip) + four*xi(i) + ems(i)*(yy+zz)
1610 partsav(6,ip) =partsav(6,ip) + four*xi(i) + ems(i)*(zz+xx)
1611 partsav(7,ip) =partsav(7,ip) + four*xi(i) + ems(i)*(xx+yy)
1612 partsav(8,ip) =partsav(8,ip) - ems(i) * xy
1613 partsav(9,ip) =partsav(9,ip) - ems(i) * yz
1614 partsav(10,ip)=partsav(10,ip) - ems(i) * zx
1616 partsav(11,ip)=partsav(11,ip) + ems(i)*
1617 . (v(1,i1)+v(1,i2)+v(1,i3)+v(1,i4))
1618 partsav(12,ip)=partsav(12,ip) + ems(i)*
1619 . (v(2,i1)+v(2,i2)+v(2,i3)+v(2,i4))
1620 partsav(13,ip)=partsav(13,ip) + ems(i)*
1621 . (v(3,i1)+v(3,i2)+v(3,i3)+v(3,i4))
1623 partsav(14,ip)=partsav(14,ip) + half * ems(i) *
1624 . (v(1,i1)*v(1,i1)+v(2,i1)*v(2,i1)+v(3,i1)*v(3,i1)
1625 . +v(1,i2)*v(1,i2)+v(2,i2)*v(2,i2)+v(3,i2)*v(3,i2)
1626 . +v(1,i3)*v(1,i3)+v(2,i3)*v(2,i3)+v(3,i3)*v(3,i3)
1627 . +v(1,i4)*v(1,i4)+v(2,i4)*v(2,i4)+v(3,i4)*v(3,i4))
1636 IF (igtyp == 52 .OR. ((igtyp == 17 .OR. igtyp == 51) .AND. igmat > 0))
THEN
1639 et= stack%PM(2,isubstack)*thk(i)
1641 nshnod(ix1(i))=nshnod(ix1(i))+1
1642 nshnod(ix2(i))=nshnod(ix2(i))+1
1643 nshnod(ix3(i))=nshnod(ix3(i))+1
1644 nshnod(ix4(i))=nshnod(ix4(i))+1
1647 ELSEIF(igtyp == 11 .AND. igmat > 0)
THEN
1651 et=geo(ipgmat +2 ,iprop)*thk(i)
1653 nshnod(ix1(i))=nshnod(ix1(i))+1
1654 nshnod(ix2(i))=nshnod(ix2(i))+1
1655 nshnod(ix3(i))=nshnod(ix3(i))+1
1656 nshnod(ix4(i))=nshnod(ix4(i))+1
1662 et=pm(20,imid)*thk(i)
1664 nshnod(ix1(i))=nshnod(ix1(i))+1
1665 nshnod(ix2(i))=nshnod(ix2(i))+1
1666 nshnod(ix3(i))=nshnod(ix3(i))+1
1667 nshnod(ix4(i))=nshnod(ix4(i))+1
1671 DEALLOCATE(posly,ratio_thkly,thk_it,pos_it )