OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
scderi3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine scderi3 (nel, vol, jeul, veul, geo, vzl, vzq, ngl, ngeo, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, det)

Function/Subroutine Documentation

◆ scderi3()

subroutine scderi3 ( integer nel,
vol,
integer jeul,
veul,
geo,
vzl,
vzq,
integer, dimension(*) ngl,
integer, dimension(*) ngeo,
x1,
x2,
x3,
x4,
x5,
x6,
x7,
x8,
y1,
y2,
y3,
y4,
y5,
y6,
y7,
y8,
z1,
z2,
z3,
z4,
z5,
z6,
z7,
z8,
det )

Definition at line 32 of file scderi3.F.

37
38C-----------------------------------------------
39C M o d u l e s
40C-----------------------------------------------
41 USE message_mod
42C-----------------------------------------------
43C I m p l i c i t T y p e s
44C-----------------------------------------------
45#include "implicit_f.inc"
46C-----------------------------------------------
47C G l o b a l P a r a m e t e r s
48C-----------------------------------------------
49#include "mvsiz_p.inc"
50C-----------------------------------------------
51C C o m m o n B l o c k s
52C-----------------------------------------------
53#include "param_c.inc"
54C-----------------------------------------------
55C D u m m y A r g u m e n t s
56C-----------------------------------------------
57 INTEGER :: NEL,JEUL,NGL(*),NGEO(*)
59 . vol(*), veul(lveul,*),geo(npropg,*),
60 . vzl(*),vzq(*), det(*)
61C-----------------------------------------------
62C L o c a l V a r i a b l e s
63C-----------------------------------------------
64 INTEGER I,J
66 . dett(mvsiz),
67 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
68 . x5(mvsiz), x6(mvsiz), x7(mvsiz), x8(mvsiz),
69 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
70 . y5(mvsiz), y6(mvsiz), y7(mvsiz), y8(mvsiz),
71 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
72 . z5(mvsiz), z6(mvsiz), z7(mvsiz), z8(mvsiz),
73 . jac1(mvsiz), jac2(mvsiz), jac3(mvsiz), jac4(mvsiz),
74 . jac5(mvsiz), jac6(mvsiz), jac7(mvsiz), jac8(mvsiz),
75 . jac9(mvsiz),
76 . jaci1(mvsiz), jaci2(mvsiz), jaci3(mvsiz), jaci4(mvsiz),
77 . jaci5(mvsiz), jaci6(mvsiz), jaci7(mvsiz), jaci8(mvsiz),
78 . jaci9(mvsiz),
79 . x17(mvsiz), x28(mvsiz), x35(mvsiz), x46(mvsiz),
80 . y17(mvsiz), y28(mvsiz), y35(mvsiz), y46(mvsiz),
81 . z17(mvsiz), z28(mvsiz), z35(mvsiz), z46(mvsiz),
82 . jac_59_68(mvsiz), jac_67_49(mvsiz), jac_48_57(mvsiz),
83 . x_17_46(mvsiz),y_17_46(mvsiz),z_17_46(mvsiz),
84 . x_28_35(mvsiz),y_28_35(mvsiz),z_28_35(mvsiz)
86 . h1x,h2x,h1y,h2y,h1z,h2z
87C=======================================================================
88 DO i=1,nel
89 x17(i)=x7(i)-x1(i)
90 x28(i)=x8(i)-x2(i)
91 x35(i)=x5(i)-x3(i)
92 x46(i)=x6(i)-x4(i)
93 y17(i)=y7(i)-y1(i)
94 y28(i)=y8(i)-y2(i)
95 y35(i)=y5(i)-y3(i)
96 y46(i)=y6(i)-y4(i)
97 z17(i)=z7(i)-z1(i)
98 z28(i)=z8(i)-z2(i)
99 z35(i)=z5(i)-z3(i)
100 z46(i)=z6(i)-z4(i)
101 ENDDO
102C
103C Jacobian matrix
104 DO i=1,nel
105C -------ri.xi-----------
106 jac3(i)=x17(i)+x28(i)-x35(i)-x46(i)
107 jac1(i)=y17(i)+y28(i)-y35(i)-y46(i)
108 jac2(i)=z17(i)+z28(i)-z35(i)-z46(i)
109 x_17_46(i)=x17(i)+x46(i)
110 y_17_46(i)=y17(i)+y46(i)
111 z_17_46(i)=z17(i)+z46(i)
112 x_28_35(i)=x28(i)+x35(i)
113 y_28_35(i)=y28(i)+y35(i)
114 z_28_35(i)=z28(i)+z35(i)
115 ENDDO
116C
117 DO i=1,nel
118C -------si.xi-----------
119 jac6(i)=x_17_46(i)+x_28_35(i)
120 jac4(i)=y_17_46(i)+y_28_35(i)
121 jac5(i)=z_17_46(i)+z_28_35(i)
122C -------ti.xi-----------
123 jac9(i)=x_17_46(i)-x_28_35(i)
124 jac7(i)=y_17_46(i)-y_28_35(i)
125 jac8(i)=z_17_46(i)-z_28_35(i)
126 ENDDO
127C
128 DO i=1,nel
129 jac_59_68(i)=jac5(i)*jac9(i)-jac6(i)*jac8(i)
130 jac_67_49(i)=jac6(i)*jac7(i)-jac4(i)*jac9(i)
131 jac_48_57(i)=jac4(i)*jac8(i)-jac5(i)*jac7(i)
132 ENDDO
133C
134 DO i=1,nel
135 det(i)=one_over_64*(jac1(i)*jac_59_68(i)+jac2(i)*jac_67_49(i)+jac3(i)*jac_48_57(i))
136 vol(i)=det(i)
137 ENDDO
138C
139 DO i=1,nel
140 IF(det(i)>zero) cycle
141 CALL ancmsg(msgid=245,
142 . msgtype=msgerror,
143 . anmode=aninfo,
144 . i1=ngl(i))
145 ENDDO
146C
147 DO i=1,nel
148 h1x = x1(i)+x2(i)-x3(i)-x4(i)-x5(i)-x6(i)+x7(i)+x8(i)
149 h1y = y1(i)+y2(i)-y3(i)-y4(i)-y5(i)-y6(i)+y7(i)+y8(i)
150 h1z = z1(i)+z2(i)-z3(i)-z4(i)-z5(i)-z6(i)+z7(i)+z8(i)
151 h2x = x1(i)-x2(i)-x3(i)+x4(i)-x5(i)+x6(i)+x7(i)-x8(i)
152 h2y = y1(i)-y2(i)-y3(i)+y4(i)-y5(i)+y6(i)+y7(i)-y8(i)
153 h2z = z1(i)-z2(i)-z3(i)+z4(i)-z5(i)+z6(i)+z7(i)-z8(i)
154 vzl(i) = one_over_64*jac5(i)*(jac9(i)*h1y+jac1(i)*h2x-jac3(i)*h2y-jac7(i)*h1x)
155 . + one_over_64*jac4(i)*(jac3(i)*h2z+jac8(i)*h1x-jac9(i)*h1z-jac2(i)*h2x)
156 . + one_over_64*jac6(i)*(jac7(i)*h1z+jac2(i)*h2y-jac1(i)*h2z-jac8(i)*h1y)
157 vzq(i) = one_over_64*jac5(i)*(h1y*h2x-h2y*h1x)
158 ENDDO
159C--------------------------
160 IF (jeul == 0) RETURN
161C
162 DO i=1,nel
163 dett(i)=one_over_64/det(i)
164 ENDDO
165C
166C Jacobian matrix inverse
167 DO i=1,nel
168 jaci1(i)=dett(i)*jac_59_68(i)
169 jaci4(i)=dett(i)*jac_67_49(i)
170 jaci7(i)=dett(i)*jac_48_57(i)
171 jaci2(i)=dett(i)*(-jac2(i)*jac9(i)+jac3(i)*jac8(i))
172 jaci5(i)=dett(i)*( jac1(i)*jac9(i)-jac3(i)*jac7(i))
173 jaci8(i)=dett(i)*(-jac1(i)*jac8(i)+jac2(i)*jac7(i))
174 jaci3(i)=dett(i)*( jac2(i)*jac6(i)-jac3(i)*jac5(i))
175 jaci6(i)=dett(i)*(-jac1(i)*jac6(i)+jac3(i)*jac4(i))
176 jaci9(i)=dett(i)*( jac1(i)*jac5(i)-jac2(i)*jac4(i))
177 ENDDO
178C
179 DO i=1,nel
180 veul(3,i) = jaci1(i)-jaci2(i)+jaci3(i)
181 veul(4,i) = jaci1(i)-jaci2(i)-jaci3(i)
182 veul(7,i) = jaci4(i)-jaci5(i)+jaci6(i)
183 veul(8,i) = jaci4(i)-jaci5(i)-jaci6(i)
184 veul(11,i)= jaci7(i)-jaci8(i)+jaci9(i)
185 veul(12,i)= jaci7(i)-jaci8(i)-jaci9(i)
186 ENDDO
187C
188 DO i=1,nel
189 veul(1,i) =-jaci1(i)-jaci2(i)-jaci3(i)
190 veul(2,i) =-jaci1(i)-jaci2(i)+jaci3(i)
191 veul(5,i) =-jaci4(i)-jaci5(i)-jaci6(i)
192 veul(6,i) =-jaci4(i)-jaci5(i)+jaci6(i)
193 veul(9,i) =-jaci7(i)-jaci8(i)-jaci9(i)
194 veul(10,i)=-jaci7(i)-jaci8(i)+jaci9(i)
195 ENDDO
196C
197 IF (geo(12,ngeo(i)) == 15) THEN
198 DO i=1,nel
199 vol(i)=vol(i)*geo(1,ngeo(i))
200 ENDDO
201 ENDIF
202c-----------
203 RETURN
#define my_real
Definition cppsort.cpp:32
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)
Definition message.F:889