OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s10cndv.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!|| s10cndv ../engine/source/elements/solid/solide10/s10cndv.F
25!||--- called by ------------------------------------------------------
26!|| resol ../engine/source/engine/resol.F
27!||====================================================================
28 SUBROUTINE s10cndv(ICNDS10 ,VND ,V )
29C-----------------------------------------------
30C I m p l i c i t T y p e s
31C-----------------------------------------------
32#include "implicit_f.inc"
33C-----------------------------------------------
34C C o m m o n B l o c k s
35C-----------------------------------------------
36#include "com04_c.inc"
37C-----------------------------------------------
38C D u m m y A r g u m e n t s
39C-----------------------------------------------
40 INTEGER ICNDS10(3,*)
42 . v(3,*),vnd(3,*)
43C-----------------------------------------------
44C L o c a l V a r i a b l e s
45C-----------------------------------------------
46 INTEGER I,ND,N1,N2
48 . vx,vy,vz
49C======================================================================|
50 DO i=1,ns10e
51 nd = icnds10(1,i)
52 n1 = icnds10(2,i)
53 n2 = icnds10(3,i)
54 vx = half*(v(1,n1) + v(1,n2))
55 vy = half*(v(2,n1) + v(2,n2))
56 vz = half*(v(3,n1) + v(3,n2))
57 IF (nd<0) THEN
58 nd = -nd
59 v(1,nd) = vx
60 v(2,nd) = vy
61 v(3,nd) = vz
62 ELSE
63 v(1,nd) = v(1,nd)-vnd(1,i) + vx
64 v(2,nd) = v(2,nd)-vnd(2,i) + vy
65 v(3,nd) = v(3,nd)-vnd(3,i) + vz
66 END IF
67 vnd(1,i) = vx
68 vnd(2,i) = vy
69 vnd(3,i) = vz
70 END DO
71C----6---------------------------------------------------------------7---------8
72 RETURN
73 END
74!||====================================================================
75!|| s10mvnd ../engine/source/elements/solid/solide10/s10cndv.F
76!||--- called by ------------------------------------------------------
77!|| sortie_main ../engine/source/output/sortie_main.F
78!||====================================================================
79 SUBROUTINE s10mvnd(ICNDS10 ,VND ,V )
80C-----------------------------------------------
81C I m p l i c i t T y p e s
82C-----------------------------------------------
83#include "implicit_f.inc"
84C-----------------------------------------------
85C C o m m o n B l o c k s
86C-----------------------------------------------
87#include "com04_c.inc"
88C-----------------------------------------------
89C D u m m y A r g u m e n t s
90C-----------------------------------------------
91 INTEGER ICNDS10(3,*)
93 . v(3,*),vnd(3,*)
94C-----------------------------------------------
95C L o c a l V a r i a b l e s
96C-----------------------------------------------
97 INTEGER I,ND,N1,N2
99 . vx,vy,vz
100C======================================================================|
101C---relative velocity for KE compute----
102 DO i=1,ns10e
103 nd = icnds10(1,i)
104 IF (nd>0) THEN
105 v(1,nd) = v(1,nd)-vnd(1,i)
106 v(2,nd) = v(2,nd)-vnd(2,i)
107 v(3,nd) = v(3,nd)-vnd(3,i)
108 ELSEIF (nd<0) THEN
109 nd = -nd
110 v(1,nd) = zero
111 v(2,nd) = zero
112 v(3,nd) = zero
113 END IF
114 END DO
115C----6---------------------------------------------------------------7---------8
116 RETURN
117 END
118!||====================================================================
119!|| s10prtv ../engine/source/elements/solid/solide10/s10cndv.F
120!||====================================================================
121 SUBROUTINE s10prtv(ICNDS10 ,V ,itab)
122C-----------------------------------------------
123C I m p l i c i t T y p e s
124C-----------------------------------------------
125#include "implicit_f.inc"
126C-----------------------------------------------
127C C o m m o n B l o c k s
128C-----------------------------------------------
129#include "com04_c.inc"
130#include "units_c.inc"
131C-----------------------------------------------
132C D u m m y A r g u m e n t s
133C-----------------------------------------------
134 INTEGER ICNDS10(3,*),itab(*)
135 my_real
136 . v(3,*)
137C-----------------------------------------------
138C L o c a l V a r i a b l e s
139C-----------------------------------------------
140 INTEGER I,ND,N1,N2
141C======================================================================|
142 DO i=1,ns10e
143 nd = iabs(icnds10(1,i))
144 n1 = icnds10(2,i)
145 n2 = icnds10(3,i)
146 write(iout,*)'ND,N1,N2,ND_id,I=',itab(nd),itab(n1),itab(n2),icnds10(1,i),i
147 write(iout,*)v(1,nd),v(1,n1) , v(1,n2)
148 write(iout,*)v(2,nd),v(2,n1) , v(2,n2)
149 write(iout,*)v(3,nd),v(3,n1) , v(3,n2)
150 END DO
151C----6---------------------------------------------------------------7---------8
152 RETURN
153 END
154!||====================================================================
155!|| s10cndi2a ../engine/source/elements/solid/solide10/s10cndv.F
156!||--- called by ------------------------------------------------------
157!|| resol ../engine/source/engine/resol.F
158!||====================================================================
159 SUBROUTINE s10cndi2a(ICNDS10 ,ITAGND ,A )
160C-----------------------------------------------
161C I m p l i c i t T y p e s
162C-----------------------------------------------
163#include "implicit_f.inc"
164C-----------------------------------------------
165C C o m m o n B l o c k s
166C-----------------------------------------------
167#include "com04_c.inc"
168C-----------------------------------------------
169C D u m m y A r g u m e n t s
170C-----------------------------------------------
171 INTEGER ICNDS10(3,*),ITAGND(*)
172 my_real
173 . a(3,*)
174C-----------------------------------------------
175C L o c a l V a r i a b l e s
176C-----------------------------------------------
177 INTEGER I,ND,N1,N2
178 my_real
179 . ax,ay,az
180C======================================================================|
181C----for Nd as main of int2 only; Ad-> acce absolu
182 DO i=1,ns10e
183 nd = icnds10(1,i)
184 IF (iabs(itagnd(iabs(nd)))>ns10e) THEN
185 n1 = icnds10(2,i)
186 n2 = icnds10(3,i)
187 ax = half*(a(1,n1) + a(1,n2))
188 ay = half*(a(2,n1) + a(2,n2))
189 az = half*(a(3,n1) + a(3,n2))
190 IF (nd<0) THEN
191 nd = -nd
192 a(1,nd) = ax
193 a(2,nd) = ay
194 a(3,nd) = az
195 ELSE
196 a(1,nd) = a(1,nd) + ax
197 a(2,nd) = a(2,nd) + ay
198 a(3,nd) = a(3,nd) + az
199 END IF
200 END IF !(IABS(ITAGND(IABS(ND)))>NS10E) THEN
201 END DO
202C----6---------------------------------------------------------------7---------8
203 RETURN
204 END
205!||====================================================================
206!|| s10cndi2a1 ../engine/source/elements/solid/solide10/s10cndv.F
207!||--- called by ------------------------------------------------------
208!|| resol ../engine/source/engine/resol.F
209!||====================================================================
210 SUBROUTINE s10cndi2a1(ICNDS10 ,ITAGND ,A )
211C-----------------------------------------------
212C I m p l i c i t T y p e s
213C-----------------------------------------------
214#include "implicit_f.inc"
215C-----------------------------------------------
216C C o m m o n B l o c k s
217C-----------------------------------------------
218#include "com04_c.inc"
219C-----------------------------------------------
220C D u m m y A r g u m e n t s
221C-----------------------------------------------
222 INTEGER ICNDS10(3,*),ITAGND(*)
223C REAL
224 my_real
225 . a(3,*)
226C-----------------------------------------------
227C L o c a l V a r i a b l e s
228C-----------------------------------------------
229 INTEGER I,ND,N1,N2
230C REAL
231 my_real
232 . ax,ay,az
233C======================================================================|
234C----for Nd as main of int2 only; Ad-> acce relative
235 DO i=1,ns10e
236 nd = icnds10(1,i)
237 IF (nd>0.AND.iabs(itagnd(iabs(nd)))>ns10e) THEN
238 n1 = icnds10(2,i)
239 n2 = icnds10(3,i)
240 ax = half*(a(1,n1) + a(1,n2))
241 ay = half*(a(2,n1) + a(2,n2))
242 az = half*(a(3,n1) + a(3,n2))
243 a(1,nd) = a(1,nd) - ax
244 a(2,nd) = a(2,nd) - ay
245 a(3,nd) = a(3,nd) - az
246 END IF !(IABS(ITAGND(IABS(ND)))>NS10E) THEN
247 END DO
248C----6---------------------------------------------------------------7---------8
249 RETURN
250 END
251!||====================================================================
252!|| s10getvdm ../engine/source/elements/solid/solide10/s10cndv.F
253!||--- called by ------------------------------------------------------
254!|| resol ../engine/source/engine/resol.F
255!||====================================================================
256 SUBROUTINE s10getvdm(ICNDS10 ,V,VND,VMD)
257C-----------------------------------------------
258C I m p l i c i t T y p e s
259C-----------------------------------------------
260#include "implicit_f.inc"
261C-----------------------------------------------
262C C o m m o n B l o c k s
263C-----------------------------------------------
264#include "com04_c.inc"
265C-----------------------------------------------
266C D u m m y A r g u m e n t s
267C-----------------------------------------------
268 INTEGER ICNDS10(3,*)
269C REAL
270 my_real
271 . v(3,*),vnd(3,*),vmd(3,*)
272C-----------------------------------------------
273C L o c a l V a r i a b l e s
274C-----------------------------------------------
275 INTEGER I,ND,N1,N2
276C REAL
277 my_real
278 . vx,vy,vz
279C======================================================================|
280 vmd(1:3,1:numnod) = v(1:3,1:numnod)
281 DO i=1,ns10e
282 nd = iabs(icnds10(1,i))
283 vmd(1:3,nd) = v(1:3,nd)-vnd(1:3,i)
284 END DO
285C----6---------------------------------------------------------------7---------8
286 RETURN
287 END SUBROUTINE s10getvdm
#define my_real
Definition cppsort.cpp:32
subroutine s10prtv(icnds10, v, itab)
Definition s10cndv.F:122
subroutine s10cndv(icnds10, vnd, v)
Definition s10cndv.F:29
subroutine s10mvnd(icnds10, vnd, v)
Definition s10cndv.F:80
subroutine s10getvdm(icnds10, v, vnd, vmd)
Definition s10cndv.F:257
subroutine s10cndi2a(icnds10, itagnd, a)
Definition s10cndv.F:160
subroutine s10cndi2a1(icnds10, itagnd, a)
Definition s10cndv.F:211