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

Go to the source code of this file.

Functions/Subroutines

subroutine s8zdericto3 (off, det, ngl, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, px1h1, px1h2, px1h3, px1h4, px2h1, px2h2, px2h3, px2h4, px3h1, px3h2, px3h3, px3h4, px4h1, px4h2, px4h3, px4h4, hx, hy, hz, jac1, jac2, jac3, jac4, jac5, jac6, jac7, jac8, jac9, smax, jac_i, nel, ismstr)

Function/Subroutine Documentation

◆ s8zdericto3()

subroutine s8zdericto3 ( off,
det,
integer, dimension(*) ngl,
double precision, dimension(*) x1,
double precision, dimension(*) x2,
double precision, dimension(*) x3,
double precision, dimension(*) x4,
double precision, dimension(*) x5,
double precision, dimension(*) x6,
double precision, dimension(*) x7,
double precision, dimension(*) x8,
double precision, dimension(*) y1,
double precision, dimension(*) y2,
double precision, dimension(*) y3,
double precision, dimension(*) y4,
double precision, dimension(*) y5,
double precision, dimension(*) y6,
double precision, dimension(*) y7,
double precision, dimension(*) y8,
double precision, dimension(*) z1,
double precision, dimension(*) z2,
double precision, dimension(*) z3,
double precision, dimension(*) z4,
double precision, dimension(*) z5,
double precision, dimension(*) z6,
double precision, dimension(*) z7,
double precision, dimension(*) z8,
px1,
px2,
px3,
px4,
py1,
py2,
py3,
py4,
pz1,
pz2,
pz3,
pz4,
px1h1,
px1h2,
px1h3,
px1h4,
px2h1,
px2h2,
px2h3,
px2h4,
px3h1,
px3h2,
px3h3,
px3h4,
px4h1,
px4h2,
px4h3,
px4h4,
hx,
hy,
hz,
jac1,
jac2,
jac3,
jac4,
jac5,
jac6,
jac7,
jac8,
jac9,
smax,
jac_i,
integer, intent(in) nel,
integer, intent(in) ismstr )

Definition at line 33 of file s8zdericto3.F.

52C-----------------------------------------------
53C M o d u l e s
54C-----------------------------------------------
55 USE message_mod
56C-----------------------------------------------
57C I m p l i c i t T y p e s
58C-----------------------------------------------
59#include "implicit_f.inc"
60#include "comlock.inc"
61C-----------------------------------------------
62C G l o b a l P a r a m e t e r s
63C-----------------------------------------------
64#include "mvsiz_p.inc"
65C-----------------------------------------------
66C C o m m o n B l o c k s
67C-----------------------------------------------
68C-----------------------------------------------
69C D u m m y A r g u m e n t s
70C-----------------------------------------------
71 INTEGER, INTENT(IN) :: NEL
72 INTEGER, INTENT(IN) :: ISMSTR
73 double precision
74 . x1(*), x2(*), x3(*), x4(*), x5(*), x6(*), x7(*), x8(*),
75 . y1(*), y2(*), y3(*), y4(*), y5(*), y6(*), y7(*), y8(*),
76 . z1(*), z2(*), z3(*), z4(*), z5(*), z6(*), z7(*), z8(*)
77C REAL
79 . off(*),det(*),
80 . px1(*), px2(*), px3(*), px4(*),
81 . py1(*), py2(*), py3(*), py4(*),
82 . pz1(*), pz2(*), pz3(*), pz4(*),
83 . px1h1(*), px1h2(*), px1h3(*),px1h4(*),
84 . px2h1(*), px2h2(*), px2h3(*),px2h4(*),
85 . px3h1(*), px3h2(*), px3h3(*),px3h4(*),
86 . px4h1(*), px4h2(*), px4h3(*),px4h4(*),
87 . hx(mvsiz,4), hy(mvsiz,4), hz(mvsiz,4),
88 . jac1(*),jac2(*),jac3(*),
89 . jac4(*),jac5(*),jac6(*),
90 . jac7(*),jac8(*),jac9(*),smax(*),jac_i(10,mvsiz)
91C-----------------------------------------------
92C L o c a l V a r i a b l e s
93C-----------------------------------------------
94 INTEGER NGL(*), I, J ,ICOR
95C REAL
96C 12
98 . dett(mvsiz) ,
99 . jaci1, jaci2, jaci3,
100 . jaci4, jaci5, jaci6,
101 . jaci7, jaci8, jaci9,
102 . x17 , x28 , x35 , x46,
103 . y17 , y28 , y35 , y46,
104 . z17 , z28 , z35 , z46,
105 . jac_59_68, jac_67_49, jac_48_57,
106 . jac_38_29, jac_19_37, jac_27_18,
107 . jac_26_35, jac_34_16, jac_15_24,
108 . jaci12, jaci45, jaci78,
109 . x_17_46 , x_28_35 ,
110 . y_17_46 , y_28_35 ,
111 . z_17_46 , z_28_35
112C-----------------------------------------------
113C
114 DO i=1,nel
115 jaci1=jac_i(1,i)
116 jaci4=jac_i(4,i)
117 jaci7=jac_i(7,i)
118 jaci2=jac_i(2,i)
119 jaci5=jac_i(5,i)
120 jaci8=jac_i(8,i)
121 jaci3=jac_i(3,i)
122 jaci6=jac_i(6,i)
123 jaci9=jac_i(9,i)
124 det(i) =jac_i(10,i)
125C
126 jaci12=jaci1-jaci2
127 jaci45=jaci4-jaci5
128 jaci78=jaci7-jaci8
129!
130 px2(i)= jaci12-jaci3
131 py2(i)= jaci45-jaci6
132 pz2(i)= jaci78-jaci9
133 px4(i)=-jaci12-jaci3
134 py4(i)=-jaci45-jaci6
135 pz4(i)=-jaci78-jaci9
136!
137 jaci12=jaci1+jaci2
138 jaci45=jaci4+jaci5
139 jaci78=jaci7+jaci8
140!
141 px1(i)=-jaci12-jaci3
142 py1(i)=-jaci45-jaci6
143 pz1(i)=-jaci78-jaci9
144 px3(i)=jaci12-jaci3
145 py3(i)=jaci45-jaci6
146 pz3(i)=jaci78-jaci9
147 ENDDO
148C
149C
150C mode 1
151C 1 1 -1 -1 -1 -1 1 1
152 DO i=1,nel
153 hx(i,1)=(x1(i)+x2(i)-x3(i)-x4(i)-x5(i)-x6(i)+x7(i)+x8(i))
154 hy(i,1)=(y1(i)+y2(i)-y3(i)-y4(i)-y5(i)-y6(i)+y7(i)+y8(i))
155 hz(i,1)=(z1(i)+z2(i)-z3(i)-z4(i)-z5(i)-z6(i)+z7(i)+z8(i))
156 px1h1(i)=px1(i)*hx(i,1)+ py1(i)*hy(i,1)+pz1(i)*hz(i,1)
157 px2h1(i)=px2(i)*hx(i,1)+ py2(i)*hy(i,1)+pz2(i)*hz(i,1)
158 px3h1(i)=px3(i)*hx(i,1)+ py3(i)*hy(i,1)+pz3(i)*hz(i,1)
159 px4h1(i)=px4(i)*hx(i,1)+ py4(i)*hy(i,1)+pz4(i)*hz(i,1)
160 ENDDO
161C mode 2
162C 1 -1 -1 1 -1 1 1 -1
163 DO i=1,nel
164 hx(i,2)=(x1(i)-x2(i)-x3(i)+x4(i)-x5(i)+x6(i)+x7(i)-x8(i))
165 hy(i,2)=(y1(i)-y2(i)-y3(i)+y4(i)-y5(i)+y6(i)+y7(i)-y8(i))
166 hz(i,2)=(z1(i)-z2(i)-z3(i)+z4(i)-z5(i)+z6(i)+z7(i)-z8(i))
167 px1h2(i)=px1(i)*hx(i,2)+ py1(i)*hy(i,2)+pz1(i)*hz(i,2)
168 px2h2(i)=px2(i)*hx(i,2)+ py2(i)*hy(i,2)+pz2(i)*hz(i,2)
169 px3h2(i)=px3(i)*hx(i,2)+ py3(i)*hy(i,2)+pz3(i)*hz(i,2)
170 px4h2(i)=px4(i)*hx(i,2)+ py4(i)*hy(i,2)+pz4(i)*hz(i,2)
171 ENDDO
172C mode 3
173C 1 -1 1 -1 1 -1 1 -1
174 DO i=1,nel
175 hx(i,3)=(x1(i)-x2(i)+x3(i)-x4(i)+x5(i)-x6(i)+x7(i)-x8(i))
176 hy(i,3)=(y1(i)-y2(i)+y3(i)-y4(i)+y5(i)-y6(i)+y7(i)-y8(i))
177 hz(i,3)=(z1(i)-z2(i)+z3(i)-z4(i)+z5(i)-z6(i)+z7(i)-z8(i))
178 px1h3(i)=px1(i)*hx(i,3)+ py1(i)*hy(i,3)+pz1(i)*hz(i,3)
179 px2h3(i)=px2(i)*hx(i,3)+ py2(i)*hy(i,3)+pz2(i)*hz(i,3)
180 px3h3(i)=px3(i)*hx(i,3)+ py3(i)*hy(i,3)+pz3(i)*hz(i,3)
181 px4h3(i)=px4(i)*hx(i,3)+ py4(i)*hy(i,3)+pz4(i)*hz(i,3)
182 ENDDO
183C mode 4
184C -1 1 -1 1 1 -1 1 -1
185 DO i=1,nel
186 hx(i,4)=(-x1(i)+x2(i)-x3(i)+x4(i)+x5(i)-x6(i)+x7(i)-x8(i))
187 hy(i,4)=(-y1(i)+y2(i)-y3(i)+y4(i)+y5(i)-y6(i)+y7(i)-y8(i))
188 hz(i,4)=(-z1(i)+z2(i)-z3(i)+z4(i)+z5(i)-z6(i)+z7(i)-z8(i))
189 px1h4(i)=px1(i)*hx(i,4)+ py1(i)*hy(i,4)+pz1(i)*hz(i,4)
190 px2h4(i)=px2(i)*hx(i,4)+ py2(i)*hy(i,4)+pz2(i)*hz(i,4)
191 px3h4(i)=px3(i)*hx(i,4)+ py3(i)*hy(i,4)+pz3(i)*hz(i,4)
192 px4h4(i)=px4(i)*hx(i,4)+ py4(i)*hy(i,4)+pz4(i)*hz(i,4)
193 ENDDO
194C
195 IF (ismstr/=11) RETURN
196C
197 DO i=1,nel
198 x17=x7(i)-x1(i)
199 x28=x8(i)-x2(i)
200 x35=x5(i)-x3(i)
201 x46=x6(i)-x4(i)
202 y17=y7(i)-y1(i)
203 y28=y8(i)-y2(i)
204 y35=y5(i)-y3(i)
205 y46=y6(i)-y4(i)
206 z17=z7(i)-z1(i)
207 z28=z8(i)-z2(i)
208 z35=z5(i)-z3(i)
209 z46=z6(i)-z4(i)
210C
211 jac4(i)=x17+x28-x35-x46
212 jac5(i)=y17+y28-y35-y46
213 jac6(i)=z17+z28-z35-z46
214 x_17_46=x17+x46
215 x_28_35=x28+x35
216 y_17_46=y17+y46
217 y_28_35=y28+y35
218 z_17_46=z17+z46
219 z_28_35=z28+z35
220!
221 jac7(i)=x_17_46+x_28_35
222 jac8(i)=y_17_46+y_28_35
223 jac9(i)=z_17_46+z_28_35
224 jac1(i)=x_17_46-x_28_35
225 jac2(i)=y_17_46-y_28_35
226 jac3(i)=z_17_46-z_28_35
227C
228C JACOBIAN
229C
230 jac_59_68=jac5(i)*jac9(i)-jac6(i)*jac8(i)
231 jac_67_49=jac6(i)*jac7(i)-jac4(i)*jac9(i)
232 jac_38_29=(-jac2(i)*jac9(i)+jac3(i)*jac8(i))
233 jac_19_37=( jac1(i)*jac9(i)-jac3(i)*jac7(i))
234 jac_27_18=(-jac1(i)*jac8(i)+jac2(i)*jac7(i))
235 jac_26_35=( jac2(i)*jac6(i)-jac3(i)*jac5(i))
236 jac_34_16=(-jac1(i)*jac6(i)+jac3(i)*jac4(i))
237 jac_15_24=( jac1(i)*jac5(i)-jac2(i)*jac4(i))
238 jac_48_57=jac4(i)*jac8(i)-jac5(i)*jac7(i)
239C----surface max mediane-- *16
240 smax(i)= jac_59_68*jac_59_68+jac_67_49*jac_67_49
241 . +jac_48_57*jac_48_57
242 smax(i)= max(smax(i),jac_38_29*jac_38_29+jac_19_37*jac_19_37
243 . +jac_27_18*jac_27_18)
244 smax(i)= max(smax(i),jac_26_35*jac_26_35+jac_34_16*jac_34_16
245 . +jac_15_24*jac_15_24)
246 ENDDO
247 DO i=1,nel
248 IF(smax(i)<=zero)THEN
249 CALL ancmsg(msgid=173,anmode=aninfo,
250 . i1=ngl(i))
251 CALL arret(2)
252 ENDIF
253 smax(i)= one/sqrt(smax(i))
254 ENDDO
255 RETURN
256C
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21
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
subroutine arret(nn)
Definition arret.F:87