OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s6cderi3.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 s6cderi3 (nel, vol, geo, vzl, ngl, deltax, det, x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6, z1, z2, z3, z4, z5, z6)

Function/Subroutine Documentation

◆ s6cderi3()

subroutine s6cderi3 ( integer nel,
vol,
geo,
vzl,
integer, dimension(*) ngl,
deltax,
det,
x1,
x2,
x3,
x4,
x5,
x6,
y1,
y2,
y3,
y4,
y5,
y6,
z1,
z2,
z3,
z4,
z5,
z6 )

Definition at line 34 of file s6cderi3.F.

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,NGL(*)
59 . vol(*), geo(npropg,*),vzl(*), deltax(*), det(*)
60 my_real
61 . x1(*), x2(*), x3(*), x4(*), x5(*), x6(*),
62 . y1(*), y2(*), y3(*), y4(*), y5(*), y6(*),
63 . z1(*), z2(*), z3(*), z4(*), z5(*), z6(*)
64C-----------------------------------------------
65C L o c a l V a r i a b l e s
66C-----------------------------------------------
67 INTEGER I, NFAC
69 . x21(mvsiz) , x31(mvsiz) , x41(mvsiz) , x54(mvsiz),x64(mvsiz),
70 . y21(mvsiz) , y31(mvsiz) , y41(mvsiz) , y54(mvsiz),y64(mvsiz),
71 . z21(mvsiz) , z31(mvsiz) , z41(mvsiz) , z54(mvsiz),z64(mvsiz),
72 . jac1(mvsiz), jac2(mvsiz) ,jac3(mvsiz),
73 . jac4(mvsiz), jac5(mvsiz) ,jac6(mvsiz),
74 . jac7(mvsiz), jac8(mvsiz) ,jac9(mvsiz),
75 . jac_59_68(mvsiz), jac_67_49(mvsiz), jac_48_57(mvsiz)
76
78 . xioff(mvsiz), aream(mvsiz),
79 . atest(mvsiz), area(6,mvsiz)
80
81C=======================================================================
82
83 DO i=1,nel
84 x21(i)=x2(i)-x1(i)
85 x31(i)=x3(i)-x1(i)
86 x41(i)=x4(i)-x1(i)
87 x54(i)=x5(i)-x4(i)
88 x64(i)=x6(i)-x4(i)
89C
90 y21(i)=y2(i)-y1(i)
91 y31(i)=y3(i)-y1(i)
92 y41(i)=y4(i)-y1(i)
93 y54(i)=y5(i)-y4(i)
94 y64(i)=y6(i)-y4(i)
95C
96 z21(i)=z2(i)-z1(i)
97 z31(i)=z3(i)-z1(i)
98 z41(i)=z4(i)-z1(i)
99 z54(i)=z5(i)-z4(i)
100 z64(i)=z6(i)-z4(i)
101 ENDDO
102
103 DO i=1,nel
104C-------ri.xi---->ksi--------
105 jac1(i)=x21(i)+x54(i)
106 jac2(i)=y21(i)+y54(i)
107 jac3(i)=z21(i)+z54(i)
108 ENDDO
109
110 DO i=1,nel
111C-------si.xi--->eta--------
112 jac4(i)=x31(i)+x64(i)
113 jac5(i)=y31(i)+y64(i)
114 jac6(i)=z31(i)+z64(i)
115C-------ti.xi----zeta-------
116 jac7(i)=third*(x41(i)+x5(i)-x2(i)+x6(i)-x3(i))
117 jac8(i)=third*(y41(i)+y5(i)-y2(i)+y6(i)-y3(i))
118 jac9(i)=third*(z41(i)+z5(i)-z2(i)+z6(i)-z3(i))
119 ENDDO
120
121 DO i=1,nel
122 jac_59_68(i)=jac5(i)*jac9(i)-jac6(i)*jac8(i)
123 jac_67_49(i)=jac6(i)*jac7(i)-jac4(i)*jac9(i)
124 jac_48_57(i)=jac4(i)*jac8(i)-jac5(i)*jac7(i)
125 ENDDO
126C
127 DO i=1,nel
128 det(i)=one_over_8*(jac1(i)*jac_59_68(i)+jac2(i)*jac_67_49(i)+jac3(i)*jac_48_57(i))
129 vol(i)=det(i)
130 ENDDO
131C
132 DO i=1,nel
133 IF(det(i)>zero) cycle
134 CALL ancmsg(msgid=245,
135 . msgtype=msgerror,
136 . anmode=aninfo,
137 . i1=ngl(i))
138 ENDDO
139
140 DO i=1,nel
141 vzl(i) = fourth*(jac9(i)*(x54(i)*y64(i)-x21(i)*y31(i)-x64(i)*y54(i)+x31(i)*y21(i))
142 . -jac8(i)*(x54(i)*z64(i)+x31(i)*z21(i)-x21(i)*z31(i)-x64(i)*z54(i))
143 . +jac7(i)*(y54(i)*z64(i)+y31(i)*z21(i)-y21(i)*z31(i)-y64(i)*z54(i)))
144C
145 ENDDO
146 DO i=1,nel
147 xioff(i)=one
148 aream(i)=zero
149 ENDDO
150C
151 CALL slen(x1,x2,x5,x4,y1,y2,y4,y5,z1,z2,z5,z4,1, area, aream)
152 CALL slen(x2,x5,x6,x3,y2,y5,y6,y3,z2,z5,z6,z3,2, area, aream)
153 CALL slen(x1,x4,x6,x3,y1,y4,y6,y3,z1,z4,z6,z3,3, area, aream)
154 CALL slen(x1,x2,x3,x3,y1,y2,y3,y3,z1,z2,z3,z3,4, area, aream)
155 CALL slen(x4,x5,x6,x6,y4,y5,y6,y6,z4,z5,z6,z6,5, area, aream)
156C
157 DO i=1,nel
158 atest(i)=em4*aream(i)
159 nfac=0
160 IF(area(1,i)<atest(i)) nfac=nfac+1
161 IF(area(2,i)<atest(i)) nfac=nfac+1
162 IF(area(3,i)<atest(i)) nfac=nfac+1
163 IF(area(4,i)<atest(i)) nfac=nfac+1
164 IF(area(5,i)<atest(i)) nfac=nfac+1
165 IF(nfac>=2) xioff(i)=ep03
166 ENDDO
167 DO i=1,nel
168 deltax(i)=four*det(i)*xioff(i)/sqrt(aream(i))
169 ENDDO
170C---
171 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine area(d1, x, x2, y, y2, eint, stif0)
subroutine slen(x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, j, area, aream)
Definition slen.F:31
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