OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i9imp2.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!|| i9imp2 ../engine/source/interfaces/int09/i9imp2.F
25!||--- called by ------------------------------------------------------
26!|| i9main2 ../engine/source/interfaces/int09/i9main2.F
27!||====================================================================
28 SUBROUTINE i9imp2(X ,V ,A ,IRECT,MSR ,
29 1 NSV ,ILOC ,IRTL ,NSN ,CST ,
30 2 FRIGAP,NOR )
31C-----------------------------------------------
32C I m p l i c i t T y p e s
33C-----------------------------------------------
34#include "implicit_f.inc"
35C-----------------------------------------------
36C D u m m y A r g u m e n t s
37C-----------------------------------------------
38 INTEGER NSN
39 INTEGER IRECT(4,*), MSR(*), NSV(*), ILOC(*), IRTL(*)
40C REAL
42 . x(3,*), v(3,*), a(3,*), cst(2,*),frigap(*), nor(3,*)
43C-----------------------------------------------
44C C o m m o n B l o c k s
45C-----------------------------------------------
46#include "com08_c.inc"
47C-----------------------------------------------
48C L o c a l V a r i a b l e s
49C-----------------------------------------------
50 INTEGER IX(2), II, I, J, K, L, M, IMP, I3, I2, JJ, J3, J2, LOLD
51C REAL
53 . h(2), n2, n3, gap, ym1, zm1, ym2, zm2, ys, zs, t2, t3,
54 . xl, ans, ss, stif, fni, fyi, fzi, ss0, fti, ds, anst
55C-----------------------------------------------
56 gap =frigap(2)
57C
58 DO 500 ii=1,nsn
59 i=nsv(ii)
60 j=iloc(ii)
61 k=msr(j)
62 l=irtl(ii)
63 m=msr(irect(1,l))
64 ix(1)=m
65 ym1=x(2,m) + (v(2,m) + a(2,m)*dt12)*dt2
66 zm1=x(3,m) + (v(3,m) + a(3,m)*dt12)*dt2
67 m=msr(irect(2,l))
68 ix(2)=m
69 ym2=x(2,m) + (v(2,m) + a(2,m)*dt12)*dt2
70 zm2=x(3,m) + (v(3,m) + a(3,m)*dt12)*dt2
71 ys =x(2,i) + (v(2,i) + a(2,i)*dt12)*dt2
72 zs =x(3,i) + (v(3,i) + a(3,i)*dt12)*dt2
73 t2=ym2-ym1
74 t3=zm2-zm1
75 xl=sqrt(t2**2+t3**2)
76 t2=t2/xl
77 t3=t3/xl
78 n2= t3
79 n3=-t2
80C
81 ans =n2*(ys-ym1)+n3*(zs-zm1)
82 ans =ans-gap
83 IF(ans>zero)THEN
84 iloc(ii)=-iloc(ii)
85 ELSE
86 h(2)=t2*(ys-ym1)+t3*(zs-zm1)
87 h(2)=h(2)/xl
88 h(1)=one - h(2)
89 ss=h(2)-h(1)
90 IF(ss> onep05)iloc(ii)=-iloc(ii)
91 IF(ss<-onep05)iloc(ii)=-iloc(ii)
92 ss= max(-one,ss)
93 ss= min( one,ss)
94 nor(2,ii)=n2
95 nor(3,ii)=n3
96 cst(1,ii)=ss
97 ENDIF
98C
99 500 CONTINUE
100 RETURN
101 END
#define my_real
Definition cppsort.cpp:32
subroutine i9imp2(x, v, a, irect, msr, nsv, iloc, irtl, nsn, cst, frigap, nor)
Definition i9imp2.F:31
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21