36 1 JFT ,JLT ,ISMSTR,ILAW ,ITHK ,
37 2 PM ,GEO ,IXC ,X ,XREFC ,
38 3 FOR ,THK ,EINT ,GSTR ,NLAY ,
39 4 PX1G ,PX2G ,PY1G ,PY2G ,X2S ,
40 5 Y2S ,X3S ,Y3S ,X4S ,Y4S ,
41 6 UVAR ,IPM ,IGEO ,IMAT ,
42 7 SKEW ,NEL ,DIR_A ,DIR_B ,SIGI ,
51#include "implicit_f.inc"
64 INTEGER JFT, JLT, ISMSTR, ILAW, ITHK, NEL, NLAY,IREP,IMAT
65 INTEGER IXC(NIXC,*),IGEO(NPROPGI,*),IPM(NPROPMI,*),NPF(*)
67 . PM(NPROPM,*),GEO(NPROPG,*),X(3,*),(4,3,*),SKEW(LSKEW,*),
68 . FOR(NEL,5) ,THK(*) ,EINT(JLT,2),GSTR(NEL,8),
69 . PX1G(*) ,PX2G(*) ,PY1G(*) ,PY2G(*), UVAR(NEL,*),
70 . X2S(*), Y2S(*), X3S(*), Y3S(*), X4S(*), Y4S(*),
71 . DIR_A(NEL,*),DIR_B(NEL,*),SIGI(NEL,3),TF(*)
72 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_STR
73 TYPE (MATPARAM_STRUCT_) ,
INTENT(IN) :: MAT_PARAM
77 INTEGER I, NT, I1, I2, I3, I4,IDRAPE,IGTYP
81 . x1(mvsiz) , x2(mvsiz) , x3(mvsiz) , x4(mvsiz) ,
82 . y1(mvsiz) , y2(mvsiz) , y3(mvsiz) , y4(mvsiz) ,
83 . z1(mvsiz) , z2(mvsiz) , z3(mvsiz) , z4(mvsiz),
84 . px1(mvsiz), px2(mvsiz), py1(mvsiz), py2(mvsiz),
85 . vl(3,4,mvsiz), xl(3,4,mvsiz),
area(mvsiz),
86 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz),
87 . e2x(mvsiz), e2y(mvsiz), e2z(mvsiz),
88 . e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),
89 . x4i(mvsiz), y4i(mvsiz), z4i(mvsiz),
90 . exx(mvsiz),eyy(mvsiz),exy(mvsiz),eyz(mvsiz),ezx(mvsiz)
92 .
DIMENSION(:) ,
POINTER :: dir1, dir2
95 idrape = elbuf_str%IDRAPE
96 igtyp = elbuf_str%IGTYP
105 x2(i) = x(1,i2) - x(1,i1)
106 y2(i) = x(2,i2) - x(2,i1)
107 z2(i) = x(3,i2) - x(3,i1)
108 x3(i) = x(1,i3) - x(1,i1)
109 y3(i) = x(2,i3) - x(2,i1)
110 z3(i) = x(3,i3) - x(3,i1)
111 x4(i) = x(1,i4) - x(1,i1)
112 y4(i) = x(2,i4) - x(2,i1)
113 z4(i) = x(3,i4) - x(3,i1)
117 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
118 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
119 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
122 xl(1,2,i) = e1x(i)*x2(i) + e1y(i)*y2(i) + e1z(i)*z2(i)
123 xl(2,2,i) = e2x(i)*x2(i) + e2y(i)*y2(i) + e2z(i)*z2(i)
124 xl(1,3,i) = e1x(i)*x3(i) + e1y(i)*y3(i) + e1z(i)*z3(i)
125 xl(2,3,i) = e2x(i)*x3(i) + e2y(i)*y3(i) + e2z(i)*z3(i)
126 xl(1,4,i) = e1x(i)*x4(i) + e1y(i)*y4(i) + e1z(i)*z4(i)
127 xl(2,4,i) = e2x(i)*x4(i) + e2y
132 x2(i) = xrefc(2,1,i) - xrefc(1,1,i)
133 y2(i) = xrefc(2,2,i) - xrefc(1,2,i)
134 z2(i) = xrefc(2,3,i) - xrefc(1,3,i)
135 x3(i) = xrefc(3,1,i) - xrefc(1,1,i)
136 y3(i) = xrefc(3,2,i) - xrefc(1,2,i)
137 z3(i) = xrefc(3,3,i) - xrefc(1,3,i)
138 x4(i) = xrefc(4,1,i) - xrefc(1,1,i)
139 y4(i) = xrefc(4,2,i) - xrefc(1,2,i)
140 z4(i) = xrefc(4,3,i) - xrefc(1,3,i)
144 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
145 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
146 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
148 fac = one / float(nitrs)
153 vl(1,2,i) = e1x(i)*xl(1,2,i) + e2x(i)*xl(2,2,i)
154 vl(2,2,i) = e1y(i)*xl(1,2,i) + e2y(i)*xl(2,2,i)
155 vl(3,2,i) = e1z(i)*xl(1,2,i) + e2z(i)*xl(2,2,i)
156 vl(1,3,i) = e1x(i)*xl(1,3,i) + e2x(i)*xl(2,3,i)
157 vl(2,3,i) = e1y(i)*xl(1,3,i) + e2y(i)*xl(2,3,i)
158 vl(3,3,i) = e1z(i)*xl(1,3,i) + e2z(i)*xl(2,3,i)
159 vl(1,4,i) = e1x(i)*xl(1,4,i) + e2x(i)*xl(2,4,i)
160 vl(2,4,i) = e1y(i)*xl(1,4,i) + e2y(i)*xl(2,4,i)
161 vl(3,4,i) = e1z(i)*xl(1,4,i) + e2z(i)*xl(2,4,i)
163 vl(1,2,i) = (vl(1,2,i) - x2(i)) * fac
164 vl(2,2,i) = (vl(2,2,i) - y2(i)) * fac
165 vl(3,2,i) = (vl(3,2,i) - z2(i)) * fac
166 vl(1,3,i) = (vl(1,3,i) - x3(i)) * fac
167 vl(2,3,i) = (vl(2,3,i) - y3(i)) * fac
168 vl(3,3,i) = (vl(3,3,i) - z3(i)) * fac
169 vl(1,4,i) = (vl(1,4,i) - x4(i)) * fac
170 vl(2,4,i) = (vl(2,4,i) - y4(i)) * fac
171 vl(3,4,i) = (vl(3,4,i) - z4(i)) * fac
174 IF (ismstr /= 1 .AND. ismstr /= 11)
THEN
177 fac = float(nt) - one
179 x1(i) = xrefc(1,1,i) + fac*vl(1,1,i)
180 y1(i) = xrefc(1,2,i) + fac*vl(2,1,i)
181 z1(i) = xrefc(1,3,i) + fac*vl(3,1,i)
182 x2(i) = xrefc(2,1,i) + fac*vl(1,2,i)
183 y2(i) = xrefc(2,2,i) + fac*vl(2,2,i)
184 z2(i) = xrefc(2,3,i) + fac*vl(3,2,i)
185 x3(i) = xrefc(3,1,i) + fac*vl(1,3,i)
186 y3(i) = xrefc(3,2,i) + fac*vl(2,3,i)
187 z3(i) = xrefc(3,3,i) + fac*vl(3,3,i)
188 x4(i) = xrefc(4,1,i) + fac*vl(1,4,i)
189 y4(i) = xrefc(4,2,i) + fac*vl(2,4,i)
190 z4(i) = xrefc(4,3,i) + fac*vl(3,4,i)
194 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
195 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
196 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
198 CALL corth3(elbuf_str,dir_a,dir_b,jft,jlt,
200 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
201 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
202 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z ,
207 . px1g ,px2g ,py1g ,py2g ,
208 . px1 ,px2 ,py1 ,py2 ,
209 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
210 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
211 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
212 . x2s ,y2s ,x3s ,y3s ,x4s ,y4s )
214 CALL cdefoi(jft ,jlt ,vl ,gstr ,
215 . px1 ,px2 ,py1 ,py2 ,nel,
216 .
area ,exx ,eyy ,exy ,eyz ,ezx ,
217 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
220 . jft ,jlt ,ilaw ,ithk ,pm ,
221 . for ,thk ,eint ,gstr ,dir_a ,
223 . nel ,sigi ,npf ,tf ,
224 .
area ,exx ,eyy ,exy ,imat )
232 . px1g ,px2g ,py1g ,py2g ,
233 . px1 ,px2 ,py1 ,py2 ,
234 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
235 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
236 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z ,
237 . x2s ,y2s ,x3s ,y3s ,x4s ,y4s )
239 dir1 => elbuf_str%BUFLY(1)%DIRA
240 dir2 => elbuf_str%BUFLY(1)%DIRB
243 CALL cdefoi(jft ,jlt ,vl ,gstr ,
244 . px1 ,px2 ,py1 ,py2 ,nel,
245 .
area ,exx ,eyy ,exy ,eyz ,ezx ,
246 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
249 . jft ,jlt ,ilaw ,ithk ,pm ,
250 . for ,thk ,eint ,gstr ,dir1 ,
252 . nel ,sigi ,npf ,tf ,
253 .
area ,exx ,eyy ,exy ,imat )
430 . PX1 ,PX2 ,PY1 ,PY2 ,NEL ,
431 . AREA ,EXX ,EYY ,EXY ,EYZ ,EZX ,
432 . E1X ,E2X ,E3X ,E1Y ,E2Y ,E3Y ,E1Z ,E2Z ,E3Z )
436#include "implicit_f.inc"
440#include "mvsiz_p.inc"
446 . VL(3,4,*) ,GSTR(NEL,8),
447 . PX1(NEL) ,PX2(NEL) ,PY1(NEL) ,PY2(NEL),
448 . E1X(MVSIZ) , E1Y(MVSIZ) , E1Z(MVSIZ) ,
449 . E2X(MVSIZ) , E2Y(MVSIZ) , E2Z(MVSIZ) ,
450 . E3X(MVSIZ) , E3Y(MVSIZ) , E3Z(MVSIZ) ,
451 .
area(mvsiz),exx(mvsiz),eyy(mvsiz),exy(mvsiz),eyz(mvsiz),ezx(mvsiz)
458 . VX1(MVSIZ) , VX2(MVSIZ) , VX3(MVSIZ) , VX4(MVSIZ) ,
459 . VY1(MVSIZ) , VY2(MVSIZ) , VY3(MVSIZ) , VY4(MVSIZ) ,
460 . VZ1(MVSIZ) , VZ2(MVSIZ) , VZ3(MVSIZ) , VZ4(MVSIZ) ,
461 . VX13(MVSIZ), VX24(MVSIZ), VY13(MVSIZ), VY24(MVSIZ),
462 . VZ13(MVSIZ), VZ24(MVSIZ)
463 my_real TMP1, , TMP3, FAC1
466 vx1(i) = e1x(i)*vl(1,1,i) + e1y(i)*vl(2,1,i) + e1z(i)*vl(3,1,i)
467 vx2(i) = e1x(i)*vl(1,2,i) + e1y(i)*vl(2,2,i) + e1z(i)*vl(3,2,i)
468 vx3(i) = e1x(i)*vl(1,3,i) + e1y(i)*vl(2,3,i) + e1z(i)*vl(3,3,i)
469 vx4(i) = e1x(i)*vl(1,4,i) + e1y(i)*vl(2,4,i) + e1z(i)*vl(3,4,i)
471 vy4(i) = e2x(i)*vl(1,4,i) + e2y(i)*vl(2,4,i) + e2z(i)*vl(3,4,i)
472 vy3(i) = e2x(i)*vl(1,3,i) + e2y(i)*vl(2,3,i) + e2z(i)*vl(3,3,i)
473 vy2(i) = e2x(i)*vl(1,2,i) + e2y(i)*vl(2,2,i) + e2z(i)*vl(3,2,i)
474 vy1(i) = e2x(i)*vl(1,1,i) + e2y(i)*vl(2,1,i) + e2z(i)*vl(3,1,i)
476 vz1(i) = e3x(i)*vl(1,1,i) + e3y(i)*vl(2,1,i) + e3z(i)*vl(3,1,i)
477 vz2(i) = e3x(i)*vl(1,2,i) + e3y(i)*vl(2,2,i) + e3z(i)*vl(3,2,i)
478 vz3(i) = e3x(i)*vl(1,3,i) + e3y(i)*vl(2,3,i) + e3z(i)*vl(3,3,i)
479 vz4(i) = e3x(i)*vl(1,4,i) + e3y(i)*vl(2,4,i) + e3z(i)*vl(3,4,i)
483 vz13(i) = vz1(i)-vz3(i)
484 vz24(i) = vz2(i)-vz4(i)
486 tmp3 = sign(
max(abs(tmp2),em20),tmp2)
487 tmp1 = fourth*(vz13(i)-vz24(i))**2/tmp3
488 vx13(i) = vx1(i)-vx3(i)
489 vx24(i) = vx2(i)-vx4(i)
490 vx13(i) = vx13(i)-tmp1
491 vx24(i) = vx24(i)+tmp1
493 exx(i) = px1(i)*vx13(i)+px2(i)*vx24(i)
494 exy(i) = py1(i)*vx13(i)+py2(i)*vx24(i)
497 tmp3=sign(
max(abs(tmp1),em20),tmp1)
498 tmp2=fourth*(vz13(i)+vz24(i))**2/tmp3
499 vy13(i)=vy1(i)-vy3(i)
500 vy24(i)=vy2(i)-vy4(i)
504 exy(i)=exy(i)+px1(i)*vy13(i)+px2(i)*vy24(i)
505 eyy(i)=py1(i)*vy13(i)+py2(i)*vy24(i)
506 eyz(i)=py1(i)*vz13(i)+py2(i)*vz24(i)
507 ezx(i)=px1(i)*vz13(i)+px2(i)*vz24(i)
518 gstr(i,1)=gstr(i,1)+exx(i)
519 gstr(i,2)=gstr(i,2)+eyy(i)
520 gstr(i,3)=gstr(i,3)+exy(i)