OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
c3defo3.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| c3defo3 ../engine/source/elements/sh3n/coque3n/c3defo3.F
25!||--- called by ------------------------------------------------------
26!|| c3forc3 ../engine/source/elements/sh3n/coque3n/c3forc3.F
27!|| c3forc3_crk ../engine/source/elements/xfem/c3forc3_crk.F
28!||====================================================================
29 SUBROUTINE c3defo3(JFT,JLT,VL1,VL2,VL3,
30 . IXTG,ISH3N,PX1 ,PY1 ,PY2 ,
31 . EXX ,EYY ,EXY ,EYZ ,EZX ,
32 . VX13 ,VX23 ,VY12 ,
33 . E1X ,E1Y ,E1Z ,E2X ,
34 . E2Y ,E2Z ,E3X ,E3Y ,E3Z )
35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C G l o b a l P a r a m e t e r s
41C-----------------------------------------------
42#include "mvsiz_p.inc"
43C-----------------------------------------------
44C C o m m o n B l o c k s
45C-----------------------------------------------
46#include "com08_c.inc"
47#include "impl1_c.inc"
48C-----------------------------------------------
49C D u m m y A r g u m e n t s
50C-----------------------------------------------
51 INTEGER JFT, JLT,IXTG(NIXTG,*), ISH3N
52 my_real VL1(MVSIZ,3),VL2(MVSIZ,3),VL3(MVSIZ,3),
53 . EXX(MVSIZ), EYY(MVSIZ), EXY(MVSIZ), EYZ(MVSIZ),EZX(MVSIZ),
54 . E1X(MVSIZ), E1Y(MVSIZ), E1Z(MVSIZ),
55 . E2X(MVSIZ), E2Y(MVSIZ), E2Z(MVSIZ),
56 . e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),
57 . px1(mvsiz), py1(mvsiz), py2(mvsiz), vx13(mvsiz), vx23(mvsiz),
58 . vy12(mvsiz)
59C-----------------------------------------------
60C L o c a l V a r i a b l e s
61C-----------------------------------------------
62 INTEGER NC1, NC2, NC3, I, J
63 my_real
64 . VX1(MVSIZ), VX2(MVSIZ), VX3(MVSIZ),
65 . VY1(MVSIZ), VY2(MVSIZ), VY3(MVSIZ),
66 . VZ1(MVSIZ), VZ2(MVSIZ), VZ3(MVSIZ),
67 . vx12(mvsiz), vy13(mvsiz), vy23(mvsiz),
68 . vz12(mvsiz), vz13(mvsiz), vz23(mvsiz)
69 my_real dt1v4b,tmp11,tmp22,vx10,vx20,vx30,dt1v4,tmp1,tmp2
70C=======================================================================
71C
72 DO i=jft,jlt
73 vx1(i)=e1x(i)*vl1(i,1)+e1y(i)*vl1(i,2)+e1z(i)*vl1(i,3)
74 vx2(i)=e1x(i)*vl2(i,1)+e1y(i)*vl2(i,2)+e1z(i)*vl2(i,3)
75 vx3(i)=e1x(i)*vl3(i,1)+e1y(i)*vl3(i,2)+e1z(i)*vl3(i,3)
76C
77 vy3(i)=e2x(i)*vl3(i,1)+e2y(i)*vl3(i,2)+e2z(i)*vl3(i,3)
78 vy2(i)=e2x(i)*vl2(i,1)+e2y(i)*vl2(i,2)+e2z(i)*vl2(i,3)
79 vy1(i)=e2x(i)*vl1(i,1)+e2y(i)*vl1(i,2)+e2z(i)*vl1(i,3)
80C
81 vz1(i)=e3x(i)*vl1(i,1)+e3y(i)*vl1(i,2)+e3z(i)*vl1(i,3)
82 vz2(i)=e3x(i)*vl2(i,1)+e3y(i)*vl2(i,2)+e3z(i)*vl2(i,3)
83 vz3(i)=e3x(i)*vl3(i,1)+e3y(i)*vl3(i,2)+e3z(i)*vl3(i,3)
84 ENDDO
85c
86 dt1v4 = fourth*dt1
87 IF (impl_s > 0 .AND. imp_lr == 0 ) dt1v4=zero
88 dt1v4b= dt1v4
89 IF(ish3n < 2) dt1v4b=zero
90C
91 DO 40 i=jft,jlt
92 vz12(i)=vz1(i) - vz2(i)
93 vz13(i)=vz1(i) - vz3(i)
94 vz23(i)=vz2(i) - vz3(i)
95C
96 tmp1 = dt1v4 * vz12(i) / (py1(i)+py2(i))
97 tmp2 = (py1(i) * vz1(i) + py2(i) * vz2(i)) / (py1(i)+py2(i))
98 tmp2 = dt1v4 * (tmp2 - vz3(i)) / px1(i)
99 vy12(i)=vy1(i) - vy2(i)
100 tmp11 = dt1v4b * vy12(i) / (py1(i)+py2(i))
101 tmp22 = (py1(i) * vx1(i) + py2(i) * vx2(i)) / (py1(i)+py2(i))
102 tmp22 = dt1v4b * (tmp22 - vx3(i)) / px1(i)
103 vx10 = vx1(i)
104 vx20 = vx2(i)
105 vx30 = vx3(i)
106 vx1(i) = vx1(i) - vz1(i) * tmp1 - vy1(i) * tmp11
107 vx2(i) = vx2(i) - vz2(i) * tmp1 - vy2(i) * tmp11
108 vx3(i) = vx3(i) - vz3(i) * tmp1 - vy3(i) * tmp11
109 vy1(i) = vy1(i) - vz1(i) * tmp2 - vx10 * tmp22
110 vy2(i) = vy2(i) - vz2(i) * tmp2 - vx20 * tmp22
111 vy3(i) = vy3(i) - vz3(i) * tmp2 - vx30 * tmp22
112C
113 vx12(i)=vx1(i) - vx2(i)
114 vy12(i)=vy1(i) - vy2(i)
115 vx13(i)=vx1(i) - vx3(i)
116 vy13(i)=vy1(i) - vy3(i)
117 vx23(i)=vx2(i) - vx3(i)
118 vy23(i)=vy2(i) - vy3(i)
119C
120 exx(i)=px1(i)*vx12(i)
121 eyy(i)=py1(i)*vy13(i) + py2(i)*vy23(i)
122C
123 exy(i)=py1(i)*vx13(i) + py2(i)*vx23(i) + px1(i)*vy12(i)
124 eyz(i)=py1(i)*vz13(i) + py2(i)*vz23(i)
125 ezx(i)=px1(i)*vz12(i)
126 40 CONTINUE
127C-----------
128 RETURN
129 END
130!||====================================================================
131!|| c3brz3 ../engine/source/elements/sh3n/coque3n/c3defo3.F
132!||--- called by ------------------------------------------------------
133!|| c3forc3 ../engine/source/elements/sh3n/coque3n/c3forc3.F
134!|| c3forc3_crk ../engine/source/elements/xfem/c3forc3_crk.F
135!||--- calls -----------------------------------------------------
136!|| c3derirz ../engine/source/elements/sh3n/coque3n/c3defo3.F
137!||====================================================================
138 SUBROUTINE c3brz3(JFT ,JLT ,AREA ,X2 ,X3 ,
139 . Y3 ,BM0RZ,B0RZ ,BKRZ ,BERZ )
140C-----------------------------------------------
141C C o m m o n B l o c k s
142C-----------------------------------------------
143#include "implicit_f.inc"
144#include "mvsiz_p.inc"
145C-----------------------------------------------
146C D U M M Y A R G U M E N T S
147C-----------------------------------------------
148 INTEGER JFT,JLT
149 my_real AREA(*), X2(MVSIZ), X3(MVSIZ), Y3(MVSIZ),
150 . BM0RZ(MVSIZ,3,2),B0RZ(MVSIZ,3),BKRZ(MVSIZ,2),BERZ(MVSIZ,2)
151C=======================================================================
152c FUNCTION: [B] Matrix :derivation of Alman shape function for Tria
153c
154c Note:
155c ARGUMENTS: (I: input, O: output, IO: input * output, W: workspace)
156c
157c TYPE NAME FUNCTION
158c I JFT,JLT - element id limit
159c I AREA(NEL) - element area A
160c O BM0RZ(I,J,NEL) - constant terms of derivations for membrane
161C I=1:A*Nx,x;I=2:A*Ny,y;I=3:A*(Nx,y+Ny,x); J=1,2(node)
162C only store J=1,2 as f(j=3)=-f(j=1)-f(j=2)
163C O B0RZ(J,NEL) A*(-Nx,y+Ny,x -2Ni) for asymmetric rotation
164c O BKRZ(J,NEL) - Ksi terms of derivation : A*(-Nx,y+Ny,x -2Ni)
165c O BERZ(J,NEL) - Eta terms of derivation : A*(-Nx,y+Ny,x -2Ni)
166C-----------------------------------------------
167C L O C A L V A R I A B L E S
168C-----------------------------------------------
169 INTEGER I
170 my_real Y2(MVSIZ)
171C=======================================================================
172 Y2(JFT:JLT)=zero
173 CALL c3derirz(jft ,jlt ,area ,x2 ,x3 ,
174 . y2 ,y3 ,bm0rz,b0rz ,bkrz ,
175 . berz )
176c-----------
177 RETURN
178 END
179!||====================================================================
180!|| c3defrz ../engine/source/elements/sh3n/coque3n/c3defo3.F
181!||--- called by ------------------------------------------------------
182!|| c3forc3 ../engine/source/elements/sh3n/coque3n/c3forc3.F
183!|| c3forc3_crk ../engine/source/elements/xfem/c3forc3_crk.F
184!||====================================================================
185 SUBROUTINE c3defrz(JFT ,JLT ,RLZ ,BM0RZ ,B0RZ ,
186 1 BKRZ ,BERZ ,E3X ,E3Y ,E3Z ,
187 2 VRL1 ,VRL2 ,VRL3 ,EXX ,EYY ,
188 3 EXY ,PX1 ,PY1 ,PY2 ,WXY ,
189 4 AREA ,VX13 ,VX23 ,VY12 )
190C---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
191#include "implicit_f.inc"
192#include "mvsiz_p.inc"
193C-----------------------------------------------
194C D U M M Y A R G U M E N T S
195C-----------------------------------------------
196 INTEGER JFT,JLT
197 my_real
198 . AREA(*),RLZ(MVSIZ,3),VX13(MVSIZ), VX23(MVSIZ),VY12(MVSIZ),
199 . VRL1(MVSIZ,3), VRL2(MVSIZ,3), VRL3(MVSIZ,3),
200 . E3X(MVSIZ), E3Y(MVSIZ),E3Z(MVSIZ), EXX(*),EYY(*),EXY(*),
201 . BM0RZ(MVSIZ,3,2),B0RZ(MVSIZ,3),BKRZ(MVSIZ,2),BERZ(MVSIZ,2),WXY(*),
202 . PX1(*),PY1(*),PY2(*)
203C=======================================================================
204c FUNCTION: strains relative to the drilling dof for Tria
205c
206c Note:
207c ARGUMENTS: (I: input, O: output, IO: input * output, W: workspace)
208c
209c TYPE NAME FUNCTION
210c I JFT,JLT - element id limit
211c I AREA(NEL) - element area A
212c I E3X,E3Y,E3Z(NEL) - normal vector of Tria
213c I VRL1,VRL2,VRL3(NEL,J)nodal rotation velocity in global system
214C I PX1,PY1,PX2=-PX1,PY2(NEL): standard [B] of Tria
215c O RLZ(J,NEL) - nodal Rz rotation velocity (J=1-3)
216c O BM0RZ(I,J,NEL) - constant terms of derivations for membrane
217C I=1:A*Nx,x;I=2:A*Ny,y;I=3:A*(Nx,y+Ny,x); J=1,2(node)
218C only store J=1,2 as f(j=3)=-f(j=1)-f(j=2)
219C O B0RZ(J,NEL) A*(-Nx,y+Ny,x -2Ni) for asymmetric rotation
220c O BKRZ(J,NEL) - Ksi terms of derivation : A*(-Nx,y+Ny,x -2Ni)
221c O BERZ(J,NEL) - Eta terms of derivation : A*(-Nx,y+Ny,x -2Ni)
222c O WXY(NEL) - asymmetric strain : 0.5*(-NxJ,y*VxJ+NyJ,x*VyJ)
223c IO EXX,EYY,EXY(NEL)- membrance strains
224C-----------------------------------------------
225C L O C A L V A R I A B L E S
226C-----------------------------------------------
227 INTEGER I
228 my_real
229 . BXV2,BYV1,A05,RZ13(MVSIZ), RZ23(MVSIZ)
230C-----------------------------------------------
231 DO I=jft,jlt
232 rlz(i,1)=e3x(i)*vrl1(i,1)+e3y(i)*vrl1(i,2)+e3z(i)*vrl1(i,3)
233 rlz(i,2)=e3x(i)*vrl2(i,1)+e3y(i)*vrl2(i,2)+e3z(i)*vrl2(i,3)
234 rlz(i,3)=e3x(i)*vrl3(i,1)+e3y(i)*vrl3(i,2)+e3z(i)*vrl3(i,3)
235 rz13(i)=rlz(i,1)-rlz(i,3)
236 rz23(i)=rlz(i,2)-rlz(i,3)
237 END DO
238C---------------
239C MEMBRANE CONSTANT
240C---------------
241 DO i=jft,jlt
242 exx(i)=exx(i)+bm0rz(i,1,1)*rz13(i)+bm0rz(i,1,2)*rz23(i)
243 eyy(i)=eyy(i)+bm0rz(i,2,1)*rz13(i)+bm0rz(i,2,2)*rz23(i)
244 exy(i)=exy(i)+bm0rz(i,3,1)*rz13(i)+bm0rz(i,3,2)*rz23(i)
245 ENDDO
246C--------NxI,x *A------pay attention Bi*A--- RLZ: VRZ--
247 DO i=jft,jlt
248 byv1= py1(i)*vx13(i) + py2(i)*vx23(i)
249 bxv2= px1(i)*vy12(i)
250 a05=half/area(i)
251 wxy(i)=(-byv1+bxv2)*a05
252 ENDDO
253C
254 RETURN
255 END
256!||====================================================================
257!|| c3derirz ../engine/source/elements/sh3n/coque3n/c3defo3.F
258!||--- called by ------------------------------------------------------
259!|| c3brz3 ../engine/source/elements/sh3n/coque3n/c3defo3.F
260!|| c3ke3 ../engine/source/elements/sh3n/coque3n/c3ke3.F
261!||--- calls -----------------------------------------------------
262!|| c3bm0rz ../engine/source/elements/sh3n/coque3n/c3defo3.F
263!||====================================================================
264 SUBROUTINE c3derirz(JFT ,JLT ,AREA ,X2 ,X3 ,
265 2 Y2 ,Y3 ,BMRZ ,B0RZ ,BKRZ ,
266 3 BERZ )
267C---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
268#include "implicit_f.inc"
269#include "mvsiz_p.inc"
270C-----------------------------------------------
271C D U M M Y A R G U M E N T S
272C-----------------------------------------------
273 INTEGER JFT,JLT
274 my_real
275 . X2(MVSIZ),X3(MVSIZ),Y2(MVSIZ),Y3(MVSIZ),AREA(*)
276 my_real
277 . bmrz(mvsiz,3,2),b0rz(mvsiz,3),bkrz(mvsiz,2),berz(mvsiz,2)
278C=======================================================================
279c FUNCTION: derivation of Alman shape function for Tria
280c
281c Note:
282c ARGUMENTS: (I: input, O: output, IO: input * output, W: workspace)
283c
284c TYPE NAME FUNCTION
285c I JFT,JLT - element id limit
286c I AREA(NEL) - element area A
287c I X2,X3,Y2,Y3(NEL) - relative local nodal coordinates: X2->X21
288c O BM0RZ(I,J,NEL) - constant terms of derivations for membrane
289C I=1:A*Nx,x;I=2:A*Ny,y;I=3:A*(Nx,y+Ny,x); J=1,2(node)
290C only store J=1,2 as f(j=3)=-f(j=1)-f(j=2)
291C O B0RZ(NEL,J) A*(-Nx,y+Ny,x -2Ni) for asymmetric rotation
292c O BKRZ(NEL,J) - Ksi terms of derivation : A*(-Nx,y+Ny,x -2Ni)
293c O BERZ(NEL,J) - Eta terms of derivation : A*(-Nx,y+Ny,x -2Ni)
294C-----------------------------------------------
295C L O C A L V A R I A B L E S
296C-----------------------------------------------
297 INTEGER I,J
298 my_real
299 . A2,BXV2,BYV1,A05,NXY,NYX,
300 . X2L(MVSIZ),X3L(MVSIZ),Y2L(MVSIZ),Y3L(MVSIZ),BM0RZ(MVSIZ,4,2),
301 . BMKRZ(MVSIZ,4,3),BMERZ(MVSIZ,4,3),Y31_2,Y21_2,X31_2,X21_2,
302 . Y21Y31,X21X31,X21Y31,X31Y21,X21Y21,X31Y31
303C--------X2L=(X2-X1)/4---------------------------------------
304 DO I=jft,jlt
305 x2l(i)=fourth*x2(i)
306 x3l(i)=fourth*x3(i)
307 y2l(i)=fourth*y2(i)
308 y3l(i)=fourth*y3(i)
309 ENDDO
310C
311 DO i=jft,jlt
312 y31_2=y3l(i)*y3l(i)
313 y21_2=y2l(i)*y2l(i)
314 y21y31 = y2l(i)*y3l(i)
315 x31_2=x3l(i)*x3l(i)
316 x21_2=x2l(i)*x2l(i)
317 x21x31=x3l(i)*x2l(i)
318 x31y21=x3l(i)*y2l(i)
319 x21y31=x2l(i)*y3l(i)
320 x21y21=x2l(i)*y2l(i)
321 x31y31=x3l(i)*y3l(i)
322C--------NxI,x *A------pay attention Bi*A--- RLZ: VRZ/A--
323 bm0rz(i,1,1) = zero
324 bm0rz(i,1,2) = y21y31
325C BM0RZ(I,1,3) = -BM0RZ(I,1,1)-BM0RZ(I,1,2)
326C-------- NxI,x KSI -
327 bmkrz(i,1,2) = -y21y31
328 bmkrz(i,1,3) = y21_2
329 bmkrz(i,1,1) = -bmkrz(i,1,2)-bmkrz(i,1,3)
330C-------- - NxI,x ETA
331 bmerz(i,1,2) = -y31_2
332 bmerz(i,1,3) = -y21y31
333 bmerz(i,1,1) = -bmerz(i,1,2)-bmerz(i,1,3)
334C -------NyI,y *A-------------
335 bm0rz(i,2,1) = zero
336 bm0rz(i,2,2) = x21x31
337C BM0RZ(I,2,3) = -BM0RZ(I,2,1)-BM0RZ(I,2,2)
338C-------- NyI,y KSI -
339 bmkrz(i,2,2) =-x21x31
340 bmkrz(i,2,3) = x21_2
341 bmkrz(i,2,1) = -bmkrz(i,2,2)-bmkrz(i,2,3)
342C-------- -NyI,y ETA +
343 bmerz(i,2,2) = -x31_2
344 bmerz(i,2,3) = x21x31
345 bmerz(i,2,1) = -bmerz(i,2,2)-bmerz(i,2,3)
346C--------NxI,y *A
347 bm0rz(i,3,1) = x31y21-x21y31
348 bm0rz(i,3,2) = -x31y21
349C BM0RZ(I,3,3) = -BM0RZ(I,3,1)-BM0RZ(I,3,2)
350C-------- -NxI,y KSI +
351 bmkrz(i,3,2) = two*x31y21-x21y31
352 bmkrz(i,3,3) = -x21y21
353 bmkrz(i,3,1) = -bmkrz(i,3,2)-bmkrz(i,3,3)
354C-------- NxI,y ETA -
355 bmerz(i,3,2) = x31y31
356 bmerz(i,3,3) = x31y21-two*x21y31
357 bmerz(i,3,1) = -bmerz(i,3,2)-bmerz(i,3,3)
358C--------NyI,x *A
359 bm0rz(i,4,1) = x21y31-x31y21
360 bm0rz(i,4,2) = -x21y31
361C BM0RZ(I,4,3) = -BM0RZ(I,4,1)-BM0RZ(I,4,2)
362C-------- -NyI,x KSI
363 bmkrz(i,4,2) = two*x21y31-x31y21
364 bmkrz(i,4,3) = -x21y21
365 bmkrz(i,4,1) = -bmkrz(i,4,2)-bmkrz(i,4,3)
366C-------- NyI,x ETA -
367 bmerz(i,4,2) = x31y31
368 bmerz(i,4,3) = x21y31-two*x31y21
369 bmerz(i,4,1) = -bmerz(i,4,2)-bmerz(i,4,3)
370 ENDDO
371C------------------ voir--
372 DO i=jft,jlt
373C--------BM0RZ(I,3,1)->(NxI,y+NyI,x) *A-;BM0RZ(I,4,1)->(-NxI,y+NyI,x -2NI) *A-----
374 DO j=1,2
375 nxy=bm0rz(i,3,j)
376 nyx=bm0rz(i,4,j)
377 bmrz(i,3,j)=nxy+nyx
378 b0rz(i,j)=-nxy+nyx
379 nxy=bmkrz(i,3,j)
380 nyx=bmkrz(i,4,j)
381 bmkrz(i,3,j)=nxy+nyx
382 bkrz(i,j)=-nxy+nyx
383 nxy=bmerz(i,3,j)
384 nyx=bmerz(i,4,j)
385 bmerz(i,3,j)=nxy+nyx
386 berz(i,j)=-nxy+nyx
387 ENDDO
388C-------should do here as Ni has no more f(j=3)=-f(j=1)-f(j=2)
389 b0rz(i,3)=-b0rz(i,1)-b0rz(i,2)
390C------add 2Ni------
391 a2= two*area(i)
392 b0rz(i,1)=b0rz(i,1)-a2
393 bkrz(i,1)=bkrz(i,1)+a2
394 berz(i,1)=berz(i,1)+a2
395 bkrz(i,2)=bkrz(i,2)-a2
396C BMERZ1(I,3)=BMERZ1(I,3)-A2
397 ENDDO
398C-----------necessary for stabilization (explicit)
399 CALL c3bm0rz(jft ,jlt ,bmrz,bm0rz,bmkrz ,bmerz )
400C
401 RETURN
402 END
403!||====================================================================
404!|| c3bm0rz ../engine/source/elements/sh3n/coque3n/c3defo3.F
405!||--- called by ------------------------------------------------------
406!|| c3derirz ../engine/source/elements/sh3n/coque3n/c3defo3.F
407!||====================================================================
408 SUBROUTINE c3bm0rz(JFT ,JLT ,BMRZ ,BM0RZ,BMKRZ ,BMERZ )
409C---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
410#include "implicit_f.inc"
411#include "mvsiz_p.inc"
412C-----------------------------------------------
413C D U M M Y A R G U M E N T S
414C-----------------------------------------------
415 INTEGER JFT,JLT
416 my_real
417 . BMRZ(MVSIZ,3,2),BM0RZ(MVSIZ,4,2),BMKRZ(MVSIZ,4,3),
418 . BMERZ(MVSIZ,4,3)
419C-----------------------------------------------
420C L O C A L V A R I A B L E S
421C-----------------------------------------------
422 INTEGER I ,J,K
423 my_real
424 . SCAL
425C-------crrection to pass patch test
426 BMRZ(JFT:JLT,1:3,1:2)=zero
427 RETURN
428C------- moyen ksi,eta=0.5 for BMRZ(,J,I)
429c SCAL=HALF
430C------- moyen volume (analytical integration)
431 scal=one_over_6
432 DO j=1,2
433 DO i=jft,jlt
434 bmrz(i,1,j)=bm0rz(i,1,j)+scal*(bmkrz(i,1,j)+bmerz(i,1,j))
435 bmrz(i,2,j)=bm0rz(i,2,j)+scal*(bmkrz(i,2,j)+bmerz(i,2,j))
436 bmrz(i,3,j)=bm0rz(i,3,j)+scal*(bmkrz(i,3,j)+bmerz(i,3,j))
437 ENDDO
438 ENDDO
439C
440 RETURN
441 END
442!||====================================================================
443!|| c3deft3 ../engine/source/elements/sh3n/coque3n/c3defo3.F
444!||--- called by ------------------------------------------------------
445!|| c3forc3 ../engine/source/elements/sh3n/coque3n/c3forc3.F
446!||====================================================================
447 SUBROUTINE c3deft3(JFT,JLT,X2,Y2,X3,Y3,V21X,V21Y,V31X,V31Y,
448 2 BM0RZ,RZ13,RZ23,AREA,VDEF,IDRIL )
449C-----------------------------------------------
450C I m p l i c i t T y p e s
451C-----------------------------------------------
452#include "implicit_f.inc"
453C-----------------------------------------------
454C G l o b a l P a r a m e t e r s
455C-----------------------------------------------
456#include "mvsiz_p.inc"
457C-----------------------------------------------
458C D u m m y A r g u m e n t s
459C-----------------------------------------------
460 INTEGER JFT, JLT,IDRIL
461 my_real
462 . X2(*),Y2(*),X3(*),Y3(*),V21X(*),V21Y(*),V31X(*),V31Y(*),
463 . BM0RZ(MVSIZ,4,2),RZ13(*),RZ23(*),AREA(*),VDEF(MVSIZ,8)
464C-----------------------------------------------
465C L o c a l V a r i a b l e s
466C-----------------------------------------------
467 INTEGER NC1, NC2, NC3, I, J
468C REAL
469 my_real
470 . PX2(MVSIZ), PY2(MVSIZ), PX3(MVSIZ), PY3(MVSIZ) ,AREAI
471C-----------------------------------------------
472C-------------anticipe for system change (later)
473 DO i=jft,jlt
474 areai=half/max(em20,area(i))
475 px2(i)=y3(i)*areai
476 py2(i)=-x3(i)*areai
477 px3(i)=-y2(i)*areai
478 py3(i)=x2(i)*areai
479 ENDDO
480 DO i=jft,jlt
481 vdef(i,1)=px2(i)*v21x(i)+px3(i)*v31x(i)
482 vdef(i,2)=py2(i)*v21y(i)+py3(i)*v31y(i)
483 vdef(i,3)=py2(i)*v21x(i)+py3(i)*v31x(i)
484 vdef(i,4)=px2(i)*v21y(i)+px3(i)*v31y(i)
485 END DO
486C---------after the patch, as explicit, EMRZ=0
487c IF (IDRIL>0) THEN
488c DO I=JFT,JLT
489c VDEF(1,I)=VDEF(1,I)+BM0RZ(1,1,I)*RZ13(I)+BM0RZ(1,2,I)*RZ23(I)
490c VDEF(2,I)=VDEF(2,I)+BM0RZ(2,1,I)*RZ13(I)+BM0RZ(2,2,I)*RZ23(I)
491c VDEF(3,I)=VDEF(3,I)+BM0RZ(3,1,I)*RZ13(I)+BM0RZ(3,2,I)*RZ23(I)
492c VDEF(4,I)=VDEF(4,I)+BM0RZ(4,1,I)*RZ13(I)+BM0RZ(4,2,I)*RZ23(I)
493c ENDDO
494c END IF !(IDRIL>0) THEN
495C
496 RETURN
497C
498 END
499
subroutine c3deft3(jft, jlt, x2, y2, x3, y3, v21x, v21y, v31x, v31y, bm0rz, rz13, rz23, area, vdef, idril)
Definition c3defo3.F:449
subroutine c3derirz(jft, jlt, area, x2, x3, y2, y3, bmrz, b0rz, bkrz, berz)
Definition c3defo3.F:267
subroutine c3defo3(jft, jlt, vl1, vl2, vl3, ixtg, ish3n, px1, py1, py2, exx, eyy, exy, eyz, ezx, vx13, vx23, vy12, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)
Definition c3defo3.F:35
subroutine c3defrz(jft, jlt, rlz, bm0rz, b0rz, bkrz, berz, e3x, e3y, e3z, vrl1, vrl2, vrl3, exx, eyy, exy, px1, py1, py2, wxy, area, vx13, vx23, vy12)
Definition c3defo3.F:190
subroutine c3brz3(jft, jlt, area, x2, x3, y3, bm0rz, b0rz, bkrz, berz)
Definition c3defo3.F:140
subroutine c3bm0rz(jft, jlt, bmrz, bm0rz, bmkrz, bmerz)
Definition c3defo3.F:409
#define max(a, b)
Definition macros.h:21