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

Go to the source code of this file.

Functions/Subroutines

subroutine s8scoork_imp (x, ixs, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, offg, off, sav, r, v1, v2, v3, v4, v5, v6, v7, v8, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, ngl, mxt, ngeo, k11, k12, k13, k14, k15, k16, k17, k18, k22, k23, k24, k25, k26, k27, k28, k33, k34, k35, k36, k37, k38, k44, k45, k46, k47, k48, k55, k56, k57, k58, k66, k67, k68, k77, k78, k88, khbe, gama0, gama, nel, trm, kl)

Function/Subroutine Documentation

◆ s8scoork_imp()

subroutine s8scoork_imp ( x,
integer, dimension(nixs,*) ixs,
x1,
x2,
x3,
x4,
x5,
x6,
x7,
x8,
y1,
y2,
y3,
y4,
y5,
y6,
y7,
y8,
z1,
z2,
z3,
z4,
z5,
z6,
z7,
z8,
offg,
off,
sav,
r,
double precision, dimension(mvsiz,9) v1,
double precision, dimension(mvsiz,9) v2,
double precision, dimension(mvsiz,9) v3,
double precision, dimension(mvsiz,9) v4,
double precision, dimension(mvsiz,9) v5,
double precision, dimension(mvsiz,9) v6,
double precision, dimension(mvsiz,9) v7,
double precision, dimension(mvsiz,9) v8,
integer, dimension(*) nc1,
integer, dimension(*) nc2,
integer, dimension(*) nc3,
integer, dimension(*) nc4,
integer, dimension(*) nc5,
integer, dimension(*) nc6,
integer, dimension(*) nc7,
integer, dimension(*) nc8,
integer, dimension(*) ngl,
integer, dimension(*) mxt,
integer, dimension(*) ngeo,
k11,
k12,
k13,
k14,
k15,
k16,
k17,
k18,
k22,
k23,
k24,
k25,
k26,
k27,
k28,
k33,
k34,
k35,
k36,
k37,
k38,
k44,
k45,
k46,
k47,
k48,
k55,
k56,
k57,
k58,
k66,
k67,
k68,
k77,
k78,
k88,
integer khbe,
gama0,
gama,
integer nel,
double precision, dimension(nel,24,24) trm,
double precision, dimension(576,nel) kl )

Definition at line 32 of file srcoork_imp.F.

44 use element_mod , only : nixs !
45C-----------------------------------------------
46C I m p l i c i t T y p e s
47C-----------------------------------------------
48#include "implicit_f.inc"
49C-----------------------------------------------
50C G l o b a l P a r a m e t e r s
51C-----------------------------------------------
52#include "mvsiz_p.inc"
53C-----------------------------------------------
54C C o m m o n B l o c k s
55C-----------------------------------------------
56C-----------------------------------------------
57C D u m m y A r g u m e n t s
58C-----------------------------------------------
59 INTEGER NEL
60C REAL
62 . x(3,*),
63 . x1(*), x2(*), x3(*), x4(*), x5(*), x6(*), x7(*), x8(*),
64 . y1(*), y2(*), y3(*), y4(*), y5(*), y6(*), y7(*), y8(*),
65 . z1(*), z2(*), z3(*), z4(*), z5(*), z6(*), z7(*), z8(*),
66 . offg(*), off(*), sav(nel,21), gama0(nel,6),gama(mvsiz,6),
67 . r(3,3,mvsiz)
69 . k11(9,*) ,k12(9,*) ,k13(9,*) ,k14(9,*) ,k15(9,*) ,
70 . k16(9,*) ,k17(9,*) ,k18(9,*) ,k22(9,*) ,k23(9,*) ,
71 . k24(9,*) ,k25(9,*) ,k26(9,*) ,k27(9,*) ,k28(9,*) ,
72 . k33(9,*) ,k34(9,*) ,k35(9,*) ,k36(9,*) ,k37(9,*) ,
73 . k38(9,*) ,k44(9,*) ,k45(9,*) ,k46(9,*) ,k47(9,*) ,
74 . k48(9,*) ,k55(9,*) ,k56(9,*) ,k57(9,*) ,k58(9,*) ,
75 . k66(9,*) ,k67(9,*) ,k68(9,*) ,k77(9,*) ,k78(9,*) ,
76 . k88(9,*)
77 INTEGER NC1(*), NC2(*), NC3(*), NC4(*),
78 . NC5(*), NC6(*), NC7(*), NC8(*), MXT(*), NGL(*),NGEO(*)
79 INTEGER IXS(NIXS,*),KHBE
80 double precision
81 . trm(nel,24,24),invj(mvsiz,3,3),kl(576,nel),
82 . v1(mvsiz,9), v2(mvsiz,9), v3(mvsiz,9), v4(mvsiz,9),
83 . v5(mvsiz,9), v6(mvsiz,9), v7(mvsiz,9), v8(mvsiz,9)
84C-----------------------------------------------
85C L o c a l V a r i a b l e s
86C-----------------------------------------------
87 INTEGER I,J, MXT_1
88C REAL
90 . g11(mvsiz),g12(mvsiz),g13(mvsiz),
91 . g21(mvsiz),g22(mvsiz),g23(mvsiz),
92 . g31(mvsiz),g32(mvsiz),g33(mvsiz),
93 . t11(mvsiz),t12(mvsiz),t13(mvsiz),
94 . t21(mvsiz),t22(mvsiz),t23(mvsiz),
95 . t31(mvsiz),t32(mvsiz),t33(mvsiz)
97 . xl,yl,zl
99 . rx(mvsiz) , ry(mvsiz) , rz(mvsiz) ,
100 . sx(mvsiz) , sy(mvsiz) , sz(mvsiz) ,
101 . tx(mvsiz) , ty(mvsiz) , tz(mvsiz)
102 DOUBLE PRECISION DX_DR,DX_DS,DX_DT,DY_DR,DY_DS,DY_DT,DZ_DR,DZ_DS,DZ_DT
103 DOUBLE PRECISION X0(8),Y0(8),Z0(8),DETM1,DETJ0
104C-----------------------------------------------
105C
106 mxt_1 = ixs(1,1)
107 DO i=1,nel
108 ngeo(i)=ixs(10,i)
109 ngl(i)=ixs(11,i)
110 mxt(i)=mxt_1
111 nc1(i)=ixs(2,i)
112 nc2(i)=ixs(3,i)
113 nc3(i)=ixs(4,i)
114 nc4(i)=ixs(5,i)
115 nc5(i)=ixs(6,i)
116 nc6(i)=ixs(7,i)
117 nc7(i)=ixs(8,i)
118 nc8(i)=ixs(9,i)
119 ENDDO
120C----------------------------
121C NODAL COORDINATES |
122C----------------------------
123 DO i=1,nel
124 x1(i)=x(1,nc1(i))
125 y1(i)=x(2,nc1(i))
126 z1(i)=x(3,nc1(i))
127 x2(i)=x(1,nc2(i))
128 y2(i)=x(2,nc2(i))
129 z2(i)=x(3,nc2(i))
130 x3(i)=x(1,nc3(i))
131 y3(i)=x(2,nc3(i))
132 z3(i)=x(3,nc3(i))
133 x4(i)=x(1,nc4(i))
134 y4(i)=x(2,nc4(i))
135 z4(i)=x(3,nc4(i))
136 x5(i)=x(1,nc5(i))
137 y5(i)=x(2,nc5(i))
138 z5(i)=x(3,nc5(i))
139 x6(i)=x(1,nc6(i))
140 y6(i)=x(2,nc6(i))
141 z6(i)=x(3,nc6(i))
142 x7(i)=x(1,nc7(i))
143 y7(i)=x(2,nc7(i))
144 z7(i)=x(3,nc7(i))
145 x8(i)=x(1,nc8(i))
146 y8(i)=x(2,nc8(i))
147 z8(i)=x(3,nc8(i))
148 ENDDO
149C-----------
150C Local system
151C-----------
152 DO i=1,nel
153 x0(1) = zero
154 y0(1) = zero
155 z0(1) = zero
156 x0(2) = sav(i,1)
157 y0(2) = sav(i,2)
158 z0(2) = sav(i,3)
159 x0(3) = sav(i,4)
160 y0(3) = sav(i,5)
161 z0(3) = sav(i,6)
162 x0(4) = sav(i,7)
163 y0(4) = sav(i,8)
164 z0(4) = sav(i,9)
165 x0(5) = sav(i,10)
166 y0(5) = sav(i,11)
167 z0(5) = sav(i,12)
168 x0(6) = sav(i,13)
169 y0(6) = sav(i,14)
170 z0(6) = sav(i,15)
171 x0(7) = sav(i,16)
172 y0(7) = sav(i,17)
173 z0(7) = sav(i,18)
174 x0(8) = sav(i,19)
175 y0(8) = sav(i,20)
176 z0(8) = sav(i,21)
177
178 dx_dr = (x0(3)+x0(4)+x0(7)+x0(8))-(x0(1)+x0(2)+x0(5)+x0(6))
179 dy_dr = (y0(3)+y0(4)+y0(7)+y0(8))-(y0(1)+y0(2)+y0(5)+y0(6))
180 dz_dr = (z0(3)+z0(4)+z0(7)+z0(8))-(z0(1)+z0(2)+z0(5)+z0(6))
181 dx_ds = (x0(5)+x0(6)+x0(7)+x0(8))-(x0(1)+x0(2)+x0(3)+x0(4))
182 dy_ds = (y0(5)+y0(6)+y0(7)+y0(8))-(y0(1)+y0(2)+y0(3)+y0(4))
183 dz_ds = (z0(5)+z0(6)+z0(7)+z0(8))-(z0(1)+z0(2)+z0(3)+z0(4))
184 dx_dt = (x0(2)+x0(3)+x0(6)+x0(7))-(x0(1)+x0(4)+x0(5)+x0(8))
185 dy_dt = (y0(2)+y0(3)+y0(6)+y0(7))-(y0(1)+y0(4)+y0(5)+y0(8))
186 dz_dt = (z0(2)+z0(3)+z0(6)+z0(7))-(z0(1)+z0(4)+z0(5)+z0(8))
187 detj0 =(dx_dr*(dy_ds*dz_dt-dz_ds*dy_dt)
188 . -dx_ds*(dy_dr*dz_dt-dy_dt*dz_dr)
189 . +dx_dt*(dy_dr*dz_ds-dy_ds*dz_dr))
190 detm1 = one/detj0
191 detm1 = eight*detm1
192 invj(i,1,1) = (dy_ds*dz_dt-dz_ds*dy_dt)*detm1
193 invj(i,2,1) = (dz_dr*dy_dt-dy_dr*dz_dt)*detm1
194 invj(i,3,1) = (dy_dr*dz_ds-dy_ds*dz_dr)*detm1
195 invj(i,1,2) = (dx_dt*dz_ds-dx_ds*dz_dt)*detm1
196 invj(i,2,2) = (dx_dr*dz_dt-dx_dt*dz_dr)*detm1
197 invj(i,3,2) = (dx_ds*dz_dr-dx_dr*dz_ds)*detm1
198 invj(i,1,3) = (dx_ds*dy_dt-dx_dt*dy_ds)*detm1
199 invj(i,2,3) = (dx_dt*dy_dr-dx_dr*dy_dt)*detm1
200 invj(i,3,3) = (dx_dr*dy_ds-dx_ds*dy_dr)*detm1
201 ENDDO
202 CALL crtrans_imp(
203 1 sav, invj, x1, x2,
204 2 x3, x4, x5, x6,
205 3 x7, x8, y1, y2,
206 4 y3, y4, y5, y6,
207 5 y7, y8, z1, z2,
208 6 z3, z4, z5, z6,
209 7 z7, z8, v1, v2,
210 8 v3, v4, v5, v6,
211 9 v7, v8, r, trm,
212 a nel)
213C-----------
214C
215C-----------
216 DO i = 1,nel
217 x1(i) = zero
218 y1(i) = zero
219 z1(i) = zero
220 x2(i) = sav(i,1)
221 y2(i) = sav(i,2)
222 z2(i) = sav(i,3)
223 x3(i) = sav(i,4)
224 y3(i) = sav(i,5)
225 z3(i) = sav(i,6)
226 x4(i) = sav(i,7)
227 y4(i) = sav(i,8)
228 z4(i) = sav(i,9)
229 x5(i) = sav(i,10)
230 y5(i) = sav(i,11)
231 z5(i) = sav(i,12)
232 x6(i) = sav(i,13)
233 y6(i) = sav(i,14)
234 z6(i) = sav(i,15)
235 x7(i) = sav(i,16)
236 y7(i) = sav(i,17)
237 z7(i) = sav(i,18)
238 x8(i) = sav(i,19)
239 y8(i) = sav(i,20)
240 z8(i) = sav(i,21)
241 ENDDO
242 DO i=1,nel
243 IF(offg(i)>one)THEN
244 off(i) = offg(i)-one
245 ENDIF
246 ENDDO
247 DO i=1,nel
248 off(i) = min(one,offg(i))
249 ENDDO
250C-----------
251 DO j=1,9
252 DO i=1,nel
253 k11(j,i)=zero
254 k12(j,i)=zero
255 k13(j,i)=zero
256 k14(j,i)=zero
257 k15(j,i)=zero
258 k16(j,i)=zero
259 k17(j,i)=zero
260 k18(j,i)=zero
261 k22(j,i)=zero
262 k23(j,i)=zero
263 k24(j,i)=zero
264 k25(j,i)=zero
265 k26(j,i)=zero
266 k27(j,i)=zero
267 k28(j,i)=zero
268 k33(j,i)=zero
269 k34(j,i)=zero
270 k35(j,i)=zero
271 k36(j,i)=zero
272 k37(j,i)=zero
273 k38(j,i)=zero
274 k44(j,i)=zero
275 k45(j,i)=zero
276 k46(j,i)=zero
277 k47(j,i)=zero
278 k48(j,i)=zero
279 k55(j,i)=zero
280 k56(j,i)=zero
281 k57(j,i)=zero
282 k58(j,i)=zero
283 k66(j,i)=zero
284 k67(j,i)=zero
285 k68(j,i)=zero
286 k77(j,i)=zero
287 k78(j,i)=zero
288 k88(j,i)=zero
289 ENDDO
290 ENDDO
291
292 DO j=1,nel
293 DO i=1,576
294 kl(i,j)=zero
295 ENDDO
296 ENDDO
297C-----------
298 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine crtrans_imp(sav, invj, xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8, yd1, yd2, yd3, yd4, yd5, yd6, yd7, yd8, zd1, zd2, zd3, zd4, zd5, zd6, zd7, zd8, v1, v2, v3, v4, v5, v6, v7, v8, r, trm, nel)
Definition crtrans_imp.F:41
#define min(a, b)
Definition macros.h:20