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

Go to the source code of this file.

Functions/Subroutines

subroutine i6ipmact (lold, irtl, irtlo, cst, irect, msr, nsv, v, vni, vnt, n1, n2, n3, ssc, ttc, h1, h2, h3, h4, xface, lft, llt, nft)

Function/Subroutine Documentation

◆ i6ipmact()

subroutine i6ipmact ( integer, dimension(*) lold,
integer, dimension(*) irtl,
integer, dimension(*) irtlo,
cst,
integer, dimension(4,*) irect,
integer, dimension(*) msr,
integer, dimension(*) nsv,
v,
vni,
vnt,
intent(in) n1,
intent(in) n2,
intent(in) n3,
intent(in) ssc,
intent(in) ttc,
intent(in) h1,
intent(in) h2,
intent(in) h3,
intent(in) h4,
intent(in) xface,
integer, intent(inout) lft,
integer, intent(inout) llt,
integer, intent(inout) nft )

Definition at line 28 of file i6impact.F.

35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C G l o b a l P a r a m e t e r s
41C-----------------------------------------------
42#include "mvsiz_p.inc"
43C-----------------------------------------------
44C D u m m y A r g u m e n t s
45C-----------------------------------------------
46 INTEGER, INTENT(INOUT) :: LFT
47 INTEGER, INTENT(INOUT) :: LLT
48 INTEGER, INTENT(INOUT) :: NFT
49 INTEGER IRECT(4,*),MSR(*),NSV(*), IRTL(*), IRTLO(*), LOLD(*)
50C REAL
52 . v(3,*),cst(2,*),vni(*),vnt(*)
53 my_real, DIMENSION(MVSIZ), INTENT(IN) :: n1,n2,n3,ssc,ttc,xface
54 my_real, DIMENSION(MVSIZ), INTENT(IN) :: h1,h2,h3,h4
55C-----------------------------------------------
56C C o m m o n B l o c k s
57C-----------------------------------------------
58C-----------------------------------------------
59C L o c a l V a r i a b l e s
60C-----------------------------------------------
61 INTEGER I,L,IL,IG,NN
62C REAL
64 . vpx(llt),vpy(llt),vpz(llt),vix(llt),viy(llt),viz(llt),
65 . vx1(llt),vy1(llt),vz1(llt),vx2(llt),vy2(llt),vz2(llt),
66 . vx3(llt),vy3(llt),vz3(llt),vx4(llt),vy4(llt),vz4(llt)
68 . dvx,dvy,dvz,vtx,vty,vtz
69C-----------------------------------------------
70 DO i=lft,llt
71 il = i+nft
72c
73 IF (xface(i) == zero) THEN ! no impact
74 irtlo(il) = 0
75 lold(i) = 0
76 ELSE
77 lold(i) = iabs(irtlo(il))
78 IF (lold(i) == 0) THEN ! first time impact
79 irtlo(il) = irtl(il)*xface(i)
80 cst(1,il) = ssc(i)
81 cst(2,il) = ttc(i)
82 ENDIF
83 ENDIF
84 ENDDO
85c-----------------------------
86 DO i=lft,llt
87 il = i+nft
88 IF (lold(i) == 0) THEN ! first time impact
89 vni(i) = zero
90 vnt(i) = zero
91 ELSE
92 ig = nsv(il)
93 l = irtl(il)
94c
95 vix(i) = v(1,ig)
96 viy(i) = v(2,ig)
97 viz(i) = v(2,ig)
98c
99 nn = msr(irect(1,lold(i)))
100 vx1(i) = v(1,nn)
101 vy1(i) = v(2,nn)
102 vz1(i) = v(2,nn)
103 nn = msr(irect(2,lold(i)))
104 vx2(i) = v(1,nn)
105 vy2(i) = v(2,nn)
106 vz2(i) = v(2,nn)
107 nn = msr(irect(3,lold(i)))
108 vx3(i) = v(1,nn)
109 vy3(i) = v(2,nn)
110 vz3(i) = v(2,nn)
111 nn = msr(irect(4,lold(i)))
112 vx4(i) = v(1,nn)
113 vy4(i) = v(2,nn)
114 vz4(i) = v(2,nn)
115c
116 vpx(i) = h1(i)*vx1(i)+h2(i)*vx2(i)+h3(i)*vx3(i)+h4(i)*vx4(i)
117 vpy(i) = h1(i)*vy1(i)+h2(i)*vy2(i)+h3(i)*vy3(i)+h4(i)*vy4(i)
118 vpz(i) = h1(i)*vz1(i)+h2(i)*vz2(i)+h3(i)*vz3(i)+h4(i)*vz4(i)
119 dvx = vix(i)-vpx(i)
120 dvy = viy(i)-vpy(i)
121 dvz = viz(i)-vpz(i)
122c
123 vni(i) = n1(i) * dvx + n2(i) * dvy + n3(i) * dvz
124
125 vtx = dvx - vni(i)*n1(i)
126 vty = dvy - vni(i)*n2(i)
127 vtz = dvz - vni(i)*n3(i)
128 vnt(i) = sqrt(vtx**2 + vty**2 + vtz**2)
129 ENDIF
130 ENDDO
131C-----------
132 RETURN
#define my_real
Definition cppsort.cpp:32