OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s20coor3.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!|| s20coor3 ../starter/source/elements/solid/solide20/s20coor3.F
25!||--- called by ------------------------------------------------------
26!|| s20init3 ../starter/source/elements/solid/solide20/s20init3.F
27!||--- calls -----------------------------------------------------
28!|| checkvolume_8n ../starter/source/elements/solid/solide/checksvolume.F
29!||--- uses -----------------------------------------------------
30!|| message_mod ../starter/share/message_module/message_mod.F
31!||====================================================================
32 SUBROUTINE s20coor3(
33 1 X ,V ,IXS ,IXS20 ,XX ,
34 2 YY ,ZZ ,VX ,VY ,VZ ,
35 3 NC ,NGL ,MXT ,NGEO ,MASS,
36 4 DTELEM ,STI ,SIGG ,EINTG ,RHOG,
37 5 QG ,TEMP0 ,TEMP ,NEL ,NINTEMP)
38C-----------------------------------------------
39 USE message_mod
40C-----------------------------------------------
41C I m p l i c i t T y p e s
42C-----------------------------------------------
43#include "implicit_f.inc"
44C-----------------------------------------------
45C G l o b a l P a r a m e t e r s
46C-----------------------------------------------
47#include "mvsiz_p.inc"
48C-----------------------------------------------
49C C o m m o n B l o c k s
50C-----------------------------------------------
51#include "vect01_c.inc"
52#include "com04_c.inc"
53C-----------------------------------------------
54C D u m m y A r g u m e n t s
55C-----------------------------------------------
56 INTEGER NEL
57 INTEGER ,INTENT(IN) :: NINTEMP
58 INTEGER NC(MVSIZ,20),MXT(*),NGL(*),NGEO(*),IXS(NIXS,*),IXS20(12,*)
59C REAL
60 my_real
61 . x(3,*), v(3,*), xx(mvsiz,20), yy(mvsiz,20), zz(mvsiz,20),
62 . vx(mvsiz,20), vy(mvsiz,20), vz(mvsiz,20),
63 . mass(mvsiz),dtelem(*),sti(*),
64 . sigg(nel,6),eintg(*),rhog(*),qg(*),temp(*), temp0(mvsiz)
65C-----------------------------------------------
66C L o c a l V a r i a b l e s
67C-----------------------------------------------
68 INTEGER I, IPERM1(20),IPERM2(20),N,N1,N2,NN,IUN
69C REAL
70 DATA IPERM1/0,0,0,0,0,0,0,0,1,2,3,4,1,2,3,4,5,6,7,8/
71 DATA IPERM2/0,0,0,0,0,0,0,0,2,3,4,1,5,6,7,8,6,7,8,5/
72C-----------------------------------------------
73C E x t e r n a l F u n c t i o n s
74C-----------------------------------------------
75 my_real
77C=======================================================================
78 iun=1
79C
80 DO i=lft,llt
81 ngeo(i)=ixs(10,i)
82 ngl(i) =ixs(11,i)
83 mxt(i) =ixs(1,i)
84 nc(i,1)=ixs(2,i)
85 nc(i,2)=ixs(3,i)
86 nc(i,3)=ixs(4,i)
87 nc(i,4)=ixs(5,i)
88 nc(i,5)=ixs(6,i)
89 nc(i,6)=ixs(7,i)
90 nc(i,7)=ixs(8,i)
91 nc(i,8)=ixs(9,i)
92 nc(i,9) =ixs20(1,i)
93 nc(i,10) =ixs20(2,i)
94 nc(i,11) =ixs20(3,i)
95 nc(i,12) =ixs20(4,i)
96 nc(i,13) =ixs20(5,i)
97 nc(i,14) =ixs20(6,i)
98 nc(i,15) =ixs20(7,i)
99 nc(i,16) =ixs20(8,i)
100 nc(i,17) =ixs20(9,i)
101 nc(i,18) =ixs20(10,i)
102 nc(i,19) =ixs20(11,i)
103 nc(i,20) =ixs20(12,i)
104 dtelem(i)=ep30
105 sti(i)=zero
106 eintg(i)=zero
107 rhog(i)=zero
108 qg(i)=zero
109 sigg(i,1)=zero
110 sigg(i,2)=zero
111 sigg(i,3)=zero
112 sigg(i,4)=zero
113 sigg(i,5)=zero
114 sigg(i,6)=zero
115 IF (checkvolume_8n(x ,ixs(1,i)) < zero) THEN
116C renumber connectivity
117 nc(i,1) =ixs(6,i)
118 nc(i,2) =ixs(7,i)
119 nc(i,3) =ixs(8,i)
120 nc(i,4) =ixs(9,i)
121 nc(i,5) =ixs(2,i)
122 nc(i,6) =ixs(3,i)
123 nc(i,7) =ixs(4,i)
124 nc(i,8) =ixs(5,i)
125 nc(i,9) =ixs20(9,i)
126 nc(i,10)=ixs20(10,i)
127 nc(i,11)=ixs20(11,i)
128 nc(i,12)=ixs20(12,i)
129 nc(i,17)=ixs20(1,i)
130 nc(i,18)=ixs20(2,i)
131 nc(i,19)=ixs20(3,i)
132 nc(i,20)=ixs20(4,i)
133 ixs(2,i) = nc(i,1)
134 ixs(3,i) = nc(i,2)
135 ixs(4,i) = nc(i,3)
136 ixs(5,i) = nc(i,4)
137 ixs(6,i) = nc(i,5)
138 ixs(7,i) = nc(i,6)
139 ixs(8,i) = nc(i,7)
140 ixs(9,i) = nc(i,8)
141 ixs20(1,i) = nc(i,9)
142 ixs20(2,i) = nc(i,10)
143 ixs20(3,i) = nc(i,11)
144 ixs20(4,i) = nc(i,12)
145 ixs20(5,i) = nc(i,13)
146 ixs20(6,i) = nc(i,14)
147 ixs20(7,i) = nc(i,15)
148 ixs20(8,i) = nc(i,16)
149 ixs20(9,i) = nc(i,17)
150 ixs20(10,i) = nc(i,18)
151 ixs20(11,i) = nc(i,19)
152 ixs20(12,i) = nc(i,20)
153 ENDIF
154 ENDDO
155C
156C----------------------------
157C NODAL COORDINATES |
158C----------------------------
159 DO n=1,20
160 DO i=lft,llt
161 nn = max(iun,nc(i,n))
162 xx(i,n)=x(1,nn)
163 yy(i,n)=x(2,nn)
164 zz(i,n)=x(3,nn)
165 vx(i,n)=v(1,nn)
166 vy(i,n)=v(2,nn)
167 vz(i,n)=v(3,nn)
168 ENDDO
169 ENDDO
170C
171 DO i=lft,llt
172 mass(i)=zero
173 ENDDO
174C
175 DO n=9,20
176 n1=iperm1(n)
177 n2=iperm2(n)
178 DO i=lft,llt
179 IF(nc(i,n)==0)THEN
180 xx(i,n) = half*(xx(i,n1)+xx(i,n2))
181 yy(i,n) = half*(yy(i,n1)+yy(i,n2))
182 zz(i,n) = half*(zz(i,n1)+zz(i,n2))
183 vx(i,n) = half*(vx(i,n1)+vx(i,n2))
184 vy(i,n) = half*(vy(i,n1)+vy(i,n2))
185 vz(i,n) = half*(vz(i,n1)+vz(i,n2))
186 ENDIF
187 ENDDO
188 ENDDO
189C
190 IF (jthe < 0 .or. nintemp > 0) THEN
191 IF(nintemp > 0 ) THEN
192 DO n =1,20
193 DO i=lft,llt
194 nn = max(iun,nc(i,n))
195 IF(temp(nn)== zero) temp(nn) = temp0(i)
196 ENDDO
197 ENDDO
198 ELSE
199 DO n =1,20
200 DO i=lft,llt
201 nn = max(iun,nc(i,n))
202 temp(nn) = temp0(i)
203 ENDDO
204 ENDDO
205 ENDIF
206 ENDIF
207C------------
208 RETURN
209 END
function checkvolume_8n(x, ixs)
#define max(a, b)
Definition macros.h:21
subroutine s20coor3(x, v, ixs, ixs20, xx, yy, zz, vx, vy, vz, nc, ngl, mxt, ngeo, mass, dtelem, sti, sigg, eintg, rhog, qg, temp0, temp, nel, nintemp)
Definition s20coor3.F:38